同学录管理系统需求分析报告.doc

上传人:scccc 文档编号:13746042 上传时间:2022-01-23 格式:DOC 页数:15 大小:293KB
返回 下载 相关 举报
同学录管理系统需求分析报告.doc_第1页
第1页 / 共15页
同学录管理系统需求分析报告.doc_第2页
第2页 / 共15页
同学录管理系统需求分析报告.doc_第3页
第3页 / 共15页
同学录管理系统需求分析报告.doc_第4页
第4页 / 共15页
亲,该文档总共15页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《同学录管理系统需求分析报告.doc》由会员分享,可在线阅读,更多相关《同学录管理系统需求分析报告.doc(15页珍藏版)》请在三一文库上搜索。

1、同学录管理系统详细设计说明书课程名:软件工程实验类型:设计型实验(一)实验目的:通过设计一个同学录管理系统,进一步熟悉 C+中类的概念、基本知识和技能,类的封装、继承的实现方式。掌握面向对象程序设计的基本思路和方法,并利用所学的基本知识和技能解决简单的面向对象的程序设计问题。了解系统开发的需求分析、类层次设计、模块分解、编码测试、模块组装与整体调试的全过程,加深对 C+的理解与 Visual C+环境的使用:逐步熟悉程序设计的方法,并养成良好的编程习惯。2. 实验原理:应用 C语言编写,引用各种函数,循环控制语句等设计源程序代码,使设计出来的系统有很好的结构化,便于用户清晰的了解系统并方便使用

2、。3,实验类型:本实验为设计型实验(二)实验内容:系统的功能分析:( 1)系统管理:用户管理,修改密码,重新登录,退出系统( 2)数据操作:数据录入,数据查询,数据删除,显示所有记录,存盘并退出数据库需求分析:根据系统功能,可以确定以下数据项和数据结构:(1)数据录入,必须包括:姓名,性别,电话,家庭地址,邮编,E-mail 等基本信息;(2)数据删除,删除某人的信息;(3)数据查询,可以按姓名,家庭住址,性别等多种方式查询;(4)显示所有信息;(三)实验模块设计(1)为便于用户使用本系统时,对各个功能的选择,本系统设计一个操作简单的菜单工作方式。用户根据需要选择相应的菜单项,即可根据提示完成

3、相应的功能。(2)各个模块设计1. 主函数 main()模块:其功能为显示中文提示菜单,根据用户输入的菜单选项,调用相应功能的各个函数。2. 装填函数 load ()模块:其功能为由文件中的数据生成一个同学录的链表,如果文件不存在,则建立一个空链表。3. 插入函数 insert ()模块:其功能为插入一个记录。4. 显示函数 display ()模块:其功能为显示所有记录的姓名,性别,电话,家庭地址,邮编, E-mail 。5. 查询函数 find ()模块:其功能为按指定姓名进行查询。如果找到了,显示该记录的姓名,性别,电话,家庭地址,邮编, E-mail 。如果未找到,则显示“对不起,此人

4、信息不存在!”的信息。6. 删除函数 deletee() 模块:其功能为按指定姓名删除记录。如果找到了,删除该记录;如果未找到,则提示“对不起,此人信息不存在!”的信息。7. 保存函数 save()模块:其功能为将同学录链表中的内容保存到文件中。(3)main() 函数流程图开始提示“请输入通讯录信息”调用 load ()函数打开相应文件显示主菜单根据 choice 值调用函数调用调用调用调用调用insert ()display (find (deletee ()save(函数)函数)函数函数函数结束(四)系统概要设计同学录管理系统数据录入数据查询数据删除显示所有数据保存信息(五)详细设计1.

5、 主函数功能如下 :char diaplay();首页voidinsert();添加同学voiddelete();删除同学voidshow_all();显示所有同学voidfind();查询同学2. 各个模块功能的相应程序(1)display()void display(NOD *head)NOD *p;p=head;while(p!=NULL)printf(name:%sn,p -name);printf(email:%sn,p -email);printf(time:%sn,p -time);printf(phone:%snn,p -phone);p=p-next;(2)find ()vo

6、id find(NOD *head)NOD *p;char name20;printf( 请输入要查找的人的姓名:);scanf(%s,name);p=head;while(p!=NULL)if(strcmp(name,p -name)=0)printf(name:%sn,p -name);printf(email:%sn,p -email);printf(time:%sn,p -time);printf(phone:%snn,p -phone);break;elsep=p-next;if(p=NULL)printf(nt 对不起,此人信息不存在!n);(3)delete()NOD *dele

7、te(NOD *head)NOD*p,*q;char name20;printf( 请输入要删除记录的姓名:);scanf(%s,name);p=q=head;while(p!=NULL)if(strcmp(name,p -name)=0)if(head=p)head=p-next;elseq-next=p -next;free(p);break;elseq=p;p=p-next;if(p=NULL)printf(nt 查无此人 n);return head;(4)insert()NOD *insert(NOD *head)NOD *temp,*p;p=head;temp=(NOD*)mall

8、oc(sizeof(NOD);printf(nt请输入姓名: );scanf(%s,temp -name);printf(nt请输入电子邮箱:);scanf(%s,temp -email);printf(nt请输入同学的时段:);scanf(%s,temp -time);printf(nt请输入手机号码:);scanf(%s,temp -phone);head=temp;temp-next=p;return head;(六)各模块结构展示(1)主目录(2)显示所有记录:(3)数据的查询(4)数据的录入(5)数据的删除(七)总结与分析这次课程设计过程并没有我想象的那么容易,很多C 语言, C+方

9、面的语句,函数都已经不是很了解了,通过老师的讲解,网上课程设计教学的视频,重新系统的复习,并再一次加深印象,做出的程序仍有很多瑕疵,并不完美,所以以后应继续努力,加强自己的思维能力和动手能力。总之,过程虽然很艰辛,但得到的结果还是很让自己满意的,继续努力!(八)参考文献软件工程,C+程序开发,C 语言程序设计(九)参考网站Google, 百度, enet 网络学院等源程序代码:#include#include#include#define NOD struct email_liststruct personchar name20;char email40;char time20;char ph

10、one15;NODchar name20;char email40;char time20;char phone15;NOD *next;FILE *fp;NOD *load(char filename)NOD *p,*q,*head;struct person per;p=(NOD*)malloc(sizeof(NOD);q=head=NULL;if(fp=fopen(filename,rb)=NULL)return head;elsewhile(!feof(fp) if (fread(&per,sizeof(struct person),1,fp)=1)p=(NOD*)malloc(siz

11、eof(NOD);strcpy(p -name,per.name);strcpy(p -email,per.email);strcpy(p -time,per.time);strcpy(p -phone,per.phone);head=p;p-next=q;q=head;fclose(fp);return(head);NOD *insert(NOD *head)NOD *temp,*p;p=head;temp=(NOD*)malloc(sizeof(NOD);printf(nt请输入姓名: );scanf(%s,temp -name);printf(nt请输入电子邮箱:);scanf(%s,t

12、emp -email);printf(nt请输入同学的时段:);scanf(%s,temp -time);printf(nt请输入手机号码:);scanf(%s,temp -phone);head=temp;temp-next=p;return head;void save(NOD *head,char filename)NOD *p;struct person per;if(fp=fopen(filename,wb)=NULL)printf( 文件无法写入 );exit(0);else p=head; while(p!=NULL) strcpy(per.name,p -name); strc

13、py(per.email,p-email); strcpy(per.time ,p-time); strcpy(per.phone ,p-phone);if(fwrite(&per,sizeof(structperson),1,fp)!=1)printf( 文件不能写入数据,请检查后重新运行.n);exit(0);p=p-next;fclose(fp);void display(NOD *head)NOD *p;p=head;while(p!=NULL)printf(name:%sn,p -name);printf(email:%sn,p -email);printf(time:%sn,p -

14、time);printf(phone:%snn,p -phone);p=p-next;void find(NOD *head)NOD *p;char name20;printf( 请输入要查找的人的姓名:);scanf(%s,name);p=head;while(p!=NULL)if(strcmp(name,p -name)=0)printf(name:%sn,p -name);printf(email:%sn,p -email);printf(time:%sn,p -time);printf(phone:%snn,p -phone);break;elsep=p-next;if(p=NULL)

15、printf(nt 查无此人 n);NOD *deletee(NOD *head)NOD*p,*q;char name20;printf( 请输入要删除记录的姓名:);scanf(%s,name);p=q=head;while(p!=NULL)if(strcmp(name,p -name)=0)if(head=p)head=p-next;elseq-next=p -next;free(p);break;elseq=p;p=p-next;if(p=NULL)printf(nt 查无此人 n);return head;void main()NOD *head;char fname20;int ch

16、oise;printf(t请输入同学录文件名:);scanf(%s,fname);head=load(fname);while(1)printf(ttt同学录管理系统n);printf(t=n);printf(tt1.按姓名查找 n);printf(tt2.按姓名删除 n);printf(tt3.增加新记录 n);printf(tt4.显示所有记录 n);printf(tt5.存盘并退出 n);printf(nt 6.请选择( 1-5): );scanf(%d,&choise);switch(choise)case 1:find(head);break;case2:head=deletee(head);break;case3:head=insert(head);break;case4:display(head);break;case5:save(head,fname);exit(0);default:printf( 输入错误,请重新输入!n);

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 社会民生


经营许可证编号:宁ICP备18001539号-1