1、 Del()4) Student: Mod()(5) Student: Que_name() (6) Student: Sav()(7) Student: Load()四、调试分析(内容包括:调试过程中遇到的问题并且是如何解决的以及对设计实现的回顾讨论和分析;算法的时空分析和改进设想;经验和体会等)五、 测试结果六、 小结通过本次设计,加强了对于编写管理系统程序的运用,能够更好的运用循环。对于以后的编程运用起了很大的帮助。七、 附录(附上带详细注释的源程序)#includestring.hwindows.husing namespace std;struct student char num2
2、0; char name20; char address50; char postcode20; char telphone20; student2000; /定义学生类结构体void Menu(); /声明菜单函数void Input(); /声明录入函数void Sav(int); /声明保存函数int Load(); /声明信息导入函数void Que_name(); /声明按姓名查找函数void Del(); /声明删除函数void Mod(); /声明修改函数void Scan(); /声明浏览函信息数void Add(); /声明添加函数 void Menu() /菜单函数 cou
3、tn; system(cls); switch(n) case 1:cout请输入相关学生通讯信息:Input();system(goto loop; case 2:请保存相关学生通讯信息:Sav(n); case 3:按姓名查找相关学生通讯信息:Que_name(); case 4:修改相关学生通讯信息:Mod(); case 5:删除相关学生通讯信息:Del(); case 6:添加相关学生通讯信息:Add(); /用goto语句调至指定行 default :break; ttt*欢迎您的使用!*void Input() /学生通讯信息录入函数 int i,m;请输入您所要输入的学生通讯信
4、息的个数(1-2000):m; for (i=0;ii+) cout请输入学生的学号: studenti.name;请输入通讯录中学生的电话号码:studenti.telphone;请输入通讯录学生的地址(格式如*省*市*县*乡):studenti.address;请输入通讯录中学生的邮编:studenti.postcode;该学生的通讯信息已经输入完毕,请继续输入下一个学生通讯信息!void Sav(int m) /如何写入信息? 保存通讯录文件函数 int i; FILE *fp; if (fp=fopen(E:student.dat,wb)=NULL) /创建文件并判断是否能打开该文件打
5、开失败。 exit(0);i+) /将内存中学生通讯信息输入到磁盘里去 if (fwrite(&studenti,sizeof(struct student),1,fp)!=1) /申请空间,写入学生信息,为何有个1?信息写入失败! fclose(fp);void Que_name() /按姓名查找函数 char name110; m=Load();请输入您要查询学生通讯信息的名字name1; for(i=0; if(strcmp(name1,studenti.name)=0)查找到该学生的通讯信息如下: Scan(); break; else抱歉,查无此人! return ;void Sca
6、n() /不明白这个,把函数赋给m吗?输出学生通讯信息如下:学号:studenti.num 姓名:studenti.name联系电话:studenti.telphone通讯地址:studenti.address邮编:studenti.postcodeint Load() /导入函数 FILE*fp; int i=0; if(fp=fopen(rb)=NULL) cout文件打开失败! exit(0); do fread(&studenti,sizeof(struct student),1,fp); i+; while(feof(fp)=0); return(i);void Del() /删除函
7、数 int m; int i,j,n,t,f;查看学生的通讯信息如下: Scan(); /调用浏览函数请输入您想删除的通讯信息的名字: for(f=1,i=0;f& if(strcmp(studenti.name,name1)=0) cout if(n=1) /如果删除,则其他的信息都向前移一行 for(j=i;jm-1;j+) studentj=studentj+1; f=0; if(!f) m=m-1;/? else cout if(n=1) coutc; if(c6|c1)抱歉,您的输入有误,请从新输入。 f=0; if(f=1) cout抱歉,未找到此人! do switch(c) /
8、因为当找到第i个学生时,for语句后i自加了1,所以下面的应该把改后的信息赋值给第i-1个人 将该生的学号改为:num; strcpy(studenti.num,num); break; case 2:将该生的姓名改为:name; strcpy(studenti.name, name); case 3:将该生的联系电话改为:tel; strcpy(studenti.telphone,tel); case 4:将该生的通讯地址改为:address; strcpy(studenti.address,address); case 5:将该生的邮编改为:post; strcpy(studenti.postcode,post); 确认您所修改的信息请按1,从新修改请按0:b; while(b=0);修改后所有信息如下;如果您想继续修改请按1,否则按0: Mod(); case 0: default :void Add() /添加函数 int n=Load();请输入您要添加的学生通讯信息的个数: for (i=n;m+n;请输入该生的学号:studenti.num;请输入该生的姓名:请输入该生的联系电话:请输入该生的通讯地址:请输入该生的邮编: system(该生的通讯信息添加完毕,请输入您要添加的下一位学生的通讯信息! Sav(m+n);学生通讯信息添加完毕,查看信息如下:
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1