学生宿舍管理系统.docx

上传人:b****8 文档编号:29644542 上传时间:2023-07-25 格式:DOCX 页数:13 大小:16.91KB
下载 相关 举报
学生宿舍管理系统.docx_第1页
第1页 / 共13页
学生宿舍管理系统.docx_第2页
第2页 / 共13页
学生宿舍管理系统.docx_第3页
第3页 / 共13页
学生宿舍管理系统.docx_第4页
第4页 / 共13页
学生宿舍管理系统.docx_第5页
第5页 / 共13页
点击查看更多>>
下载资源
资源描述

学生宿舍管理系统.docx

《学生宿舍管理系统.docx》由会员分享,可在线阅读,更多相关《学生宿舍管理系统.docx(13页珍藏版)》请在冰豆网上搜索。

学生宿舍管理系统.docx

学生宿舍管理系统

学生宿舍管理系统

1.课程设计的目的

进一步掌握和利用C语言进行程设计的能力,理解和运用结构化程设计的思想和方法,熟练掌握条件语句、循环、数组、函数操作,初步掌握开发一个小型实用系统的基本方法,学会高度一个较长程序的基本方法和利用流程图或N-S图表示算法,将本课程所学的知识合理地运用于实践当中。

适当了解一些书上没有的函数及使用方法。

2设计分工与合作:

在本设计中,其中§1.输入记录、§2.显示记录、§6.按姓名查找,删除一条记录、§7查找并显示一个记录程序等程序代码由(学号:

222009322072035)完成,其中§3.按房间号排序并显示、§4.按学号排序并显示、§5.插入一条记录按学号排序并显示等程序代码由。

3.设计方案论证

2.1设计思路

利用数组对宿舍的记录进行循环输入输出,利用冒泡法记录进行排序,利用循环查找数组中某个数据,对其进行显示,删除,读入和写入文档等操作。

2.2N-S图

 

4.具体程序代码:

#include/*引用库函数*/

#include

#include

#include

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

{

charroomnum[4];/*房间号*/

charbednum[2];/*床位号*/

charnum[10];/*学号*/

charname[20];/*姓名*/

}Student;

Studentroom1[1000];/*结构体数组变量*/

intmenu_select()/*菜单函数*/

{

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§0.结束程序§\n");

printf("\t\t★★★★★★★★★★★★★★★★★★★★\n");

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

");

c=getchar();/*读入选择*/

}while(c<'0'||c>'9');

return(c-'0');/*返回选择*/

}

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

{inti=0;

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

while(sign!

='n'&&sign!

='N')/*判断*/

{

printf("\t\t房间号:

");/*交互输入*/

scanf("\t\t%s"&,room[n+i].roomnum);

printf("\t\t床位号:

");

scanf("\t\t%s",&room[n+i].bednum);

printf("\t\t学号:

");

scanf("\t\t%s",&room[n+i].num);

printf("\t\t姓名:

");

scanf("\t\t%s",&room[n+i].name);

gets(x);/*清除多余的输入*/

printf("\t\t是否继续输入?

(Y/N)");

scanf("\t\t%c",&sign);/*输入判断*/

i++;

}

return(n+i);

}

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

{

inti;

printf("\t\t--------------------------------------------------\n");/*格式头*/

printf("\t\t房间号床位号学号姓名\n");

printf("\t\t--------------------------------------------------\n");

for(i=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)/*每十个暂停*/

{printf("\t\t--------------------------------------------------\n");/*格式*/

printf("\t\t");

system("pause");

printf("\t\t--------------------------------------------------\n");

}

}

printf("\t\t");

system("pause");

}

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

{

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

chart[10];

for(i=0;i

for(j=0;j

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

{

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)/*按房间号排序*/

{

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

chart[10];

for(i=0;i

for(j=0;j

if(strcmp(room[j].roomnum,room[j+1].roomnum)>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].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];/*清除多余输入所用*/

printf("\t\t学生房间号:

");/*交互式输入*/

scanf("\t\t%s",&room[n].roomnum);

printf("\t\t学生床位号:

");

scanf("\t\t%s",&room[n].bednum);

printf("\t\t学生学号:

");

scanf("\t\t%s",&room[n].num);

printf("\t\t学生姓名:

");

scanf("\t\t%s",&room[n].name);

gets(x);

n++;

Sort_by_num(room,n);/*调用排序函数*/

printf("\t\t插入记录成功!

\n");/*返回成功信息*/

return(n);

}

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

{

chars[20];

inti=0,j;

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

");/*交互式问寻*/

scanf("%s",s);

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

=0&&i

if(i==n)

{

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

\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);

}

printf("\t\t删除记录成功!

\n");/*返回成功信息*/

return(n-1);

}

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

{

chars[20];

inti=0;

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

");/*交互式输入*/

scanf("\t\t%s",&s);

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

=0&&i

if(i==n)

{

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

\n");/*输入失败信息*/

return;

}

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

%s\n",room[i].roomnum);/*输出该学生信息*/

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

%s\n",room[i].bednum);

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

%s\n",room[i].num);

}

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

{

inti=0,num;

FILE*fp;/*定义文件指针*/

charfilename[20];/*定义文件名*/

printf("\t\t输入文件名:

");

scanf("\t\t%s",&filename);/*输入文件名*/

if((fp=fopen(filename,"rb"))==NULL)/*打开文件*/

{

printf("\t\t无法打开该文件\n");/*打开失败信息*/

printf("\t\t");

system("pause");

return(n);

}

fscanf(fp,"%d",&num);/*读入总记录量*/

while(i

{

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);/*关闭文件*/

printf("\t\t读入成功!

\n");

printf("\t\t");

system("pause");

return(n);

}

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

{

inti=0;

FILE*fp;/*定义文件指针*/

charfilename[100];/*定义文件名*/

printf("\t\t循环写入数据\n");/*输入文件名*/

printf("\t\t输入文件名:

");

scanf("\t\t%s",&filename);

if((fp=fopen(filename,"w"))==NULL)/*打开文件*/

{

printf("\t\t无法打开该文件\n");

system("pause");

return;

}

fprintf(fp,"%d\n",n);/*循环写入数据*/

while(i

{

fprintf(fp,"%-10s%-10s%-10s%-10s\n",room[i].roomnum,room[i].bednum,room[i].num,room[i].name);

i++;

}

fclose(fp);/*关闭文件*/

printf("写入成功!

\n");/*返回成功信息*/

}

voidmain()/*主函数*/

{

intn=0;

for(;;)

{

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

{

case1:

printf("\t\t输入记录\n");/*输入若干条记录*/

n=Input(room1,n);

break;

case2:

printf("\t\t显示记录\n");/*显示所有记录*/

Display(room1,n);

break;

case3:

printf("\t\t按房间号排序并显示\n");

Sort_by_roomnum(room1,n);/*按房间号排序*/

printf("\t\t排序成功!

\n");

Display(room1,n);

printf("\t\t");

break;

case4:

printf("\t\t按学号排序并显示\n");

Sort_by_num(room1,n);/*按学号排序*/

printf("\t\t\t排序成功!

\n");

Display(room1,n);

printf("\t\t");

break;

case5:

printf("\t\t插入一条记录按学号排序并显示\n");

n=Insert_a_record(room1,n);/*插入一条记录*/

Display(room1,n);

printf("\t\t");

break;

case6:

printf("\t\t按姓名查找,删除一条记录\n");

n=Delete_a_record(room1,n);/*按姓名查找,删除一条记录*/

printf("\t\t");

system("pause");

break;

case7:

printf("\t\t查找并显示一个记录\n");

Query_a_record(room1,n);/*查找并显示一个记录*/

printf("\t\t");

system("pause");

break;

case8:

printf("\t\t从文件中读入数据\n");

AddfromText(room1,n);/*从文件中读入数据*/

printf("\t\t");

system("pause");

break;

case9:

printf("\t\t循环写入数据\n");

WritetoText(room1,n);/*循环写入数据*/

printf("\t\t");

system("pause");

break;

case0:

printf("\t\t谢谢使用,祝您好运,再见!

\n");/*结束程序*/

printf("\t\t");

system("pause");

exit(0);

}

}

}

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

当前位置:首页 > 经管营销 > 销售营销

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

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