机房上机管理系统

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

实现从系统中某位同学的存机时间的算法稍微复杂一些,其实质是对数组某个或某些元素的做“减法”操作。对数组元素的数据录入完成后做差,再将得数写入到文件中,就完整地实现了“减法”。源程序如下:

相关文档
最新文档