数据结构宿舍管理查询软件课程设计Word文件下载.docx

上传人:b****6 文档编号:19857268 上传时间:2023-01-11 格式:DOCX 页数:23 大小:411.95KB
下载 相关 举报
数据结构宿舍管理查询软件课程设计Word文件下载.docx_第1页
第1页 / 共23页
数据结构宿舍管理查询软件课程设计Word文件下载.docx_第2页
第2页 / 共23页
数据结构宿舍管理查询软件课程设计Word文件下载.docx_第3页
第3页 / 共23页
数据结构宿舍管理查询软件课程设计Word文件下载.docx_第4页
第4页 / 共23页
数据结构宿舍管理查询软件课程设计Word文件下载.docx_第5页
第5页 / 共23页
点击查看更多>>
下载资源
资源描述

数据结构宿舍管理查询软件课程设计Word文件下载.docx

《数据结构宿舍管理查询软件课程设计Word文件下载.docx》由会员分享,可在线阅读,更多相关《数据结构宿舍管理查询软件课程设计Word文件下载.docx(23页珍藏版)》请在冰豆网上搜索。

数据结构宿舍管理查询软件课程设计Word文件下载.docx

根据系统要求,即本系统具有信息的录入,显示,排序显示、查找,插入、从文件中读入数据、循环写入数据、结束程序等功能,先设计出详细的系统流程图,然后将源代码输入程序,进行编译调试即可。

程序总体分12个项目:

输入记录、显示记录、按姓名排序并显示、按房间号排序并显示、按学号排序并显示、按姓名查找并显示、按房间号查找并显示、按学号查找并显示、插入一条记录按学号排序并显示、从文件中读入数据、循环写入数据以及结束程序。

三、系统流程图

系统流程图下页图所示

根据流程图,将程序源代码输入到编译环境中,按照提示选择进行记录的输入,输入一个数据后提示是否继续输入,直到结束程序为止。

将程序编译生成“学生宿舍管理系统.exe”。

运行该文件如图1所示。

图1输出界面图

输入记录采用循环输入

while(sign!

='

n'

&

&

sign!

N'

)/*判断*/

{

printf("

\t\t姓名:

"

);

scanf("

\t\t%s"

&

room[n+i].name);

\t\t学号:

room[n+i].num);

\t\t房间号:

&

room[n+i].roomnum);

\t\t是否继续输入?

(Y/N)"

\t\t%c"

sign);

/*输入判断*/

i++;

}

返回(n+i);

按照提示选择“1”进行记录的输入如图2所示:

图2输入记录显示图

连续输入多组数据后,按“n”结束输入,提示按任意键继续,按任意键后选择“2”进行记录的显示如图3所示。

图3显示所有记录

按姓名排序采用冒泡排序法。

inti,j;

chart[10];

for(i=0;

i<

n-1;

i++)/*冒泡法排序*/

for(j=0;

j<

n-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”进行按姓名排序并显示,如图4所示。

图4按姓名排序显示图

按房间号排序采用冒泡排序法

for(i=0;

if(strcmp(room[j].roomnum,room[j+1].roomnum)>

{

显示后提示按任意键继续,选择“4”进行按房间号排序并显示,如图5所示。

图5按房间号排序显示图

同样学号排序也是用的冒泡法排序。

if(strcmp(room[j].num,room[j+1].num)>

{strcpy(t,room[j+1].roomnum);

显示后提示按任意键继续,选择“5”进行按学号排序并显示,如图6所示。

图6按学号排序显示图

功能6-8为查找功能

按姓名查找并显示功能

printf("

\t\t输入要查找的姓名:

scanf("

%s"

s);

while(strcmp(room[i].name,s)!

=0&

i<

n)i++;

/*查找判断*/

if(i==n)

\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学生姓名:

room[n].name);

\t\t学生学号:

room[n].num);

\t\t学生房间号:

room[n].roomnum);

n++;

Sort_by_num(room,n);

/*调用排序函数*/

\t\t插入记录成功!

/*返回成功信息*/

return(n);

}

显示后提示按任意键继续,选择“9”进行插入数据,如下页图10所示。

图10插入一条记录按学号排序并显示图

五、心得体会

这次课程设计我做的还不是很完善,因为功能不是很多,如果以后有机会完善的话,应该对管理员和用户登录时做进一步完善。

学生的信息还不够完整,如学生的宿舍长,系别,一些费用以及学生的成绩等待相关详细信息。

如果使次系统再详细些,需添加更多的管理员以及管理员权限,还有学生的更多信息,如果有必要的话,添加一些有关教师的信息,以及教师登录的界面。

在这次课程设计的过程中,我们体会到要想开发一个系统软件,不仅需要相当的专业技术知识,还要有严谨缜密的思维能力。

只有思想上清晰了,编程才有意义,否则就是白费力气。

同时还要善于捕获细小的方面,因为那往往是这个程序的致命因素。

这次课程设计培养了我的细心和耐性,更树立了一种科学的态度。

附录:

源代码

#include<

stdio.h>

stdlib.h>

ctype.h>

string.h>

typedefstruct

{

charroomnum[4];

charnum[10];

charname[20];

}Student;

Studentroom1[1000];

intmenu()

charc;

do

{system("

cls"

\t\t★★★★★★学生宿舍管理系统★★★★★★\n"

\t\t§

1.输入记录§

2.显示记录§

3.按姓名排序并显示§

4.按房间号排序并显示§

5.按学号排序并显示§

6.按姓名查找并显示§

7.按房间号查找并显示§

8.按学号查找并显示§

9.插入一条记录按学号排序并显示§

10.从文件中读入数据§

11.循环写入数据§

0.结束程序§

\t\t★★★★★★★★★★★★★★★★★★★★\n"

\t\t请选择您要运行的选项按(0-11):

c=getchar();

while(c<

'

0'

||c>

11'

return(c-'

}

intInput(Studentroom[],intn)

inti=0;

charsign;

return(n+i);

voidDisplay_all_record(Studentroom[],intn)

inti;

\t\t----------------------------------------\n"

\t\t房间号学号姓名\n"

for(i=1;

n+1;

i++)

\t\t%-10s%-10s%-10s\n"

room[i-1].roomnum,room[i-1].num,room[i-1].name);

\t\t"

system("

pause"

voidDisplay_a_record(Studentroom[],intn)

room[n].roomnum,room[n].num,room[n].name);

/*输出所查找的一条记录*/

voidSort_by_name(Studentroom[],intn)

voidSort_by_num(Studentroom[],intn)

voidSort_by_roomnum(Studentroom[],intn)

voidFind_record_name(Studentroom[],intn)

chars[10];

voidFind_record_rommnum(Studentroom[],intn){

chars[20];

\t\t输入要查找的房间号:

while(strcmp(room[i].roomnum,s)!

}

voidFind_record_num(Studentroom[],intn)

\t\t输入要查找的学号:

while(strcmp(room[i].num,s)!

intInsert_a_record(Studentroom[],intn)

return(n);

intAddfromText(Studentroom[],intn)

inti=0,num;

FILE*fp;

charfilename[20];

\t\t输入文件名:

filename);

if((fp=fopen(filename,"

rb"

))==NULL)

\t\t无法打开该文件\n"

system("

return(n);

fscanf(fp,"

%d"

num);

while(i<

num)

{fscanf(fp,"

%s%s%s%s"

room[n+i].roomnum,room[n+i].num,room[n+i].name);

i++;

n+=num;

fclose(fp);

\t\t读入成功!

voidWritetoText(Studentroom[],intn)

charfilename[100];

\t\t循环写入数据\n"

w"

return;

fprintf(fp,"

%d\n"

n);

n)

fprintf(fp,"

%-10s%-10s%-10s%-10s\n"

room[i].roomnum,room[i].num,room[i].name);

写入成功!

intmain()

intn=0;

for(;

;

switch(menu())

{

case1:

printf("

\t\t输入记录\n"

n=Input(room1,n);

break;

case2:

\t\t显示记录\n"

Display_all_record(room1,n);

case3:

\t\t按姓名排序并显示\n"

Sort_by_name(room1,n);

\t\t排序成功!

case4:

\t\t按房间号排序并显示\n"

Sort_by_roomnum(room1,n);

case5:

\t\t按学号排序并显示\n"

Sort_by_num(room1,n);

\t\t\t排序成功!

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 党团工作 > 思想汇报心得体会

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1