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

上传人:b****2 文档编号:2578297 上传时间:2023-05-04 格式:DOCX 页数:17 大小:37.88KB
下载 相关 举报
同学录管理系统需求分析报告.docx_第1页
第1页 / 共17页
同学录管理系统需求分析报告.docx_第2页
第2页 / 共17页
同学录管理系统需求分析报告.docx_第3页
第3页 / 共17页
同学录管理系统需求分析报告.docx_第4页
第4页 / 共17页
同学录管理系统需求分析报告.docx_第5页
第5页 / 共17页
同学录管理系统需求分析报告.docx_第6页
第6页 / 共17页
同学录管理系统需求分析报告.docx_第7页
第7页 / 共17页
同学录管理系统需求分析报告.docx_第8页
第8页 / 共17页
同学录管理系统需求分析报告.docx_第9页
第9页 / 共17页
同学录管理系统需求分析报告.docx_第10页
第10页 / 共17页
同学录管理系统需求分析报告.docx_第11页
第11页 / 共17页
同学录管理系统需求分析报告.docx_第12页
第12页 / 共17页
同学录管理系统需求分析报告.docx_第13页
第13页 / 共17页
同学录管理系统需求分析报告.docx_第14页
第14页 / 共17页
同学录管理系统需求分析报告.docx_第15页
第15页 / 共17页
同学录管理系统需求分析报告.docx_第16页
第16页 / 共17页
同学录管理系统需求分析报告.docx_第17页
第17页 / 共17页
亲,该文档总共17页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

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

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

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

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

 

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

 

课程名:

软件工程

实验类型:

设计型实验

(一)实验目的:

通过设计一个《同学录管理系统》,进一步熟悉 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,XX,enet 网络学院等

源程序代码:

#include

#include

#include

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

}

}

}

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

当前位置:首页 > 解决方案 > 学习计划

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2