📄 xitong.txt
字号:
#include<stdio.h>
#define N 50
struct sporter
{
int num;
char name[20];
int vote_num;
}spt[N];
struct vote
{
char id[10];
char name[20];
char address[20];
int a[10];
int score_order;
int score_hit;
int score_sum;
}vot[N];
int n,m;
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);
}
void printf_one(int i)
{
printf("%2d %-17s %d\n",spt[i].num,spt[i].name,spt[i].vote_num);
}
void printf_n(int n)
{int j;
for(j=0;j<n;j++)
{if(j%10==0)
{printf("\n\nPass any key to contiune ...");
getch();
puts("\n\n");
}
printf_one(j);
}
getch();
}
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);
}
void readfiles()
{
n=load_sporter();
printf_n(n);
m=load_vote();
}
int 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++;
}
}
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;
}
}
void print_spt10()
{
int i;
printf("\n\n The 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);
}
getch();
save_spt();
}
int save_spt()
{FILE *fp1;
int i;
if((fp1=fopen("spt10.txt","w"))==NULL)
{printf("\nCannot open file\n");
return NULL;
}
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;
}
void calctensp()
{
stat_vote(m);
order_by_vote(n);
print_spt10();
}
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 NULL;
}
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;
}
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;
}
}
void print_vot10()
{
int i;
printf("\n\n The 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);
}
getch();
}
int save_vot10()
{FILE *fp1;
int i;
if((fp1=fopen("vot10.txt","w"))==NULL)
{printf("\nCannot open file\n");
return NULL;
}
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;
}
void stattenvoter()
{calc_hit(m);
sort_vote(m);
print_vot10();
save_vot10();
}
void stat()
{
readfiles();
calctensp();
stattenvoter();
}
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");
}
void printf_n_vote(int m)
{ int j;
for(j=0;j<m;j++)
{
if(j%10==0)
{ printf("\npass any key to continue...");
getch();
puts("\n\n");
}
printf_onevote(j);
}
getch();
}
void browse_vote();
void search_vote();
void menu_vote()
{
int 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();
}
}
void printf_back()
{int k,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();
}
void browse_vote()
{
int k;
k=load_vote();
printf_n_vote(k);
printf_back();
}
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();
}
void menu();
void check()
{
int 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.break");
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();
}
}
void menu()
{
int n,w;
do
{
puts("\t\t***************MENU****************\n\n");
puts("\t\t\t\t 1.statistic");
puts("\t\t\t\t 2.check_voet");
puts("\t\t\t\t 3.exit");
puts("\n\n\t\t*********************************\n");
puts("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);
}
}
main()
{
int n,w;
do
{
puts("\t\t***************MENU****************\n\n");
puts("\t\t\t\t 1.statistic");
puts("\t\t\t\t 2.check_voet");
puts("\t\t\t\t 3.exit");
puts("\n\n\t\t*********************************\n");
puts("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);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -