前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >管理朋友信息程序

管理朋友信息程序

作者头像
猿人谷
发布2018-01-17 09:51:47
4370
发布2018-01-17 09:51:47
举报
文章被收录于专栏:猿人谷猿人谷

问题的提出:设计一个用于管理朋友信息的程序。将朋友信息(年龄、姓名、电话)存放在MyFrd.dat中,从文件读出这些信息并显示,并能按姓名(要求可简化输入,如只输入姓氏便可查询)进行查询,将查询信息输出屏幕。

代码语言:javascript
复制
  1 #include<iostream.h>
  2 #include<fstream.h>
  3 #include<iomanip.h>
  4 static int n=0;
  5 int comp(char*,char*);
  6 class MyFriend
  7 {
  8     unsigned int age;
  9     char name[12];
 10     char TelNo[12];
 11 public:
 12     void getdata()
 13     {
 14         cout<<"(年龄 姓名 电话):";
 15         cin>>age>>name>>TelNo;
 16     }
 17     void disp()
 18     {
 19         cout<<setiosflags(ios::left)
 20          <<setw(6)<<age<<setw(10)<<name<<setw(7)<<TelNo<<endl;
 21     }
 22     char *getname()
 23     {
 24         return name;
 25     }
 26 };
 27 void func1()
 28 {
 29     ofstream output("MyFrd.dat");
 30     MyFriend s;
 31     
 32     cout<<"输入数据"<<endl;
 33     cout<<"我的朋友人数:";
 34     cin>>n;
 35     for(int i=0;i<n;i++)
 36     {
 37         cout<<"第"<<i+1<<"个我的朋友";
 38         s.getdata();
 39         output.write((char *)&s,sizeof(s));
 40     };
 41     output.close();
 42 }
 43 void func2()
 44 {
 45     ifstream input("MyFrd.dat");
 46     MyFriend s;
 47     cout<<"输入数据"<<endl;
 48     cout<<setiosflags(ios::left)
 49     <<setw(6)<<"年龄"<<setw(10)<<"姓名"<<setw(7)<<"电话"<<endl;
 50     input.read((char *)&s,sizeof(s));
 51     while(input)
 52     {
 53         s.disp();
 54         input.read((char*)&s,sizeof(s));
 55     };
 56     input.close();
 57 }
 58 void func3()
 59 {
 60     char sname[10];
 61     fstream file("MyFrd.dat",ios::in);
 62     MyFriend one;
 63     file.seekg(0);
 64     cout<<"输入要查询的姓名(可只输入姓氏):";
 65     cin>>sname;
 66     cout<<"输出查询结果:"<<endl;
 67     cout<<setw(6)<<"年龄"<<setw(10)<<"姓名"<<setw(6)<<"电话"<<endl;
 68     for(int i=0;i<n;i++)
 69     {
 70         file.read((char *)&one,sizeof(MyFriend));
 71         if(comp(one.getname(),sname)==1)
 72             one.disp();
 73     }
 74     file.close();
 75 }
 76 int comp(char s1[],char s2[])
 77 {
 78     int i=0;
 79     while(s1[i]!='\0' && s2[i]!='\0' && s1[i]==s2[i])
 80         i++;
 81     if(s1[i]=='\0' || s2[i]=='\0')
 82         return 1;
 83     else
 84         return 0;
 85 }
 86 
 87 void main()
 88 {
 89     int sel;
 90     do
 91     {
 92         cout<<"选择(1:输入数据 2:输出数据 3:按姓名查询 其它退出):";
 93         cin>>sel;
 94         switch(sel)
 95         {
 96          case 1:func1();break;
 97          case 2:func2();break;
 98          case 3:func3();break;
 99         }
100     }while(sel==1||sel==2||sel==3);
101 }
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2012-12-11 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档