管理朋友信息程序

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

相关文章
|
5天前
|
云安全 人工智能 自然语言处理
|
9天前
|
人工智能 Java API
Java 正式进入 Agentic AI 时代:Spring AI Alibaba 1.1 发布背后的技术演进
Spring AI Alibaba 1.1 正式发布,提供极简方式构建企业级AI智能体。基于ReactAgent核心,支持多智能体协作、上下文工程与生产级管控,助力开发者快速打造可靠、可扩展的智能应用。
849 26
|
3天前
|
机器学习/深度学习 人工智能 自然语言处理
Z-Image:冲击体验上限的下一代图像生成模型
通义实验室推出全新文生图模型Z-Image,以6B参数实现“快、稳、轻、准”突破。Turbo版本仅需8步亚秒级生成,支持16GB显存设备,中英双语理解与文字渲染尤为出色,真实感和美学表现媲美国际顶尖模型,被誉为“最值得关注的开源生图模型之一”。
435 4
|
12天前
|
数据采集 人工智能 自然语言处理
Meta SAM3开源:让图像分割,听懂你的话
Meta发布并开源SAM 3,首个支持文本或视觉提示的统一图像视频分割模型,可精准分割“红色条纹伞”等开放词汇概念,覆盖400万独特概念,性能达人类水平75%–80%,推动视觉分割新突破。
822 59
Meta SAM3开源:让图像分割,听懂你的话
|
2天前
|
弹性计算 网络协议 Linux
阿里云ECS云服务器详细新手购买流程步骤(图文详解)
新手怎么购买阿里云服务器ECS?今天出一期阿里云服务器ECS自定义购买流程:图文全解析,阿里云服务器ECS购买流程图解,自定义购买ECS的设置选项是最复杂的,以自定义购买云服务器ECS为例,包括付费类型、地域、网络及可用区、实例、镜像、系统盘、数据盘、公网IP、安全组及登录凭证详细设置教程:
172 114
|
5天前
|
机器学习/深度学习 人工智能 数据可视化
1秒生图!6B参数如何“以小博大”生成超真实图像?
Z-Image是6B参数开源图像生成模型,仅需16GB显存即可生成媲美百亿级模型的超真实图像,支持中英双语文本渲染与智能编辑,登顶Hugging Face趋势榜,首日下载破50万。
376 19
|
3天前
|
人工智能 安全 小程序
阿里云无影云电脑是什么?最新收费价格个人版、企业版和商业版无影云电脑收费价格
阿里云无影云电脑是运行在云端的虚拟电脑,分企业版和个人版。企业版适用于办公、设计等场景,4核8G配置低至199元/年;个人版适合游戏、娱乐,黄金款14元/月起。支持多端接入,灵活按需使用。
267 164