c语言课程设计教师工作量计算,C语言院教师工作量统计课程设计报告书.doc

C语言课程设计报告书

课程名称: C语言课程设计

课题名称: 院教师工作量计算系统

班级:

学号:

姓名:

指导老师:

成绩:

2010年6月

一、课程设计目的

1. 通过课程设计,加深对结构化程序设计思想的理解,能对系统功能进行分析,并设计合理的模块化结构。

2. 通过课程设计,进一步掌握C语言中有关重要的数据结构,诸如:数组、结构数组、链表、数据文件…等在程序开发中的应用。

3. 通过课程设计,锻炼与提高程序开发和调试能力,要求程序可读性好、调试能力强。

4. 通过课程设计,增加 C语言知识的运用能力和自主学习能力,能独立设计和实现一个中小型系统。

二、课题设计内容

以高校某学院工作量考核办法为背景,设计与开发一个高校教师教学工作量管理系统,提供教师教学工作量的录入、查找与计算功能。主要功能要求如下:

(1)工作量信息录入:教师一个教学任务的信息为:教师编号(不重复)、姓名、职称、课程名称、授课班级、小课班级数目、理论课时、实验课时、教学任务总课时。提供录入界面供用户输入数据,并以合理数据结构,诸如:结构数组或数据文件的形式加以保存。

(2)工作量计算:以教师为单位,计算出该教师一个学年的总工作量。计算公式如下:

a. 教学任务总课时。计算方法如下表:

小班班级数目

单个教学任务总课时

2

1.5*(理论课时+实验课时)

3

2*(理论课时+实验课时)

>=4

2.5*(理论课时+实验课时)

b. 一个学年总的教学工作量=所有单个教学任务总课时之和*职称系数。其中:正教授系数=1.2;副教授系统=1.1;其他职称系数=1。

(3)查找:能查找一个教师年度工作量明细、查找某教师年度总作量。

(4)超时费计算:统计该院年度工作量超过200学时的所有教师,以单价20元标准计算出其超时费,并显示出发放报表。

(5)进一步考虑信息的编辑功能,能插入、修改、删除教师授课教学信息。

(6)系统以菜单方式工作,界面应清晰直观,便于用户操作。

三、系统总体设计

主函数

数据录入

计算工作量

保存数据

查找数据

计算超时费

插入数据

修改数据

删除数据

菜单函数

退出

1. 主函数 main()

功能:设计字体和背景的颜色,调用菜单函数;

2. 菜单函数 menu()

功能:调出可视化的菜单外观界面,提供用户选择的入口,进入其他模块进行相关处理;

3. 信息输入函数 enter()

功能:录入需查询教师的相关信息(结构数组形式);

4. 信息保存函数 save()

功能:将录入的教师信息保存至文件;

5. 工作量计算函数 count()

功能:计算该教师一个学年的总工作量;

6. 查找函数 search()

功能:调用相关模块,对指定的信息项进行查询;

7. 超时费计算函数 covex()

功能:统计、计算教师一年度的超时费,并显示出发放报表;

8. 插入函数 insert()

功能:插入教师授课教学信息;

9. 修改函数 alter()

功能:对教师信息进行修改;

10. 删除函数()

功能:删除不需要的信息。

四、系统详细设计

(一)数据结构设计

(1)教师信息的定义

struct teacher /* 定义结构数组名*/

{ int numberofteacher; /*教师编号*/

char name[80]; /*教师姓名*/

char professionaltitle; /*职称*/

char nameofcourse; /*课程名称*/

char nameofclasses; /*授课班级*/

int numberofsmallclasses; /*小班班级数目*/

int theoreticperiods; /*理论课时*/

int experimentalperiods; /*实验课时*/

int totalperiods; /*教学任务总课时*/

}tea[N];

(2)菜单的设计

menu()

{int choice;

clrscr(); /*清屏*/

printf("\n\t\t*************************MENU*************************\n");

printf("\n\t\t 1.Enter new data");/*输入模块*/

printf("\n\t\t 3.Save data");/*保存数据*/

printf("\n\t\t 2.Count load");/*计算工作量*/

printf("\n\t\t 4.Search data");/*查找数据*/

printf("\n\t\t 5.Count overtime expenses");/*计算超时费*/

printf("\n\t\t 6.Insert data");/*插入数据*/

printf("\n\t\t 7.Alter data");/*修改数据*/

printf("\n\t\t 8.Delete data");/*删除数据*/

printf("\n\t\t 9.Exit");/*退出*/

printf("\n\t\t******************************************************\n");

while(1)

{choice=Menuselect();

if(choice<0||choice>9)

printf("Input ERROR!"); printf("\n");

switch(choice);

{case 1:enter();break;

case 2:save();break;

case 3:count();break;

case 4:search();break;

case 5:covex();break;

case 6:insert();break;

case 7:alter();break;

case 8:delete();break;

case 9:exit(0);}

}

int Menuselect() /*输入选择相关功能的菜单*/

{int i;

printf("please type in your choice:");

scanf("%d",&i);

printf("\n");

return(i);

}

(二)模口接块的设计

程序主要是通过选择菜单manu()接入各个模块,用switch语句调用各个模块,通过break分开各个模块,进行所要操作的选择,也主要通过调用manu()菜单返回,再进行其他选项的选择。

1. 菜单函数

通过菜单函数完成与其他模块的连接和退出,其运行程序见(一)中“菜单的设计”项,此处不再累述。

2. 信息的输入 enter()

通过case 1进入,信息录入成功后调用menu()函数,先对输入的信息进行保存。

3. 信息保存 save()

在manu()中,通过case 2调用save(),以文件形式对其进行保存;

4. 计算工作量 covex()

通过case3进入该函数,计算出教师年度工作量再返回主菜单。

5. 查找信息 search()

通过case4输入某教师姓名,查找该教师所有信息。

6. 计算超时费 covex()

case5:进入计算超时费模块,进行操作,再返回主菜单。

7. 插入数据 insert()

case6:补充插入一些数据,返回主菜单。

8. 修改数据 alter()

case7:修改电脑中的数据,返回主菜单。

9. 删除数据 delete()

case8:删除不需要的数据,返回主菜单。

(三)流程图

1.主要模块流程图

Start

菜单选择项是否小于0或大于9

主函数

定义全局变量liang量

主要选择菜单

输入错误

数据录入

保存数据

计算工作量

查找数据

计算超时费

插入数据

修改数据

删除数据

退出

2.主要选择菜单流程图

输入choice

菜单选择项是否小于0或大于9

输入错误

1??

根据所选项接入子函数

定义变量,输入相关信息

3.信息保存函数流程图

判断可否打开文件

i=0

i< n

保存教师的信息

i++

不能打开文件

关闭文件

4.工作量计算函数

定义变量

输出小班数目

小班数

目=2

=2

A=1.5

小班数目=3

A=2.5

A=2

职称系数=1.0

单个教学任务总课时=A*(理论课时+实验课时)

职称=

副教授

=2

职称= 正 教授

职称系数=1.2

职称系数=1.1

年度总工作量=所有单个教学任务总课时之和*职称系数

(五)删除函数

将内存中的数据重新存入二进制文件夹中

结束

k++

intj=0,d=0,k=0;char name[80];work (*p)

打开文件

从文件中读出数据,记录数据块数J

输入教师姓名

开始

k<=j

q[k].name=name

output(&q[k])

d=k

d<=k

q[d]=q[d+1]

d++

五、运行结果

(一)主菜单截图

(二)信息录入界面截图

(三)信息保存至文件成功截图

(四)查找到的总工作量信息截图

(五)超时费显示报表截图

展开阅读全文

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值