C语言学生通信录管理系统课程设计报告_第1页
C语言学生通信录管理系统课程设计报告_第2页
C语言学生通信录管理系统课程设计报告_第3页
C语言学生通信录管理系统课程设计报告_第4页
C语言学生通信录管理系统课程设计报告_第5页
已阅读5页,还剩12页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

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

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

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

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

5、in()int i;end:printf(" |-|n");printf(" | 1.ceate new file |n");printf(" | 2.add information |n");printf(" | 3.search |n"); printf(“ | 4.telect |n");printf(" | 5.modify |n");printf(" | 6.open |n");printf(" | 0.register |n");pr

6、intf(" |-|n");printf("input your choice(0-6):n"); scanf("%d",&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、创建:void create()开始动态申请内存输入学号学

7、号不为0输入其他信息动态申请内存并输入学号结束链表的建立存入文件结束程序清单:void creat1()FILE *fp;char i;struct student *p1,*p2,*head;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);print

8、f("enter tel:n");scanf("%s",p1->tel);doprintf("enter sex:n");getchar();scanf("%c",&p1->sex);while(p1->sex!='f'&&p1->sex!='F'&&p1->sex!='m'&&p1->sex!='M');do printf("enter age:n&

9、quot;);scanf("%d",&p1->age);while(p1->age<=0|p1->age>=150); 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=p1; p1=(struct student *)m

10、alloc(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!='n'&&i!=&#

11、39;N');if(i='y'|i='Y')p1=head;if(fp=fopen(,"wb")=NULL)printf("cannot open filen");return;if(p1!=NULL)doif(fwrite(p1,sizeof(struct student),1,fp)!=1)printf(" errorn");fclose(fp);break;p1=p1->next;while(p1!=NULL);fclose(fp); C、增加 void add1()设计思路和创建新

12、通信录一样,只是文件的打开方式是“a”,即以追加的方式打开。程序清单:void add1()FILE *fp;char i;struct student *p1,*p2,*head;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(&quo

13、t;enter tel:n");scanf("%s",p1->tel);printf("enter sex:n");getchar();scanf("%c",&p1->sex); printf("enter age:n");scanf("%d",&p1->age); printf("enter birthday:n");scanf("%s",p1->bir); printf("enter addr

14、ess: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;printf("nsave them or no(y/n)n");doprintf("input choicen");getchar(

15、);scanf("%c",&i);while(i!='y'&&i!='Y'&&i!='n'&&i!='N');if(i='y'|i='Y')p1=head;if(fp=fopen(,"a")=NULL)printf("cannot open filen");return;if(p1!=NULL)doif(fwrite(p1,sizeof(struct student),1,fp)!=1

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

17、quot;);printf(" | 1.search in NO. |n");printf(" | 2.search in name |n");printf(" | 0.register |n");printf(" |-|n"); do printf("input your choice"); scanf("%d",&i); while(i!='1'&&i!='2'&i!='0'); switch

18、(i)case'1': searchnum(); break;case'2': searchname(); break;default: exit(0); 2、void searchname()struct student *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,p1->bir,p1->add);3、void searchnum()struct student *p1,*p2,*head;int num;hea

温馨提示

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

评论

0/150

提交评论