宿舍管理系统软件数据结构课程设计Word文档下载推荐.docx

上传人:b****3 文档编号:18410424 上传时间:2022-12-16 格式:DOCX 页数:17 大小:353.75KB
下载 相关 举报
宿舍管理系统软件数据结构课程设计Word文档下载推荐.docx_第1页
第1页 / 共17页
宿舍管理系统软件数据结构课程设计Word文档下载推荐.docx_第2页
第2页 / 共17页
宿舍管理系统软件数据结构课程设计Word文档下载推荐.docx_第3页
第3页 / 共17页
宿舍管理系统软件数据结构课程设计Word文档下载推荐.docx_第4页
第4页 / 共17页
宿舍管理系统软件数据结构课程设计Word文档下载推荐.docx_第5页
第5页 / 共17页
点击查看更多>>
下载资源
资源描述

宿舍管理系统软件数据结构课程设计Word文档下载推荐.docx

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

宿舍管理系统软件数据结构课程设计Word文档下载推荐.docx

运行该文件如图5-2所示。

图5-2输出界面图

输入记录采用循环输入

while(sign!

='

n'

&

sign!

N'

{

输出("

\t\t房间号:

输入("

\t\t%s"

room[n+i].roomnum);

\t\t床位号:

&

room[n+i].bednum);

\t\t学号:

room[n+i].num);

\t\t姓名:

room[n+i].name);

gets(x);

/*清除多余的输入*/

\t\t是否继续输入?

(Y/N)"

\t\t%c"

sign);

i++;

}

返回(n+i);

}

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

图5-3输入记录显示图

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

inti,j,*p,*q,s;

chart[10];

for(i=0;

i<

n-1;

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

for(j=0;

j<

n-1-i;

j++)

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

0)

{

比较(t,room[j+1].roomnum);

比较(room[j+1].roomnum,room[j].roomnum);

比较(room[j].roomnum,t);

比较(t,room[j+1].bednum);

比较(room[j+1].bednum,room[j].bednum);

比较(room[j].bednum,t);

比较(t,room[j+1].num);

比较(room[j+1].num,room[j].num);

比较(room[j].num,t);

比较(t,room[j+1].name);

比较(room[j+1].name,room[j].name);

比较(room[j].name,t);

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

图5-4按房间号排序并显示图

按学号排序采用冒泡排序法

比较(t,room[j+1].bednum);

比较(room[j+1].bednum,room[j].bednum);

比较(room[j].bednum,t);

比较(t,room[j+1].num);

比较(room[j+1].num,room[j].num);

比较(room[j].num,t);

比较(t,room[j+1].name);

比较(room[j+1].name,room[j].name);

比较(room[j].name,t);

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

图5-5按学号排序显示图

插入记录采用交互式输入:

\t\t输入他(她)的姓名:

输入("

s);

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

=0&

n)i++;

如果(i==n)

{输出("

\t\t对不起没找到该学生!

return;

\t\t他(她)的房间号:

%s\n"

room[i].roomnum);

\t\t他(她)的床位号:

room[i].bednum);

\t\t他(她)的学号:

room[i].num);

显示后提示按任意键继续,选择“5”按提示步骤插入一条记录,如图5-6所示。

图5-6插入一条记录图

六、系统测试

将源代码输入至编译环境中,将程序编译连接后生成“学生宿舍管理系统.exe”运行该文件,则显示主菜单:

1、输入记录

2、显示记录

3、按房间号排序并显示

4、按学号排序并显示

5、插入一条记录并按学号排序显示

6、按姓名查找,删除一条记录

7、查找并显示一个记录

8、从文件中读入数据

9、循环写入数据

0、结束程序

请选择您要运行的选项按(0-9):

按照提示选择“1”进行记录的输入,则在主菜单下显示:

输入记录

房间号:

101

床位号:

1

学号:

21

姓名:

xiaoning

是否继续输入?

(Y/N)-

按N结束,按任意键后选择“2”进行记录的显示,则在主菜单下显示:

房间号床位号学号姓名

101121xiaoning

314212xiaozhang

203232xiaoli

417541xiaowang

请按任意键继续……

选择“5”插入一条记录,则在主菜单下显示:

学生房间号:

513

学生床位号:

4

学生学号:

52

学生姓名:

xiaoguan

插入记录成功!

513452xiaoguan

七、结论

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

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

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

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

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

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

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

附录:

源代码

#include<

stdio.h>

/*引用库函数*/

stdlib.h>

ctype.h>

string.h>

typedefstruct/*定义结构体数组*/

{

charroomnum[4];

/*房间号*/

charbednum[2];

/*床位号*/

charnum[10];

/*学号*/

charname[20];

/*姓名*/

Student;

Studentroom1[1000];

/*结构体数组变量*/

intmenu_select()/*菜单函数*/

charc;

do{system("

cls"

/*运行前清屏*/

printf("

/*菜单选择*/

c=getchar();

/*读入选择*/

while(c<

'

0'

||c>

9'

return(c-'

}/*返回选择*/

intInput(Studentroom[],intn)/*输入若干条记录*/

inti=0;

charsign,x[10];

/*x[10]为清除多余的数据所用*/

)/*判断*/

printf("

/*交互输入*/

scanf("

/*输入判断*/

return(n+i);

voidDisplay(Studentroom[],intn)/*显示所有记录*/

inti;

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

/*格式头*/

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

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

for(i=1;

n+1;

i++)/*循环输入*/

{printf("

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

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

if(i>

1&

i%10==0)/*每十个暂停*/

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

/*格式*/

\t\t"

system("

pause"

system("

voidSort_by_num(Studentroom[],intn)/*按学号排序*/

inti,j,*p,*q,s;

chart[10];

for(i=0;

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

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

strcpy(room[j+1].bednum,room[j].bednum);

strcpy(room[j].bednum,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);

voidSort_by_roomnum(Studentroom[],intn)/*按房间号排序*/

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

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

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

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

strcpy(room[j+1].bednum,room[j].bednum);

strcpy(room[j].bednum,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);

intInsert_a_record(Studentroom[],intn)/*插入一条记录*/

charx[100];

/*清除多余输入所用*/

\t\t学生房间号:

/*交互式输入*/

scanf("

room[n].roomnum);

\t\t学生床位号:

room[n].bednum);

\t\t学生学号:

room[n].num);

\t\t学生姓名:

room[n].name);

gets(x);

n++;

Sort_by_num(room,n);

/*调用排序函数*/

\t\t插入记录成功!

/*返回成功信息*/

return(n);

intDelete_a_record(Studentroom[],intn)/*按姓名查找,删除一条记录*/

chars[20];

inti=0,j;

/*交互式问寻*/

%s"

s);

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

/*查找判断*/

if(i==n)

/*返回失败信息*/

return(n);

for(j=i;

j++)/*删除操作*/

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

strcpy(room[j].bednum,room[j+1].bednum);

strcpy(room[j].num,room[j+1].num);

strcpy(room[j].name,room[j+1].name);

\t\t删除记录成功!

return(n-1);

voidQuery_a_record(Studentroom[],intn)/*查找并显示一个记录*/

/*输入失败信息*/

return;

/*输出该学生信息*/

intAddfromText(Studentroom[],intn)/*从文件中读入数据*/

inti=0,num;

FILE*fp;

/*定义文件指针*/

charfilename[20];

/*定义文件名*/

\t\t输入文件名:

filename);

/*输入文件名*/

if((fp=fopen(filename,"

rb"

))==NULL)/*打开文件*/

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

/*打开失败信息*/

fscanf(fp,"

%d"

num);

/*读入总记录量*/

while(i<

num)/*循环读入数据*/

{fscanf(fp,"

%s%s%s%s"

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

i++;

n+=num;

fclose(fp);

/*关闭文件*/

\t\t读入成功!

voidWritetoText(Studentroom[],intn)/*将所有记录写入文件*/

{inti=0;

FILE*fp;

charfilename[100];

printf("

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

scanf("

if((fp=fopen(filename,"

w"

{printf("

system("

fprintf(fp,"

%d\n"

n);

/*循环写入数据*/

while(i<

n)

{fprintf(fp,"

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

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

i++;

fclose(fp);

写入成功!

voidmain()/*主函数*/

{intn=0;

for(;

;

{switch(menu_select())/*选择判断*/

{case1:

\t\t输入记录\n"

/*输入若干条记录*/

n=Input(room1,n);

break;

case2:

printf("

\t\t显示记录\n"

/*显示所有记录*/

Display(room1,n);

break;

case3:

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

Sort_by_roomnum(room1,n);

/*按房间号排序*/

\t\t排序成功!

case4:

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

Sort_by_num(room1,n);

/*按学号排序*/

\t\t\t排序成功!

\t\

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

当前位置:首页 > 医药卫生 > 基础医学

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

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