c语言课程设计报告

2.运用C语言开发一个“比赛评分系统”。评委打分原则:满分10分,评委打分后,去掉一个最高分和一个最低分,最后的平均分为参赛选手的最后得分(精确到小数点后两位)。要求该系统实现以下功能:

① 假设参赛人数为20人,评委为10人。(有兴趣的同学可拓展为参赛人数为n人,评委为m人)。并对参赛选手和评委分别编号,序号从1开始,顺序编号。

② 选手按编号顺序依次参加比赛,统计最后得分。

③ 比赛结束,按从高分到低分每行5人依次打印选手的得分情况。 ④ 公布选手获奖。取一等奖1名,二等奖2名,三等奖3名。

【算法分析】(用文字或流程图进行描述)

使用for循环嵌套输出每位选手的评分,然后用冒泡排序法排序,然后输出得奖人。

【源程序代码】 #include<> #include<> void main()

{ int max(float b[]); int min(float b[]); int i1,k1,j1,t,t1,b1; float tt; int ii, jj; int flag = 1; int k,m,i,b,j; float sum=0; float a[10],c[20];

printf(\评分系统\\n\

printf(\

for(b=0;b<20;b++) {

printf(\号选手:\\n\

for(i=0;i<=9;i++) {

printf(\号评委的评分是:\ scanf(\

sum+=a[i]; }

for(j=0;j<10;j++) {

c[j]=sum/10; }

printf(\ k=max(a); m=min(a);

printf(\

printf(\ printf(\最高分是:%g 最低分是:%g\\n\\n\

printf(\删除最高分最低分之后的总分是: %g\\n\\n\ printf(\这位选手的平均分是:%g\\n\\n\

c[b] = (sum-a[k]-a[m])/10;

sum = 0;

printf(\ }

for(b1=0;b1<20;b1++) {

printf(\第%d位选手的分数是:%g\\n\ }

for(ii=0;ii<20;ii++) {

for(jj=0;jj<20-ii-1;jj++) {

if(a[jj]>a[jj+1]) //如果后面的数字大于前面的数字 {

tt=c[jj];

c[jj]=c[jj+1];

c[jj+1]=tt; //就把两个数交换 } }

printf(\ }

printf(\第一名%g \

printf(\第二名%g \printf(\第三名%g \ }

int max(float b[])//最大值 { int i,k=0;

float max=b[0]; for(i=0;i<10;i++) {

if(max

return k; }

int min(float b[])//最小值 {

int i,m=0;

float min=b[0]; for(i=1;i<10;i++) {

if(b[i]

return m; }

【编译示图】(示图中要有0 error,0 warning的提示)

【运行结果示图】

设计任务实现过程

【任务描述】

运用C语言开发一个“小学生算术四则运算测试系统”。该系统是让计算机充当一位给小学生布置作业的算术老师,为学生出题并阅卷。该系统要求实现下列功能:

①为小学生出题(分别进行+、-、*、/等不同运算)。

②学生做题后,进行评阅。学生每做一题后,评阅给出“答题正确,很好”或“答题错误,重做”等信息。

③加、减、乘、除运算功能可以自由选择实现。 ④运算数值可控制在两位数的四则运算范围内。

【算法分析】(用文字或流程图进行描述)

用随机函数取出两个数1-100,用while循环判断是否重做,用switch(选择加、减、乘、除运算,然后输出结果。

【源程序代码】 #include<> #include <> #include <> int main() {

int a=0,b=1,x=0,y=0,i=0,x1=0,y1=0;

srand((unsigned int)time(NULL));//设置当前时间为种子 while(a

a=rand()0+1; ;

b=rand()0+1; }

printf(\请选择 \\n1 加法运算,\\n2 减法运算,\\n3 乘法运算,\\n4 除法运算\\n\ scanf(\ x1=x;

switch(x1) {

case 1:

while(i==0) {

printf(\请计算 %d+%d=\ scanf(\ y=y1;

if(y==(a+b)) {

printf(\答案正确\\n\ i=1; } else {

printf(\答案错误,重做\\n\

i=0; } } break;

case 2:

while(i==0) {

printf(\请计算 %d-%d=\ scanf(\ y=y1;

if(y==(a-b)) {

printf(\答案正确\\n\ i=1; } else {

printf(\答案错误,重做\\n\ i=0; } } break;

case 3:

while(i==0) {

printf(\请计算 %d*%d=\

scanf(\ y=y1;

if(y==(a*b)) {

printf(\答案正确\\n\ } else {

printf(\答案错误,重做\\n\ } } break;

case 4:

while(i==0)

联系客服:779662525#qq.com(#替换为@) 苏ICP备20003344号-4