管理朋友信息程序

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

管理朋友信息程序
  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 }
管理朋友信息程序

 

 





本文转自夏雪冬日博客园博客,原文链接:http://www.cnblogs.com/heyonggang/archive/2012/12/11/2812511.html,如需转载请自行联系原作者


上一篇:云原生是开发者的黄金时代


下一篇:冬季实战营第三期:MySQL数据库进阶实战学习总结