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

上传人:b****8 文档编号:9813387 上传时间:2023-02-06 格式:DOCX 页数:15 大小:165.10KB
下载 相关 举报
同学录管理系统需求分析报告.docx_第1页
第1页 / 共15页
同学录管理系统需求分析报告.docx_第2页
第2页 / 共15页
同学录管理系统需求分析报告.docx_第3页
第3页 / 共15页
同学录管理系统需求分析报告.docx_第4页
第4页 / 共15页
同学录管理系统需求分析报告.docx_第5页
第5页 / 共15页
点击查看更多>>
下载资源
资源描述

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

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

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

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

 

同学录管理系统详细设计说明书

 

课程名:

软件工程

实验类型:

设计型实验

 

(一)实验目的:

通过设计一个《同学录管理系统》,进一步熟悉C++中类的概念、基本知识和技能,类的封装、继承的实现方式。

掌握面向对象程序设计的基本思路和方法,并利用所学的基本知识和技能解决简单的面向对象的程序设计问题。

了解系统开发的需求分析、类层次设计、模块分解、编码测试、模块组装与整体调试的全过程,加深对C++的理解与VisualC++环境的使用:

逐步熟悉程序设计的方法,并养成良好的编程习惯。

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()函数流程图

 

 

(四)系统概要设计

(五)详细设计

1.主函数功能如下:

chardiaplay();首页

voidinsert();添加同学

voiddelete();删除同学

voidshow_all();显示所有同学

voidfind();查询同学

2.各个模块功能的相应程序

(1)display()

voiddisplay(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()

voidfind(NOD*head)

{NOD*p;

charname[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;

charname[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");

returnhead;

}

(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;

returnhead;

}

(六)各模块结构展示

(1)主目录

(2)显示所有记录:

(3)数据的查询

 

(4)数据的录入

(5)数据的删除

(七)总结与分析

这次课程设计过程并没有我想象的那么容易,很多C语言,C++方面的语句,函数都已经不是很了解了,通过老师的讲解,网上课程设计教学的视频,重新系统的复习,并再一次加深印象,做出的程序仍有很多瑕疵,并不完美,所以以后应继续努力,加强自己的思维能力和动手能力。

总之,过程虽然很艰辛,但得到的结果还是很让自己满意的,继续努力!

(八)参考文献

《软件工程》,《C++程序开发》,《C语言程序设计》

(九)参考网站

Google,XX,enet网络学院等

源程序代码:

#include

#include

#include

#defineNODstructemail_list

structperson

{charname[20];

charemail[40];

chartime[20];

charphone[15];

};

NOD

{charname[20];

charemail[40];

chartime[20];

charphone[15];

NOD*next;

};

FILE*fp;

NOD*load(charfilename[])

{NOD*p,*q,*head;

structpersonper;

p=(NOD*)malloc(sizeof(NOD));

q=head=NULL;

if((fp=fopen(filename,"rb"))==NULL)

returnhead;

else

{while(!

feof(fp))

{if(fread(&per,sizeof(structperson),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;

returnhead;

}

voidsave(NOD*head,charfilename[])

{NOD*p;

structpersonper;

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(structperson),1,fp)!

=1)

{printf("文件不能写入数据,请检查后重新运行.\n");

exit(0);

}

p=p->next;

}

fclose(fp);

}

}

voiddisplay(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;

}

}

voidfind(NOD*head)

{NOD*p;

charname[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;

charname[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");

returnhead;

}

voidmain()

{NOD*head;

charfname[20];

intchoise;

printf("\t请输入同学录文件名:

");

scanf("%s",fname);

head=load(fname);

while

(1)

{printf("\t\t\t同学录管理系统\n");

printf("\t==============================================\n");

printf("\t\t1.按姓名查找\n");

printf("\t\t2.按姓名删除\n");

printf("\t\t3.增加新记录\n");

printf("\t\t4.显示所有记录\n");

printf("\t\t5.存盘并退出\n");

printf("\n\t6.请选择(1-5):

");

scanf("%d",&choise);

switch(choise)

{case1:

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");

}

}

}

 

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

当前位置:首页 > PPT模板 > 艺术创意

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1