收藏 分销(赏)

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

上传人:精**** 文档编号:3035651 上传时间:2024-06-13 格式:DOC 页数:13 大小:162KB 下载积分:8 金币
下载 相关 举报
同学录管理系统需求分析报告.doc_第1页
第1页 / 共13页
同学录管理系统需求分析报告.doc_第2页
第2页 / 共13页


点击查看更多>>
资源描述
同学录管理系统详细设计说明书 课程名:软件工程 实验类型:设计型实验 (一)实验目的: 通过设计一个《同学录管理系统》,进一步熟悉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:%s\n",p->name); printf("email:%s\n",p->email); printf("time:%s\n",p->time); printf("phone:%s\n\n",p->phone); p=p->next; (2)find() void find(NOD *head) {NOD *p; char name[20]; printf("请输入要查找的人的姓名:"); scanf("%s",name); p=head; while(p!=NULL) {if(strcmp(name,p->name)==0) {printf("name:%s\n",p->name); printf("email:%s\n",p->email); printf("time:%s\n",p->time); printf("phone:%s\n\n",p->phone); break; } else p=p->next; } if(p==NULL) printf("\n\t对不起,此人信息不存在!\n"); } (3)delete() NOD *delete(NOD *head) {NOD*p,*q; char name[20]; printf("请输入要删除记录的姓名:"); scanf("%s",name); p=q=head; while(p!=NULL) {if(strcmp(name,p->name)==0) { if(head==p) head=p->next; else q->next=p->next; free(p); break; } else {q=p; p=p->next; } } if(p==NULL) printf("\n\t查无此人\n"); return head; } (4)insert() NOD *insert(NOD *head) {NOD *temp,*p; p=head; temp=(NOD*)malloc(sizeof(NOD)); printf("\n\t 请输入姓名:"); scanf("%s",temp->name); printf("\n\t 请输入电子邮箱:"); scanf("%s",temp->email); printf("\n\t 请输入同学的时段:"); scanf("%s",temp->time); printf("\n\t 请输入手机号码:"); scanf("%s",temp->phone); head=temp; temp->next=p; return head; } (六)各模块结构展示 (1)主目录 (2)显示所有记录: (3)数据的查询 (4)数据的录入 (5)数据的删除 (七)总结与分析 这次课程设计过程并没有我想象的那么容易,很多C语言,C++方面的语句,函数都已经不是很了解了,通过老师的讲解,网上课程设计教学的视频,重新系统的复习,并再一次加深印象,做出的程序仍有很多瑕疵,并不完美,所以以后应继续努力,加强自己的思维能力和动手能力。总之,过程虽然很艰辛,但得到的结果还是很让自己满意的,继续努力! (八)参考文献 《软件工程》,《C++程序开发》,《C语言程序设计》 (九)参考网站 Google,百度,enet网络学院等 源程序代码: #include<stdio.h> #include<stdlib.h> #include<string.h> #define NOD struct email_list struct person {char name[20]; char email[40]; char time[20]; char phone[15]; }; NOD {char name[20]; char email[40]; char time[20]; char phone[15]; 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,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("\n\t 请输入姓名:"); scanf("%s",temp->name); printf("\n\t 请输入电子邮箱:"); scanf("%s",temp->email); printf("\n\t 请输入同学的时段:"); scanf("%s",temp->time); printf("\n\t 请输入手机号码:"); 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); 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:%s\n",p->name); printf("email:%s\n",p->email); printf("time:%s\n",p->time); printf("phone:%s\n\n",p->phone); p=p->next; } } void find(NOD *head) {NOD *p; char name[20]; printf("请输入要查找的人的姓名:"); scanf("%s",name); p=head; while(p!=NULL) {if(strcmp(name,p->name)==0) {printf("name:%s\n",p->name); printf("email:%s\n",p->email); printf("time:%s\n",p->time); printf("phone:%s\n\n",p->phone); break; } else p=p->next; } if(p==NULL) printf("\n\t查无此人\n"); } NOD *deletee(NOD *head) {NOD*p,*q; char name[20]; printf("请输入要删除记录的姓名:"); scanf("%s",name); p=q=head; while(p!=NULL) {if(strcmp(name,p->name)==0) { if(head==p) head=p->next; else q->next=p->next; free(p); break; } else {q=p; p=p->next; } } if(p==NULL) printf("\n\t查无此人\n"); return head; } void main() {NOD *head; char fname[20]; int choise; printf("\t 请输入同学录文件名:"); scanf("%s",fname); head=load(fname); while(1) {printf("\t\t\t 同学录管理系统\n"); printf("\t==============================================\n"); printf("\t\t 1.按姓名查找\n"); printf("\t\t 2.按姓名删除\n"); printf("\t\t 3.增加新记录\n"); printf("\t\t 4.显示所有记录\n"); printf("\t\t 5.存盘并退出\n"); printf("\n\t 6.请选择(1-5):"); scanf("%d",&choise); switch(choise) {case 1:find(head);break; case 2:head=deletee(head);break; case 3:head=insert(head);break; case 4:display(head);break; case 5:save(head,fname);exit(0); default:printf("输入错误,请重新输入!\n"); } } }
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 应用文书 > 报告/总结

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服