宿舍管理系统课程设计报告

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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

{

相关文档
最新文档