宿舍管理系统报告.docx

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

宿舍管理系统报告.docx

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

宿舍管理系统报告.docx

宿舍管理系统报告

学生宿舍管理系统

一、实验目的

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

、;

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

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

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

二、实验内容

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

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

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

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

三、实验环境

台式计算机每人一台;

软件:

VisualC++6.0;

四、需求分析

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

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

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

五、概要设计

1、方案设计

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、录入模块

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

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

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

");

scanf("%d",&choice);

switch(choice)

{

case1:

count_person();break;

case0:

break;

}

}while(choice!

=0);

return0;

}

sort_domitry()/*学生宿舍情况排序*/

{

inti,j;

printf("\n宿舍排序\n");

printf("------------------------

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

当前位置:首页 > 表格模板 > 合同协议

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

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