同学录管理系统需求分析报告.doc_第1页
同学录管理系统需求分析报告.doc_第2页
同学录管理系统需求分析报告.doc_第3页
同学录管理系统需求分析报告.doc_第4页
同学录管理系统需求分析报告.doc_第5页
免费预览已结束,剩余8页可下载查看

下载本文档

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

文档简介

同学录管理系统详细设计说明书课程名:软件工程实验类型:设计型实验(一)实验目的: 通过设计一个同学录管理系统,进一步熟悉C+中类的概念、基本知识和技能,类的封装、继承的实现方式。掌握面向对象程序设计的基本思路和方法,并利用所学的基本知识和技能解决简单的面向对象的程序设计问题。了解系统开发的需求分析、类层次设计、模块分解、编码测试、模块组装与整体调试的全过程,加深对C+的理解与Visual C+环境的使用:逐步熟悉程序设计的方法,并养成良好的编程习惯。2.实验原理:应用C语言编写,引用各种函数,循环控制语句等设计源程序代码,使设计出来的系统有很好的结构化,便于用户清晰的了解系统并方便使用。3,实验类型:本实验为设计型实验(二)实验内容:系统的功能分析:(1)系统管理:用户管理,修改密码,重新登录,退出系统(2)数据操作:数据录入,数据查询,数据删除,显示所有记录,存盘并退出数据库需求分析:根据系统功能,可以确定以下数据项和数据结构:(1)数据录入,必须包括:姓名,性别,电话,家庭地址,邮编,E-mail等基本信息;(2)数据删除,删除某人的信息;(3)数据查询,可以按姓名,家庭住址,性别等多种方式查询;(4)显示所有信息 ; (三)实验模块设计(1) 为便于用户使用本系统时,对各个功能的选择,本系统设计一个操作简单的菜单工作方式。用户根据需要选择相应的菜单项,即可根据提示完成相应的功能。(2) 各个模块设计1.主函数main()模块:其功能为显示中文提示菜单,根据用户输入的菜单选项,调用相应功能的各个函数。2.装填函数load()模块:其功能为由文件中的数据生成一个同学录的链表,如果文件不存在,则建立一个空链表。3.插入函数insert()模块:其功能为插入一个记录。4.显示函数display()模块:其功能为显示所有记录的姓名,性别,电话,家庭地址,邮编,E-mail。5.查询函数find()模块:其功能为按指定姓名进行查询。如果找到了,显示该记录的姓名,性别,电话,家庭地址,邮编,E-mail。如果未找到,则显示“对不起,此人信息不存在!”的信息。6.删除函数deletee()模块:其功能为按指定姓名删除记录。如果找到了,删除该记录;如果未找到,则提示“对不起,此人信息不存在!”的信息。7.保存函数save()模块:其功能为将同学录链表中的内容保存到文件中。(3)main()函数流程图开始提示“请输入通讯录信息”调用load()函数打开相应文件显示主菜单根据choice值调用函数调用insert()函数调用display()函数调用find()函数调用deletee()函数调用save()函数结束(四)系统概要设计同学录管理系统数据录入数据查询数据删除显示所有信息数据保存(五)详细设计1.主函数功能如下:char diaplay();首页void insert(); 添加同学void delete(); 删除同学void show_all(); 显示所有同学void find(); 查询同学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()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)printf(nt对不起,此人信息不存在!n);(3)delete()NOD *delete(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*)malloc(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+方面的语句,函数都已经不是很了解了,通过老师的讲解,网上课程设计教学的视频,重新系统的复习,并再一次加深印象,做出的程序仍有很多瑕疵,并不完美,所以以后应继续努力,加强自己的思维能力和动手能力。总之,过程虽然很艰辛,但得到的结果还是很让自己满意的,继续努力!(八)参考文献软件工程,C+程序开发,C语言程序设计(九)参考网站Google,百度,enet网络学院等 源程序代码:#include#include#include#define NOD struct email_liststruct personchar name20; char email40; char time20; char phone15;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; else while(!feof(fp) if (fread(&per,sizeof(struct person),1,fp)=1) p=(NOD*)malloc(sizeof(NOD); strcpy(p-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,temp-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(,p-name);strcpy(per.email,p-email);strcpy(per.time ,p-time);strcpy(per.phone ,p-phone);if(fwrite(&per,sizeof(struct person),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-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)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 choise;printf(t 请输入同学录文件名:);scanf(%s,fname);head=load(fname);while(1)printf(ttt 同学录管理系统n);printf(t=n);printf(tt 1.按姓名查找n);printf(tt 2.按姓名删除n);printf(tt 3.增加新记录n);printf(tt 4.显示所有记录n);printf(

温馨提示

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

评论

0/150

提交评论