数据结构宿舍管理课题_第1页
数据结构宿舍管理课题_第2页
数据结构宿舍管理课题_第3页
数据结构宿舍管理课题_第4页
数据结构宿舍管理课题_第5页
已阅读5页,还剩10页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、一、设计任务为宿舍管理员编写一个宿舍管理查询软件。二、设计要求采用交互工作方式,建立数据文件,数据文件按关键字(姓名、学号、房号)进行排序(冒泡、选择、插入排序等任选一种);按姓名、学号、房号进行查询,打印任一查询结果(可以连续操作)。三、概要设计1、类设计class student该类定义了每个学生有哪些属性,属性包括姓名、学号、性别、房号、电话号。class admin该类定义了宿舍管理员类,包含录入、删除、查询、修改,存数据至文件等操作。2、函数设计(1)、菜单函数int menu_main(void);定义了该系统的主界面菜单,包含输入输出,删除,查询,以及存文件操作。int menu

2、_input(void);定义了该系统的输入界面,输入包含增量输入、覆盖输入、单条输入,由返回值控制操作。int menu_output(void);定义了该系统的输出界面,输出按指定排序方法排好序的学生数据。int menu_del(void);定义了该系统的删除界面,包含单条删除和全部删除int menu_find(void); 定义了该系统的查询界面,可惜选择按姓名、学号、房间号查询。(2)、操作函数int input(int);定义输入模块,按由menu_input()返回的指令进行输入。int sort(int);定义排序模块,按由display()返回的指令按指定方式排序。int

3、del( int);定义删除模块,按由menu_del()返回的指令选择删除方式。int find(int); 定义查询模块。按由menu_find()返回的指令选择查询方式。int change( int);定义修改模块,先由学号查询得到待修改学生信息,然后进行修改int filerw(int); 定义数据文件读写模块,按由menu_main()返回的指令选择读文件或写文件。int display(int);定义显示模块,按选择的排序方法显示所有的学生信息。Int main(void)定义主函数,程序从主函数开始运行,调用各个函数进行操作。3、方案图四、测试结果1、主界面2、显示界面3、录入

4、界面4、删除界面5、随机测试五、调试在编写程序过程中,主要发现的问题是排序问题,程序中使用的都是string类型,假如数据顺序为“1、2、3、11、22、33”,会发现排好序后数据输出为“1、11、2、22、3、33”。经过查阅资料于讨论后,采用字符串转整型函数atoll将字符串转化为长长整型后进行排序,得以解决问题。六、附录(源代码)#include#include#include#include#includeusing namespace std;#define MAX 1000class studentpublic:string name; string sex; string rm;

5、 string id; string pn;class adminpublic:student stuMAX; static int num;int menu_main(void); int menu_input(void);int menu_output(void); int menu_del(void);int menu_find(void); int input(int);int sort(int); int del( int);int find(int); int change( int);int filerw(int); int display(int);int admin:num

6、= 0; admin ad;int admin:menu_main(void)system(cls); char choice;cout endl *学生宿舍管理系统*;cout endl endl 1.显示学生信息 endl endl 2.录入学生信息 endl endl 3.查询学生信息 endl endl 4.修改学生信息 endl endl 5.删除学生信息 endl endl 6.保存学生信息到文件 endl endl 7.从文件录入学生信息 endl endl 8.退出系统 endl endl;while (1)cout= 1&choice = 8)system(cls); ret

7、urn (int)choice - 48;elsecout rt 输入错误,请重新输入;int admin:menu_output(void)system(cls);char choice;cout endl *学生宿舍管理系统*;cout endl endl 1.按学生姓名显示 endl endl 2.按学生房间号显示 endl endl 3.按学生学号显示 endl endl 4.退出子系统 endl endl endl endl;while (1)cout = 1&choice = 4)system(cls);return (int)choice - 48;elsecout rt 输入错

8、误,请重新输入; int admin:menu_input(void)system(cls);char choice;cout endl *学生宿舍管理系统*;cout endl endl 1.增量录入学生信息 endl endl 2.覆盖录入学生信息 endl endl 3.单条录入学生信息 endl endl 4.退出子系统 endl endl endl endl;while (1)cout = 1&choice = 4)system(cls);return (int)choice - 48;elsecout rt 输入错误,请重新输入;int admin:menu_del(void)sy

9、stem(cls);char choice;cout endl *学生宿舍管理系统*;cout endl endl 1.单条删除学生信息 endl endl 2.全部删除学生信息 endl endl 3.退出子系统 endl endl endl endl endl endl endl;while (1)cout = 1&choice = 3)system(cls);return (int)choice - 48;elsecout rt 输入错误,请重新输入;int admin:menu_find(void)system(cls);char choice;cout endl *学生宿舍管理系统*

10、;cout endl endl 1.按学生姓名查找 endl endl 2.按学生房间号查找 endl endl 3.按学生学号查找 endl endl 4.退出子系统 endl endl endl endl;while (1)cout = 1&choice = 4)system(cls);return (int)choice - 48;elsecout rt 输入错误,请重新输入;int admin:input(int choice)if (choice=1)char c1 = ;while (c1 = )stunum = *new student;cout endl *学生宿舍管理系统*n

11、n;cout ;cout stunum.id;cout stunum.sex;cout stunum.rm;cout stunum.pn;num+;system(cls);while (1)cout nntt 按 空格 继续输入,按 q 退出:;c1 = _getche();if (c1 = q)return 1;else if (c1 != q&c1 != )cout tt输入出错,请重新输入;else system(cls);break; return 1;if (choice=2)num = 0;char c1 = ;while (c1 = )cout endl *

12、学生宿舍管理系统*nn;cout ;cout stunum.id;cout stunum.sex;cout stunum.rm;cout stunum.pn;num+;system(cls);while (1)cout nntt 按 空格 继续输入,按 q 退出:;c1 = _getche();if (c1 = q) return 1;else if (c1 != q&c1 != ) cout tt输入出错,请重新输入;else system(cls); break; return 1;if (choice=3)cout endl *学生宿舍管理系统*nn;cout st

13、;cout stunum.id;cout stunum.sex;cout stunum.rm;cout stunum.pn;num+;return 1;int admin:sort(int choice)student stu1;long long idi, idj, rmi, rmj;for (int i = 0; i num; i+)for (int j = i; j ) | (choice = 2 & (rmi rmj) | (choice = 3 & (idi idj)stu1 = stui;stui = stuj;stuj = stu1;retur

14、n 1;int admin:del(int choice)if (choice = 1)string str; int i = 0;cout endl *学生宿舍管理系统*nn;cout str;for (i = 0; i num; i+)if (stui.id = str)break;if (stui.id != str)cout nnntttt没有找到该学生。nnnn;system(pause);elsesystem(cls);cout endl *学生宿舍管理系统*nn;cout setiosflags(ios:left) nt setw(13) 姓名 setw(13) 学号 setw(

15、13) 性别 setw(13) 房间号 setw(13) 电话 endlendl;cout setiosflags(ios:left) t setw(13) setw(13) stui.id setw(13) stui.sex setw(13) stui.rm setw(13) stui.pn nn;cout nnnttt是否确认删除该学生信息?(y n) ;while (1)choice = _getche();if (choice = y)for (i; i num; i+)stui = stui + 1;admin:num -= 1;cout nnntttt删除成功!

16、nnn; system(pause); break;else if (choice = n)break;else cout nn 输入错误,请重新输入:;return 1;if (choice = 2)cout endl *学生宿舍管理系统*nn; cout nnnttt是否确认删除所有学生信息?(y n) ;while (1)choice = _getche();if (choice = y)num = 0;cout nnntttt删除成功!nnn; system(pause); break;else if (choice = n)break;else cout nn 输入错误,请重新输入:

17、;return 1;int admin:find(int choice)student stu1MAX; int i = 0, j = -1;cout endl *学生宿舍管理系统*;if (choice=1)cout n 按学生姓名查找nn 请输入需查找学生的姓名:;if (choice=2)cout n 按学生学号查找nn 请输入需查找学生的学号:;if (choice=3)cout n 按学生房间号查找nn str;for (i; i num; i+)if (choice = 1 & = str) | (choice = 2 & stui.id = str) | (c

18、hoice = 3 & stui.rm = str)j+;stu1j = stui;if (j = -1)cout nn 没有查找到匹配的学生信息!nn;system(pause);return 1;else cout setiosflags(ios:left) nnt setw(13) 姓名 setw(13) 学号 setw(13) 性别 setw(13) 房间号 setw(13) 电话 endl;for (i = 0; i j + 1; i+)cout setiosflags(ios:left) t setw(13) setw(13) stu1i.id setw(13

19、) stu1i.sex setw(13) stu1i.rm setw(13) stu1i.pn nn;system(pause);return 1;int admin:display(int choice)sort(choice);cout endl *学生宿舍管理系统*;cout setiosflags(ios:left) nnt setw(13) 姓名 setw(13) 学号 setw(13) 性别 setw(13) 房间号 setw(13) 电话 endlendl;for (int i = 0; i num; i+)cout setiosflags(ios:left) t setw(13

20、) setw(13) stui.id setw(13) stui.sex setw(13) stui.rm setw(13) stui.pn nn;cout endlendl tttt共有 ad.num位学生nn;system(pause);system(cls);return 1;int admin:change(int choice)string str; int i = 0;cout endl *学生宿舍管理系统*nn;cout str;for (i = 0; i admin:num; i+)if (stui.id = str)break;if (stui.id !=

21、 str)cout nnntttt没有找到该学生。nnnn;system(pause);elsecout setiosflags(ios:left) nnt setw(13) 姓名 setw(13) 学号 setw(13) 性别 setw(13) 房间号 setw(13) 电话 endlendl;cout setiosflags(ios:left) t setw(13) setw(13) stui.id setw(13) stui.sex setw(13) stui.rm setw(13) stui.pn nn;cout 请输入修改后的值:nntt;cout endl ;cout endl stui.id;cout endl stui.sex;cout endl stui.rm;cout endl stui.pn;cout tttt修改学生信息成功!nn;system(pause);return 1;int admin:filerw(int choice)if (choice = 6)if (num != 0)ofstream dat(D:/data.db, ios:out

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论