宿舍管理查询系统软件

上传人:痛*** 文档编号:100865391 上传时间:2022-06-03 格式:DOC 页数:92 大小:961.50KB
收藏 版权申诉 举报 下载
宿舍管理查询系统软件_第1页
第1页 / 共92页
宿舍管理查询系统软件_第2页
第2页 / 共92页
宿舍管理查询系统软件_第3页
第3页 / 共92页
资源描述:

《宿舍管理查询系统软件》由会员分享,可在线阅读,更多相关《宿舍管理查询系统软件(92页珍藏版)》请在装配图网上搜索。

1、 19 / 92某城建学院课程设计报告书专业:计算机科学与技术课程设计名称:数据结构课程设计题目:宿舍管理查询软件班级:0814102班学号:081410222姓名:孟学丰同组人员: 李照耀指导老师:X延红 X芳芳 杨斌完成时间:2012年2月17日摘要在校学生的信息管理是校园管理中的一个重要内容,随着国家扩招政策的继续实施,学生数量也不断增加、信息的不断细化、各个行业间联系的不断密切,对人事管理的要求也不断提高。如何记录和管理好学生的信息,对学生实施高效的宏观管理,对学生出入宿舍以及学生注入和迁出的信息的灵活的记录及更新,是一项繁重而艰巨的任务。 关键词:C+;数据库表;宿舍信息查询;宿舍信

2、息管理目录目录1第一章开发环境和开发工具11.1C#语言简介11.2 开发背景11.3 开发环境1第二章算法思想32.1 系统需求分析32.2 系统总体设计32.2.1 系统设计目标32.2.2 开发设计思想32.2.3 系统功能模块设计42.3 算法思想描述4第三章算法实现53.1 数据结构53.2 程序模块53.3 各模块之间的调用关系63.4 源程序代码6第四章测试与分析144.1 测试数据选择144.2 测试结果分析16总结18心得体会19参考文献20第一章 开发环境和开发工具1.1 C/ C +语言简介C+标准可分为两部分, C+语言本身和C+标准库。C+标准库对于Visual C+

3、是相当新的,实际上微软只是在发布Visual C+ 5.0时去除了一些“bug”。标准库提供了标准的输入/输出、字符串、容器(如矢量、列表和映射等)、非数值运算(如排序、搜索和合并等)和对数值计算的支持。应该说, C/C+包含了相对少的关键字,而且很多最有用的函数都来源于库,C+标准库实现容器和算法的部分就是STL。 STL是数据结构和算法的一个框架,数据结构包括矢量、列表和映射等,算法包括这些数据结构的查找、拷贝和排序等。1994年7月,ANSI/ISO C+标准委员会投票决定接受STL为C+标准库的一部分,这个建议是根据Alex Stepanov、Meng Lee和David Musser

4、这三人的编程和软件库研究提出的。STL的产生是为了满足通用性的设计目标,而不是为了提高性能。1.2 开发背景 随着科学技术的不断发展,计算机科学日渐成熟,其强大的功能已为人们所深刻认识,它己进入人类社会的各个领域并发挥着越来越重要的作用。采用计算机进行信息化管理已成为衡量企业管理科学化和现代化的重要标志,而人事管理的全面自动化、信息化则是其中重要的组成部分。人事管理的好坏对于企业的决策者和管理者来说都至关重要,在很大程度上影响着企业的经济效益和社会效益。因此,本文所研究的人事管理信息系统具有一定的使用价值和现实意义。1.3 开发环境本文所采用的开发环境主要是在一般的PC硬件环境和Windouw

5、s Vista/2003/XP系统由Visual+6.0编写而成,在用到Microsoft Visual C+6.0中c语言的情况下,对于查询采用了逐个查询法,程序通过调试运行实现了设计目标,并且经过适当完善后,将可以应用在实际中解决问题。第二章 算法思想2.1 系统需求分析从总体分析可知,该宿舍管理系统必须满足用户以下基本需求: 可对入住学生可进行信息录入;可对新入学生的信息进行插入可按学号,某,房间号等任意一种方式查询学生的信息可按学号,房间号来进行排序2.2 系统总体设计2.2.1 系统设计目标1 本文研究:为宿舍管理人员编写一个宿舍管理查询软件, 程序设计要求:1.1.1 采用交互工作

6、方式1.1.2 建立数据文件 ,数据文件按关键字(某、学号、房号)进行排序(分别用冒泡、选择、插入排序实现)2 查询菜单: (用二分查找实现以下操作)2.1.1 按某查询2.1.2 按学号查询2.1.3 按房号查询3 打印任一查询结果并可以连续操作。2.2.2 开发设计思想 基于以上系统设计目标,本文在开发人事管理信息系统时遵循了以下开发设计思想:采用现有的软硬件环境及先进的管理系统开发方案,从而达到充分利用现有资源,提高系统开发水平和应用效果的目的。尽量达到操作过程中的直观、方便、实用、安全等要求。系统采用模块化程序设计方法,既便于系统功能的各种组合和修改,又便于未参与开发的技术维护人员补充

7、、维护。系统应具备数据库维护功能,及时根据用户需求进行数据的添加、查找、显示、排序等操作。2.2.3 系统功能模块设计本系统分为四个模块:查找子菜单、信息录入、信息显示、查找功能子菜单。得到如图3-1所示的系统功能模块图学生宿舍管理录入后显示学生信息显示学生信息录入学生信息插入学生信息查询按某查询按学号查询按房间号查询查询时显示插入后显示图3-1系统功能模块2.3 算法思想描述 该程序的由多种函数实现,每个函数具有不同的功能,主要有主菜单函数,插入功能子菜单函数,查找功能子菜单函数,学生信息录入函数,显示函数,排序函数,插入函数以及查找函数。在每个区域中会调用不同的函数来实现主要的功能。比如,

8、在学生显示这个功能里调用显示函数;在插入功能里调用子菜单函数;在显示信息时调用排序函数先对需要输出的信心进行排序,然后再输出;在查找功能里会调用查找函数来进行查找,包括按照性别,学号,某,房间号等查询。 而最主要的函数有 插入函数,它用尾插法来实现; 排序函数,用快速排序函数来实现; 查找函数,用逐个查找法;第三章 算法实现3.1 数据结构宿舍管理查询系统是一个数据库应用系统,学生的学号某房间号和性别等信息都保存在数据库中。然后可以通过程序来查找学生的各种信息。该程序所用的数学模型为线型结构。3.2 程序模块根据用户需求不同,将系统划分了不同的功能模块,而依据不同的功能模块编写不同的程序模块,

9、具体如下:信息录入模块(即为程序中的shuru()函数)信息插入模块(即为charu()函数)信息查询模块(即为程序中的chazhao()函数,包括chazaho1(),chazaho2(),chazaho3()三个子函数)信息显示模块(即为程序中的sort()函数)而各个函数之间由一个switch结构联系起来,而学生信息的连续输入或者连续查找则由相应的do-while结构来实现,从而实现各个模块之间的紧密衔接。3.3 各模块之间的调用关系是否继续输入“学号,某,性别,房间号”显示“宿舍管理查询系统主菜单”插入功能子菜单查找功能子菜单 “信息录入”“信息显示”输出已录入的学生信息插入学生信息分

10、别进行查询输入“4”返回上一级菜单输入“5”退出输入“3”返回上一级菜单Y N结束3.4 源程序代码#include #include #include # include #include# define N 20 /*自定义函数声明部分*/ void showheader(); /声明显示表头部分 int menu(); /声明主菜单函数 int menu3(); /声明插入功能子菜单函数 int menu5(); /声明查找功能子菜单函数 /int quanxian(); /声明用户权限管理函数 /void SavePass(); /密码显示为*的函数struct student shu

11、ru(); /声明学生信息录入函数 void display(struct student); /声明显示函数 void sort(struct student stuN,int,int); /声明排序函数 void charu(struct student stuN,int); /声明插入函数 void chazhao1(struct student stuN,int i); /声明按照学号查找函数 void chazhao2(struct student stuN,int i); /声明按照某查找函数 void chazhao3(struct student stuN,int i);/声明

12、按照房间号查找/*定义结构体*/ struct student /* 构造结构成员 */int ID; char name15; char sex; int roomnum; float score3; char *getSex() if(sex=g) return 女; else return 男; ; /*主函数开始*/ void main() struct student stuN; int count=0,m=0,j; char ch,ch1; int choice,choice3,choice4; /菜单选项及子菜单选项 do /此循环体控制返回主菜单 ch1=n; /如果用户将主菜

13、单选择错误,可用此变量控制是否重输 choice=menu(); switch(choice) /此条件结构控制选择菜单功能后的操作 case 1: /输入学生信息 do /此循环体控制是否继续输入 cout* 学员信息录入 *n; cout请输入第count+1个学员的信息nn; stucount=shuru(); /调用输入函数 /cout是否继续(y/n); fflush(stdin);/ 刷新标准输入缓冲区,把输入缓冲区里的东西丢弃 ch=getchar(); count+; while(ch=y); break; case 2: /显示排序好的学生信息 cout* 学员信息显示 *n

14、; coutn排序后的信息如下:n; sort(stu,0,count-1);/调用排序函数 showheader(); for(j=0;jcount;j+) display(stuj); /调用显示函数 break; case 3:/插入功能 if(choice3!=3) /此循环体控制是否退出子菜单 choice3=menu3(); /调用子菜单函数 if(choice3=1) /此条件结构控制子菜单选项 do /此循环体判断是否继续插入 cout* 学员信息插入 *n; charu(stu,count); /调用插入函数 count+; cout是否继续插入?(y/n); fflush(

15、stdin); ch=getchar(); while(ch=y); if (choice3=2) /此条件结构控制子菜单选项 coutnn插入学生信息后如下:n; sort(stu,0,count-1);/调用排序函数 showheader(); for(j=0;jcount;j+) display(stuj); /调用显示函数 else menu(); break; case 4:/查找功能 if(choice4!=4) /控制是否继续查找 choice4=menu5(); /调用查找子菜单函数 if(choice4=1) /控制按照学号查找 chazhao1(stu,count);/调用

16、按照学号查找的函数 if(choice4=2) /控制按照某查找 chazhao2(stu,count);/调用按照某查找的函数 if(choice4=3) /控制按照房间查找 chazhao3(stu,count);/调用按照房间查找的函数 else menu(); break; case 5:/退出 cout确认退出?(y/n); /让用户确认是否退出 fflush(stdin); ch=getchar(); break; default: coutaa警告:您输入错误,是否重输!(y/n); fflush(stdin); ch1=getchar(); break; while(ch=n|

17、ch1=y);/控制是否要退出系统 /*主函数结束*/ /*自定义输入函数*/ struct student shuru() struct student stu; coutstu.ID;coutstu.name;coutstu.sex;coutstu.roomnum;cout是否继续?(Y/N)endl;return stu; /*自定义显示函数*/ void display(struct student stu) couttstu.IDt; coutstu.namet;coutstu.getSex()t;coutstu.roomnumtendl; /*自定义排序函数*/ void sort

18、(struct student stuN,int i,int l) int key; struct student temp;key=stui.ID;while(il)while(i=key)-l; temp=stul; stul=stui; stui=temp;while(il&stui.ID=key)+i; temp=stul; stul=stui; stui=temp; /*自定义插入函数*/ void charu(struct student stuN,int k) int i,l; struct student in ; in=shuru();/调用输入函数 for(i=0;ii;l

19、-) stul=stul-1; stui=in; /*自定义主菜单函数*/ int menu() int choice; couttt*nnttt 欢迎进入学生宿舍管理查询系统 nntt*nn; coutttt*主菜单*nn; cout 学生信息录入nn; cout 学生信息显示nn; cout 插入学生信息nn; cout 查找学生信息nn; cout 退出n; coutchoice;return choice; /*自定义插入功能子菜单函数*/ int menu3() coutt*这里显示的是插入功能子菜单*nn; couttttt1、插入学生信息nn; couttttt2、显示插入后的学

20、生信息nn; couttttt3、退出子菜单,返回上一级菜单nn; coutchoice3;return choice3; /*自定义按照学号查找函数*/ void chazhao1(struct student stuN,int i) int select,j; char ch; coutt*您选择的是按照学号查找:*nn; do coutselect;for(j=0;ji;j+) if(select=stuj.ID) break; if(ji) showheader(); display(stuj); else cout你查找的信息不存在n; fflush(stdin); ch=getch

21、ar(); while(ch=y); /*自定义按照某查找函数*/ void chazhao2(struct student stuN,int i) int j; char name15; char ch; coutt*您选择的是按照某查找:*nn; do coutname;for(j=0;ji;j+) if(strcmp(name,stuj.name)=0) break; if(ji) showheader(); display(stuj); else cout你查找的信息不存在n; fflush(stdin); ch=getchar(); while(ch=y); /按照房间号查找void

22、 chazhao3(struct student stuN,int i)int j,room;char ch;coutt*您选择的是按照房间号查找:*nn; do coutroom;for(j=0;ji;j+) if(room=stuj.roomnum) break; if(ji) showheader(); display(stuj); else cout你查找的信息不存在n; cout是否继续查找?(y/n); fflush(stdin); ch=getchar(); while(ch=y); /*自定义查找功能子菜单函数*/ int menu5() coutt*这里显示的是查找功能子菜单

23、*nn; couttttt1、按照学号查找nn; couttttt2、按照某查找nn; couttttt3、按照房间号查找nn;couttttt4、退出子菜单,返回上一级菜单nn; coutchoice4;return choice4; void showheader() coutnnt*n; coutt学号t某t性别t房间号tn; coutt*n; 第四章 测试与分析4.1 测试数据选择学号某性别房间号18李东洋男22822李照耀男22728邵光光男23245曾广海男2284.2 测试结果分析主菜单显示:信息录入界面:信息显示界面:插入学生信息界面:查找学生信息界面:由源程序及测试结果分析可

24、知:该程序主要功能有以下几个函数来实现:插入函数,其时间复杂度为o(n);查找函数,其时间复杂度为o(n);排序函数,其时间复杂度为knln(n);总 结经过一个假期的放松,以前对许多知识都有点陌生,通过这次的课程设计使我明白了许多东西,翻阅了大量的书籍以及上网查了很多的相关资料,也从中学会了不少东西,它使我知识更加的系统化、全面化。在实验的过程中也让我体会到了做任何事情都是要付出一定的努力的。一份努力一分收获,每当自己单独的成功解决某些问题时,都会感觉很兴奋,也很有成就感。虽然设计完成了,但是我觉得其中还是由一些不足之处:1. 警告句。程序中缺少一些警告句,例如:“是否真的退出(y/n)?”

25、。2. 重名的情况。由于考虑的不周全,没有设计遇到重名的情况该怎么处理。3. 选择单一。我们设计的程序中,只设计了按名字选择,进行操作,忽略了重名的情况。整个程序完成了,还有很多不完善的地方,希望自己以后办事的时候要认真,仔细,考虑周全。一个实验需要很多次的调试,我刚开始写好的程序出现了很多错误,例如:由于数据类型不匹配而出现的结果不能正常显示,由于没有使用n以至于在运行时界面显示的没规则,很零乱等等。通过不停的调试,所有的这些小问题也最终都得到了解决。另外,功能也不是很完善,应该对管理用户做更清晰的判断,分类。学生信息还不够完整,如:学生宿舍的舍长,费用和成绩等相关信息还要详细。 在这次课程

26、设计中,我体会到要想开发应该系统软件,不仅需要相当的专业技术知识,还要有严谨缜密的思维能力。只有思想上清晰了,编程才有意义,否则就是白费力气。同时还要善于捕捉细小的方面,因为那往往是这个程序的致命因素。通过这次程序设计,培养了我的细心和耐心吗,也树立一种正确的求知态度。在今后的工作、学习中我将认真总结经验教训,努力使自己成为一名技术过硬、工作严谨、思维活跃的工程人员,为提高人们的生活质量做出更大的贡献。心得体会经过这次课程设计,我感到以后若要做比较复杂的程序,一定不能够急于下手,而首先赢冷静下来,从总体上把握题目的要求,现根据题目的要求将流程图画出来,然后仔细想想程序的大致构架是什么,用哪个结

27、构更能迅速准确的将题目的要求表达出来,对于我们这一学期实际学到的内容的检验,在课程设计的同时不仅巩固了以前所学过的知识,而且还学到了很多在书本上没有学到的知识。通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实际相结合起来,从理论中得出结论,才能真正的掌握,从而提高自己的实际动手能力和独立思考的能力。要学好数据结构这门课程,不仅要认真的阅读课本知识,更重要的是通过上机实验才能增强和巩固对课本知识的理解。首先通过实践我发现了自己的许多的不足,尤其是露出了对C语言知识基础的掌握不好,许多简单的东西都不知道。在课本上看到的各种算法感觉都很简单,但

28、是真正的让自己去写一个算法感觉很困难,。即使是课本上的源程序算法,自己写起来都感觉有点生疏。在调试过程中经常出现的错误也不是很熟悉。通过实践,使我在这几个方面的认识有所提高,通过实践的学习,我认识到学好计算机要重视实践操作,不仅仅是数据结构,在其他的课程中都会注重实践。所以在今后的学习过程中,我会更加注视实践操作,使自己更好的学好计算机。回顾起此次数据机构课程设计,至今我仍然感慨颇多,的确,从选题到定稿,从理论到实践,遇到了许多问题,但是我也学到了许多东西虽然程序中不是很完美,但是对我而言已经是很辛苦得来的成绩,我以后还需要继续努力!主抓枝干,捕捉细节,树立科学的学习态度,认真努力!参考文献

29、1王子恢,戴建鹏.c+语言大全(第四版).电子工业 2003.42谭浩强.c程序设计(第三版).清华大学.3严蔚敏.数据结构(c语言版)清华大学4皮德常.c+程序设计教程.机械工业5赫伯特 c+语法大全 电子工业某城建学院课程设计报告书专业:计算机科学与技术课程设计名称:数据结构课程设计题目:宿舍管理查询软件班级:0814102班学号:081410222姓名:孟学丰同组人员: 李照耀指导老师:X延红 X芳芳 杨斌完成时间:2012年2月17日摘要在校学生的信息管理是校园管理中的一个重要内容,随着国家扩招政策的继续实施,学生数量也不断增加、信息的不断细化、各个行业间联系的不断密切,对人事管理的要

30、求也不断提高。如何记录和管理好学生的信息,对学生实施高效的宏观管理,对学生出入宿舍以及学生注入和迁出的信息的灵活的记录及更新,是一项繁重而艰巨的任务。 关键词:C+;数据库表;宿舍信息查询;宿舍信息管理目录目录1第一章开发环境和开发工具11.1C#语言简介11.2 开发背景11.3 开发环境1第二章算法思想32.1 系统需求分析32.2 系统总体设计32.2.1 系统设计目标32.2.2 开发设计思想32.2.3 系统功能模块设计42.3 算法思想描述4第三章算法实现53.1 数据结构53.2 程序模块53.3 各模块之间的调用关系63.4 源程序代码6第四章测试与分析144.1 测试数据选择

31、144.2 测试结果分析16总结18心得体会19参考文献20第二章 开发环境和开发工具1.2 C/ C +语言简介C+标准可分为两部分, C+语言本身和C+标准库。C+标准库对于Visual C+是相当新的,实际上微软只是在发布Visual C+ 5.0时去除了一些“bug”。标准库提供了标准的输入/输出、字符串、容器(如矢量、列表和映射等)、非数值运算(如排序、搜索和合并等)和对数值计算的支持。应该说, C/C+包含了相对少的关键字,而且很多最有用的函数都来源于库,C+标准库实现容器和算法的部分就是STL。 STL是数据结构和算法的一个框架,数据结构包括矢量、列表和映射等,算法包括这些数据结

32、构的查找、拷贝和排序等。1994年7月,ANSI/ISO C+标准委员会投票决定接受STL为C+标准库的一部分,这个建议是根据Alex Stepanov、Meng Lee和David Musser这三人的编程和软件库研究提出的。STL的产生是为了满足通用性的设计目标,而不是为了提高性能。1.2 开发背景 随着科学技术的不断发展,计算机科学日渐成熟,其强大的功能已为人们所深刻认识,它己进入人类社会的各个领域并发挥着越来越重要的作用。采用计算机进行信息化管理已成为衡量企业管理科学化和现代化的重要标志,而人事管理的全面自动化、信息化则是其中重要的组成部分。人事管理的好坏对于企业的决策者和管理者来说都

33、至关重要,在很大程度上影响着企业的经济效益和社会效益。因此,本文所研究的人事管理信息系统具有一定的使用价值和现实意义。1.3 开发环境本文所采用的开发环境主要是在一般的PC硬件环境和Windouws Vista/2003/XP系统由Visual+6.0编写而成,在用到Microsoft Visual C+6.0中c语言的情况下,对于查询采用了逐个查询法,程序通过调试运行实现了设计目标,并且经过适当完善后,将可以应用在实际中解决问题。第二章 算法思想2.1 系统需求分析从总体分析可知,该宿舍管理系统必须满足用户以下基本需求: 可对入住学生可进行信息录入;可对新入学生的信息进行插入可按学号,某,房

34、间号等任意一种方式查询学生的信息可按学号,房间号来进行排序2.2 系统总体设计2.2.1 系统设计目标4 本文研究:为宿舍管理人员编写一个宿舍管理查询软件, 程序设计要求:4.1.1 采用交互工作方式4.1.2 建立数据文件 ,数据文件按关键字(某、学号、房号)进行排序(分别用冒泡、选择、插入排序实现)5 查询菜单: (用二分查找实现以下操作)5.1.1 按某查询5.1.2 按学号查询5.1.3 按房号查询6 打印任一查询结果并可以连续操作。2.2.2 开发设计思想 基于以上系统设计目标,本文在开发人事管理信息系统时遵循了以下开发设计思想:采用现有的软硬件环境及先进的管理系统开发方案,从而达到

35、充分利用现有资源,提高系统开发水平和应用效果的目的。尽量达到操作过程中的直观、方便、实用、安全等要求。系统采用模块化程序设计方法,既便于系统功能的各种组合和修改,又便于未参与开发的技术维护人员补充、维护。系统应具备数据库维护功能,及时根据用户需求进行数据的添加、查找、显示、排序等操作。2.2.3 系统功能模块设计本系统分为四个模块:查找子菜单、信息录入、信息显示、查找功能子菜单。得到如图3-1所示的系统功能模块图学生宿舍管理录入后显示学生信息显示学生信息录入学生信息插入学生信息查询按某查询按学号查询按房间号查询查询时显示插入后显示图3-1系统功能模块2.3 算法思想描述 该程序的由多种函数实现

36、,每个函数具有不同的功能,主要有主菜单函数,插入功能子菜单函数,查找功能子菜单函数,学生信息录入函数,显示函数,排序函数,插入函数以及查找函数。在每个区域中会调用不同的函数来实现主要的功能。比如,在学生显示这个功能里调用显示函数;在插入功能里调用子菜单函数;在显示信息时调用排序函数先对需要输出的信心进行排序,然后再输出;在查找功能里会调用查找函数来进行查找,包括按照性别,学号,某,房间号等查询。 而最主要的函数有 插入函数,它用尾插法来实现; 排序函数,用快速排序函数来实现; 查找函数,用逐个查找法;第五章 算法实现3.1 数据结构宿舍管理查询系统是一个数据库应用系统,学生的学号某房间号和性别

37、等信息都保存在数据库中。然后可以通过程序来查找学生的各种信息。该程序所用的数学模型为线型结构。 3.2 程序模块根据用户需求不同,将系统划分了不同的功能模块,而依据不同的功能模块编写不同的程序模块,具体如下:信息录入模块(即为程序中的shuru()函数)信息插入模块(即为charu()函数)信息查询模块(即为程序中的chazhao()函数,包括chazaho1(),chazaho2(),chazaho3()三个子函数)信息显示模块(即为程序中的sort()函数)而各个函数之间由一个switch结构联系起来,而学生信息的连续输入或者连续查找则由相应的do-while结构来实现,从而实现各个模块之

38、间的紧密衔接。3.3 各模块之间的调用关系是否继续输入“学号,某,性别,房间号”显示“宿舍管理查询系统主菜单”插入功能子菜单查找功能子菜单 “信息录入”“信息显示”输出已录入的学生信息插入学生信息分别进行查询输入“4”返回上一级菜单输入“5”退出输入“3”返回上一级菜单Y N结束3.4 源程序代码#include #include #include # include #include# define N 20 /*自定义函数声明部分*/ void showheader(); /声明显示表头部分 int menu(); /声明主菜单函数 int menu3(); /声明插入功能子菜单函数 in

39、t menu5(); /声明查找功能子菜单函数 /int quanxian(); /声明用户权限管理函数 /void SavePass(); /密码显示为*的函数struct student shuru(); /声明学生信息录入函数 void display(struct student); /声明显示函数 void sort(struct student stuN,int,int); /声明排序函数 void charu(struct student stuN,int); /声明插入函数 void chazhao1(struct student stuN,int i); /声明按照学号查找函

40、数 void chazhao2(struct student stuN,int i); /声明按照某查找函数 void chazhao3(struct student stuN,int i);/声明按照房间号查找/*定义结构体*/ struct student /* 构造结构成员 */int ID; char name15; char sex; int roomnum; float score3; char *getSex() if(sex=g) return 女; else return 男; ; /*主函数开始*/ void main() struct student stuN; int

41、count=0,m=0,j; char ch,ch1; int choice,choice3,choice4; /菜单选项及子菜单选项 do /此循环体控制返回主菜单 ch1=n; /如果用户将主菜单选择错误,可用此变量控制是否重输 choice=menu(); switch(choice) /此条件结构控制选择菜单功能后的操作 case 1: /输入学生信息 do /此循环体控制是否继续输入 cout* 学员信息录入 *n; cout请输入第count+1个学员的信息nn; stucount=shuru(); /调用输入函数 /cout是否继续(y/n); fflush(stdin);/ 刷

42、新标准输入缓冲区,把输入缓冲区里的东西丢弃 ch=getchar(); count+; while(ch=y); break; case 2: /显示排序好的学生信息 cout* 学员信息显示 *n; coutn排序后的信息如下:n; sort(stu,0,count-1);/调用排序函数 showheader(); for(j=0;jcount;j+) display(stuj); /调用显示函数 break; case 3:/插入功能 if(choice3!=3) /此循环体控制是否退出子菜单 choice3=menu3(); /调用子菜单函数 if(choice3=1) /此条件结构控制

43、子菜单选项 do /此循环体判断是否继续插入 cout* 学员信息插入 *n; charu(stu,count); /调用插入函数 count+; cout是否继续插入?(y/n); fflush(stdin); ch=getchar(); while(ch=y); if (choice3=2) /此条件结构控制子菜单选项 coutnn插入学生信息后如下:n; sort(stu,0,count-1);/调用排序函数 showheader(); for(j=0;jcount;j+) display(stuj); /调用显示函数 else menu(); break; case 4:/查找功能 i

44、f(choice4!=4) /控制是否继续查找 choice4=menu5(); /调用查找子菜单函数 if(choice4=1) /控制按照学号查找 chazhao1(stu,count);/调用按照学号查找的函数 if(choice4=2) /控制按照某查找 chazhao2(stu,count);/调用按照某查找的函数 if(choice4=3) /控制按照房间查找 chazhao3(stu,count);/调用按照房间查找的函数 else menu(); break; case 5:/退出 cout确认退出?(y/n); /让用户确认是否退出 fflush(stdin); ch=get

45、char(); break; default: coutaa警告:您输入错误,是否重输!(y/n); fflush(stdin); ch1=getchar(); break; while(ch=n|ch1=y);/控制是否要退出系统 /*主函数结束*/ /*自定义输入函数*/ struct student shuru() struct student stu; coutstu.ID;coutstu.name;coutstu.sex;coutstu.roomnum;cout是否继续?(Y/N)endl;return stu; /*自定义显示函数*/ void display(struct stu

46、dent stu) couttstu.IDt; coutstu.namet;coutstu.getSex()t;coutstu.roomnumtendl; /*自定义排序函数*/ void sort(struct student stuN,int i,int l) int key; struct student temp;key=stui.ID;while(il)while(i=key)-l; temp=stul; stul=stui; stui=temp;while(il&stui.ID=key)+i; temp=stul; stul=stui; stui=temp; /*自定义插入函数*/ void charu(struct student stuN,int k) int i,l; struct student in ; in=s

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

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!