资源描述
C语言课程设计汇报书
课程名称: C语言课程设计
课题名称: 院老师工作量计算系统
班级:
学号:
姓名:
指导老师:
成绩:
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++
五、运行结果
(一)主菜单截图
(二)信息录入界面截图
(三)信息保留至文件成功截图
(四)查找到总工作量信息截图
(五)超时费显示报表截图
展开阅读全文