c语言分支结构程序设计教学设计 赛课,C语言程序设计课程设计---设计比赛评分系统.doc...

C语言程序设计课程设计---设计比赛评分系统

21

兰州交通大学新能源与动力工程学院

课 程 设 计

课程名称 c语言课程设计

题目 评分系统设计

专业 电力工程与管理

班级 1101

学号

姓名 刘宝华

成绩

指导老师 胡建宏

2012年 06 月 27 日

课程设计任务书

设计题目:设计比赛评分系统(给分原则:满分为10分;裁判给出分数后,去掉一个最高分和一个最低分后的平均分为选手的最后得分(精确到小数点后两位)。)

设计目的;

巩固和加深课堂所学知识;

将课本上的理论知识和实际应用有机的结合起来,培养同学们分析和解决实际问题的能力;

学会编制结构清晰、风格良好、数据结构选择恰当的c语言程序;

设计任务 :

功能:

设参赛人数为24人,裁判人数为8位;

录入参赛人员的资料和得分情况,最后得分;

按最后得分结果从高分到低分排序;

公布一、二、三等奖的得奖选手名单;

此系统能够查询选手的得分情况。

具体要求:

题目:

设计目的:

设计内容:写出简要的程序功能描述、程序运行条件所需工具软件、输入输出描述等。

程序结构:函数定义说明;用到的库函数的功能说明、调用关系说明、参数传送方式说明等;主要算法描述等(各模块功能实现)。

设计要求:绘制设计系统的结构层次图,各功能实现的算法、会直接勾画流程图;程序流程图、源程序;设计输入、输出界面。

(1)程序结构设计特点;(2)设计、调试程序心得、体会或不足。

源程序

#include

#include

#include

struct test

{int num;

float s;

};

main()

{

int i,j,k,bad,good;

float ts,sum=0,aver=0,tm[10];

struct test data[10],*p[10],*temp;

do {

sum=0;aver=0;

printf("Input 10 sorces------input 0(exit)\n");

for(i=0;i<10;i++)

{data[i].num=i+1;

scanf("%f",&data[i].s); /*分数的输入部分*/

if(data[0].s==0) printf(0);

}

for(i=0;i<10;i++) tm[i]=data[i].s;

for(i=0;i<10;i++) p[i]=&data[i];

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

{k=i;

for(j=i+1;j<10;j++)

if(tm[k]

k=j;

if(k!=i)

{ts=tm[i];tm[i]=tm[k];tm[k]=ts;

temp=p[i];p[i]=p[k];p[k]=temp;

} /*对输入分值进行排序*/

}

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

sum+=p[i]->s;

aver=sum/8; /*计算平均值的部分*/

printf("\n-----------------\n");

printf("The aver is:%.1f\n",aver);

printf("-----------------\n");

(fabs(p[0]->s-aver)>fabs(p[9]->s-aver))?(bad=0):(bad=9); /*通过绝对差值判断与平均值相差最大的裁判*/

double min=fabs(p[5]->s-aver);

good=5; /*暂定第六个为最公平裁判*/

for(i=4;i>0;i--)

{if((fabs(p[i]->s-aver))<=min)

{min=fabs(p[i]->s-aver); good=i; }

else break;

}

/*用拆半法先将前半部分与min比较*/

for(i=6;i<9;i++)

{if((fabs(p[i]->s-aver))<=min)

{min=fabs(p[i]->s-aver); good=i; }

else break;

}

/*用拆半法先将后半部分与min比较*/

printf("The worst pingwei is %d and the sorce is %.1f\n",

p[bad]->num,p[bad]->s);

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值