机房上机系统

沈阳航空工业学院

课程设计任务书

电子信息工程学院 电子信息工程专业 84020103班 学号[1**********]55

一、课程设计题目:机房上机系统

二、课程设计工作自2009年9月7日起至2009年7月11日止 三、课程设计内容:

用C 语言编写软件完成以下任务:

(1)从键盘输入学生的学号,姓名,系别,机时数等信息,保存在computer.txt 文件中。

(2)上机:记录当前的上机时间。

(3)下机:再次记录当前的上机时间,计算上机所用的时间,并从机时数中扣除。

(4)预存机时。

四、课程设计要求:

程序质量:

● 贯彻结构化程序设计思想。

● 用户界面友好,功能明确,操作方便;可以加以其它功能或修

饰。

用户界面中的菜单至少应包括“录入学生信息”、“上机”、“下机”、“预存机时”和“退出”5项。

● 代码应适当缩进,并给出必要的注释,以增强程序的可读性。

课程设计说明书:

课程结束后,上交课程设计说明书(打印稿和电子稿),其内容如下: ● 封面

● 课程设计任务书 ● 目录

● 需求分析(分析题目的要求)

● 程序流程图(总体流程图和主要功能模块流程图) ● 核心技术的实现说明及相应程序段 ● 个人总结 ● 参考资料

● 源程序及适当的注释

指导教师:_ __ 学生签名:__ __ 五、成绩:

六、教师评语:

目录

一、需求分析 ............................................................ 1 二、程序流程图 ........................................................ 3 三、核心技术的实现说明及相应程序段 . ............... 7 四、个人总结 . .......................................................... 11 五、参考文献 . .......................................................... 12 六、源程序 . .............................................................. 12

一、需求分析

经过对程序设计题目的分析可知,整个程序的设计实现大致分为三个模块,其中每一个模块对应一个函数,他们的功能分别是:查找函数(search ),写文件的函数(xiewj)以及主函数(main )。在这些函数当中,后一个是主函数,调用后两个函数来实现对程序的编辑和设计。

1、查找函数 主要是通过你输入的学生的一个信息来查找学生的相关信息,并显示;

2、写入学生数据函数 实现的功能是把已经编成结构化的信息放入computer.dat 文件中;

3、主函数 通过调用查找函数和写文件函数以及switch 函数,用case1,case2,case3,case4来实现学生的上机,下机,储存时间和查询信息;

除上面介绍的功能之外,程序还具有退出功能,可以在程序的一次运行当中循环执行所有的功能,并根据需要终止程序的执行。

每一个学生记录都包含学号、姓名,上机种类、预存机时,

在程序当中,将学生记录类型定义为结构体类型,添加以及追加的学生信息直接写入E 盘的student.dat 文件中,其他函数每次对学生记录的访问,其数据来源都是student.dat 文件,这样做不但可以保证学生数据的一致性,而且可以对学生数据进行永久保存,保证每次运行程序都可以采用原来的数据。

二、程序流程图

1. 总体结构图

图1程序总体结构图

2、各子程序结构图

(1) 查找函数

图2查找函数

(2)写入学生数据函数

图3写入学生数据函数

三、核心技术的实现说明及相应程序段

本程序主要由两个自定义函数和一个主函数组成,其中主函

数以菜单的形式调用其他函数来实现要求的所有功能。在这些函

数当中,查找函数和写入学生数据函数是程序中较为核心的部分,

下面分别进行说明。

1、 查找函数 主要是通过你输入的学生的一个信息来

查找学生的相关信息;运用while 语句和time 函数。

程序如下:

void search(struct student b[],int x,int n ,double yjs) /*在数据系统中查找学生信息*/

{

int i=0;

while( b[i].number!=x&&i

i++;

if(i

b[i].jsshu=b[i].jsshu-yjs;

j=i;

printf("\n\n\n\n\n\n");

printf("

||*************************************************\n");

printf(" || your

name is :%s\n",b[i].name);

printf(" || number is :%d\n",b[i].number);

printf(" || department is:%s\n",b[i].department);

printf(" || sjzhonglei is:%s\n",b[i].sjzhonglei);

printf(" || jsshu is :%d\n",b[i].jsshu);

printf("

||***********************************************||\n")

printf("\n\n\n\n\n\n");

}

time_t start,end;

int js=0;

int servenumber;

2、写入学生数据函数

该函数的核心内容主要是通过你输入的学生的一个信息来查

找学生的相关信息;运用fopen 打开指定路径下的文件,运用

fwrite 写入学生信息。

程序如下:

void xiewj(struct student b[],int x,int n)

{ FILE *fp;

if((fp=fopen("c:\\comp.dat","w+"))==NULL) /*打开文件判断*/

{

printf("cant't set up file comp.dat\n");

exit(1);

}

for(x=0;x

{ if(fwrite(&stu[x],sizeof(struct student),1,fp)!=1)

printf("writing

wrong\n");

}

}

3. 时间函数

struct tm *p,*p1;

time_t start,end;

start=time(NULL);

end=time(NULL);

p1=localtime(&end);

printf(asctime(p1);

printf("\n");

p=localtime(&start);

printf(asctime(p));

yjs=difftime(end,start)/3600;

file is printf("上机时间是:%f",yjs);

四、个人总结

看到题目才知道自己其实对C 语言一点也不了解,题目和我

自己想的简直就是十万八千里的,想了很多天才有了一些思路,

通过和同学的讨论. 向老师请教,才初步的把程序编出来。但是还

是有一些错误,这些错误主要是在时间函数上,来回改了两三天

才发现是没有头文件的问题。还有存储时间那段还是请了一个朋

友帮我改了许多,早上还改了几个地方才有了眉目的,就是想要

是再完美一点就更好了。终于在努力下有了结果。虽然很累的但

是我还是收获很多的,这个程序有用到时间函数,通过看老师科

件,学会了时间函数,觉得很高兴。从中让我了解到C 语言的用

处。我想对我以后的考试和自学都会有一定的收获的,而且为我

在后几天的考级增加了信心。

五、参考文献

1 谭浩强.C 程序设计.北京:清华大学出版社,2005

2 刘成等.C 语言程序设计实验指导与习题集.北京:中国铁道

出版社,2006

3 廖湖声 叶乃文 .C

六、源程序

#include

#include

#include

#define MAX 5

#include"stddef.h"

int j=0;

double js=0;

int num=0;

struct student {

int number; /*学号*/

char name[10]; /*

姓名*/

char department[50]; /*

系别*/

char sjzhonglei[10]; /*上

机种类*/

double jsshu; /*

预存机时*/

}stu[MAX]={ {001,"xiaozhang","zhizao","ziyou",10},

{002,"xiaoliu","dongli","ziyou",8},

{003,"xiaoli","dianzi","ziyou",20},

{004,"xiaohuang","jisuanji","ziyou",25},

{005,"xiaozhao","guojing","ziyou",5}

};

void search(struct student b[],int x,int n,double yjs) /*在数

据中查找学生信息*/

{

int i=0;

while( b[i].number!=x&&i

i++;

if(i

b[i].jsshu=b[i].jsshu-yjs;

j=i;

printf("\n\n\n\n\n\n");

printf("

||*************************************************\n");

printf(" || your name

is :%s\n",b[i].name);

printf(" || number

is :%d\n",b[i].number);

printf(" || department

is:%s\n",b[i].department);

printf(" || sjzhonglei

is:%s\n",b[i].sjzhonglei);

printf(" || jsshu

is :%f\n",b[i].jsshu);

printf("

||*************************************************||\n");

printf("\n\n\n\n\n\n");

}

struct tm *p,*p1;

time_t start,end;

double yjs;

int servenumber;

void xiewj(struct student b[],int x,int n){

FILE *fp;

if((fp=fopen("c:\\comp.dat","w+"))==NULL) /*打开文件判断*/

{

printf("cant't set up file comp.dat\n");

exit(1);

}

for(x=0;x

{

if(fwrite(&stu[x],sizeof(struct student),1,fp)!=1)

printf("writing file is wrong\n");

}

}

main()

{

xiewj(stu,0,5);

printf("\n\n\n\n\n\n");

printf(" ||**************welcome to

computer****************||\n");

printf(" || please choose one of

serves as follow: ||\n");

printf(" || 1:register ||\n");

printf(" || 3:save the jspiao ||\n");

printf(" || 4:inquire the

information ||\n");

printf(" || 2:leave

||\n");

printf(" || 0:EXIT ||\n");

printf("

||*************************************************||\n");

printf("\n\n\n\n\n\n");

a:

scanf("%d",&servenumber);

switch(servenumber)

{

case 1:

printf("

======================REGISTER====================\n\n\n

");

start=time(NULL);p=localtime(&start);

printf(asctime(p));

printf("\n");

printf(" welcome to study\n\n please enter your number:\n\n\n");

scanf("%d",&num);

search(stu,num,MAX,0);

break;

case 2:

printf("

======================LEAVE====================\n\n\n");

end=time(NULL);

p1=localtime(&end);

printf(asctime(p1));

printf("\n");

printf(" Before you leave,please enter your

number\n\n\n");

scanf("%d",&num);

yjs=difftime(end,start)/3600;

printf("上机时间是:%f",yjs);

search(stu,num,MAX,yjs);

printf("\n\n\n you can leave!\n\n\n");

break;

case 3:

printf("

======================SAVE====================\n\n\n"); printf(" save time,please enter your number\n\n\n");

scanf("%d",&num);

search(stu,num,MAX,0);

printf(" please enter how many js which you want to save:\n\n\n");

scanf("%lf",&js);

stu[j].jsshu=stu[j].jsshu+js;

printf(" you have saved %f js\n",js); printf(" To sum up,you have had %f js \n",stu[j].jsshu);

break;

case 4:

printf("

======================INQIRMENT====================\n\n\n");

printf(" inquire your information,please enter your number:\n\n\n");

scanf("%d",&num);

search(stu,num,MAX,0);

break;

case 0: exit(0);

沈 阳 航 院 设 计 用 纸

default:printf(" please enter the correct number!!\n");

}

getchar();

goto a;

}

17

沈阳航空工业学院

课程设计任务书

电子信息工程学院 电子信息工程专业 84020103班 学号[1**********]55

一、课程设计题目:机房上机系统

二、课程设计工作自2009年9月7日起至2009年7月11日止 三、课程设计内容:

用C 语言编写软件完成以下任务:

(1)从键盘输入学生的学号,姓名,系别,机时数等信息,保存在computer.txt 文件中。

(2)上机:记录当前的上机时间。

(3)下机:再次记录当前的上机时间,计算上机所用的时间,并从机时数中扣除。

(4)预存机时。

四、课程设计要求:

程序质量:

● 贯彻结构化程序设计思想。

● 用户界面友好,功能明确,操作方便;可以加以其它功能或修

饰。

用户界面中的菜单至少应包括“录入学生信息”、“上机”、“下机”、“预存机时”和“退出”5项。

● 代码应适当缩进,并给出必要的注释,以增强程序的可读性。

课程设计说明书:

课程结束后,上交课程设计说明书(打印稿和电子稿),其内容如下: ● 封面

● 课程设计任务书 ● 目录

● 需求分析(分析题目的要求)

● 程序流程图(总体流程图和主要功能模块流程图) ● 核心技术的实现说明及相应程序段 ● 个人总结 ● 参考资料

● 源程序及适当的注释

指导教师:_ __ 学生签名:__ __ 五、成绩:

六、教师评语:

目录

一、需求分析 ............................................................ 1 二、程序流程图 ........................................................ 3 三、核心技术的实现说明及相应程序段 . ............... 7 四、个人总结 . .......................................................... 11 五、参考文献 . .......................................................... 12 六、源程序 . .............................................................. 12

一、需求分析

经过对程序设计题目的分析可知,整个程序的设计实现大致分为三个模块,其中每一个模块对应一个函数,他们的功能分别是:查找函数(search ),写文件的函数(xiewj)以及主函数(main )。在这些函数当中,后一个是主函数,调用后两个函数来实现对程序的编辑和设计。

1、查找函数 主要是通过你输入的学生的一个信息来查找学生的相关信息,并显示;

2、写入学生数据函数 实现的功能是把已经编成结构化的信息放入computer.dat 文件中;

3、主函数 通过调用查找函数和写文件函数以及switch 函数,用case1,case2,case3,case4来实现学生的上机,下机,储存时间和查询信息;

除上面介绍的功能之外,程序还具有退出功能,可以在程序的一次运行当中循环执行所有的功能,并根据需要终止程序的执行。

每一个学生记录都包含学号、姓名,上机种类、预存机时,

在程序当中,将学生记录类型定义为结构体类型,添加以及追加的学生信息直接写入E 盘的student.dat 文件中,其他函数每次对学生记录的访问,其数据来源都是student.dat 文件,这样做不但可以保证学生数据的一致性,而且可以对学生数据进行永久保存,保证每次运行程序都可以采用原来的数据。

二、程序流程图

1. 总体结构图

图1程序总体结构图

2、各子程序结构图

(1) 查找函数

图2查找函数

(2)写入学生数据函数

图3写入学生数据函数

三、核心技术的实现说明及相应程序段

本程序主要由两个自定义函数和一个主函数组成,其中主函

数以菜单的形式调用其他函数来实现要求的所有功能。在这些函

数当中,查找函数和写入学生数据函数是程序中较为核心的部分,

下面分别进行说明。

1、 查找函数 主要是通过你输入的学生的一个信息来

查找学生的相关信息;运用while 语句和time 函数。

程序如下:

void search(struct student b[],int x,int n ,double yjs) /*在数据系统中查找学生信息*/

{

int i=0;

while( b[i].number!=x&&i

i++;

if(i

b[i].jsshu=b[i].jsshu-yjs;

j=i;

printf("\n\n\n\n\n\n");

printf("

||*************************************************\n");

printf(" || your

name is :%s\n",b[i].name);

printf(" || number is :%d\n",b[i].number);

printf(" || department is:%s\n",b[i].department);

printf(" || sjzhonglei is:%s\n",b[i].sjzhonglei);

printf(" || jsshu is :%d\n",b[i].jsshu);

printf("

||***********************************************||\n")

printf("\n\n\n\n\n\n");

}

time_t start,end;

int js=0;

int servenumber;

2、写入学生数据函数

该函数的核心内容主要是通过你输入的学生的一个信息来查

找学生的相关信息;运用fopen 打开指定路径下的文件,运用

fwrite 写入学生信息。

程序如下:

void xiewj(struct student b[],int x,int n)

{ FILE *fp;

if((fp=fopen("c:\\comp.dat","w+"))==NULL) /*打开文件判断*/

{

printf("cant't set up file comp.dat\n");

exit(1);

}

for(x=0;x

{ if(fwrite(&stu[x],sizeof(struct student),1,fp)!=1)

printf("writing

wrong\n");

}

}

3. 时间函数

struct tm *p,*p1;

time_t start,end;

start=time(NULL);

end=time(NULL);

p1=localtime(&end);

printf(asctime(p1);

printf("\n");

p=localtime(&start);

printf(asctime(p));

yjs=difftime(end,start)/3600;

file is printf("上机时间是:%f",yjs);

四、个人总结

看到题目才知道自己其实对C 语言一点也不了解,题目和我

自己想的简直就是十万八千里的,想了很多天才有了一些思路,

通过和同学的讨论. 向老师请教,才初步的把程序编出来。但是还

是有一些错误,这些错误主要是在时间函数上,来回改了两三天

才发现是没有头文件的问题。还有存储时间那段还是请了一个朋

友帮我改了许多,早上还改了几个地方才有了眉目的,就是想要

是再完美一点就更好了。终于在努力下有了结果。虽然很累的但

是我还是收获很多的,这个程序有用到时间函数,通过看老师科

件,学会了时间函数,觉得很高兴。从中让我了解到C 语言的用

处。我想对我以后的考试和自学都会有一定的收获的,而且为我

在后几天的考级增加了信心。

五、参考文献

1 谭浩强.C 程序设计.北京:清华大学出版社,2005

2 刘成等.C 语言程序设计实验指导与习题集.北京:中国铁道

出版社,2006

3 廖湖声 叶乃文 .C

六、源程序

#include

#include

#include

#define MAX 5

#include"stddef.h"

int j=0;

double js=0;

int num=0;

struct student {

int number; /*学号*/

char name[10]; /*

姓名*/

char department[50]; /*

系别*/

char sjzhonglei[10]; /*上

机种类*/

double jsshu; /*

预存机时*/

}stu[MAX]={ {001,"xiaozhang","zhizao","ziyou",10},

{002,"xiaoliu","dongli","ziyou",8},

{003,"xiaoli","dianzi","ziyou",20},

{004,"xiaohuang","jisuanji","ziyou",25},

{005,"xiaozhao","guojing","ziyou",5}

};

void search(struct student b[],int x,int n,double yjs) /*在数

据中查找学生信息*/

{

int i=0;

while( b[i].number!=x&&i

i++;

if(i

b[i].jsshu=b[i].jsshu-yjs;

j=i;

printf("\n\n\n\n\n\n");

printf("

||*************************************************\n");

printf(" || your name

is :%s\n",b[i].name);

printf(" || number

is :%d\n",b[i].number);

printf(" || department

is:%s\n",b[i].department);

printf(" || sjzhonglei

is:%s\n",b[i].sjzhonglei);

printf(" || jsshu

is :%f\n",b[i].jsshu);

printf("

||*************************************************||\n");

printf("\n\n\n\n\n\n");

}

struct tm *p,*p1;

time_t start,end;

double yjs;

int servenumber;

void xiewj(struct student b[],int x,int n){

FILE *fp;

if((fp=fopen("c:\\comp.dat","w+"))==NULL) /*打开文件判断*/

{

printf("cant't set up file comp.dat\n");

exit(1);

}

for(x=0;x

{

if(fwrite(&stu[x],sizeof(struct student),1,fp)!=1)

printf("writing file is wrong\n");

}

}

main()

{

xiewj(stu,0,5);

printf("\n\n\n\n\n\n");

printf(" ||**************welcome to

computer****************||\n");

printf(" || please choose one of

serves as follow: ||\n");

printf(" || 1:register ||\n");

printf(" || 3:save the jspiao ||\n");

printf(" || 4:inquire the

information ||\n");

printf(" || 2:leave

||\n");

printf(" || 0:EXIT ||\n");

printf("

||*************************************************||\n");

printf("\n\n\n\n\n\n");

a:

scanf("%d",&servenumber);

switch(servenumber)

{

case 1:

printf("

======================REGISTER====================\n\n\n

");

start=time(NULL);p=localtime(&start);

printf(asctime(p));

printf("\n");

printf(" welcome to study\n\n please enter your number:\n\n\n");

scanf("%d",&num);

search(stu,num,MAX,0);

break;

case 2:

printf("

======================LEAVE====================\n\n\n");

end=time(NULL);

p1=localtime(&end);

printf(asctime(p1));

printf("\n");

printf(" Before you leave,please enter your

number\n\n\n");

scanf("%d",&num);

yjs=difftime(end,start)/3600;

printf("上机时间是:%f",yjs);

search(stu,num,MAX,yjs);

printf("\n\n\n you can leave!\n\n\n");

break;

case 3:

printf("

======================SAVE====================\n\n\n"); printf(" save time,please enter your number\n\n\n");

scanf("%d",&num);

search(stu,num,MAX,0);

printf(" please enter how many js which you want to save:\n\n\n");

scanf("%lf",&js);

stu[j].jsshu=stu[j].jsshu+js;

printf(" you have saved %f js\n",js); printf(" To sum up,you have had %f js \n",stu[j].jsshu);

break;

case 4:

printf("

======================INQIRMENT====================\n\n\n");

printf(" inquire your information,please enter your number:\n\n\n");

scanf("%d",&num);

search(stu,num,MAX,0);

break;

case 0: exit(0);

沈 阳 航 院 设 计 用 纸

default:printf(" please enter the correct number!!\n");

}

getchar();

goto a;

}

17


相关文章

  • 机房收费管理系统
  • 机房收费管理系统设计报告 课程名称:软件工程任课教师:选题名称:机房收费管理系统小组成员: 日期:年 月 1可行性分析 1.1技术可行性 机房收费管理系统主体结构是局域网中实现客户端与服务器间数据交换,服务器端可以应用asp 嵌入sql 查 ...查看


  • 学校机房管理制度
  • 于都县第五中学计算机云教室 管 理 制 度 汇 编 单位:于都五中科教中心 2016年12月 总 则 计算机云教室是为学校教育.教学和教学研究服务的机构,是学校工作的重要组成部分.为规范机房管理,提高计算机使用效率,保证计算机设备安全和教学 ...查看


  • 中职学校计算机机房管理研究]课题研究报告
  • <中职学校计算机机房管理研究>课题研究报告 何祖猛 执笔 一.项目研究背景和意义 1.研究背景 我校的计算机机房主要承担全校所有班级的<计算机应用基础>和计算机专业班级的计算机基础课程.主干专业课程以及其它专业的计算 ...查看


  • 浅谈如何管理及维护学校机房
  • 浅谈如何管理及维护学校电脑机房 湖南省宜章县笆篱乡学校 范林旺 [1**********] 摘要:学校机房管理历来是一项专业性强也较为烦琐的工作,除了要求机房管理人员掌握有丰富的计算机软硬件知识和较强的动手能力外,还需要他们掌握一定的课堂管 ...查看


  • 计算机机房安全管理制度
  • 计算机机房安全管理制度 计算机机房是教学科研的重要基地.为了保证教学工作的顺利进行,特制定以下机房安全管理制度: 一: 总则 管理制度要求各位教师,学生认真遵照执行:保证手.脚干净,机房内安静.清洁.严禁戏闹:机房管理实行专人负责制:对违反 ...查看


  • 高中学校机房管理制度
  • 学校机房管理制度 为规范机房管理,提高计算机使用效率,保证计算机设备安全和教学工作的正常运转,特制定本制度. 一.指导教师岗位职责 1.上机过程中要保证出口畅通,指挥学生打开门窗. 2.加强防火防漏电意识,发现异常情况要及时采取措施,并报知 ...查看


  • 机房人员日常行为准则
  • 计算机房管理制度 1.计算机房严禁吸烟.吐痰.乱扔废弃物,注意保持整洁卫生, 坚持经常清扫室内卫生. 2.每周定期检查机房设备运行状况,定期查杀病毒,保证设备正常使用. 3. 室内不准存放易燃物品,使用电热设备等须注意安全,按章使用,严禁无 ...查看


  • 网络机房管理制度
  • 1.网络机房的装备,是学校现代化教学的重要设施,应由专人管理,充分使用,备加爱护.机房内所有设备应按统一要求分类编号.贴上标签,做到定位存放,并按要求建帐,做到帐物相符.每学期结束.由分管领导组织帐物核对. 2.每台机设立"计算机 ...查看


  • 机房对信息技术教学的影响
  • 机房对信息技术教学的影响 342300 于都实验中学附属小学 江亮 信息技术教师 [1**********] [摘要] 近几年,随着信息技术的飞速发展,其作用影响也越来越深远,同时国家对信息技术教育的重视程度节节攀升,而重中之重的信息技术上 ...查看


热门内容