问题的提出:设计一个用于管理朋友信息的程序。将朋友信息(年龄、姓名、电话)存放在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 }
微信公众号: 猿人谷
如果您认为阅读这篇博客让您有些收获,不妨点击一下右下角的【推荐】
如果您希望与我交流互动,欢迎关注微信公众号
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接。