宿舍管理系统课程设计报告
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
青岛农业大学
理学与信息科学学院
高级语言课程设计报告
设计题目宿舍管理系统
学生专业班级班
学生姓名(学号)
设计小组其他同学姓名(学号)
指导教师
完成时间
设计地点
2016年 12 月 06 日
一、课程设计目的和任务
《高级语言程序设计》课程设计是计算机相关专业的主要实践性教学环节。其目的在于加深对高级语言程序设计理论和基本知识的理解,掌握使用C语言进行面向过程设计的基本方法,提高运用面向过程知识解决实际问题的能力。为毕业设计和以后的工程实践打下良好的基础。
宿舍管理系统:用C语言为学生宿舍管理人员编写一个宿舍管理软件。设某宿舍有:101,102,201,202四个房间,每个房间可住学生<=4人,存储结构:学号、姓名、房间号,按房间号有序,实现学生的入住、退房和查询,按给定学号、姓名、房号查询。
二、分析与设计
1.程序的基本功能:
(1).实现新生入住登记
(2).修改入住学生信息
(3)实现退房
(4)实现以姓名查询学生信息
(5)实现以学号查询学生信息
(6)实现以寝室号查询学生信息
(7)实现按照寝室号从小到大排序
(8)实现按学号从小到大排序
(9)实现显示所有学生信息
(10)实现退出程序并保存数据
2.定义的函数及说明:
此程序由11个函数构成。
Add ----------添加学生信息函数(姓名、学号、宿舍号、班级)
Alter----------修改学生信息函数
Delete--------删除学生信息函数
Display_All--------显示所有学生信息函数
Query_S_name ---------查询函数以姓名为关键字进行查询
Query_S_number -------查询函数以学号为关键字进行查询
Query_D_number ------查询函数以寝室号为关键字进行查询
Save -----存储函数
Judge_Save ----退出程序时判断是否保存函数
Menu --菜单
Main---主函数
3.系统总框图:
三、系统实施
1.源程序代码:
#include
#include
#include
#include
int dirty=0; //用来判断是否已保存操作
//定义一个存储学生相关信息的结构体
typedef struct
{
char S_name[10]; //学生姓名
char S_number[10]; //学生学号
int D_number; //学生所在寝室的宿舍号
char S_class1[10]; //班级
int Total; //学生总数
}Student[16];
int sushehao[4]={101,102,201,202};
int count[4]={0};
//判断学号是否与表中所存学号重复
void S_number_Judge(Student S,int t)
{
int i;
for(i=1;i<=(S->Total)-1;i++)
while(strcmp(S[i].S_number,S[t].S_number)==0)//strcmp字符串比较函数,两个字符逐个比较,相等返回值为
{
printf("学号输入失败,该学号已存在,请重新输入学号!\n");
printf("请输入学生的学号(10个字符以内):");
scanf("%s",S[t].S_number);
getchar();
i=1;
}
}
//添加学生信息函数
void Add(Student S)
{
int j;
int flag=1;
printf("请输入学生姓名(10个字符以内):");
scanf("%s",S[++(S->Total)].S_name);
getchar();//获取换行符
printf("请输入学生的学号(10个字符以内):");
scanf("%s",S[S->Total].S_number);
getchar();
S_number_Judge(S,S->Total);//判断输入的学号是否与表中所存在的学号重复while(flag)
{
printf("请输入宿舍号码:");
scanf("%d",&S[S->Total].D_number);
for (j=0;j<4;j++)
{
if (S[S->Total].D_number==sushehao[j] && count[j]<4)
{
count[j]++;
flag=0;
break;
}
if(S[S->Total].D_number==sushehao[j]&&count[j]==4)
{
printf("该宿舍已满,请重新输入\n");
break;
}
}
}
getchar();
printf("请输入所在班级:");
scanf("%s",S[S->Total].S_class1);
getchar();
printf("添加成功!\n\n");
}//修改学生信息函数
void Alter(Student S)
{
int i;
int flag=0; //用来判断表中是否存在所要修改的学生的信息
char number[10];
printf("请输入你要修改学生的学号:");
scanf("%s",number);
getchar();
for(i=1;i<=S->Total;i++)
if(strcmp(S[i].S_number,number)==0)
flag=i;
if(!flag)
printf("你所要修改的学生信息在表中不存在!\n");
else
{