数据结构宿舍管理查询系统的实现课程设计

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

学号《数据结构》课程设计报告题目:宿舍管理查询系统的实现专业:班级:姓名:学号:指导教师:成绩:计算机与信息工程系2014年10月25日2014-2015学年第一学期计算机与信息工程系《数据结构》课程设计报告目录1设计任务...............................错误!未定义书签。2总体设计...............................................33系统流程图.............................................34详细设计及测试...................................................................55心得体会..............................................13致谢...................................................................................13参考文献.............................................................................14附录:源代码...........................................15计算机与信息工程系《数据结构》课程设计报告1设计任务题目:宿舍管理查询软件任务:为宿舍管理人员编写一个宿舍管理查询软件,程序设计要求:(1)建立数据文件,数据文件按关键字(姓名、学号、房号)进行排序(冒泡、选择、插入排序等任选一种)(2)实现如下查询功能:按姓名查询按学号查询按房号查询(3)打印任意查询结果(可以连续操作)针对题目所要求的功能不太多,我特意添加了插入数据、读入文件数据以及将数据写入文件三个额外功能。2总体设计根据系统要求,即本系统具有信息的录入,显示,排序显示、查找,插入、从文件中读入数据、循环写入数据、结束程序等功能,先设计出详细的系统流程图,然后将源代码输入程序,进行编译调试即可。程序总体分12个项目:输入记录、显示记录、按姓名排序并显示、按房间号排序并显示、按学号排序并显示、按姓名查找并显示、按房间号查找并显示、按学号查找并显示、插入一条记录按学号排序并显示、从文件中读入数据、循环写入数据以及结束程序。3系统流程图系统流程图下页图1所示计算机与信息工程系《数据结构》课程设计报告否是否是否是否是否是否是否是否是是否是否是否是否是图1图1系统流程图开始输出界面选择操作选择2选择3选择4选择5选择6选择7显示记录按姓名排序并显示按房间号排序并显示按学号排序并显示按姓名查找并显示按房间号查找并显示选择8选择9按学号查找并显示插入一条记录显示选择10选择11选择0从文件中读入数据循环写入数据退出系统结束选择1输入记录计算机与信息工程系《数据结构》课程设计报告4详细设计及测试根据流程图,将程序源代码输入到编译环境中,按照提示选择进行记录的输入,输入一个数据后提示是否继续输入,直到结束程序为止。将程序编译生成“学生宿舍管理系统.exe”。运行该文件如图2所示。图2输出界面图输入记录采用循环输入while(sign!='n'&&sign!='N')/*判断*/{printf(\t\t姓名:);scanf(\t\t%s,&room[n+i].name);printf(\t\t学号:);scanf(\t\t%s,&room[n+i].num);printf(\t\t房间号:);scanf(\t\t%s,&room[n+i].roomnum);printf(\t\t是否继续输入?(Y/N));scanf(\t\t%c,&sign);/*输入判断*/i++;}计算机与信息工程系《数据结构》课程设计报告返回(n+i);按照提示选择“1”进行记录的输入如图3所示:图3输入记录显示图连续输入多组数据后,按“n”结束输入,提示按任意键继续,按任意键后选择“2”进行记录的显示如图4所示。图4显示所有记录计算机与信息工程系《数据结构》课程设计报告按姓名排序采用冒泡排序法。inti,j;chart[10];for(i=0;in-1;i++)/*冒泡法排序*/for(j=0;jn-1-i;j++)if(strcmp(room[j].name,room[j+1].name)0){strcpy(t,room[j+1].name);strcpy(room[j+1].name,room[j].name);strcpy(room[j].name,t);strcpy(t,room[j+1].num);strcpy(room[j+1].num,room[j].num);strcpy(room[j].num,t);strcpy(t,room[j+1].roomnum);strcpy(room[j+1].roomnum,room[j].roomnum);strcpy(room[j].roomnum,t);}显示后提示按任意键继续,选择“3”进行按姓名排序并显示,如图5所示。图5按姓名排序显示图按房间号排序采用冒泡排序法for(i=0;in-1;i++)/*冒泡法排序*/计算机与信息工程系《数据结构》课程设计报告for(j=0;jn-1-i;j++)if(strcmp(room[j].roomnum,room[j+1].roomnum)0){strcpy(t,room[j+1].num);strcpy(room[j+1].num,room[j].num);strcpy(room[j].num,t);strcpy(t,room[j+1].roomnum);strcpy(room[j+1].roomnum,room[j].roomnum);strcpy(room[j].roomnum,t);strcpy(t,room[j+1].name);strcpy(room[j+1].name,room[j].name);strcpy(room[j].name,t);}显示后提示按任意键继续,选择“4”进行按房间号排序并显示,如图6所示。图6按房间号排序显示图计算机与信息工程系《数据结构》课程设计报告同样学号排序也是用的冒泡法排序。for(i=0;in-1;i++)/*冒泡法排序*/for(j=0;jn-1-i;j++)if(strcmp(room[j].num,room[j+1].num)0){strcpy(t,room[j+1].roomnum);strcpy(room[j+1].roomnum,room[j].roomnum);strcpy(room[j].roomnum,t);strcpy(t,room[j+1].num);strcpy(room[j+1].num,room[j].num);strcpy(room[j].num,t);strcpy(t,room[j+1].name);strcpy(room[j+1].name,room[j].name);strcpy(room[j].name,t);}显示后提示按任意键继续,选择“5”进行按学号排序并显示,如图7所示。图7按学号排序显示图功能6-8为查找功能按姓名查找并显示功能计算机与信息工程系《数据结构》课程设计报告printf(\t\t输入要查找的姓名:);scanf(%s,s);while(strcmp(room[i].name,s)!=0&&in)i++;/*查找判断*/if(i==n){printf(\t\t对不起没有找到该学生!\n);/*返回失败信息*/}elseDisplay_a_record(room1,i);/*调用函数*/显示后提示按任意键继续,选择“6”按提示步骤按学号查找一条记录并显示,如图8所示。图8按姓名查找并显示图按房间号查找和按学号查找的方法大同小异。分别输入“7”、“8”显示截图如下页计算机与信息工程系《数据结构》课程设计报告图9按房间号查找并显示图图10按学号查找并显示图功能9为插入一条记录按学号排序并显示。计算机与信息工程系《数据结构》课程设计报告intInsert_a_record(Studentroom[],intn)/*插入一条记录并按学号排序*/{printf(\t\t学生姓名:);scanf(\t\t%s,&room[n].name);printf(\t\t学生学号:);scanf(\t\t%s,&room[n].num);printf(\t\t学生房间号:);scanf(\t\t%s,&room[n].roomnum);n++;Sort_by_num(room,n);/*调用排序函数*/printf(\t\t插入记录成功!\n);/*返回成功信息*/return(n);}显示后提示按任意键继续,选择“9”进行插入数据,如下页图11所示。图11插入一条记录按学号排序并显示图计算机与信息工程系《数据结构》课程设计报告5心得体会这次课程设计我做的还不是很完善,因为功能不是很多,如果以后有机会完善的话,应该对管理员和用户登录时做进一步完善。学生的信息还不够完整,如学生的宿舍长,系别,一些费用以及学生的成绩等待相关详细信息。如果使次系统再详细些,需添加更多的管理员以及管理员权限,还有学生的更多信息,如果有必要的话,添加一些有关教师的信息,以及教师登录的界面。在这次课程设计的过程中,我们体会到要想开发一个系统软件,不仅需要相当的专业技术知识,还要有严谨缜密的思维能力。只有思想上清晰了,编程才有意义,否则就是白费力气。同时还要善于捕获细小的方面,因为那往往是这个程序的致命因素。这次课程设计培养了我的细心和耐性,更树立了一种科学的态度。计算机与信息工程系《数据结构》课程设计报告致谢在这次数据结构课程设计中,我的老师和同学给了我及大的帮助。特别是我的指导老师王源老师,还有我的C语言任课老师陈广宏老师。在此,我对他们表示感谢!感谢他们在我面对困难时给了我帮助和支持。也感谢那些给我帮助的所有同学!计算机与信息工程系《数据结构》课程设计报告参考文献[1]谭浩强著.C程序设计(第二版).北京:清华大学出版社,1999[2]谭浩强,张基温,唐永炎编著.C语言程序设计.北京:高等教育出版社,1992[3]谭浩强编著.QBASIC语言教程.北京:电子工业出版社,1997[4]谭浩强.C程序设计[M].3版.北京:清华大学出版社,2005[5]HerbertSchildt著.戴健鹏译.C语言大全(第二版).北京:电子工业出版社,1994[6][美]SCHILDTH.C语言大全[M].4版.王子恢等译.北京:电子工业出版社,2001计算机与信息工程系《数据结构》课程设计报告附录:源代码#includestdio.h#includestdlib.h#includectype.h#includestring.htypedefstruct{charroomnum[4];charnum[10];charname[20];}Student;Studentroom1[1000];intmenu(){charc;do{system(cls);printf(\t\t★★★★★★学生宿舍管理系统★★★★★★\n);printf(\t\t§1.输入记录§\n);printf(\t\t§2.显示记录§\n);printf(\t\t§3.按姓名排序并显示§\n);printf(\t\t§4.按房间号排序并显示§\n);printf(\t\t§5.按学号排序并显示§\n);printf(\t\t§6.按姓名查找并显示§\n);printf(\t\t§7.按房间号查找并显示§\n);printf(\t\t§8.按学号查找并显示§\n);printf(\t\t§9.插入一条记录按学号排序并显示§\n);printf(\t\t§10.从文件中读入数据§\n);printf(\t\t§11.循环写入

1 / 27
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功