管理朋友信息程序

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

问题的提出:设计一个用于管理朋友信息的程序。将朋友信息(年龄、姓名、电话)存放在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 }

 

 

img_e00999465d1c2c1b02df587a3ec9c13d.jpg
微信公众号: 猿人谷
如果您认为阅读这篇博客让您有些收获,不妨点击一下右下角的【推荐】
如果您希望与我交流互动,欢迎关注微信公众号
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接。

目录
相关文章
|
8月前
|
小程序 JavaScript Java
阅读小程序|基于微信阅读网站小程序的系统设计与实现(源码+数据库+文档)
阅读小程序|基于微信阅读网站小程序的系统设计与实现(源码+数据库+文档)
134 0
|
8月前
|
弹性计算 供应链 测试技术
计算巢实操合集:软件用户使用服务及供应商进阶管理(系列四)
弹性计算社区推出的面向开发者计算巢成长系列课程已经发布第四期了,本期将围绕软件用户使用服务实操以及供应商进阶管理实操,并且一步步教大家如何利用计算巢完成部署体验。
107683 1
【博客项目】—用户修改功能(十一)
【博客项目】—用户修改功能(十一)
【博客项目】—用户删除功能(十二)
【博客项目】—用户删除功能(十二)
|
SQL 前端开发 Java
校园外卖点餐系统——Day01【项目简介、开发环境搭建、后台系统登录和退出功能】
校园外卖点餐系统——Day01【项目简介、开发环境搭建、后台系统登录和退出功能】
217 0
校园外卖点餐系统——Day01【项目简介、开发环境搭建、后台系统登录和退出功能】
|
前端开发 数据库 开发者
课程管理-修改课程信息(后端) | 学习笔记
简介:快速学习课程管理-修改课程信息(后端)
147 0
课程管理-修改课程信息(后端) | 学习笔记
|
JSON 前端开发 JavaScript
课程管理-修改课程信息(前端)| 学习笔记
简介:快速学习课程管理-修改课程信息(前端)
286 0
课程管理-修改课程信息(前端)| 学习笔记
|
存储 前端开发 JavaScript
课程管理-修改课程信息(最终实现) | 学习笔记
简介:快速学习课程管理-修改课程信息(最终实现)
221 0
课程管理-修改课程信息(最终实现) | 学习笔记
|
存储 前端开发 JavaScript
课程管理-修改课程信息(前端) | 学习笔记
简介:快速学习课程管理-修改课程信息(前端)
111 0
课程管理-修改课程信息(前端) | 学习笔记
|
运维 Linux API
金鱼哥RHCA回忆录:DO447管理高级清单--创建和更新动态清单
第十二章 管理高级清单--创建和更新动态清单
182 0
金鱼哥RHCA回忆录:DO447管理高级清单--创建和更新动态清单