学生通讯录管理项目设计书
一、项目题目:学生通讯录管理
二、项目需求:可以对学生信息进行增加、修改、查询、删除等操作。
三、技术要求:定义一个学生结构,保存学生的信息。包括学号、姓名、住址、电话、Email。定义一个有序链表(按学号)在内存中保存学生的数据。数据最终以结构文件的形式保存到硬盘上的Student.dat文件上。
四、通讯录图示:
※※※※※※※※※※※※※※
※ 欢迎使用 ※
※ 学生通讯录管理系统 ※
※※※※※※※※※※※※※※
※ 1、通讯录列表 ※
※ 2、查询数据 ※
※ 3、增加数据 ※
※ 4、修改数据 ※
※ 5、删除数据 ※
※ 6、退出程序 ※
※ ※
※ by:版权没有※
※※※※※※※※※※※※※※
请选择操作(1~6):
五、结构设计:
1、结构体定义:
⑴ typedef struct student //学生信息
{
long stu_Number[20]; //学生学号
char stu_Name[30]; //学生姓名
char stu_Addr[40]; //家庭住址
char stu_Tel[20]; //联系电话
char stu_Email[40]; //Email
}stu; //结构别名
⑵ typedef sturct student_link //信息记录
{
Stu data; //学生信息
Struct student_link * next; //下一记录信息
}link; //结构别名
2、变量定义:
(1)int count; //记录数量
(2)FILE * fp; //文件指针
(3)slink * header; //记录链表头节点指针
(4)slink * current; //记录链表当前节点指针
(5)slink * temp; //记录链表临时节点指针
(6)slink * footer; //纪录链表尾节点指针
六、模块功能设计:
1、初始化模块:
link * InitLink(void);
功能:初始化学生信息记录链表。
参数:无。
返回值:初始化完成后将该链表头节点指针返回。
2、功能模块:
menu_select(void)
功能:显示功能菜单
参数:无
返回值:返回值为整数代表所选菜单项
根据功能菜单所给出的选择项进行相应的操作。
①学生信息查询:
Void Data_search(void);
功能:选择查询方式。
参数:无
返回值:无
⑴void findbyNumber(link * header);
功能:按学号查找学生信息。
参数:header为函数对其进行操作的链表的头节点指针。
返回值:无
⑵void findbyName(link * header);
功能:按姓名查找学生信息。
参数:header为函数对其进行操作的链表的头节点指针。
返回值:无
⑶void findbyTel(link * header);
功能:按电话号码查找学生信息。
参数:header为函数对其进行操作的链表的头节点指针。
返回值:无
⑷void findbyEamil(link * header);
功能:按Email查找学生信息。
参数:header为函数对其进行操作的链表的头节点指针。
返回值:无
⑸void findbyAddr(link * header);
功能:按家庭住址查找学生信息。
参数:header为函数对其进行操作的链表的头节点指针。
返回值:无
如果没有所查找的学生信息则提示“没有该学生通讯信息,是否要增加该学生通讯信息?YES OR NO”判断是否增加该学生通讯信息,YES则返回‘0’增加该学生信息,NO则返回‘1’返回查询界面继续查找。
②学生信息增加:
Void Data_input(link * header);
功能:增加一条新的学生通讯信息。
参数:header为函数对其进行操作的链表的头节点指针。
返回值:无
信息录入完毕提示“是否继续增加否则返回初始菜单”。
③学生信息修改:
Void Data_rework(link * header);
功能:对已经录入的学生通讯信息进行修改。
参数:header为函数对其进行操作的链表的头节点指针。
返回值:无
④学生信息删除:
Void Data_delete(void);
功能:选择删除方式。
参数:无
返回值:无
提示用户选择操作类型:1、删除所有记录。2、按学号删除指定记录。3、按姓名删除指定记录。4、按地址删除指定记录。5、按电话删除指定记录。6、按Email删除指定记录。
⑴void delbyAll(link * header);
功能:删除所有记录。
参数:header为函数对其进行操作的链表的头节点指针。
返回值:确认删除返回0,取消删除返回1。
⑵void delbyNumber(link * header);
功能:按学号删除指定记录。
参数:header为函数对其进行操作的链表的头节点指针。
返回值:无
⑶void delbyName(link * header);
功能:按姓名删除指定记录。
参数:header为函数对其进行操作的链表的头节点指针。
返回值:无
⑷void delbyTel(link * header);
功能:按电话删除指定记录。
参数:header为函数对其进行操作的链表的头节点指针。
返回值:无
⑸void delbyEmail(link * header);
功能:按Email删除指定记录。
参数:header为函数对其进行操作的链表的头节点指针。
返回值:无
⑹void delbyAddr(link * header);
功能:按家庭地址删除指定记录。
参数:header为函数对其进行操作的链表的头节点指针。
返回值:无
⑤学生信息输出:
Void Data_show(link * header);
功能:打印所有学生的通讯信息。
参数:header为函数对其进行操作的链表的头节点指针。
返回值:无
⑥文件存储:
Void Data_save(link * header);
功能:将记录从链表写入文件。
参数:header为函数对其进行操作的链表的头节点指针。
返回值:无
⑦文件读取:
Void Data_load(link * header);
功能:将文件中的记录读取出来。
参数:header为函数对其进行操作的链表的头节点指针。
返回值:无
⑧信息排序:
Void display(link * header);
功能:排序学生信息。
参数:header为函数对其进行操作的链表的头节点指针。
返回值:无
对所有记录按学号进行排序。
⑨退出当前程序:
Void quit(void);
功能:退出当前程序。
参数:无
返回值:无
⑩退出程序:
Void Data_quit(link * header);
功能:退出程序。
参数:header为函数对其进行操作的链表的头节点指针。
返回值:无
七、编程规范:《c语言编程规范》。
[此贴子已经被作者于2006-10-10 19:44:51编辑过]