宿舍管理查询软件课程设计.docx
- 文档编号:1931623
- 上传时间:2022-10-25
- 格式:DOCX
- 页数:22
- 大小:411.79KB
宿舍管理查询软件课程设计.docx
《宿舍管理查询软件课程设计.docx》由会员分享,可在线阅读,更多相关《宿舍管理查询软件课程设计.docx(22页珍藏版)》请在冰豆网上搜索。
宿舍管理查询软件课程设计
四、详细设计及测试5
一、设计任务
题目:
宿舍管理查询软件
任务:
为宿舍管理人员编写一个宿舍管理查询软件,程序设计要求:
(1)建立数据文件,数据文件按关键字(姓名、学号、房号)进行排序(冒泡、选择、插入排序等任选一种)
(2)实现如下查询功能:
按姓名查询
按学号查询
按房号查询
(3)打印任意查询结果(可以连续操作)
针对题目所要求的功能不太多,我特意添加了插入数据、读入文件数据以及将数据写入文件三个额外功能。
二、总体设计
根据系统要求,即本系统具有信息的录入,显示,排序显示、查找,插入、从文件中读入数据、循环写入数据、结束程序等功能,先设计出详细的系统流程图,然后将源代码输入程序,进行编译调试即可。
程序总体分12个项目:
输入记录、显示记录、按姓名排序并显示、按房间号排序并显示、按学号排序并显示、按姓名查找并显示、按房间号查找并显示、按学号查找并显示、插入一条记录按学号排序并显示、从文件中读入数据、循环写入数据以及结束程序。
三、系统流程图
系统流程图下页图所示
四、详细设计及测试
根据流程图,将程序源代码输入到编译环境中,按照提示选择进行记录的输入,输入一个数据后提示是否继续输入,直到结束程序为止。
将程序编译生成“学生宿舍管理系统.exe”。
运行该文件如图1所示。
图1输出界面图
输入记录采用循环输入
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”进行记录的输入如图2所示:
图2输入记录显示图
连续输入多组数据后,按“n”结束输入,提示按任意键继续,按任意键后选择“2”进行记录的显示如图3所示。
图3显示所有记录
按姓名排序采用冒泡排序法。
inti,j;
chart[10];
for(i=0;i for(j=0;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”进行按姓名排序并显示,如图4所示。 图4按姓名排序显示图 按房间号排序采用冒泡排序法 for(i=0;i for(j=0;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”进行按房间号排序并显示,如图5所示。 图5按房间号排序显示图 同样学号排序也是用的冒泡法排序。 for(i=0;i for(j=0;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”进行按学号排序并显示,如图6所示。 图6按学号排序显示图 功能6-8为查找功能 按姓名查找并显示功能 printf("\t\t输入要查找的姓名: "); scanf("%s",s); while(strcmp(room[i].name,s)! =0&&i if(i==n) { printf("\t\t对不起没有找到该学生! \n");/*返回失败信息*/ } else Display_a_record(room1,i);/*调用函数*/ 显示后提示按任意键继续,选择“6”按提示步骤按学号查找一条记录并显示,如图7所示。 图7按姓名查找并显示图 按房间号查找和按学号查找的方法大同小异。 分别输入“7”、“8”显示截图如下页 图8按房间号查找并显示图图9按学号查找并显示图 功能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”进行插入数据,如下页图10所示。 图10插入一条记录按学号排序并显示图 五、心得体会 这次课程设计我做的还不是很完善,因为功能不是很多,如果以后有机会完善的话,应该对管理员和用户登录时做进一步完善。 学生的信息还不够完整,如学生的宿舍长,系别,一些费用以及学生的成绩等待相关详细信息。 如果使次系统再详细些,需添加更多的管理员以及管理员权限,还有学生的更多信息,如果有必要的话,添加一些有关教师的信息,以及教师登录的界面。 在这次课程设计的过程中,我们体会到要想开发一个系统软件,不仅需要相当的专业技术知识,还要有严谨缜密的思维能力。 只有思想上清晰了,编程才有意义,否则就是白费力气。 同时还要善于捕获细小的方面,因为那往往是这个程序的致命因素。 这次课程设计培养了我的细心和耐性,更树立了一种科学的态度。 附录: 源代码 #include #include #include #include typedefstruct { 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.循环写入数据§\n"); printf("\t\t§0.结束程序§\n"); printf("\t\t★★★★★★★★★★★★★★★★★★★★\n"); printf("\t\t请选择您要运行的选项按(0-11): "); c=getchar(); } while(c<'0'||c>'11'); return(c-'0'); } intInput(Studentroom[],intn) { inti=0; charsign; 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++; } return(n+i); } voidDisplay_all_record(Studentroom[],intn) { inti; printf("\t\t-------
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 宿舍 管理 查询 软件 课程设计
![提示](https://static.bdocx.com/images/bang_tan.gif)