宿舍管理系统c语言设计

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

河南工程学院

《数据结构》课程设计

成果报告

姓名

学号

学院计算机学院

专业班级计算机科学与技术 1521

专业课程数据结构

指导老师李芳

2016年6月20日

河南工程学院计算机学院

课程设计报告书

课程设计题目:

课程设计时间:6月20日~6月24日

课程设计地点:计算机学院1201

课程设计单位:计算机学院

指导教师:李芳学院院长:曲宏山

目录

目录

1 设计目标 (1)

2 课题分析 (1)

2.1需求分析 (1)

2.2 存储结构设计 (2)

2.3 算法设计及其分析 (2)

2.4程序流程图 (11)

3程序清单 (12)

4系统测试 (30)

4.1测试数据 (30)

4.2测试结果 (31)

5总结 (33)

5.1收获 (33)

5.2不足 (33)

5.3算法改进分析 (33)

1 设计目标

随着计算机技术的发展以及网络的发展,对学生宿舍的管理与控制越来越实用并且得到管理者的证实,无论是查询还是修改都有很方便,查询的信息一目了然。这个程序包含了学生宿舍信息的录入、修改,学生楼栋信息的录入、毕业生的退舍、智能分配宿舍等功能,但不能进行删除的操作,总体来说使用简单方便。这个程序应该满足以下几个要求:

(1)信息的输入:需要建立起完整的宿舍信息数据库,从而实现通过输入学生入住的楼栋号、宿舍号,该宿舍入住的人数以及入住的学

生的信息(包括学生的姓名、学号和系别),来添加学生信息,实

现信息录入。

(2)信息的修改:进行信息输入后,过一段时间后,想要对里面的信息进行修改,可以通过学号等关键字对其进行修改。

(3)信息的查询:这个程序应该可以实现通过按学号或房号进行查找的过程。在此使用的是折半法,查找过程是:先确定待查记录所在的

范围(区间),然后逐步缩小范围直到找到或找不到该记录为止。

这样可以缩短查找时间,同时还可以减少查找的次数。

(4)退出程序:当完成了所有的操作之后就要进行退出操作了。

2 课题分析

2.1需求分析

学生宿舍管理是一个很大的项目,在早期,还没有利用计算机管理时,一切都是利用人工进行管理的,这样管理起来既烦琐又复杂,资料也很容易被丢失,而且耗时、耗资金。而利用本系统,可以高效地对学生宿舍进行统一管理与控制,资料也不容易被丢失,这样大大节省了人力与资源,提高了管理效率,给管理人员带来很多方便,基于以上分析有如下分析:

(1)要实现交互工作方式,各项操作结束后均应返回主菜单。

(2)系统本无任何信息数据,要建立数据文件,需要开发一个信息录入

功能,即首先创建一个学员线性表,同时我们可以将数据暂时保存

在内存中,所以我们开发信息存盘功能;

(3)信息录入后都要保存在内存中,用户看不到,需要设计一个信息显示功能,信息的显示应该便于查询,所以需要具备按各种关键字显

示的功能;

(4)由于有些新同学入校,所以设计了插入功能;

(5)当用户操作完毕需要退出时,提供了退出选项,便于使用者退出交互式工作系统

2.2 存储结构设计

本系定义的存储结构为顺序存储结构,结构体为

typedef struct{

char ID[20]; //学号

char name[20]; //姓名

char gender[10]; //性别

char dormitory[4]; //宿舍号

}Student;

typedef struct{

char ID[4]; //宿舍号

int max_num; //可容纳人数

int current_num; //已入住人数

char gender[10]; //男舍或女舍

2.3 算法设计及其分析

在此系统中,根据对查阅资料的了解,我们对宿舍人员的信息以及各种函数进行了定义,具体如下:

(1)将宿舍人员信息定义为一个名字为typedef struct的结构体,其中包括char ID{20},char name[20],cahr gender[10],char dormitory[4]分别表示学号、姓名、性别和宿舍号,将宿舍信息定义为一个名字为typedef struct的结构体,其中包括char ID[4],char max_num,char current_num,char gender[10],分别是宿舍号、可容纳人数、已入住人数、男舍或者女舍。

(2)功能函数加上主函数一共有十二个,功能函数包括create(),open(),insert_dorm(),insert_stu(),dormnumsearch(),change(),namesearch(),check_out(),numsearch(),exchange(),display(),main(),分别用新增楼栋,新增宿舍信息,新增学生入住宿舍信息,毕业生退舍,互换宿舍,姓名查询,学号查询,宿舍号查询,互换宿舍,调换宿舍,职能分配宿舍,退出本系统的功能。

(3)在主函数中,使用一个while语句来选择调用主菜单中的各个功能函数。

由于本人负责新增宿舍楼栋,新增宿舍信息,新增学生宿舍信息的功能,所以操作如下:

单击数字键“0”则为新增楼栋信息

单击数字键“1”则为新增宿舍信息

单击数字键“2”则为新增学生宿舍信息

在每次操作前都要输入相应的编号。

各功能函数的具体实现如下:

void create(){

printf("\n请输入新增楼栋名称:\n");

scanf("%s", );

_fp = fopen(, "rb+");

if (_fp == NULL){ //如果文件不存在则建立文件否则提示文件已存在

_fp = fopen(, "wb+");

fp = fopen(strcat(, "学生"), "wb+");

if (fp == NULL || _fp == NULL){

printf(" open!\n");

exit(-1);

}

}

else

printf("文件已存在!\n");

fclose(fp);

fclose(_fp);

}

相关文档
最新文档