自动化C语言课程设计任务书.docx
《自动化C语言课程设计任务书.docx》由会员分享,可在线阅读,更多相关《自动化C语言课程设计任务书.docx(25页珍藏版)》请在冰豆网上搜索。
自动化C语言课程设计任务书
课程设计报告
课程名称C语言程序设计
课题名称教师评价系统数据库管理系统设计
专业自动化
班级1602班
学号***********
姓名**
指导教师******
2016年12月19日
湖南工程学院
课程设计任务书
课程名称C语言程序设计
课题教师评价系统数据库管理系统设计
专业班级自动化1602
学生姓名**
学号***
指导老师****
审批
任务书下达日期2016年12月19日
任务完成日期2016年12月30日
一、设计内容与设计要求
1.设计内容:
数据库管理系统设计
涉及的知识点:
①掌握并熟练运用C语言的基本数据类型与各种表达式,程序的流程控制语句;
②掌握函数的定义,函数的返回值,函数的调用,函数的形式参数和实际参数之间的关系;掌握变量的作用域与生存期,了解函数的作用域。
③掌握并熟练运用C语言的图形处理功能和库函数的应用。
④掌握数组的基本概念。
熟练掌握一维数组、二维数组的应用、掌握字符数组
与字符串的关系以及字符串的简单处理。
⑤掌握结构的概念,结构类型的定义,结构变量的定义和初始化,结构成员的表示,结构的赋值含义,结构与指针、函数的关系。
⑥掌握基本的文件操作。
题目5:
教师评价系统
输入教师评价信息,提供新增、修改和显示等功能。
成绩单如下:
教师编号:
long4bytes
教师姓名:
char20bytes
教师评分:
int4bytes
总分:
int2bytes
名次:
float4bytes
等级:
char8bytes
系统功能模块如下:
(1)建立教师评价数据库;
(2)菜单实现以下功能:
①计算每个教师的总成绩;
②按总成绩排定教师名次;
③给教师评定等级(85以上优秀,60~84合格,60以下不合格)
④新增一个教师信息进行评价
⑤按教师编号查询教师评价信息;
2.设计要求:
1)要求每个学生必须独立思考,认真并按时完成本课程设计所包含的所有内容;
2)要求学生必须按照课程设计报告的完整格式说明设计内容,设计任务分析过程和算法,给出程序流程图和全部源程序;
3)设计报告的完整格式应包括以下部分的内容:
1设计总体思路;
2总体模块框图;
3各个程序模块说明;
4程序流程图;
5程序清单;
6课程设计总结与体会(不少于400字)。
4)上机时要求必到,设计完成,必须演示程序,答辩并提交设计报告。
5)总评成绩由三部分组成:
报告占20%,平时占20%,课程设计题目各占30%。
二、进度安排
星期
1~2节
3~4节
5~6节
7~8节
晚上
17周星期六
上机编程
17周星期日
上机编程
18周星期二
上机编程
18周星期三
上机编程、答辩
附:
课程设计报告装订顺序:
封面、任务书、目录、正文、评分、附件(A4大小的图纸及程序清单)。
正文的格式:
一级标题用3号黑体,二级标题用四号宋体加粗,正文用小四号宋体;行距为22。
正文的内容:
一、课题的主要功能;二、课题的功能模块的划分(要求画出模块图);三、主要功能的实现(至少要有一个主要模块的流程图);四、程序调试;五、总结;六、附件(所有程序的原代码,要求对程序写出必要的注释)。
正文总字数要求在5000字以上(不含程序原代码)。
一、程序设计的总体思路............................1
1.1程序的功能
二、各个模块
三、主要功能的实现
3.1主函数模块voidmain()
3.2显示模块voiddisp()
3.3求和模块voidcount()
3.4分级模块voidsort()
3.5追加模块voidappe()
3.6修改模块voidmodi()
3.7查询模块voidquery()
3.8排序模块voidmc()
3.9退出模块voidexit()
四、程序调试及运行
4.1.主函数voidmain
4.2显示模块调试voiddisp()
4.3求和模块调试voidcount()\
4.4分级模块调试voidsort()
4.5追加模块调试voidappe()
4.6修改模块调试voidmodi()
4.7查询模块调试voidquery()
4.8排序模块调试voidmc()
4.9退出模块voidexit()
五、课程设计总结与体会
六、附件
一、程序设计的总体思路
1.1程序的功能
该程序利用主函数的swich函数来调用各个模块的功能。
switch(choice)
{
case1:
Input();break;(输入模块)
case2:
Disp();break;(显示模块)
case3:
Count();break;(求和模块)
case4:
Sort();break;(分级模块)
case5:
Append();break;(追加模块)
case6:
Query();break;(查询模块)
case7:
Modify();break;(修改模块)
case8:
mc();break;(排序模块)
case0:
exit(0);(退出模块)
}
二、各个模块
。
开始
主函数
从磁盘中获得数据
排序模块
显示模块
求和模块
追加模块
修改模块
查询模块
退出模块
把数据写入磁盘中
结束
排序模块
三、主要功能的实现
3.1voidmain主函数模块
voidmain()
{
intchoice;
menu:
printf("\t\t\t1.Inputteacher'sinformation\n");
printf("\t\t\t2.Displayteacher'sinformation\n");
printf("\t\t\t3.Count\n");
printf("\t\t\t4.Sort\n");
printf("\t\t\t5.Appendateacher'sinformation\n");
printf("\t\t\t6.Queryateacherinformation\n");
printf("\t\t\t7.Modifyteacher'sintformation\n");
printf("\t\t\t8.mc\n");
printf("\t\t\t0.Exitsystem\n\n");
printf("\t\t\tPleaseenterchoice(0~8)");
scanf("%d",&choice);
switch(choice)
{
case1:
Input();break;
case2:
Disp();break;
case3:
Count();break;
case4:
Sort();break;
case5:
Append();break;
case6:
Query();break;
case7:
Modify();break;
case8:
mc();break;
case0:
exit(0);
}
if(choice<0||choice>8)printf("\n\n\n\t\tpleasechooseagain!
\n\n");
gotomenu;
}
3.2voidDisp显示模块
voidDisp()
{inti;
printf("************************************************************\n");
printf("NumNameSco1Sco2Sco3SumMcGrade\n");
printf("************************************************************\n");
for(i=0;iprintf("%-5ld%-10s%-5d%-5d%-5d%-5d%-5d%-5s\n",s[i].num,s[i].name,s[i].sco[0],s[i].sco[1],s[i].sco[2],s[i].sum,s[i].mc,s[i].grade);
printf("************************************************************\n");
}
voidCount()
{
inti;
for(i=0;i{
s[i].sum=s[i].sco[0]+s[i].sco[1]+s[i].sco[2];
}
Disp();
}
3.3voidcount求和模块
voidCount()
{
inti;
for(i=0;i{
s[i].sum=s[i].sco[0]+s[i].sco[1]+s[i].sco[2];
}
Disp();
3.4voidsort分级模块
voidSort()
{
inti;
for(i=0;i{
if(s[i].sum>=85)
strcpy(s[i].grade,"优秀");
if(s[i].sum>60&&s[i].sum<85)
strcpy(s[i].grade,"合格");
if(s[i].sum<=60)
strcpy(s[i].grade,"不及格");
}
Disp();
3.5voidappe追加模块
voidAppend()
{
intn,i,j;
printf("----------------\n");
printf("|是否新增:
|\n");
printf("|1确定2取消|\n");
printf("-----------------");
scanf("%d",&n);
if(n==1)
{printf("请输入新增个数\n");
printf("****************\n");
scanf("%d",&i);
printf("编号姓名sco0sco1sco2\n");
printf("***********************************\n");
for(j=0;j
{
scanf("%ld%s%d%d%d",&s[size].num,s[size].name,&s[size].sco[0],&s[size].sco[1],&s[size].sco[2]);
printf("%ld%s%d%d%d\n",s[size].num,s[size].name,s[size].sco[0],s[size].sco[1],s[size].sco[2]);
size++;
}
printf("~~~~~~~~~~~~~~~~~~\n");
printf("|新增成功|\n");
printf("~~~~~~~~~~~~~~~~~~\n");
}
if(n==2)
printf("\n");
3.6voidmodi修改模块
voidModify()
{
intn,m;
longintnum;
printf("***********************\n");
printf("*请输入教师编号:
*\n");
printf("***********************\n");
scanf("%ld",&num);
for(n=0;nif(s[n].num==num)break;
if(n!
=size)
{
printf("************************************************************\n");
printf("sco0sco1sco2\n");
scanf("%d%d%d",&s[n].sco[0],&s[n].sco[1],&s[n].sco[2]);
}
elseif(n==size)
{
printf("***********************************\n");
printf("*输入编号不存在,请重新输入*\n");
printf("***********************************\n");
}
{
printf("***************************\n");
printf("*是否继续查询:
*\n");
printf("*1是2否*\n");
printf("***************************\n");
scanf("%d",&m);
if(m==1)
Modify();
if(m==2)
printf("\n");
}
Disp();
3.7voidquery查询模块
voidQuery()
{
intn,m;
longintnum;
printf("************************\n");
printf("*请输入教师编号:
*\n");
printf("************************\n");
scanf("%ld",&num);
for(n=0;nif(s[n].num==num)break;
if(n!
=size)
{
printf("NumNameSco1Sco2Sco3SumMcGrade\n");
printf("%-5ld%-10s%-5d%-5d%-5d%-5d%-5d%-5s\n",s[n].num,s[n].name,s[n].sco[0],s[n].sco[1],s[n].sco[2],s[n].sum,s[n].mc,s[n].grade);
}
elseif(n==size)
{
printf("***********************************\n");
printf("*输入编号不存在,请重新输入*\n");
printf("***********************************\n");
}
{
printf("***************************\n");
printf("*是否继续查询:
*\n");
printf("*1是2否*\n");
printf("***************************\n");
scanf("%d",&m);
if(m==1)
Query();
if(m==2)
printf("\n");
}
Disp();
3.8voidmc排序模块
voidmc()
{
structteacherp1;
inti,j;
for(i=0;ifor(j=i+1;jif(s[i].sum
{
p1=s[i];
s[i]=s[j];
s[j]=p1;
}
for(i=0;is[i].mc=i+1;
Disp();
}
四、程序调试及运行
4.1主函数voidmain()
4.2显示模块voiddisp()
4.3求和模块voidcount()
4.4分级模块voidsort()
4.5追加模块voidappe()
4.6修改模块voidmodi()
4.7查询模块voidquery()
4.8退出模块voidexit()
六、课程设计总结与体会
在科技高度发展的今天,计算机在人们之中的作用越来越突出。
而c语言作为一种计算机的语言,我们学习它,有助于我们更好的了解计算机,与计算机进行交流,因此,c语言的学习对我们尤其重要。
在这个星期里,我们专业的学生在专业老师的带领下进行了c语言程序实践学习。
在这之前,我们已经对c语言这门课程学习了一个学期,对其有了一定的了解,但是也仅仅是停留在了解的范围,对里面的好多东西还是很陌生,的在运用起来的时候还是感到很棘手,毕竟,万事开头难嘛。
上机实验是学习程序设计语言必不可少的实践环节,特别是c语言灵活、简洁,更需要通过编程的实践来真正掌握它。
对于程序设计语言的学习目的,可以概括为学习语法规定、掌握程序设计方法、提高程序开发能力,这些都必须通过充分的实际上机操作才能完成。
通过这次为数不多的几天计算机实践学习,我们了解了一些关于c语言的知识,理解巩固了我们c语言的理论知识,着对我们将来到社会工作将会有莫大的帮助。
同时它让我知道,只要你努力,任何东西都不会太难。
七、附件
#include"stdio.h"
#include"string.h"
#include"math.h"
#include"stdlib.h"
intsize=0;
structteacher
{longintnum;
charname[20];
intsco[3];
intsum;
intmc;
chargrade[8];
};
structteachers[100];
voidInput()
{FILE*fp;
intn=0;
fp=fopen("f:
\\1.txt","r");
while(fscanf(fp,"%ld%s%d%d%d\n",&s[n].num,s[n].name,&s[n].sco[0],&s[n].sco[1],&s[n].sco[2])!
=EOF)
{
n++;
}
fclose(fp);
size=n;
}
voidDisp()
{inti;
printf("************************************************************\n");
printf("NumNameSco1Sco2Sco3SumMcGrade\n");
printf("************************************************************\n");
for(i=0;iprintf("%-5ld%-10s%-5d%-5d%-5d%-5d%-5d%-5s\n",s[i].num,s[i].name,s[i].sco[0],s[i].sco[1],s[i].sco[2],s[i].sum,s[i].mc,s[i].grade);
printf("************************************************************\n");
}
voidCount()
{
inti;
for(i=0;i{
s[i].sum=s[i].sco[0]+s[i].sco[1]+s[i].sco[2];
}
Disp();
}
voidSort()
{
inti;
for(i=0;i{
if(s[i].sum>=85)
strcpy(s[i].grade,"优秀");
if(s[i].sum>60&&s[i].sum<85)
strcpy(s[i].grade,"合格");
if(s[i].sum<=60)
strcpy(s[i].grade,"不及格");
}
Disp();
}
voidAppend()
{
intn,i,j;
printf("----------------\n");
printf("|是否新增:
|\n");
printf("|1确定2取消|\n");
printf("-----------------");
scanf("%d",&n);
if(n==1)
{printf("请输入新增个数\n");
printf("****************\n");
scanf("%d",&i);
printf("编号姓名sco0sco1sco2\n");
printf("***********************************\n");
for(j=0;j
{
scanf("%ld%s%d%d%d",&s[size].num,s[size].name,&s[size].sco[0],&s[size].sco[1],&s[size].sco[2]);
printf("%ld%s%d%d%d\n",s[size].num,s[size].name,s[size].sco[0],s[size].sco[1],s[size].sco[2]);
size++;
}
printf("~~~~~~~~~~~~~~~~~~\n");
printf("|新增成功|\n");
printf("~~~~~~~~~~~~~~~~~~\n");
}
if(n==2)
printf("\n");
}
voidModify()
{
intn,m;
longintnum;
printf("***********************\n");
printf("*请输入教师编号:
*\n");
printf("***********************\n");
scanf("%ld",&num);
for(n=0;nif(s[n].num==num)break;
if(n!
=size)
{
printf("***************************************