数据结构课程设计(学生信息管理系统).docx
《数据结构课程设计(学生信息管理系统).docx》由会员分享,可在线阅读,更多相关《数据结构课程设计(学生信息管理系统).docx(32页珍藏版)》请在沃文网上搜索。
1、 学生通讯录管理系统设计1 需求分析1.1 设计任务要求通讯录系统主要包含以下要求:(1)设计一个学生通讯录管理系统,每个学生数据信息包括:姓名、电话号码、qq、邮编和地址;(2)创建学生数据类型为结构体并以磁盘文件保存;(3)能读取磁盘文件并显示输出学生的相关信息;(4)能按姓名或电话等多种方式进行学生信息查询;(5)能查询、添加、修改和删除学生通讯录。1.2 系统功能需求分析系统主要包含以下主要功能:(1)查询通讯录记录;(2)添加通讯录记录;(3)修改通讯录记录;(4)删除通讯录记录;(5)关闭通讯录。2 概要设计2.1 数据类型本系统中所有变量都定义为字符串型,学生通讯录数据类型定义为
2、结构体类型。然而为了更加方便,添加了抽象数据类型类book,再私有继承了以结构体存储的学生数据。2.2 主程序及各程序层次关系以下是系统功能模块关系图,主要包含查询、添加、修改、删除联系人和关闭系统等功能。另外还提供了键盘式选择菜单实现功能选择。图2.1 系统功能模块关系图查询联系人:可以选择用姓名和电话两种方式查询添加联系人:可以添加通讯录记录,依次输入姓名、电话、qq、邮编和地址修改联系人:输入欲修改联系人姓名后,再依次输入修改姓名、电话、qq、邮编和地址即可完成修改删除联系人:输入欲删除联系人的姓名后,会自动删除该联系人的记录内容关闭系统:选择相关操作进行系统正常关闭,保存有效数据记录3
3、 详细设计3.1 实现数据类型(1)以字符串类型定义通讯录中学生数据信息变量:string name;/姓名 string number;/电话号码 string qq;/QQ号 string post;/邮编 string address;/地址(2)学生通讯录数据类型定义为结构体存储:struct inf string name;/姓名 string address;/地址 string number;/电话号码 string post;/邮编 string qq;/QQ号datatype;(3)实现类book私有继承结构体inf:class book:private infpublic:
4、 book();/默认构造函数 int face();/首页 void add_person();/添加联系人 void del_person();/删除联系人 void fix();/修改信息 void find();/查询联系人 void save_new();/保存新增加的联系人;3.2 实现各操作模块的功能(1)主函数的实现:int main() int choose; book b; while (choose = b.face() switch (choose) case 1: b.find();/查询联系人 break; case 2: b.add_person();/添加联系人
5、 break; case 3: b.fix();/修改信息 break; case 4: b.del_person();/删除联系人 break; case 5: cout endl 谢谢使用! endl endl; exit(0);/退出系统 break; default: break; return 0;(2)各操作模块函数的实现:void book:add_person()/添加联系人 cout endl 请根据提示输入信息 endl endl coutname; cout number; cout qq; cout post; cout address; save_new(); cou
6、t endl endl 新联系人信息已经保存好! endl endl; system(pause);/出现中文的显示:按任意键继续。void book:del_person()/删除联系人 ofstream outData(temp.txt, ios:out); ifstream inData(pbook.txt, ios:in); if (!outData | !inData) cout endl 对不起!找不到文件! endl; system(pause); return; string s; cout endl s; string str; bool flag = true; while
7、 (inData name number) getline(inData, str); if (s=name) | (s=number) cout endl 你想删除的联系人: endl endl;cout setiosflags(ios:left) setw(17) 姓名 setw(16) 电话号码 setw(18) QQ setw(14) 邮编 setw(20) 地址 endl; cout setiosflags(ios:left) setw(17) name numberstr endlendl; flag = false; break; outData setiosflags(ios:
8、left) setw(17) name/将不删除的信息放到temp.txt number qqstr endl; if (flag) cout endl 对不起!联系人中没你找的人! endl endl; else/将temp.txt的数据复制到pbook.txt,直接覆盖要删除的信息,达到删除效果 while (getline(inData, str) outData str endl; outData.close(); inData.close(); ofstream out(pbook.txt, ios:out); ifstream in(temp.txt, ios:in); if (!
9、out | !in) cout endl 对不起!不能打开文件! endl endl; system(pause);return; while (getline(in, str) out str endl; out.close(); in.close(); cout endl 该联系人信息已从通迅录中删除! endl endl; system(pause); void book:fix()/修改信息 ofstream outData(temp.txt, ios:out); ifstream inData(pbook.txt, ios:in); /if (!outData | !inData)
10、cout endl 对不起!找不到文件! endl; system(pause); return; string s; cout endl s; bool flag = true; string str; while (inData name number) getline(inData, str); if (s=name) | (s=number) cout endl 你想修改的联系人: endl endl;cout setiosflags(ios:left) setw(17) 姓名 setw(16) 电话号码 setw(18) QQ setw(14) 邮编 setw(20) 地址 endl
11、; cout setiosflags(ios:left) setw(17) name number str endl; cout endl 请根据下面提示修改信息 : endl; cout name; cout number; cout qq; cout post; cout address; save_new(); flag = false; break; outData setiosflags(ios:left) setw(17) name number str endl; if (flag) cout endl 对不起!联系人中没你找的人! endl endl; else while (
12、getline(inData, str) outData str endl; outData.close();inData.close(); ofstream out(pbook.txt, ios:out); ifstream in(temp.txt, ios:in); if (!out | !in) cout endl 对不起!不能打开文件! endl endl; system(pause);return; while (getline(in, str) out str endl; out.close();/ in.close(); cout endl 该联系人已在通迅录中修改! endl
13、endl; system(pause); void book:find()/查询联系人 ifstream inData(pbook.txt,ios:in); if (!inData) cout endl 对不起!文件找不到! endl; system(pause); return; string s; cout endl s; bool flag = true; string str; while (inData name number) getline(inData, str); if (name=s) | (number=s) cout endl 你要查找的联系人是: endl endl;
14、cout setiosflags(ios:left) setw(17) 姓名 setw(16) 电话号码 setw(18) QQ setw(14) 邮编 setw(20) 地址 endl; cout setiosflags(ios:left) setw(17) name numberstr endlendl; flag = false; break; if(flag)coutendl该联系人不存在!endlendl; system(pause);void book:save_new()ofstream f(pbook.txt, ios:app); if (!f) cout endl 对不起!打
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
20 积分
下载 | 加入VIP,下载更划算! |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据结构 课程设计 学生 信息管理 系统