C语言学生通信录管理系统课程设计报告1

上传人:B****n 文档编号:39804126 上传时间:2021-11-12 格式:DOC 页数:17 大小:324.50KB
收藏 版权申诉 举报 下载
C语言学生通信录管理系统课程设计报告1_第1页
第1页 / 共17页
C语言学生通信录管理系统课程设计报告1_第2页
第2页 / 共17页
C语言学生通信录管理系统课程设计报告1_第3页
第3页 / 共17页
资源描述:

《C语言学生通信录管理系统课程设计报告1》由会员分享,可在线阅读,更多相关《C语言学生通信录管理系统课程设计报告1(17页珍藏版)》请在装配图网上搜索。

1、实验报告实验名称 :学生通信录管理系统实验项目性质:综合性、设计性所涉及课程: C 语言课程设计计划学时:实验学时4一、实验目的综合考察学生本学期对C语言的掌握程度。二、实验内容1.编写一个可以把学生信息写入文件的函数creact(),采用动态链表。2.编写一个可以增加新成员的函数add1()。3编写一个可以查询确定学生的函数search1()。4编写一个可以删除确定学生的函数del1 ()。5编写一个可以修改确定学生的函数modify1 ()。6编写一个可以打开通信录的函数open1( )。附录:search1 函数调用 searchnum 和 searchname 函数,分别为按学号和按名

2、字查询。del 函数调用 delname 和 deltel 函数,分别为按名字和按电话删除。modify1 函数调用 modifynum 和 modifyname 函数,分别为按学号和按名字找到修改。open1 函数调用 sorttel 和 sortname 函数,分别为按电话和按名字从小到大的顺序打开。三、实验(设计)仪器设备和材料清单1.硬件: PC机2.软件: Turbo C Turbo C+四、实验要求设计一个学生通讯录管理系统 ,在动态链表程序的基础上,设计要求如下(必须使用结构体和动态链表等数据结构)1 建立文件存储文件使用指定文件名或默认文件名;可以不保存输入记录,但需要确认是否

3、保存输入记录如果已有文件,只能在其后追加;新增记录可以不存入原文件中,以可以用原来的文件覆盖内存的内容;可以将多个个文件记录合并到一个文件中;2 文件的存取和显示可以单独存取文件;可以随时显示内存中记录的全部内容;可以直接存取默认文件或指定文件;3 删除记录可以按“姓名”或“电话”方式删除记录并更新内存链表内容;能给出被删除的信息,输出没有找到的信息;如果已经是空表,上出时应给出信息并返回主菜单;如果没有要删除的信息,输出没有找到的信息;删除操作仅限于内存,只有执行记录时,才能覆盖原记录;4 查询记录可以按“姓名”或“电话”或“宿舍”方式查询记录能给出查询记录的信息;如果查询的信息不存在,输出

4、没有找到的信息;5 整体功能a 可以随时检索、删除、或增加新记录,保存或取消新的记录 b 使姓名可由 16 位字符和数字的混合编码组成c 使电话号码可由18 位字符和数字组成d 将输出信息加上输出信息信息栏,例如姓名电话性别年龄 生日宿舍李四1234男217月1 日东二 333e 使用菜单实现功能的正确的选择f 所有节点信息都是动态生成。6 测试程序应列出测试大纲对程序进行测试;应保证测试用例测试到程序的各种边缘情况五、实验步骤及结果测试A、主函数主函数提供可选择的功能1234560创增查找删除修改打开退建加出按名字、按 按电话、按 按名字、按按电话、按学号名字学号名字程序清单:void ma

5、in()int i;end:printf("|-|n");printf("|new file|n");printf("|information|n");printf("|n");printf(“|n");printf("|n");printf("|n");printf("|n");printf("|-|n");printf("input your choice(0-6):n");scanf("%d

6、",&i);if(i=1)creat1();goto end;if(i=2)add1();goto end;if(i=3)search1();goto end;if(i=4)del1();goto end;if(i=5)modify1();goto end;if(i=6)open1();goto end;exit(0);B、创建: voidcreate()开始动态申请内存输入学号学号不为 0输入其他信息动态申请内存并输入学号结束链表的建立存入文件结束程序清单:void creat1()FILE *fp;char i;struct student *p1,*p2,*head;n

7、=0;p1=p2=(struct student *)malloc(LEN);printf("nenter NO.:n");scanf("%d",&p1->num);while(p1->num!=0)printf("enter name:n");scanf("%s",p1->name);printf("enter tel:n");scanf("%s",p1->tel);doprintf("enter sex:n");getc

8、har();scanf("%c",&p1->sex);while(p1->sex!='f'&&p1->sex!='F'&&p1->sex!='m'&&p1->sex!='M');doprintf("enter age:n");scanf("%d",&p1->age);while(p1->age<=0|p1->age>=150);printf(&quo

9、t;enter birthday:n");scanf("%s",p1->bir);printf("enter address:n");scanf("%s",p1->add);n=n+1;if(n=1)head=p1;else p2->next=p1;p2=p1;p1=(struct student *)malloc(LEN);printf("enter NO.:n");scanf("%d",&p1->num);p2->next=NULL;print

10、f("nsave them or no(y/n)n");doprintf("input choicen");getchar();scanf("%c",&i);while(i!='y'&&i!='Y'&&i!='n'&&i!='N');if(i='y'|i='Y')p1=head;if(fp=fopen(FILENAME,"wb")=NULL)printf("

11、;cannot open filen");return;if(p1!=NULL)doif(fwrite(p1,sizeof(struct student),1,fp)!=1)printf("file write errorn");fclose(fp);break;p1=p1->next;while(p1!=NULL);fclose(fp);C、增加void add1()设计思路和创建新通信录一样,只是文件的打开方式是“a”,即以追加的方式打开。程序清单:void add1()FILE *fp;char i;struct student *p1,*p2,*he

12、ad;n=0;p1=p2=(struct student *)malloc(LEN);printf("nenter NO.:n");scanf("%d",&p1->num);while(p1->num!=0)printf("enter name:n");scanf("%s",p1->name);printf("enter tel:n");scanf("%s",p1->tel);printf("enter sex:n");ge

13、tchar();scanf("%c",&p1->sex);printf("enter age:n");scanf("%d",&p1->age);printf("enter birthday:n");scanf("%s",p1->bir);printf("enter address:n");scanf("%s",p1->add);n=n+1;if(n=1)head=p1;else p2->next=p1;p2=p

14、1;p1=(struct student *)malloc(LEN);printf("enter NO.:n");scanf("%d",&p1->num);p2->next=NULL;printf("nsave them or no(y/n)n");doprintf("input choicen");getchar();scanf("%c",&i);while(i!='y'&&i!='Y'&&i!=

15、9;n'&&i!='N');if(i='y'|i='Y')p1=head;if(fp=fopen(FILENAME,"a")=NULL)printf("cannot open filen");return;if(p1!=NULL)doif(fwrite(p1,sizeof(struct student),1,fp)!=1)printf("file write errorn");fclose(fp);break;p1=p1->next;while(p1!=NU

16、LL);fclose(fp);D、查找void search()开始选择按名字或按学号查按名字择调用按学号择调用Searchname()Searchnum()结束开始重建链表输入名字(电话)查找符合节点找到则输出该节找不到输出 “ not点内容find ”结束程序清单 :1、void search1()int i;printf("please input your choice(0-2)");printf("|-|n");printf("|in NO.|n");printf("|in name|n");printf

17、("|n");printf("|-|n");doprintf("input your choice");scanf("%d",&i);while(i!='1'&&i!='2'&i!='0');switch(i)case'1': searchnum();break;case'2': searchname();break;default: exit(0);2、void searchname()struct s

18、tudent *p1,*p2,*head;char name16;head=recreat();printf("enter the student's name:n");scanf("%d",name);for(p1=head;p1->next!=NULL;p1=p1->next)if(strcmp(p1->name,name)=0)printf(,"%dt%st%st%ct%dt%st%sn",p1->num,p1->name,p1->tel,p1->sex,p1->age,p

19、1->bir,p1->add);3、void searchnum()struct student *p1,*p2,*head;int num;head=recreat();printf("enter the student's NO.:n");scanf("%d",&num);for(p1=head;p1->next!=NULL;p1=p1->next)if(p1->num=num)printf(,"%dt%st%st%ct%dt%st%sn",p1->num,p1->name,p1->tel,p1->sex,p1->age,p1->bir,p1->add);

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!