电话簿课程设计报告文档格式.docx
《电话簿课程设计报告文档格式.docx》由会员分享,可在线阅读,更多相关《电话簿课程设计报告文档格式.docx(12页珍藏版)》请在冰豆网上搜索。
1.引言-5-
1.1编写目的-5-
1.2背景-5-
1.3定义-5-
1.4参考资料-6-
2.系统的结构-6-
3.登录模块(login)设计说明-6-
4.读入文件模块(load)设计说明-7-
5.增加模块(insert)设计说明-8-
6.删除模块(del)设计说明-9-
7.查找模块(search)设计说明-10-
一、概要设计
1、任务
本阶段的主要目标就是实现地址簿系统的模块设计问题,包括系统的处理流程、总体结构与模块、每一模块的功能以及接口的设计、模块的设计、运行与出错设计等
windowsxp+vc
该地址簿系统的需求分为功能需求、性能需求、安全需求、项目需求这四大类
(1)功能需求
①地址簿内容包括姓名域和号码域,姓名长度不超过8个字符,号码长度不超过16个字符。
姓名中可包括字符数字及符号,号码中仅可包括数字和字符“+”。
地址簿条数不可超过1000条。
②地址簿可实现浏览全部条目,增加条目,删除条目,编辑条目,查找条目和快速匹配
③地址簿默认按照姓名顺序排序,即A-Z。
可实现按姓名逆向排序,按号码顺序排序,按号码逆序排序功能。
④地址簿有保存功能。
⑤地址簿登录时用户可以加入登录密码。
密码不可以以明文显示。
(2)性能需求
①要求占用内存小于16k。
(索引表)
②要求查找速度快。
(3)安全需求
①登录时如需密码,密码需做安全保护。
②数据存放安全。
(4)项目要求
①需提供详细完整的流程图,概要设计文档和详细设计文档。
②设计模块清晰,代码要求做到低耦合,高重用。
2、总体设计
A.载入文件load():
将磁盘中可能存在的文件载入到内存中。
B.信息输入insert():
系统将提示输入新纪录所需信息,信息包含:
姓名、号码。
C.信息删除del():
首先提示用户输入要删除的纪录姓名,然后调用删除函数,删除该纪录的相关资料,支持重名选择删除和循环删除。
D.查找search():
提示用户输入要查找的姓名,然后系统调用查找函数查找,接着系统使用相关命令输出查到的全部信息。
E.显示全部display():
将内存中的纪录内容全部输出,包括未保存到磁盘的记录项。
F.保存save():
将操作结果实时保存到磁盘文件tel.txt中,完成后返回到主菜单界面。
G.退出系统exit(0):
直接退出系统,不保存修改。
接口≈系统界面)
内部接口方面,各模块之间采用函数调用、参数传递、返回值的方式进行信息传递。
模块:
文件的创建、文件的读写、文件的更新、数据的增加、数据的删除、数据的修改、数据的查找
逻辑结构、物理结构,与程序结构的关系
定义两个结构体,其中一个表示记录person,其中包含用户名及号码,另一个表示双向链表,其中数据是调用结构体person
登录模块:
用户需要通过输入用户名和密码来登录系统,然后选择所要进行的操作来实现用户需要。
通过这一模块设计,使用户资料的安全得到保障。
读入文件模块:
对这个系统里数据的操作都是对文本文件里存储的数据进行操作的,所以要读入文件,首先判断文件是否存在,存在则读入,不存在则建立。
增加模块:
在已有记录的基础上,增加数据并将数据保存在文本文件中。
当保存的记录到底1000条时,提示无法增加。
删除模块:
对文本文件中已有的数据进行删除,通过输入用户名,查找出相应记录,然后删除
查找模块:
输入用户名,与文本文件比对,查找出相应记录并输出查找的结果
运行模块组合、控制、时间;
例如:
读入文件是出错将会提示“文件读入失败”,通过显示的信息提醒用户出错
登录是通过验证用户名及其密码,均符合才能登录,保障了用户资料的安全
二、详细设计
1.引言
1.1编写目的
本说明书在概要设计的基础上,对地址簿系统的各模块、程序分别实现层面上的要求和说明。
软件开发小组的产品实现成员应该阅读和参考本说明进行代码的编写、测试。
1.2背景
a.地址簿系统
b.任务提出者:
易嵌培训中心
开发者:
王妮霜
1.3定义
load:
载入文件,将磁盘中可能存在的文件载入到内存中。
insert:
信息输入,系统将提示输入新纪录所需信息,信息包含:
del:
信息删除,首先提示用户输入要删除的纪录姓名,删除该纪录的相关资料。
search:
提示用户输入要查找的姓名,接着输出查到的全部信息。
display:
显示全部,将内存中的纪录内容全部输出,包括未保存到磁盘的记录项。
save:
保存,将操作结果实时保存到磁盘文件tel.txt中,完成后返回到主菜单界面。
init:
初始化
1.4参考资料
参考网址:
2.系统的结构
3.登录模块(login)设计说明
[从本章开始,逐个地给出各个层次中的每个模块的设计考虑。
以下给出的提纲
是针对一般情况的。
对于一个具体的模块,尤其是层次比较低的模块或子程序,其很
多条目的内容往往与它所隶属的上一层模块的对应条目的内容相同,在这种情况下,
只要简单地说明这一点即可。
]
3.1模块描述
3.2功能
验证用户名及其密码的合法性。
3.3性能
简单性,安全性
3.4输入项
用户名:
可包括字符数字及符号
密码:
3.5输出项
验证该用户名和密码是否正确,正确则登录系统,不正确则关闭系统。
3.6设计方法(算法)
用getchar()函数获取密码、用户名,与存储在文本文件中的比较
3.7流程逻辑
3.8注释设计
在程序一些适当的位置给出中文注释,尤其较难理解的地方,例如关于文件操作调用的函数。
3.11限制条件
无法注册用户,只能根据程序中设定的用户名和密码来验证。
3.12测试计划
(在程序中设定的用户名及密码:
user=wns,password=901028)
设计的测试数据有:
user=wnspassword=9010无法登录系统,退出
user=Wnspassword=901028无法登录系统,退出
user=spassword=0909无法登录
user=wnspassword=901028登录成功,进入系统
3.13尚未解决的问题
密码不能以不是明文的方式显示
4.读入文件模块(load)设计说明
4.1模块描述
4.2功能
读入文件,方便用户对文本文件里的数据进行添加、删除、修改、查询等操作。
4.3输入项
无输入项,用户成功登录系统后,直接读入文件。
4.4输出项
当没有文件时,则显示文件不存在,并及时创建文件,当文件创建成功后,提示创建成功。
读入文件成功则提示用户读入成功,读入的文件如果为空则显示文件内容为空。
4.5设计方法(算法)
调用文件操作函数fopen()来判断文件存在与否、创建和读入数据
4.6流程逻辑
4.7存储分配
第一次登录系统后,会在当前目录下建立一个文本文档,所有对数据的操作都会保存在文本文档内。
4.8注释设计
在程序一些适当的位置给出中文注释,尤其较难理解的地方
4.9限制条件
每次登录都有检查文本文档是否存在,比较复杂
4.10测试计划
当程序运行过后,检查当前目录下是否建立了用于存储数据的文本文档
4.11尚未解决的问题
文件存在性的多次检测以及多次读取比较烦琐
5.增加模块(insert)设计说明
5.1模块描述
在已有记录的基础上,增加数据并将数据保存在文本文件中。
5.2功能
增加记录,并保存
5.3输入项
要增加的用户名:
长度不超过8个字符,姓名中可包括字符数字及符号。
该用户的号码:
长度不超过16个字符,号码中仅可包括数字和字符“+”。
5.4输出项
当保存的数据为达到1000条时,输入的用户名及号码符合要求时,显示添加成功。
否则显示添加失败。
5.5设计方法(算法)
使用双向链表实现数据的动态管理,数据的添加就是在双向链表中增加一个节点。
5.6流程逻辑
5.7存储分配
将输入的用户名和电话号码保存在当前目录下的文本文件中
5.8注释设计
在程序一些适当的位置给出中文注释,尤其较难理解的地方,尤其有关链表的操作
5.9限制条件
当记录的数据条数达到1000后无法在继续添加
5.10测试计划
当记录条数达到1000时,测试是否能继续增加。
5.11尚未解决的问题
不能对姓名和号码输入的合法性进行检验
6.删除模块(del)设计说明
6.1模块描述
对文本文件中已有的数据进行删除,通过输入用户名,查找出相应记录,然后删除
6.2功能
通过输入的用户名删除已有的记录
6.3输入项
输入要删除用户的用户名,必须是文本文件中已有的用户名
6.4输出项
输出删除后文本中包含的记录
6.5设计方法(算法)
先应判断文本中是否有记录,如果没有记录则提示无法进行此项操作,如果有,则提示输入用户名,查找出该节点,删除节点
6.6流程逻辑
6.7存储分配
更新文本中的记录
6.8注释设计
6.9测试计划
(1)测试是否能对空文件进行此项操作
(2)测试输入不存在的用户名是否能进行删除
(3)测试删除文本中包含的记录
7.查找模块(search)设计说明
7.1模块描述
输入用户名,与文本文件比对,查找出相应记录并输出查找的结果
7.2功能
查找文本中的记录并输出
7.3输入项
输入用户名
7.4输出项
若输入的用户名在文本中存在,则输出相应记录;
若不存在,则输出没有此用户。
7.5设计方法(算法)
首先判断链表是否为空,若为空,则提示用户记录为空;
若不为空,输入用户名,查询链表节点,查找出该节点的话,输出该节点的记录
7.6流程逻辑
7.8注释设计
7.9测试计划
(1)建立一个空文件,测试是否能查找用户