宿舍管理系统报告.docx

上传人:b****1 文档编号:12778959 上传时间:2023-04-22 格式:DOCX 页数:29 大小:292.65KB
下载 相关 举报
宿舍管理系统报告.docx_第1页
第1页 / 共29页
宿舍管理系统报告.docx_第2页
第2页 / 共29页
宿舍管理系统报告.docx_第3页
第3页 / 共29页
宿舍管理系统报告.docx_第4页
第4页 / 共29页
宿舍管理系统报告.docx_第5页
第5页 / 共29页
点击查看更多>>
下载资源
资源描述

宿舍管理系统报告.docx

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

宿舍管理系统报告.docx

宿舍管理系统报告

 

学生宿舍管理系统

一、实验目的

1.熟练掌握线性表的根本操作在顺序存储和链式存储上的实现。

、;

2.以线性表的各种操作〔建立、插入、删除、遍历等〕的实现为重点;

3.掌握线性表的动态分配顺序存储构造的定义和根本操作的实现;

4.通过实验帮助学生加深对C语言的使用〔特别是函数的参数调用、指针类型的应用和链表的建立等各种根本操作〕。

二、实验内容

我组设计的是“学生宿舍管理系统〞,主要是针对住宿学生个人信息的管理,适用对象主要是学校,以方便学校对住宿学生的管理。

包括学生的XX、学号、性别、专业、班级等等。

在编写过程中主要运用C语言的根本知识有:

数据类型〔整形、实型、字符型、指针、数组、构造等〕;运算类型〔算术运算、逻辑运算、自增自减运算、赋值运算等〕;程序构造〔顺序构造、判断选择构造、循环构造〕;大程序的功能分解方法〔即函数的调用与使用〕等。

三、实验环境

台式计算机每人一台;

软件:

VisualC++6.0;

四、需求分析

该程序是由C语言编写的一个宿舍管理查询软件,本程序在MicrosoftVisualC++6.0下运行,其主要功能是实现对学生信息的录入、添加、删除、修改、查询、统计。

其中查询可以分别以XX、学号、宿舍号为关键字查询学生信息。

统计可以分别以学号、宿舍号、性别、班级、专业为关键字进展统计,并且输出信息按学号大小从小到大输出。

五、概要设计

1、方案设计

主函数

密码模块

录入模块

添加模块

修改模块

删除模块

查询模块

统计模块

退出系统

学号

XX

宿舍

性别

年龄

专业

返回

班级

按XX

按学号

按宿舍

返回

按性别

按学号

按宿舍

返回

按班级

按专业

2、数据构造说明

程序中数据主要是学生信息和宿舍信息,具体属于类型如下:

structstu

{

charname[20];

intnum;

charsex;

intage;

intgrade;

intnclass;

charzhuanye[30];

};

structdom

{

intbui_num;

intfloor_num;

introom_num;

intbed_num;

structstust;

}s[MAX],p;

3、模块功能说明

第一密码模块:

调用cipher(),进展管理者的注册与登录操作。

第二录入模块:

调用input_message(),对住宿学生信息进展录入。

第三添加模块:

调用append_message(),对新来学生信息进展添加录入。

第四修改模块:

调用revise_message(),对需修改学生的信息进展修改。

第五删除模块:

调用delete_message(),对某一学生信息进展删除操作。

第六查询模块:

调用find_message(),分别以XX、学号、宿舍号对学生信息进展查询。

第七统计模块:

调用census_message(),分别以学号、宿舍号、性别、班级、专业方式对学生信息进展统计,并按学号由小到大输出。

六、详细设计及运行结果

1、登陆界面

2、主界面

3、录入模块

输入学号

输入XX

输入性别

输入年龄

输入年级

输入班级

输入专业

是否继续录入

结束

N

Y

宿舍楼号

宿舍楼层号

宿舍房间号

宿舍床号

4、录入界面

5、打印学生信息界面

6、更新学生信息界面

7、查询宿舍信息界面

8、统计宿舍信息界面

9、学生宿舍排序

七、源程序

#include

#include"string.h"

#defineMAX10

#definePRINT1printf("---------------------------------------------------------------------------\n")

#definePRINT2printf("学号--学生XX--性别--年龄--年级--班级--专业--楼号--楼层号--房间号--床号\n\n")

intsum;

structstu

{

charname[20];

intnum;

charsex;

intage;

intgrade;

intnclass;

charzhuanye[30];

};

structdom

{

intbui_num;

intfloor_num;

introom_num;

intbed_num;

structstust;

}s[MAX],p;

 

/*保存信息*/

save_message()

{FILE*fp;

inti;

if((fp=fopen("dom.txt","wt"))==NULL)

{

printf("读文件错误!

\n");

return0;

}

for(i=0;i

if(fwrite(&s[i],sizeof(structdom),1,fp)!

=1)

printf("写文件错误!

\n");

fclose(fp);

}

 

/*输入模块*/

input_message()

{inti=0;

//clrscr();

printf("\n\n录入学生信息(最多%d个)\n",MAX);

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

do

{

printf("\n第%d个学生\n\n",i+1);

printf("\n学号:

");

scanf("%d",&s[i].st.num);

if(s[i].st.num==0)break;

printf("\n学生XX:

");

scanf("%s",s[i].st.name);

printf("\n学生性别(男生用M表示,女生用F表示):

");

getchar();

scanf("%c",&s[i].st.sex);

printf("\n学生年龄:

");

scanf("%d",&s[i].st.age);

printf("\n学生年级:

");

scanf("%d",&s[i].st.grade);

printf("\n学生班级:

");

scanf("%d",&s[i].st.nclass);

printf("\n学生专业:

");

scanf("%s",&s[i].st.zhuanye);

printf("\n宿舍楼号:

");

scanf("%d",&s[i].bui_num);

printf("\n宿舍楼层号:

");

scanf("%d",&s[i].floor_num);

printf("\n宿舍房间号:

");

scanf("%d",&s[i].room_num);

printf("\n宿舍床号:

");

scanf("%d",&s[i].bed_num);

i++;

}while(i

printf("\n--%d个学生的信息输入完毕!

--\n",i);

sum=i;

printf("\n按任意键返回主菜单!

");

getchar();

//bioskey(0);

return0;

}

 

/*读取信息*/

intread_message()

{

FILE*fp;

inti=0;

if((fp=fopen("dom.txt","rt"))==NULL)

{

printf("\n\n*****暂时还没有任何信息,按任意键进入主菜单项选择择根本信息的录入!

*****\n");

return0;

}

while(!

feof(fp))

{

fread(&s[i],sizeof(structdom),1,fp);

i++;

}

fclose(fp);

return(i);

}

 

/*输出模块*/

output_message()

{inti=0;

//clrscr();

printf("\n\n--学生信息表--\n\n");

PRINT2;

PRINT1;

for(i=0;i

if(s[i].st.num!

=0)

{

printf("%2d%10s%6c%7d%6d%5d%8s%5d%6d%8d%9d\n\n",s[i].st.num,s[i].st.name,s[i].st.sex,s[i].st.age,

s[i].st.grade,s[i].st.nclass,s[i].st.zhuanye,s[i].bui_num,s[i].floor_num,s[i].room_num,s[i].bed_num);

printf("\n");

//bioskey(0);

}

return0;///

}

 

/*添加学生信息*/

insert_message()

{inti=sum,flag=0;

charchoice;

printf("\n\n添加一个新同学\n");

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

do

{

printf("\n新学号:

");

scanf("%d",&s[i].st.num);

printf("\n学生XX:

");

scanf("%s",s[i].st.name);

printf("\n学生性别(男生用M表示,女生用F表示):

");

getchar();

scanf("%c",&s[i].st.sex);

printf("\n学生年龄:

");

scanf("%d",&s[i].st.age);

printf("\n学生年级:

");

scanf("%d",&s[i].st.grade);

printf("\n学生班级:

");

scanf("%d",&s[i].st.nclass);

printf("\n学生专业:

");

scanf("%s",s[i].st.zhuanye);

printf("\n宿舍楼号:

");

scanf("%d",&s[i].bui_num);

printf("\n宿舍楼层号:

");

scanf("%d",&s[i].floor_num);

printf("\n宿舍房间号:

");

scanf("%d",&s[i].room_num);

printf("\n宿舍床号:

");

scanf("%d",&s[i].bed_num);

sum++;

printf("\n要继续吗?

(Y/N)");

getchar();

scanf("%c",&choice);

if(choice=='y'||choice=='Y')

{

flag=1;

i++;

printf("\n继续!

\n");

}

elseflag=0;

}while(flag==1);

printf("\n按任意键返回主菜单!

");

return0;

}

 

/*删除模块*/

del_message()

{intflag,del_num,i,k;

charchoice;

do

{printf("\n输入要删除的学生学号:

");

scanf("%d",&del_num);

for(i=0;i

if(del_num==s[i].st.num)

for(k=i;k

s[k]=s[k+1];

sum--;

printf("\n\n继续吗?

(Y/N)");

getchar();

scanf("%c",&choice);

if(choice=='y'||choice=='Y')

{

flag=1;

printf("\n继续!

\n");

}

elseflag=0;

}while(flag==1);

printf("\n\n按任意键返回主菜单!

");

getchar();

return0;

}

 

/*修改模块*/

revise_message()

{inti=0,choices,revise_num,flag=0;charchoice;

do

{

printf("\n输入要修改的学生号:

");

scanf("%d",&revise_num);

for(i=0;i

if(s[i].st.num==revise_num)

{

printf("\n--学生信息--\n");

PRINT1;

PRINT2;

printf("%2d%10s%6c%7d%6d%5d%8s%5d%6d%8d%9d\n\n",s[i].st.num,s[i].st.name,s[i].st.sex,s[i].st.age,s[i].st.grade,s[i].st.nclass,s[i].st.zhuanye,s[i].bui_num,s[i].floor_num,s[i].room_num,s[i].bed_num);

printf("\n您要修改哪一项?

\n");

printf("\n1.学号\n");

printf("\n2.性别\n");

printf("\n3.\n");

printf("\n4.年龄\n");

printf("\n5.年级\n");

printf("\n6.班级\n");

printf("\n7.专业\n");

printf("\n8.楼号\n");

printf("\n9.楼层号\n");

printf("\n10.房间号\n");

printf("\n11.床号\n");

printf("\n请选择(1-11):

");

scanf("%d",&choices);

switch(choices)

{

case1:

printf("\n输入修改后的学号");

scanf("%d",&s[i].st.num);break;

case2:

printf("\n输入修改后的XX");

scanf("%s",s[i].st.name);break;

case3:

printf("\n输入修改后的性别");

scanf("%s",s[i].st.sex);break;

case4:

printf("\n输入修改后的年龄");

scanf("%d",&s[i].st.age);break;

case5:

printf("\n输入修改后的年级");

scanf("%d",&s[i].st.grade);break;

case6:

printf("\n输入修改后的班级");

scanf("%d",&s[i].st.nclass);break;

case7:

printf("\n输入修改后的专业");

scanf("%s",&s[i].st.zhuanye);break;

case8:

printf("\n输入修改后的楼号");

scanf("%d",&s[i].bui_num);break;

case9:

printf("\n输入修改后的楼层号");

scanf("%d",&s[i].floor_num);break;

case10:

printf("\n输入修改后的房间号");

scanf("%d",&s[i].room_num);break;

case11:

printf("\n输入修改后的床号");

scanf("%d",&s[i].bed_num);break;

}

PRINT1;

PRINT2;

printf("%2d%10s%6c%7d%6d%5d%8s%5d%6d%8d%9d\n\n",s[i].st.num,s[i].st.name,s[i].st.sex,s[i].st.age,s[i].st.grade,s[i].st.nclass,s[i].st.zhuanye,s[i].bui_num,s[i].floor_num,s[i].room_num,s[i].bed_num);

break;

}

if(i==sum)

printf("\n该学生不存在!

");

//bioskey(0);

return0;

/*printf("\n\n继续修改吗?

(Y/N)");

getchar();

scanf("%c",&choice);

if(choice=='y'||choice=='Y')

{

flag=1;

printf("\n继续!

\n");

}

elseflag=0;*/

}while(flag==1);

getchar();

printf("\n按任意键返回主菜单!

");

return0;

}

 

/*更新模块*/

renew_message()

{

intchoice;

do

{

printf("\n\n\n*****更新学生信息*****\n\n");

printf("1.添加学生信息\n\n");

printf("2.删除学生信息\n\n");

printf("3.修改学生信息\n\n");

printf("0.返回主菜单\n\n");

printf("请选择(0-3):

");

scanf("%d",&choice);

switch(choice)

{

case1:

insert_message();break;

case2:

del_message();break;

case3:

revise_message();break;

case0:

break;

}

}while(choice!

=0);

return0;

}

 

inquire_name()/*按XX查询*/

{

inti,j=0;

charinquire_name[10];

printf("\n输入要查询的学生XX:

");

scanf("%s",inquire_name);

for(i=0;i

if(strcmp(s[i].st.name,inquire_name)==0&&s[i].st.num!

=0)

{

printf("\n--学生信息--\n");

PRINT1;

PRINT2;

printf("%2d%10s%6c%7d%6d%5d%8s%5d%6d%8d%9d\n\n",s[i].st.num,s[i].st.name,s[i].st.sex,s[i].st.age,

s[i].st.grade,s[i].st.nclass,s[i].st.zhuanye,s[i].bui_num,s[i].floor_num,s[i].room_num,s[i].bed_num);

}

elsej++;

if(j==sum)

printf("\n该学生不存在!

");

return0;

}

 

intinquire_num()/*按学号查询*/

{

inti,j=0,inquire_num;

printf("\n输入要查询的学生学号:

");

scanf("%d",&inquire_num);

for(i=0;i

if(inquire_num==s[i].st.num)

{

printf("\n--学生信息--\n");

PRINT1;

PRINT2;

printf("%2d%10s%6c%7d%6d%5d%8s%5d%6d%8d%9d\n\n",s[i].st.num,s[i].st.name,s[i].st.sex,s[i].st.age,

s[i].st.grade,s[i].st.nclass,s[i].st.zhuanye,s[i].bui_num,s[i].floor_num,s[i].room_num,s[i].bed_num);

}

elsej++;

if(j==sum)

printf("\n该学生不存在!

");

return0;

}

 

/*查询模块*/

inquire_message()

{intchoice;

do

{

printf("\n\n*****查询学生信息*****\n\n");

printf("1.按学生XX查询\n");

printf("2.按学生学号查询\n");

printf("0.回主菜单\n");

printf("请选择(0-2):

");

scanf("%d",&choice);

switch(choice)

{

case1:

inquire_name();break;

case2:

inquire_num();break;

case0:

break;

}

}while(choice!

=0);

return0;

}

 

count_person()/*学生住宿情况统计*/

{

inti,j=0,count_grade,count_nclass;

charcount_zhuanye[20];

printf("\n输入要统计的学生专业,年级,班级:

");

scanf("%10s%8d%8d",&count_zhuanye,&count_grade,&count_nclass);

printf("\n住宿情况");

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

printf("\n学号楼号楼层号房间号床号\n");

for(i=0;i

if(s[i].st.grade==count_grade&&s[i].st.nclass==count_nclass&&strcmp(s[i].st.zhuanye,count_zhuanye)==0)

printf("\n%10s%8d%8d%8d%8d%8d\n",s[i].st.name,s[i].st.num,s[i].bui_num,s[i].floor_num,

s[i].room_num,s[i].bed_num);

elsej++;

if(j==sum)

printf("\n该学生不存在!

");

return0;

}

 

/*统计模块*/

count_message()

{

intchoice;

do

{

printf("\n\n*****统计住宿信息*****\n");

printf("1.学生住宿情况统计\n");

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

当前位置:首页 > 人文社科 > 设计艺术

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

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