欢迎来到沃文网! | 帮助中心 分享知识,传播智慧!
沃文网
全部分类
  • 教学课件>
  • 医学资料>
  • 技术资料>
  • 学术论文>
  • 资格考试>
  • 建筑施工>
  • 实用文档>
  • 其他资料>
  • ImageVerifierCode 换一换
    首页 沃文网 > 资源分类 > DOCX文档下载
    分享到微信 分享到微博 分享到QQ空间

    数据结构课程设计(学生信息管理系统).docx

    • 资源ID:1139327       资源大小:157.58KB        全文页数:32页
    • 资源格式: DOCX        下载积分:20积分
    快捷下载 游客一键下载
    账号登录下载
    微信登录下载
    三方登录下载: QQ登录 微博登录
    二维码
    微信扫一扫登录
    下载资源需要20积分
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP,下载更划算!
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    数据结构课程设计(学生信息管理系统).docx

    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 对不起!打

    15、开文件失败! endl endl; system(pause);return; f setiosflags(ios:left) setw(17) name setw(16) number setw(18) qq setw(14) post setw(20) address endl; f.close();4 调试分析1.在程序的调试过程中遇上了文件存储数据的正确读取错误,但经过不断查问和查阅相关书籍后,根据调试提示错误,解决了所有错误。通过文件存储学生数据信息,使得读取信息操作更加方便、省事;2.在执行操作时,是根据文件搜索算法,去获取学生数据信息。使得在时间和空间上读取数据都要更加快捷、省事

    16、。其时间复杂度为O();3.经过这一次的系统设计,使我认识到了实践的重要性,只有实践多了才能把知识学得好,学得牢。同时让我对数据结构得到了进一步的学习,以及对C+语言的学习得以提高,最后也大部分掌握了文件存储数据的相关操作。5 用户使用手册1.本程序的运行环境为WINDOWS操作系统,运行软件为Microsoft Visual C+;2.运行程序后即输出提示信息,由于在定义变量时已将需要输入的定义为string型变量,所以输入时需根据提示信息按要求输入;3运行程序后屏幕上会出现通讯录主菜单,然后根据需要选择1-5序号的操作,输入选定序号后,按Enter键,程序就会执行相关操作。比如输入序号1,

    17、再按Enter键,程序就会运行查询联系人的代码操作,然后再根据提示进行查询工作即可;4.当以上操作完成后,程序将输出“按任意键继续.”此时,查询联系人工作的程序运行完毕。6 测试数据和数据结果(1)输入操作序号:2依次输入:wen 15111007203 997191620 123456 湖南长沙输出结果如下所示:(2)输入操作序号:1输入姓名:wen;(或电话号码:15111007203)输出结果如下所示:(3)输入操作序号:3输入姓名:wen重新依次输入要修改信息:wen 15111007203 997191620 654321 海南万宁输出结果如下所示:(4)输入操作序号:4输入姓名:w

    18、en输出结果如下所示:(5)输入操作序号:5输出结果如下所示:参考文献1 严蔚敏,吴伟民. 数据结构(C语言版). 北京:清华大学出版社,1997.042 张晓莉,罗文劼,刘振鹏等。数据结构与算法。北京:机械工业出版社,2002.103 王宏生,宋继红。数据结构。北京:国防工业出版社,2006.014 孙淑霞,肖阳春,魏琴等.C/C+程序设计教程(第2版)。北京:电子工业出版社,2007.035 谭浩强。C+程序设计。北京:清华大学出版社,2004,06附录 源程序清单#include #include #include #include #include using namespace st

    19、d;struct inf string name;/姓名 string address;/地址 string number;/电话号码 string post;/邮编 string qq;/QQ号datatype;class book:private infpublic: book();/默认构造函数 int face();/首页 void add_person();/添加联系人 void del_person();/删除联系人 void fix();/修改信息 void find();/查询联系人 void save_new();/保存新增加的联系人;/首页int book:face()sy

    20、stem(cls);/清楚屏幕 cout endlendl; cout * endl # # endl # 通 迅 录 # endl # # endl # 1. 查询联系人. # endl # # endl # 2. 添加新联系人. # endl # # endl # 3. 修改联系人. # endl # # endl # 4. 删除联系人. # endl # # endl # 5. 关闭系统. # endl # # endl * endl endl choose; return choose;/添加联系人void book:add_person() cout endl 请根据提示输入信息 e

    21、ndl endl name; cout number; cout qq; cout post; cout address; save_new(); cout 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; syst

    22、em(pause); return; string s; cout endl s; string str; bool flag = true; 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; cout setiosflags(ios:left) se

    23、tw(17) name numberstr endlendl; flag = false; break; outData setiosflags(ios: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.cl

    24、ose(); 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 endl; system(pause); /修改信息void book:fix() ofstream outData(te

    25、mp.txt, ios:out); ifstream inData(pbook.txt, ios:in); /if (!outData | !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 (s=name) | (s=number) cout endl 你想修改的联系人: endl endl;cout setiosfla

    26、gs(ios:left) setw(17) 姓名 setw(16) 电话号码 setw(18) QQ setw(14) 邮编 setw(20) 地址 endl; 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) n

    27、ame number str endl; if (flag) cout endl 对不起!联系人中没你找的人! endl endl; else while (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 (getli

    28、ne(in, str) out str endl; out.close();/ in.close(); cout endl 该联系人已在通迅录中修改! endl 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;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该联系人不存在!en


    注意事项

    本文(数据结构课程设计(学生信息管理系统).docx)为本站会员(芳黎)主动上传,沃文网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知沃文网(点击联系客服),我们立即给予删除!




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服点击这里,给沃文网发消息,QQ:2622162128 - 联系我们

    版权声明:以上文章中所选用的图片及文字来源于网络以及用户投稿,由于未联系到知识产权人或未发现有关知识产权的登记,如有知识产权人并不愿意我们使用,如有侵权请立即联系:2622162128@qq.com ,我们立即下架或删除。

    Copyright© 2022-2024 www.wodocx.com ,All Rights Reserved |陕ICP备19002583号-1

    陕公网安备 61072602000132号     违法和不良信息举报:0916-4228922