资源描述
综合评定系统
C语言课程设计报告
(2010 —— 2011 年度第2学期)
题 目 综合测评系统
院 系 电气信息学院
专 业 计算机科学技术
年 级 2010级
指 导 教 师 颜 烨
组 员 黄欢 王雅
2011年 7 月 1 日
总成绩
教师签名
第 168 页 共 168 页
目 录
一、问题要求及任务描述…………………………………4
1.1 题目要求………………………………………………4
1.2 主要任务………………………………………………4
二、总体设计……
2.1 程序流程图……………………………………………
三、详细设计………………………………………………
3.1 数据编码设计…………………………………………
3.2 功能设计………………………………………………
3.3 系统运行环境…………………………………………
四、程序清单和执行结果…………………………………
4.1 菜单函数………………………………………………
4.2 输入函数………………………………………………
4.3 输出函数………………………………………………
4.4 查询函数………………………………………………
4.5 修改函数………………………………………………
4.6 存储函数………………………………………………
4.7 排名函数………………………………………………
4.8 另增函数………………………………………………
4.9 删除函数………………………………………………
五、调试与测试……………………………………………
5.1 调试中的错误…………………………………………
5.2 测试中的错误…………………………………………
六、程序设计总结和结论…………………………………
七、参考文献………………………………………………
八、小组成员分工说明……………………………………
《综合测评系统》
一、问题要求及任务描述
1.1题目要求
测算每个同学的期末平均加权成绩和综合评定的总分。
1.2 设计要求
测出每个同学的期末平均加权成绩和综合评定的总分,对同学的各门测评成绩的输入,输出,查询,删除,修改,增加,存储,导入,排名。
二、总体设计
select() 流程图:
开始
YES
n=1
n=2
select1()
select2()
关于
结束
NO
进入
退出
n=4
n=3
输入n
NO
NO
YES
YES
YES
3.1数据编码设计
struct cj1
{
int num;
char name[9];
double score[12];
}a[21];
struct cj2
{
int num;
char name[9];
double score[12];
}b[21];3.2功能设计
1. 菜单函数 void select1(); void select2();
select1() 程序流程图如下:
YES
YES
YES
YES
YES
YES
YES
NO
NO
NO
NO
NO
NO
NO
n=1
输入n
输入
n=2
输出
n=3
查询修 改
n=4
n=6
储存
n=8
导入
n=5
删除
另增
返回至select1()
进入
开始
n=7
YES
YES
n=9
排名
退出
NO
2. 输入函数 [void input1 ();] 程序流程图:
开始
进入
NO
YES
NO
YES
n=1
输入n
学号
姓名
C语言
英语
高数
线代
结束
计导
是否输入成绩
n=0
退出
YES
NO
开始
[void input2 ();]
进入
NO
YES
YES
NO
n=1
输入n
学号
姓名
辅导员分
加权
操行
思政
结束
体育
是否输入成绩
n=0
退出
YES
NO
心理
社会工作
获奖
学术
奖惩
3. 输出函数 [void shuchu1();]
输出
高数
线性
加权分
C语言
英语
返回至select1()
学号
开始
进入
姓名
计导
平均分
[void shuchu2();]
输出
辅导员分
加权
学术
体育
心理
返回至 select2()
操行
开始
进入
思政
社会
奖励
学号
奖惩
总分
姓名
4. 查询函数 [void chaxun1();]
YES
YES
YES
YES
NO
NO
k=1
输入k
按学号查询及修改
k=2
按姓名查询及修改
k=3
按平均分查询及修改
k=4
返回至select1()
进入
开始
NO
NO
xmchaxun1()
pjchaxun1()
xhchaxun1()
void xhchaxun1()
开始
进入
输入x
NO
YES
x==a[j].num
output1()
chaxun1()
YES
NO
n==1
xiugai1()
chaxun1()
void xmchaxun1()
YES
NO
输入x
进入
开始
strcmp(a[i].name,x)==0
output1()
n==1
xiugai1()
YES
chaxun1()
chaxun1()
NO
void pjchaxun1()
YES
NO
输入x
进入
开始
x==a[i].score[6]
output1()
n==1
xiugai1()
YES
chaxun1()
chaxun1()
NO
5. 修改函数 [void xiugai1()]
YES
YES
YES
YES
YES
YES
YES
NO
NO
NO
NO
NO
NO
n=1
输入k
学号修改
n=2
姓名修改
n=3
高数修 改
n=4
n=6
英语修改
n=8
计导修改
n=5
线代修改
c语言修改
返回至select1()
进入
开始
n=7
YES
NO
NO
6. 排序函数 [void paiming1();]
返回至select1()
进入
开始
7. 删除函数 [void shanchu1();]
YES
YES
YES
NO
NO
k=1
输入k
按学号删除
k=2
按姓名删除
k=3
返回至select1()
进入
开始
NO
8. 另增函数 [void lingzeng1();]
YES
YES
NO
NO
n=0
输入n
n=1
input1()
返回至select1()
进入
开始
9. 存储函数 [void load1();]
进入
开始
返回至select1()
10. 导入函数 [void read1();]
进入
开始
返回至select1()
3.3系统运行环境与数据库设计
Microsoft Visual C++6.0
四、源程序清单和执行结果:
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
struct cj1
{
int num;
char name[9];
double score[12];
}a[21];
struct cj2
{
int num;
char name[9];
double score[12];
}b[21];
int biaohao1=-1;
int biaohao2=-1;
void select(); /*选择菜单函数的声明********/
void select1(); /*选择菜单函数1的声明*******/
void select2(); /*选择菜单函数2的声明*******/
void input1(); /*输入功能函数1的声明*******/
void input2(); /*输入功能函数2的声明*******/
void output1(); /*输出功能函数1的声明*******/
void output2(); /*输出功能函数2的声明*******/
void load1(); /*储存功能函数1的声明*******/
void load2(); /*储存功能函数2的声明*******/
void read1(); /*导入功能函数1的声明*******/
void read2(); /*导入功能函数2的声明*******/
void chaxun1(); /*查寻功能函数1的声明*******/
void xhchaxun1(); /*学号查寻功能函数1的声明***/
void xmchaxun1(); /*姓名查寻功能函数1的声明***/
void pjchaxun1(); /*平均分查寻功能函数1的声明*/
void chaxun2(); /*查寻功能函数2的声明*******/
void xhchaxun2(); /*学号查询功能函数2的声明***/
void xmchaxun2(); /*姓名查询功能函数2的声明***/
void pjchaxun2(); /*平均分查询功能函数2的声明*/
void xiugai1(); /*修改功能函数1的声明*******/
void xiugai2(); /*修改功能函数2的声明*******/
void paiming1(); /*排名功能函数1的声明*******/
void paiming2(); /*排名功能函数2的声明*******/
void lingzeng1(); /*另增功能函数1的声明*******/
void lingzeng2(); /*另增功能函数2的声明*******/
void shanchu1(); /*删除功能函数1的声明*******/
void shanchu2(); /*删除功能函数2的声明*******/
void guanyu(); /*关于功能函数的声明********/
4.1
void main()
{
select();
}
void select()
{
int n;
system("cls");
printf("---------------------------------------------------------------------------------------------------------\n");
printf("- ****** 学生成综合素质测评系统 ****** -\n");
printf("- -\n");
printf("- 1.学生科学文化素质(期末加权平均成绩)系统 -\n");
printf("- 2.城科学生综合素质测评系统 -\n");
printf("- 3.关于 -\n");
printf("- 4.退出 -\n");
printf("---------------------------------------------------------------------------------------------------------\n");
printf("请你输入你的选择(1--3):");
scanf("%d",&n);
while(!(n>=1 && n<=4))
{
printf("输入错误,请重新输入你的选择:");
scanf("%d",&n);
}
switch(n)
{
case 1: select1();break;
case 2: select2();break;
case 3: guanyu();break;
case 4:exit(0); break;
}
}
/***************选择界面*******************************************************************************************选择界面**************************/
void select2()
{
int n;
system("cls");
printf("---------------------------------------------------------------------------------------------------------\n");
printf("- 欢迎来到城科学生综合素质测评系统 -\n");
printf("- -\n");
printf("- 1.输入各测评成绩 -\n");
printf("- 2.输出各测评成绩 -\n");
printf("- 3.查询及修改成绩 -\n");
printf("- 4.删除成绩 -\n");
printf("- 5.另增成绩 -\n");
printf("- 6.成绩存储 -\n");
printf("- 7.成绩导入 -\n");
printf("- 8.进入排名表 -\n");
printf("- 9.退出程序 -\n");
printf("---------------------------------------------------------------------------------------------------------\n");
printf("请你输入你的选择(1--9):");
scanf("%d",&n);
while(!(n>=1 && n<=9))
{
printf("输入错误,请重新输入你的选择:");
scanf("%d",&n);
}
switch(n)
{
case 1: input2();select2();break;
case 2: output2();select2();break;
case 3: chaxun2();break;
case 4: shanchu2();select2();break;
case 5: lingzeng2();select2();break;
case 6: load2();select();break;
case 7: read2();select();break;
case 8:paiming2();select2();break;
case 9:select();break;
}
}
--储存完毕!
void select1()
{
int n;
system("cls");
printf("---------------------------------------------------------------------------------------------------------\n");
printf("- 欢迎来到城科学生科学文化素质系统 -\n");
printf("- -\n");
printf("- 1.输入成绩 -\n");
printf("- 2.输出成绩 -\n");
printf("- 3.查询及修改成绩 -\n");
printf("- 4.删除成绩 -\n");
printf("- 5.另增成绩 -\n");
printf("- 6.成绩存储 -\n");
printf("- 7.成绩导入 -\n");
printf("- 8.退出程序 -\n");
printf("- 9.进入排名表 -\n");
printf("---------------------------------------------------------------------------------------------------------\n");
printf("请你输入你的选择(1--9):");
scanf("%d",&n);
while(!(n>=1 && n<=9))
{
printf("输入错误,请重新输入你的选择:");
scanf("%d",&n);
}
switch(n)
{
case 1: input1();select1();break;
case 2: output1();select1();break;
case 3: chaxun1();break;
case 4: shanchu1();select1();break;
case 5: lingzeng1();select1();break;
case 6: load1();select();break;
case 7: read1();select();break;
case 8:select(); break;
case 9:paiming1();select1();break;
}
}
void guanyu()
{
int n;
system("cls");
printf("---------------------------------------------------------------------------------------------------------\n");
printf("- ---------- ——————关于———— -------- -\n");
printf("- -\n");
printf("- 1.关于作者 -\n");
printf("- 2.关于本次程序设计实践的感想 -\n");
printf("- 3.关于其他 -\n");
printf("- 4.退出 -\n");
printf("---------------------------------------------------------------------------------------------------------\n");
printf("请你输入你的选择(1--4):");
scanf("%d",&n);
while(!(n>=1 && n<=4))
{
printf("输入错误,请重新输入你的选择:");
scanf("%d",&n);
}
switch(n)
{
case 1: {
system("cls");
printf(" \n");
printf(" \n");
printf(" \n");
printf(" \n");
printf(" 本次的程序设计实践的作者:黄欢 王雅\n");
printf(" 有任何意见或疑问请致电15310839481 黄先生\n");
system("pause");
select();
printf(" \n");
}break;
case 2: {
system("cls");
printf(" \n");
printf(" \n");
printf(" \n");
printf(" \n");
printf(" 一转眼这一学期就过去了,我们的大一生活很快画上了一个句号.看看现在那些冲忙准备行李,为各自的前程\n");
printf(" 到处奔走的学哥学姐么,我不禁感叹,时间匆匆的过,倘若你在这四年里,真的没有学到该学的东西,那你会失去\n");
printf(" 很多。记得上学期的C语言期末考试,老师的题目基本上是讲过的,有些同学仍然考的很糟.其实,我觉得老师们,\n");
printf(" 你可以多出一些灵活的题目让我们考考、换着角度讲一些题目,这样可能有更好的教学效果。有些同学的什么都没\n");
printf(" 到,甚至根本分不清C与C++,他们可能平时逃课,课本永远是新的,从来就没有用过草稿纸;平时可能上网,电脑\n");
printf(" 一开一关,一天就过去了;他们可能平时爱睡觉,爱沉浸于混沌的梦中;他们可能只想浑浑噩噩的过日子,过一天\n");
printf(" 是一天,什么都不管..这样的你,怎么考的了试?这样的你,能学会什么?这样的你,四年有这样的收获?这样的\n");
printf(" 你,是你想要的生活?\n");
printf(" 与上学期考试的方法相比,这次大不相同,实践可能更适合我们这些初学者 .在写代码的时候,你可能被这样\n");
printf(" 那样的问题所困扰着,但是当你真的找出Errors与Warnings,一一破解时,你会发现异样的神奇,编译从此便的有\n");
printf(" 趣,只想一直写下去....我真希望班上所有的同学会有同感,但有时现实往往令人失望 。虽说完成这次设计的时间\n");
printf(" 是在考试期间,写代码的时候也要复习其他功课,但我发现,真有同学现在连C都没进过,编程过..没到最后时间,\n");
printf(" 就绝不想何时去完成,你可以说他们不会写,你也可以说他们没时间,但是他们就连去学着写的勇气都没有,还用\n");
printf(" 去想他们最后是如何完成的吗?\n");
printf(" 有人说VC与JAVA比起来,就好比是石器时代与工业时代相比,但你连最简单最基本的都不会, 那些复杂的,难\n");
printf(" 的你就一定会?我相信真的用心去学,用好的方式与方法,会有收获的,哪怕我们什么都不会!我觉得,不管学校多\n");
printf(" 么不好,不管专业多么冷门,既然来到了,为什么不能好好的学呢?学习是无止境的,它无处不在...\n");
printf(" 在本次实践设计中,懂了很多 .当今的大型软件开发,不可能是一个人的任务,懂的团队合作,有时会事半功\n");
printf(" 倍,收益不仅体现于此.当然,在这次的设计中,也认识到了自己存在的不足,会的太少,编写有限...留给了我们\n");
printf(" 更多大的学习空间。在编写过程中,也出现了自己的一些主观思维,比如在各个独立函数中,paiming1()函数中,自\n");
printf(" 己宁愿繁琐的用t1,t4,t5,t6,t7,t8,t9定义冒泡法所需的变量..望自己在今后里逐步改正.....\n");
printf(" 总之一句话,感谢帮助我们的老师!希望,我们越来越好!!!\n");
system("pause");
select();
printf(" \n");
}break;
case 3:{
system("cls");
printf(" \n");
printf(" \n");
printf(" \n");
printf(" \n");
printf(" \n");
printf(" \n");
printf("
展开阅读全文