机房上机管理系统
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
沈阳航空航天大学
课程设计任务书
学院:自动化学院专业:测控技术与仪器班级:14070102 学号:5 题目:机房上机管理系统(1)
一、课程设计时间
2012~2013第1学期第2周,共计1周,20学时。
二、课程设计内容
用C语言编写软件完成以下任务:
1.学生信息(学生的学号,姓名,系别,上机种类,存的机时数等)的录入,保存在comp.dat文件中;
2.上机签到,记录学生上机时间。
3.下机处理,根据学生上下机时间计算学生所用机时,并进行扣时处理。
三、课程设计要求
1. 程序质量:
●贯彻结构化程序设计思想。
●用户界面友好,功能明确,操作方便;可以加以其它功能或修饰。
●用户界面中的菜单至少应包括“数据信息录入”、“上机签到”、“下
机处理”、“退出”4项。
●代码应适当缩进,并给出必要的注释,以增强程序的可读性。
2. 课程设计说明书:
课程结束后,上交课程设计说明书和源程序。课程设计说明书的格式和内容参见提供的模板。
四、指导教师和学生签字
指导教师:________学生签名:_______
五、成绩
六、教师评语
目录
一、需求分析 (1)
二、设计分析 (2)
三、主要界面截图 (6)
四、技术要点 (10)
五、个人总结 (13)
六、参考文献 (13)
七、源程序 (13)
一、需求分析
根据任务书给定的“课程设计内容”和“课程设计要求”作如下的需求分析。
该系统是一个较典型的数据管理系统,其使用者被假定为某学校的学生,系统应该具有安全、稳定、功能齐全的特点。
1. 安全性分析
系统管理的数据涉及到学院的所有同学,数据量较大且是一种基础性数据,安全性方面要求不是非常严格,主要作为记录,所以不需要涉及密码输入等步骤。
2. 稳定性分析
指系统比较健壮,只要是用户的合理操作,系统都应给出合理正确的回应,而不是出现令用户感到意外的系统错误或系统崩溃。
3. 主要功能分析
(1)数据输入:允许用户输入学号、姓名、系别、上机类型、存机时数、上机时间及下机时间。对用户由于疏忽录入的非法数据,能够及时提示并更正。
(2)数据保存:对于输入的数据,或被修改的数据应该保存到E磁盘文件中,实现永久存储。文件的具体格式题目未作具体要求,所以采文本文件。文件中有固定的格式,以便于程序自动读取或人工阅读。
(3)数据查询:用户输入查询条件,系统规则地在界面显示查询结果,且显示的数据尽量全面。当输入学号时,可查询到该学生的学号、姓名、系别、上机类型、存机时数等信息。
二、设计分析
主要有3个功能模块,每个模块对应一个C语言自定义函数。这些函数原型及其功能简述如下:
1、程序总体结构图(传统流程图或N-S框图)
2、主要功能模块框图(传统流程图或N-S框图)(1)添加学生数据函数add
(2)读取学生数据reads
(3)查询query
(4)下机off
三、主要界面截图
图1 程序主界面
图2 上机登记界面
图3 显示学生信息界面
图4 下机处理界面
图5 机房信息查询界面
图6 退出界面
四、技术要点
1、结构体的应用
定义了结构体用来描述学生的姓名、学号、系别、上机类别、存机时数。具体的定义如下:
struct student
{
char num[10];
char name[20];
char department[30];
char type[20];
int store;
int time_start;
int time_end;
};
所定义的结构体主要用于定义数组。
2、文件操作
包括了文件的写入和读取两个方面。文件的写入操作,用于保存录入的学生数据,也用于保存所修改的数据。例如如下程序段用于保存录入的学生信息:
int reads(struct student stu[N]) // 读取学生文件中的内容
{
FILE *fp;
int i=0;
if((fp=fopen("e:\\student.txt","r"))==NULL)
{
printf("\n--------------------------------------------------------\n");
printf(" 文件打开失败!\n");
return 0;
}
else
{
for(i=0;!feof(fp);i++)
fscanf(fp,"%s %s %s %s %d\n\n\n",stu[i].num,stu[i].name,stu[i].depart ment,stu[i].type,&stu[i].store);
}
fclose(fp);
return i;
}
void save(struct student stu[N],int n) // 学生信息改变后更新文件
{
FILE *fp;
int i=0;
if((fp=fopen("e:\\student.txt","w"))==NULL)
{
printf("\n--------------------------------------------------------\n");
printf(" 文件打开失败!\n");
return ;
}
else
{
for(i=0;i fprintf(fp,"%s %s %s %s %d\n\n\n",stu[i].num,stu[i].name,stu[i].depart ment,stu[i].type,stu[i].store); } fclose(fp); return; } 3、关于扣时处理的算法 实现从系统中某位同学的存机时间的算法稍微复杂一些,其实质是对数组某个或某些元素的做“减法”操作。对数组元素的数据录入完成后做差,再将得数写入到文件中,就完整地实现了“减法”。源程序如下: