谁能帮我用C语言设计一个有奖评选程序?题目是:十佳运动员评选活动(一、功能要求

作者&投稿:肇阅 (若有异议请与网页底部的电邮联系)
清华大学每年都有评十佳运动员吗?~

这一年,你可能有了更多自由支配的时间,这是你感到轻松和愉快,这段时光因此稍纵即逝。你的主要学习任务是在导师指导下查阅本方向的新近文献,研读有关的论文。在此基础上,撰写1至2篇《文献阅读报告》,请导师审阅后在研讨会上报告。对于论文的选择,宜由易到难,切忌好高骛远。尽管如此,你仍可能觉得多数论文像“天书”般难读。此时也不要急躁,多半原因可能是你的知识储备还不足,请补学相关的知识后再来读这些论文。遇到读不懂的论文可在同学之间讨论讨论,不应过多地依赖与请教老师,因为你读的论文老师未必很认真地读过。要做出有创新的研究工作,你首先要在某个专题上超越自己的导师。

给rmb100我给你做,分有屁用啊

#include "stdio.h"
#include "string.h"
#include "stdlib.h"

#define N 50
#define M 500

struct sporter
{
int num;
char name[20];
int vote_num;
}spt[N]; /* spt[N]中每个数组元素对应一个运动员信息,vote_num记录得票数目.*/
struct vote
{
char id[10];
char name[20];
char address[20];
int a[10];
int score_order;/*次序分 */
int score_hit;/*命中分*/
int score_sum;
}vot[M]; /* vot[M]中每个数组元素对应一张选票信息,score_sum记录该票命中率*/

void printf_back();
void menu();
void menu_vote();
int save_spt();
void printf_onevote(int j);
int load_vote();
void search_vote();

void search_vote()
{
int m,i,flag=0;
char vs[20];
printf("Please input vote_id:\n");
scanf("%s",&vs);

m=load_vote();
for(i=0;i<m;i++)
{
if(strcmp(vs,vot[i].id)==0)
{
flag=1;
printf_onevote(i);
}

}

if(flag==1)
printf("Found!");
else
printf("Not found!");
printf_back();

}

/*1_1. 加载候选运动员记录并可以计算记录个数的函数*/
int load_sporter() /*加载记录并可以计算记录个数的函数*/
{FILE *fp;
int i;
if((fp=fopen("sporter.txt","r"))==NULL) /*以输出打开方式,在此前的记录被覆盖*/
{printf("\nCannot open file\n");
return 0;
}
for(i=0;!feof(fp);i++)
fscanf(fp,"%d%s",&spt[i].num,&spt[i].name);
fclose(fp);
return(i); /*返回记录个数*/
}

/*1_2. 显示一个运动员记录的函数*/
void printf_one(int i)
{
printf("%2d %-17s %d \n",spt[i].num,spt[i].name,spt[i].vote_num);
}

/*1_3. 显示n个运动员记录的函数*/
void printf_n(int n)
{int j;
for(j=0;j<n;j++)
{
if(j%10==0)
{ printf("\n\nPass any key to contiune . . .");
getchar();
puts("\n\n");
}
printf_one(j);

}
getchar();
}

/*1_4. 加载候选选票记录并可以计算记录个数的函数*/
int load_vote()
{FILE *fp;
int i,j;
if((fp=fopen("vote.txt","r"))==NULL)
{printf("\nCannot open file\n");
return 0;
}
for(i=0;!feof(fp);i++)
{ fscanf(fp,"%s%s%s%",&vot[i].id,&vot[i].name,&vot[i].address);
for(j=0;j<10;j++)
fscanf(fp,"%d",&vot[i].a[j]);
}
fclose(fp);
return(i); /*返回记录个数*/
}

/*1_5. 显示一张彩票记录的函数*/
void printf_onevote(int j)
{
int i;
printf("vote_id:%s\n",vot[j].id);
printf("vote_name:%s vote_address:%s\n",vot[j].name,vot[j].address);
printf("vote_sporter:");
for(i=0;i<10;i++)
printf("%d, ",vot[j].a[i]);

printf("\n\n");

}

/*1_6. 显示n张彩票记录的函数*/
void printf_n_vote(int m)
{int j;
for(j=0;j<m;j++)
{
if(j%10==0)
{ printf("\nPass any key to contiune . . .");
getchar();
puts("\n\n");
}
printf_onevote(j);

}
getchar();
}

/*1_7. 唱票函数*/
void stat_vote(int m)
{
int i,j,k;
for(i=0;i<=m;i++)
{
for(j=0;j<10;j++)
for(k=0;k<20;k++)
if(vot[i].a[j]==spt[k].num)spt[k].vote_num++;

}

}

/*1_8. 依据得票数排序函数,使用选择排序法*/
void order_by_vote(int m)
{
int i,j,k;
struct sporter s;
for(i=0;i<m-1;i++)
{ k=i;
for(j=i+1;j<m;j++) if(spt[j].vote_num>spt[k].vote_num)k=j;
s=spt[i]; spt[i]=spt[k]; spt[k]=s;
}
}

/*1_9. 显示10佳信息及输出到文件函数*/
void print_spt10()
{
int i;
printf("\n\nThe 10 best sporter is:\n");
printf("order, num, name, vote_num\n");
for(i=0;i<10;i++)
{
printf("%5d: %3d, %10s, %d \n",i+1,spt[i].num,spt[i].name,spt[i].vote_num);
}
getchar();

save_spt();
}

/*1_10. 保存函数*/
int save_spt() /*保存函数,保存10佳运动员记录*/
{FILE *fp1;
int i;
if((fp1=fopen("spt10.txt","w"))==NULL) /*以输出打开方式,在此前的记录被覆盖*/
{printf("\nCannot open file\n");
return 0;
}
for(i=0;i<10;i++)
fprintf(fp1,"%d %s %d\n",spt[i].num,spt[i].name,spt[i].vote_num);
fclose(fp1);
return 1;
}

/*1_11. 计算命中率函数*/
int calc_hit(int m)
{FILE *fp;
int i,j,k;
struct sporter s[10];

for(i=0;i<10;i++)
{
s[i]=spt[i];

}

for(i=0;i<m;i++)
for(j=0;j<10;j++)
for(k=0;k<10;k++)
{
if(vot[i].a[j]==s[j].num) vot[i].score_order+=9-j; /*次序分*/
if(vot[i].a[j]==s[k].num) vot[i].score_hit+=10; /*命中分*/
vot[i].score_sum=vot[i].score_hit+vot[i].score_order;
}

if((fp=fopen("hit.txt","w"))==NULL)
{printf("\nCannot open file\n");
return 0;
}

for(i=0;i<m;i++)
fprintf(fp,"%s %d %d %d\n",vot[i].id,vot[i].score_order,vot[i].score_hit,vot[i].score_sum);
fclose(fp);
return 1;
}

/*1_12. 依据命中率对选票排序函数,使用选择排序法*/
void sort_vote(int m)
{
int i,j,k;
struct vote v;
for(i=0;i<m-1;i++)
{ k=i;
for(j=i+1;j<m;j++) if(vot[j].score_sum>vot[k].score_sum)k=j;
v=vot[i]; vot[i]=vot[k]; vot[k]=v;
}

}

/*1_13. 显示前10名获奖参选者信息函数*/
void print_vot10()
{
int i;
printf("\n\nThe 10 best voter is:\n");
printf("order, id, name, vote_sum\n");/*名次 选票号 姓名 命中率*/
for(i=0;i<10;i++)
{
printf("%5d: %s, %10s, %d \n",i+1,vot[i].id,vot[i].name,vot[i].score_sum);
}
getchar();

}

/*1_14. 保存前10名获奖参选者信息到文件的函数*/
int save_vot10()
{FILE *fp1;
int i;
if((fp1=fopen("vot10.txt","w"))==NULL) /*以输出打开方式,在此前的记录被覆盖*/
{printf("\nCannot open file\n");
return 0;
}
for(i=0;i<10;i++)
fprintf(fp1,"%5d: %s, %10s, %d \n",i+1,vot[i].id,vot[i].name,vot[i].score_sum);
fclose(fp1);
return 1;
}

int n,m;
/*1_15. 从文件读入运动员及选票记录*/
void readfiles()
{
n=load_sporter();/*从文件读入候选运动员记录*/
printf_n(n);/* 显示候选运动员记录*/

m=load_vote();/*从文件读入选票记录*/
}

/*1_16. 计算10佳运动员*/
void calctensp()
{
stat_vote(m); /*唱票*/
order_by_vote(n); /*依据得票数对运动员记录排序*/
print_spt10();/*输出10佳运动员信息*/
}
/*1_17. 计算10个获奖参选者*/
void stattenvoter()
{
calc_hit(m); /*计算选票的命中率*/
sort_vote(m); /*依据命中率对选票记录排序*/
print_vot10();/*显示10个获奖参选者信息*/
save_vot10();/*输出10个获奖参选者信息到文件*/
}

/*1_18. 统计函数*/
void stat()
{
readfiles();
calctensp();
stattenvoter();
}

/*2_1. 浏览选票函数*/
void browse_vote()
{
int k;
k=load_vote();
printf_n_vote(k);
printf_back();
}

/*2_2. /*查找选票函数*/

////////////////////////////////////

/////////////////////////////////

/*2_3. 核对选票函数*/
void check()
{
int n,w;
/*变量n保存选择菜单数字,w判断输入的数字是否在功能菜单对应数字范围内*/
do
{
puts("\t\t*********************MENU*********************\n\n");
puts("\t\t\t\t 1.browse_vote"); /*浏览所有彩票*/
puts("\t\t\t\t 2.search_vote");/*输入彩票号码查找该彩票信息*/
puts("\t\t\t\t 3.back");/*返回*/
puts("\n\n\t\t **********************************************\n");
printf("Choice your number(1-3): [ ]\b\b");
scanf("%d",&n);
if(n<1||n>3) /*对选择的数字作判断*/
{
w=1;
getchar();
}
else {w=0;}
}while(w==1);
/*选择功能*/
switch(n)
{case 1:browse_vote();break; /*统计模块*/
case 2:search_vote();break; /*查找选票模块*/
case 3:menu(); /*退出*/
}

}

/*公共函数*/
/*(1)任务结束时的选择退出还是返回*/
void printf_back()
{int w;
printf("\n\n\tSuccessful. ^_^\n\n");
printf("What do you want to do? \n\n\t1).Exit\t2).Back: [ ]\b\b");
scanf("%d",&w);
if(w==1) exit(0);
else menu_vote();
}
/*(2)任务结束时的选择退出还是返回主菜单*/
void menu()
{
int n,w;
/*变量n保存选择菜单数字,w判断输入的数字是否在功能菜单对应数字范围内*/
do
{
puts("\t\t*********************MENU*********************\n\n");
puts("\t\t\t\t 1.statistic"); /*统计*/
puts("\t\t\t\t 2.check_vote");/*核对选票*/
puts("\t\t\t\t 3.exit");/*退出*/
puts("\n\n\t\t **********************************************\n");
printf("Choice your number(1-3): [ ]\b\b");
scanf("%d",&n);
if(n<1||n>3) /*对选择的数字作判断*/
{
w=1;
getchar();
}
else w=0;
}
while(w==1);
/*选择功能*/
switch(n)
{case 1:stat();break; /*统计模块*/
case 2:check();break; /*核对选票模块*/
case 3:exit(0); /*退出*/
}

}
/*(3)任务结束时的选择退出还是返回核对彩票菜单*/
void menu_vote()
{
int n,w;
/*变量n保存选择菜单数字,w判断输入的数字是否在功能菜单对应数字范围内*/
do
{
puts("\t\t*********************MENU*********************\n\n");
puts("\t\t\t\t 1.browse_vote"); /*浏览所有彩票*/
puts("\t\t\t\t 2.search_vote");/*输入彩票号码查找该彩票信息*/
puts("\t\t\t\t 3.esc");/*返回*/
puts("\n\n\t\t **********************************************\n");
printf("Choice your number(1-3): [ ]\b\b");
scanf("%d",&n);
if(n<1||n>3) /*对选择的数字作判断*/
{
w=1;
getchar();
}
else {w=0;}
}while(w==1);
/*选择功能*/
switch(n)
{case 1:browse_vote();break; /*统计模块*/
case 2:search_vote();break; /*查找选票模块*/
case 3:exit(0); /*退出*/
}

}

main() /*****************主函数****************/
{
menu();
}

这是你们c语言期末考试的题目吧,小兄弟,学这行的就得自己多动手,也不是很难.编程过程也是乐趣无穷的,为什么不自己享受呢

问题补充:
1.每张选票可以选几个人,有无限制
2.每个人有几张选票


用c语言设计一个简单的加减乘除计算器
1、打开visual C++ 6.0-文件-新建-文件-C++ Source File。2、输入预处理命令和主函数:#include \/*函数头:输入输出头文件*\/,void main()\/*空类型:主函数*\/。3、定义变量:int a,b,d; \/*定义变量的数据类型为整型*\/,char c;\/*定义变量的数据类型为字符型*\/。4、输入四则运算式:pri...

如何设计C语言的循环结构
用do…..while语句实现循环: do…..while循环语句的一般形式: do 语句 while(表达式); 其中:语句就是循环体。 do…..while的执行过程是:先执行循环体,再检查判断条件是否成立,若成立,再执行循环体。 【注】:do…..while和while循环语句的区别,一个是至少执行一次,一个是可以一次也不执行...

c语言程序设计新猜数游戏,刚接触c语言不太会,有没有人能帮忙解答一下...
include <stdio.h> include <stdlib.h> include int main(){ int answer; \/\/ 预定的随机数 int guess; \/\/ 玩家猜测的数 int scoreA = 0, scoreB = 0, scoreC = 0; \/\/ 每位玩家的得分 int currentPlayer = 1; \/\/ 当前玩家编号,初始为1 int inputValid; \/\/ 标志变量,表示输入是...

用c语言设计一个超市管理系统程序,要求能添加商品,能查询商品,能购买商 ...
\/ include<stdio.h> include<string.h> \/\/欢迎界面\/\/ void welcome();\/\/功能浏览\/\/ void mainMenu();\/\/购物结算\/\/ void saleCalc();\/\/进货管理\/\/ void addGoods();\/\/修改信息 void updateGoods();\/\/显示商品\/\/ void showGoods();\/\/删除商品\/\/ void deleteGoods();\/\/查询商品\/\/ int ...

c语言设计一个简单的计算器程序
#include<stdio.h>//计算器 voidmenu()//自定义的菜单界面 { printf("---\n");printf("请输入你的选择\n");printf("1.+\n");printf("2.-\n");printf("3.*\n");printf("4./\n");printf("---\n");} intmain(){ int...

如何用C语言编写流程图?
1、传统流程图:2、思路:比大小,10个数,标上标签,依次为1,2,3...10。然后第1个跟第二个比较大小,如果第1个大于第二个,那么交换下1跟2的标签,如果第1个不大于2第二个,不交换标签,接着比较第二个跟第三个,比完最后一个为止。10标签的就是最大的那个数。3、用C语言方法:读入a[...

C 程序设计 用C语言编写以下程序
观察除法计算的过程:除不尽时,则余数乘以10,继续除,除不尽继续余数乘以10,继续除……所以在这个过程中如果前面出现过余数a,在n次重复计算后又出现余数a,那么这个商必然是循环小数,循环的小数就是两个a之间的商 所以这个题时就可以这么做,找到余数相等时即商进入了循环 include <stdio.h>#...

数组程序设计(用C语言写)
void fun(int *b ,int n){ int i,j;for(i=0;b[i]<n;i++);for(j=22;j>i;j-- )b[j]=b[j-1];b[i]=n;} void main(){ int a[23]={0};int i,j,t,n;\/*随机产生数组并使数组无相等元素*\/ srand( (unsigned)time( NULL ) );\/*设置种子使每次执行随机函数产生数组不...

谁能帮我设计一个C语言程序啊??
C语言程序设计 课程设计题目1链表操作, 本题中已经定义了相应的数据结构用来存放学生的学号、姓名、三门课的成绩,并设计了一个简单的菜单;请完成以下设计:(1)创建一个链表;void create(),有两种方式,1) 可以从键盘上接收数据创建一个链表,2) 也可以从一个文件中读取数据,创建一个链表。 (文件中内容格式自己定...

用c语言设计一个程序统计一个班的学生成绩
用c语言设计一个程序统计一个班的学生成绩最多35人 要球能实现1。由键盘输入每个学生的学好和四门课程成绩 2。计算每个学生的平均分和总分。3按总分从高到低派出名次,并按名次输出每个学生的学好 各科成绩 平均分和总分 4 。根据用户要求输入课程号显示该门课... 展开 sum...

黄山市19633884955: c语言 选票 -
竹谢硫酸: #include <stdio.h>#include <stdlib.h>#include <memory.h>#include <malloc.h>#include <string.h>#include <conio.h>/* 存储运动员信息的文件 */#define DATA1 "data1.txt" /* 存储选票信息的文件 */#define DATA2 "data2.txt" typedef struct ...

黄山市19633884955: 谁可以帮我用C语言写一个程序
竹谢硫酸: #include "stdio.h" #include "math.h" int main() { int n,i; printf("please input N:\n");//输入这个数 scanf("%d",&n);//输入 for(i=2;i<=sqrt(n+1);i++)//把这个数用来除以2到这个数的平方根 { if(n%i==0)//如果结果为0 表示除的尽,不是素数 ...

黄山市19633884955: 谁帮我编个c语言程序? -
竹谢硫酸: /*先定义常量M和N,你可以随意修改*/#define M 9#define N 8/*先写个过程,输出数组*/void print_arr(int a[M][N]){int i,j;for (i=0;i<N;j++) print...

黄山市19633884955: 用C语言编写一个程序,只要符合要求我继续加分.要详细的我黏贴一下就好用的. -
竹谢硫酸: 下列程序,用TC2.0编译、调试成功.#include <stdio.h> void main(void) { unsigned char i = 0, IN_temp, IN_num[255], IN_amount[10] = {0,0,0,0,0,0,0,0,0,0}; float Total = 0, Aver; while (1) { printf("\n\nPlease Input 0~9, Others is Exit.\n\n"); scanf("...

黄山市19633884955: 谁能帮我设计一个多功能计算器(C语言程序设计)实现功能:1)具备
竹谢硫酸: #include #include #include #include #define EXCAPE 27 #define ENTER 13 main(){ int press,i,x,y,x1,y1,ch_z=0; int dian=0; char ch='0'; /*input + - * / */ char emp[80],sum[80],...

黄山市19633884955: 高分帮我做一个程序设计了谢谢啦~~~~要求用C语言做这个题目的:
竹谢硫酸: 用C语言好难做出好的界面,希望能用其他语言做,如:vb,java等+数据库,这就会简单一些.

黄山市19633884955: 谁可以用C语言帮我设计个程序 -
竹谢硫酸: 为了不使程序看起来复杂,我还是给你两份,一份只有程序不带文字解释,一份带文字解释,不懂就看有文字解释的那份.如果还是有什么不懂可以再联系我.第一份:#include<stdio.h>main(){ int a,b,x,m,n; printf("输入两个非零自然数数并用...

黄山市19633884955: 谁能帮我编一个C语言程序
竹谢硫酸: #include <windows.h> #include <process.h> #include <conio.h> #include <tchar.h> HANDLE hThrd1, hThrd2; unsigned int __stdcall ThrdProc1(void* args) { static TCHAR szBuf[64]; DWORD time = *(int*)args + 1; COORD coord = {31, 10}; ...

黄山市19633884955: 哪位大哥可以帮我用C语言写一个简单的程序,很简单的~~拜托大家了~~~
竹谢硫酸: 这样写简单些、楼主该看得懂 #include<stdio.h> #include<math.h> int main(){ int a,b,c,d; printf("please enter a,b,c,d\n"); scanf("%d,%d,%d,%d",&a,&b,&c,&d); printf("|(a+b)*(c+d)+2|=%d\n",fabs((a+b)*(c+d)+2));}

黄山市19633884955: 帮我编一个C语言编程,如果可以顺便讲解下,谢谢! -
竹谢硫酸: #include int main(void){ int a[100]; int i = 0, sum = 0; while (scanf("%d", &a[i]) != EOF 0) i++; ...

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网