教师工作量管理系统

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

《C语言程序设计》

课程设计报告

题目:教师工作量管理系统

学院:理学院

专业:物理学

班级:1423701

学号:************

*名:***

指导老师:***

2015年12月12日

错误!未定义书签。

一、课程设计题目 (3)

二、课程设计要求 (3)

三、设计思路 (3)

四、流程图 (6)

五、 C语言源代码 (7)

六、执行效果 (11)

七、总结 (13)

一、课程设计题目:教师工作量管理系统

二、课程设计要求:

a)使用C语言编写。

b)能够正常运行,拥有系统界面。

c)能正常进行操作从开始到结束。

d)用户操作方便

三、设计思路:

A. 系统介绍:

(1)输入教师教学信息,包括教师号、姓名、所授课程、班级数目、理论课时、实验课时。

(2)插入教师授课信息。

(3)教师工作量计算:

任务总课时之和。

(4)完整的教师信息显示。

B. 实现思路:

本程序主要由四个自定义函数和一个主函数组成,其中主函数以菜单的形式调用其它函数来实现要求的所有功能。下面分别进行说明。

1、输入教师教学信息函数

在教师信息文件(student.dat)不存在的情况下,首先由程序创建一个新文件,并将录入的教师信息写入该文件当中;具体的程序段如下:

{FILE *fp;

int n,i;

struct student stu[N];

if((fp=fopen("d:\\student.txt","w"))!=NULL)

{

printf("\n请输入要添加的教师信息数量,按回车键确认:");

scanf("%d",&n);

for(i=1;i<=n;i++)

{ printf("\n\n请输入第%d个教师的教师号、姓名、所授课程、班级数目、理论课时、实验课时,用空格分开,并按回车键确认:\n",i); scanf("%s%s%s%d%f%f",stu[i].num,stu[i].name,stu[i].kecheng,&stu[i].shumu,&stu[ i].lilun,&stu[i].shiyan);

fprintf(fp,"\n%s %s %s %d %f %f",stu[i].num,stu[i].name,stu[i].kecheng,stu[i].shum

u,stu[i].lilun,stu[i].shiyan);

}

}

fclose(fp);

}

2、插入教师授课信息函数

该函数的核心内容是对教师信息的补充,且保证与源文件数据格式一直,并保证数据的完整性。具体程序段如下:

void contine()

{ FILE *fp;

fp=fopen("d:\\student.txt","a");

struct student stu[N];

{int n,i,p;

reads(stu,&n);

printf("请输入要添加的教师信息数量,按回车键确认:");

scanf("%d",&p);

for(i=n+1;i<=n+p;i++)

{ printf("\n请输入第%d个教师的教师号、姓名、所授课程、班级数目、理论课时、实验课时,用空格分开,并按回车键确认:\n",i);

scanf("%s%s%s%d%f%f",stu[i].num,stu[i].name,stu[i].kecheng,&stu[i].shumu,&stu[ i].lilun,&stu[i].shiyan);

fprintf(fp,"\n%s %s %s %d %f %f",stu[i].num,stu[i].name,stu[i].kecheng,stu[i].shum u,stu[i].lilun,stu[i].shiyan);

}

}

fclose(fp);

}

3、教师工作量计算函数

通过switch语句判断教师所教的班级数目的不同,乘以不同的基数进而进行计算。同时显示出教师的所有信息。具体的程序段如下:

void show()

{ struct student stu[N];

int i,n;double s[20];

reads(stu,&n);

printf("\n************************教师信息显示*************************\n");

printf("\n序号教师号姓名所授课程班级数目理论课时实验课时工作量");

for(i=0;i<=n+1;i++)

{ switch(stu[i].shumu)

{ case 2: s[i]=1.5*(stu[i].lilun+stu[i].shiyan);break;

case 3: s[i]=2.0*(stu[i].lilun+stu[i].shiyan);break;

default:s[i]=2.5*(stu[i].lilun+stu[i].shiyan);

}

}

for(i=0;i

printf("\n%3d%6s%8s%8s%8d%10.2f%9.2f%9.2f\n",i+1,stu[i].num,stu[i].name,stu[i ].kecheng,stu[i].shumu,stu[i].lilun,stu[i].shiyan,s[i]);

getch();

} }

4、更改教师信息函数

可以实现对教师记录中除教师号以外的信息进行修改,进而修改其中的部分信息,具体的程序段如下:

void change()

{struct student stu[N],temp;

int n,i;

FILE *fp;

printf("\n请输入要更改信息的教师号,按回车键确认:");

scanf("%s",temp.num);

reads(stu,&n);

for(i=0;i

if(strcmp(temp.num,stu[i].num)==0)

break;

if(i>=n)

{printf("无此教师信息!");

return;

}

printf("\n请输入更改后教师的姓名、所授课程、班级数目、理论课时、实验课时,加空格,按回车键确认:\n");

scanf("%s%s%d%f%f",,temp.kecheng,&temp.shumu,&temp.lilun,&tem p.shiyan);

stu[i]=temp;

if((fp=fopen("d:\\student.txt","w"))==NULL)

{printf("打开文件失败!");

return;

}

for(i=0;i

fprintf(fp,"\n%s %s %s %d %f %f",stu[i].num,stu[i].name,stu[i].kecheng,stu[i].shum u,stu[i].lilun,stu[i].shiyan);

fclose(fp);

相关文档
最新文档