thrid commit

master
unknown 6 years ago
parent e8a7a92d95
commit 63e29d14b8

@ -39,6 +39,9 @@ struct xmform1{
char mc4[10]; char mc4[10];
char mc5[10]; char mc5[10];
}; };
struct xmform2{ struct xmform2{
char name[20]; char name[20];
char mc1[10]; char mc1[10];
@ -46,6 +49,7 @@ struct xmform2{
char mc3[10]; char mc3[10];
}; };
struct schoolform{ struct schoolform{
char name[20]; char name[20];
char id[10]; char id[10];
@ -53,6 +57,7 @@ struct schoolform{
int scoer=0; int scoer=0;
}; };
struct studentform{ struct studentform{
char name[20]; char name[20];
char xb[10]; char xb[10];
@ -66,6 +71,8 @@ struct studentform{
} xm; } xm;
int allscoer; int allscoer;
}; };
int ggy(struct studentform student[]){ int ggy(struct studentform student[]){
printf("请输入参加比赛的选手个数\n"); printf("请输入参加比赛的选手个数\n");
int n; int n;
@ -112,6 +119,7 @@ struct studentform{
fprintf(fp,"%10s%5s%10s%5d%10s%10s",student[i].name,student[i].xb,student[i].number,student[i].age,student[i].name1,student[i].xm.name); fprintf(fp,"%10s%5s%10s%5d%10s%10s",student[i].name,student[i].xb,student[i].number,student[i].age,student[i].name1,student[i].xm.name);
} }
printf("存储完成\n"); printf("存储完成\n");
fclose(fp);
printf("开始创造打开密匙\n"); printf("开始创造打开密匙\n");
if((fp=fopen("studentrs","wb+"))==NULL){ if((fp=fopen("studentrs","wb+"))==NULL){
printf("打开密匙创造未成功\n"); printf("打开密匙创造未成功\n");
@ -121,9 +129,12 @@ struct studentform{
} }
fprintf(fp,"%5d",n); fprintf(fp,"%5d",n);
fclose(fp); fclose(fp);
printf("********************\n"); printf("********************\n");}
return n; return n;
}} }
int ggy1(struct schoolform school[]){ int ggy1(struct schoolform school[]){
printf("请输入参加比赛的学校个数\n"); printf("请输入参加比赛的学校个数\n");
int n; int n;
@ -179,6 +190,8 @@ struct studentform{
} }
return n; return n;
} }
int ggy2(struct xmform1 xm1[],struct studentform student[],struct schoolform school[],int schoolgs,int studentrs){ int ggy2(struct xmform1 xm1[],struct studentform student[],struct schoolform school[],int schoolgs,int studentrs){
printf("请输入这一类项目的个数:\n"); printf("请输入这一类项目的个数:\n");
@ -190,7 +203,7 @@ struct studentform{
for(i=0;i<n;i++){ for(i=0;i<n;i++){
printf("请输入该类第%d个项目名称\n",i+1); printf("请输入该类第%d个项目名称\n",i+1);
gets(xm1[i].name); gets(xm1[i].name);
printf("输入该个项目获奖情况:第一名 第二名 第三名 第四名 第五名(依次按顺序输入姓名,注:输一个名字按一次回城)"); printf("输入该个项目获奖情况:第一名 第二名 第三名 第四名 第五名(依次按顺序输入姓名,注:输一个名字按一次回城)\n");
gets(xm1[i].mc1); gets(xm1[i].mc1);
for(i1=0;i1<studentrs;i1++){ for(i1=0;i1<studentrs;i1++){
@ -288,6 +301,8 @@ struct studentform{
return n; return n;
} }
int ggy3(struct xmform2 xm2[],struct studentform student[],struct schoolform school[],int schoolgs,int studentrs){ int ggy3(struct xmform2 xm2[],struct studentform student[],struct schoolform school[],int schoolgs,int studentrs){
printf("请输入这一类项目的个数:\n"); printf("请输入这一类项目的个数:\n");
int n; int n;
@ -298,7 +313,7 @@ struct studentform{
for(i=0;i<n;i++){ for(i=0;i<n;i++){
printf("请输入该类第%d个项目名称\n",i+1); printf("请输入该类第%d个项目名称\n",i+1);
gets(xm2[i].name); gets(xm2[i].name);
printf("输入该个项目获奖情况:第一名 第二名 第三名 (依次按顺序输入姓名,注:输一个名字按一次回车)"); printf("输入该个项目获奖情况:第一名 第二名 第三名 (依次按顺序输入姓名,注:输一个名字按一次回车)\n");
gets(xm2[i].mc1); gets(xm2[i].mc1);
for(i1=0;i1<studentrs;i1++){ for(i1=0;i1<studentrs;i1++){
@ -359,6 +374,9 @@ struct studentform{
printf("********************\n"); printf("********************\n");
return n; return n;
} }
void xscz(struct studentform student[],int studentrs){ //定义一个选手查找并输出函数 (按姓名查找) void xscz(struct studentform student[],int studentrs){ //定义一个选手查找并输出函数 (按姓名查找)
printf("请输入你要查找的选手名字\n"); printf("请输入你要查找的选手名字\n");
char name[20]; char name[20];
@ -367,7 +385,7 @@ struct studentform{
for(i=0;i<studentrs;i++){ for(i=0;i<studentrs;i++){
a=strcmp(student[i].name,name); a=strcmp(student[i].name,name);
if(a==0){ if(a==0){
printf("将依次输出该选手信息:\n"); printf("将依次输出该选手信息:\n\a");
printf("姓名:%s 性别:%s 年龄:%d 编号:%s \n",student[i].name,student[i].xb,student[i].age,student[i].number); printf("姓名:%s 性别:%s 年龄:%d 编号:%s \n",student[i].name,student[i].xb,student[i].age,student[i].number);
printf("所属学校:%s 参加项目名称:%s 名次:%s 总分数:%d \n",student[i].name1,student[i].xm.name,student[i].xm.mc,student[i].xm.scoer); printf("所属学校:%s 参加项目名称:%s 名次:%s 总分数:%d \n",student[i].name1,student[i].xm.name,student[i].xm.mc,student[i].xm.scoer);
a1=1; //防止有些选手信息未记录而找不到 a1=1; //防止有些选手信息未记录而找不到
@ -381,6 +399,9 @@ struct studentform{
} }
printf("********************\n"); printf("********************\n");
} }
void xscz1(struct studentform student[],int studentrs){ //定义一个选手查找并输出函数 (按编号查找) void xscz1(struct studentform student[],int studentrs){ //定义一个选手查找并输出函数 (按编号查找)
printf("请输入你要查找的选手编号\n"); printf("请输入你要查找的选手编号\n");
char number[20]; char number[20];
@ -389,7 +410,7 @@ struct studentform{
for(i=0;i<studentrs;i++){ for(i=0;i<studentrs;i++){
a=strcmp(student[i].number,number); a=strcmp(student[i].number,number);
if(a==0){ if(a==0){
printf("将依次输出该选手信息:\n"); printf("将依次输出该选手信息:\n\a");
printf("姓名:%s 性别:%s 年龄:%d 编号:%s \n",student[i].name,student[i].xb,student[i].age,student[i].number); printf("姓名:%s 性别:%s 年龄:%d 编号:%s \n",student[i].name,student[i].xb,student[i].age,student[i].number);
printf("所属学校:%s 参加项目名称:%s 名次:%s 总分数:%d ",student[i].name1,student[i].xm.name,student[i].xm.mc,student[i].xm.scoer); printf("所属学校:%s 参加项目名称:%s 名次:%s 总分数:%d ",student[i].name1,student[i].xm.name,student[i].xm.mc,student[i].xm.scoer);
a1=1; //防止有些选手信息未记录而找不到 a1=1; //防止有些选手信息未记录而找不到
@ -403,6 +424,9 @@ struct studentform{
} }
printf("********************\n"); printf("********************\n");
} }
void xmcz1(struct xmform1 xm1[],int xmgs1){ void xmcz1(struct xmform1 xm1[],int xmgs1){
printf("请输入你要查找的项目名称\n"); printf("请输入你要查找的项目名称\n");
char name[20]; char name[20];
@ -411,7 +435,7 @@ struct studentform{
for(i=0;i<xmgs1;i++){ for(i=0;i<xmgs1;i++){
a=strcmp(xm1[i].name,name); a=strcmp(xm1[i].name,name);
if(a==0){ if(a==0){
printf("将依次输出该项目信息:\n"); printf("将依次输出该项目信息:\n\a");
printf("项目名称是:%s\n",xm1[i].name); printf("项目名称是:%s\n",xm1[i].name);
printf("第一名:%s 第二名:%s 第三名:%s 第四名:%s 第五名:%s ",xm1[i].mc1,xm1[i].mc2,xm1[i].mc3,xm1[i].mc4,xm1[i].mc5); printf("第一名:%s 第二名:%s 第三名:%s 第四名:%s 第五名:%s ",xm1[i].mc1,xm1[i].mc2,xm1[i].mc3,xm1[i].mc4,xm1[i].mc5);
a1=1; //防止有些选手信息未记录而找不到 a1=1; //防止有些选手信息未记录而找不到
@ -425,6 +449,9 @@ struct studentform{
} }
printf("********************\n"); printf("********************\n");
} }
void xmcz2(struct xmform2 xm2[],int xmgs2){ void xmcz2(struct xmform2 xm2[],int xmgs2){
printf("请输入你要查找的项目名称\n"); printf("请输入你要查找的项目名称\n");
char name[20]; char name[20];
@ -433,7 +460,7 @@ struct studentform{
for(i=0;i<xmgs2;i++){ for(i=0;i<xmgs2;i++){
a=strcmp(xm2[i].name,name); a=strcmp(xm2[i].name,name);
if(a==0){ if(a==0){
printf("将依次输出该项目信息:\n"); printf("将依次输出该项目信息:\n\a");
printf("项目名称是:%s\n",xm2[i].name); printf("项目名称是:%s\n",xm2[i].name);
printf("第一名:%s 第二名:%s 第三名:%s \n",xm2[i].mc1,xm2[i].mc2,xm2[i].mc3); printf("第一名:%s 第二名:%s 第三名:%s \n",xm2[i].mc1,xm2[i].mc2,xm2[i].mc3);
a1=1; //防止有些选手信息未记录而找不到 a1=1; //防止有些选手信息未记录而找不到
@ -447,6 +474,9 @@ struct studentform{
} }
printf("********************\n"); printf("********************\n");
} }
void xxcz1(struct schoolform school[],int schoolgs){ void xxcz1(struct schoolform school[],int schoolgs){
printf("请输入你要查找的学校名称\n"); printf("请输入你要查找的学校名称\n");
char name[20]; char name[20];
@ -455,7 +485,7 @@ struct studentform{
for(i=0;i<schoolgs;i++){ for(i=0;i<schoolgs;i++){
a=strcmp(school[i].name,name); a=strcmp(school[i].name,name);
if(a==0){ if(a==0){
printf("将依次输出该学校信息:\n"); printf("将依次输出该学校信息:\n\a");
printf("名称:%s 编号:%s 参赛人数:%d 总分数:%d \n",school[i].name,school[i].id,school[i].number,school[i].scoer); printf("名称:%s 编号:%s 参赛人数:%d 总分数:%d \n",school[i].name,school[i].id,school[i].number,school[i].scoer);
//printf("所属学校:%s 参加项目名称:%s 名次:%s 总分数:%d "student[i].name1,student[i].xm.name,student[i].xm.mc,student.xm.score); //printf("所属学校:%s 参加项目名称:%s 名次:%s 总分数:%d "student[i].name1,student[i].xm.name,student[i].xm.mc,student.xm.score);
a1=1; //防止有些选手信息未记录而找不到 a1=1; //防止有些选手信息未记录而找不到
@ -469,15 +499,18 @@ struct studentform{
} }
printf("********************\n"); printf("********************\n");
} }
void xxcz2(struct schoolform school[],int schoolgs){ void xxcz2(struct schoolform school[],int schoolgs){
printf("请输入你要查找的学校编号\n"); printf("请输入你要查找的学校编号\n\a");
char number[20]; char number[20];
gets(number); gets(number);
int i,a,a1=0; int i,a,a1=0;
for(i=0;i<schoolgs;i++){ for(i=0;i<schoolgs;i++){
a=strcmp(school[i].id,number); a=strcmp(school[i].id,number);
if(a==0){ if(a==0){
printf("将依次输出该选学校信息:\n"); printf("将依次输出该选学校信息:\n\a");
printf("名称:%s 编号:%s 参赛人数:%d 总分数:%d \n",school[i].name,school[i].id,school[i].number,school[i].scoer); printf("名称:%s 编号:%s 参赛人数:%d 总分数:%d \n",school[i].name,school[i].id,school[i].number,school[i].scoer);
//printf("所属学校:%s 参加项目名称:%s 名次:%s 总分数:%d "student[i].name1,student[i].xm.name,student[i].xm.mc,student.xm.score); //printf("所属学校:%s 参加项目名称:%s 名次:%s 总分数:%d "student[i].name1,student[i].xm.name,student[i].xm.mc,student.xm.score);
a1=1; //防止有些选手信息未记录而找不到 a1=1; //防止有些选手信息未记录而找不到
@ -491,8 +524,11 @@ struct studentform{
} }
printf("********************\n"); printf("********************\n");
} }
void schoolph(struct schoolform school[],int schoolgs){ void schoolph(struct schoolform school[],int schoolgs){
int max=school[0].scoer;int maxnumber=0; int max=school[0].scoer; int maxnumber=0;
int ph[50]; int ph[50];
int i,i1,t,t1; int i,i1,t,t1;
t1=schoolgs; t1=schoolgs;
@ -507,15 +543,18 @@ struct studentform{
school[maxnumber].scoer=t; school[maxnumber].scoer=t;
schoolgs-=1; schoolgs-=1;
ph[i1]=maxnumber; ph[i1]=maxnumber;
max=school[0].scoer; maxnumber=0;
} }
printf("学校排行由高到低输出依次是:\n"); printf("学校排行由高到低输出依次是:\n\a");
schoolgs=t1; schoolgs=t1;
//printf("学校个数是%d\n",schoolgs); //printf("学校个数是%d\n",schoolgs);
for(i=0;i<schoolgs;i++){ for(i=0;i<schoolgs;i++){
printf("名称:%s 分数:%d\n",school[ph[i]].name,school[ph[i]].scoer); printf("名称:%s 分数:%d\n",school[ph[i]].name,school[ph[i]].scoer);
} }
printf("********************\n"); printf("********************\n");
} }
void studentph(struct studentform student[],int studentrs){ void studentph(struct studentform student[],int studentrs){
int max=student[0].xm.scoer;int maxnumber=0; int max=student[0].xm.scoer;int maxnumber=0;
int ph[50]; int ph[50];
@ -532,15 +571,19 @@ struct studentform{
student[maxnumber].xm.scoer=t; student[maxnumber].xm.scoer=t;
studentrs-=1; studentrs-=1;
ph[i1]=maxnumber; ph[i1]=maxnumber;
max=student[0].xm.scoer; maxnumber=0;
} }
printf("学生排行由高到低输出依次是:\n"); printf("学生排行由高到低输出依次是:\n\a");
studentrs=t1; studentrs=t1;
for(i=0;i<studentrs;i++){ for(i=0;i<studentrs;i++){
printf("姓名:%s 分数:%d\n",student[ph[i]].name,student[ph[i]].xm.scoer); printf("姓名:%s 分数:%d\n",student[ph[i]].name,student[ph[i]].xm.scoer);
} }
printf("********************\n"); printf("********************\n");
} }
void dudan1(struct schoolform school[]){
void dudan1(struct schoolform school[],int *schoolgs1){
int schoolgs; int schoolgs;
printf("开始打开密匙\n"); printf("开始打开密匙\n");
if((fp=fopen("schoolgs","rb+"))==NULL){ if((fp=fopen("schoolgs","rb+"))==NULL){
@ -550,7 +593,8 @@ struct studentform{
printf("密匙已经安全打开了\n"); printf("密匙已经安全打开了\n");
} }
rewind(fp); rewind(fp);
fscanf(fp,"%5d",&schoolgs); fscanf(fp,"%5d",&schoolgs);
*schoolgs1=schoolgs;
fclose(fp); fclose(fp);
int i; int i;
printf("开始打开文件\n"); printf("开始打开文件\n");
@ -560,6 +604,7 @@ struct studentform{
}else{ }else{
printf("文件已经安全打开了\n"); printf("文件已经安全打开了\n");
} }
//printf("%d",schoolgs);
rewind(fp); //将文件指针移到最前面 rewind(fp); //将文件指针移到最前面
for(i=0;i<schoolgs;i++){ for(i=0;i<schoolgs;i++){
@ -568,7 +613,10 @@ struct studentform{
printf("读取完毕\n"); printf("读取完毕\n");
printf("********************\n"); printf("********************\n");
} }
void dudan2(struct studentform student[]){
void dudan2(struct studentform student[],int *studentrs1){
int studentrs; int studentrs;
printf("开始打开密匙\n"); printf("开始打开密匙\n");
if((fp=fopen("studentrs","rb+"))==NULL){ if((fp=fopen("studentrs","rb+"))==NULL){
@ -578,16 +626,18 @@ struct studentform{
printf("密匙已经安全打开了\n"); printf("密匙已经安全打开了\n");
} }
rewind(fp); rewind(fp);
fscanf(fp,"%5d",&studentrs); fscanf(fp,"%5d",&studentrs);
*studentrs1=studentrs;
fclose(fp); fclose(fp);
int i; int i;
printf("开始打开文件\n"); printf("开始打开文件\n");
if((fp=fopen("schoolform","rb+"))==NULL){ if((fp=fopen("studentform","rb+"))==NULL){
printf("文件未能安全打开\n"); printf("文件未能安全打开\n");
exit(0); exit(0);
}else{ }else{
printf("文件已经安全打开了\n"); printf("文件已经安全打开了\n");
} }
//printf("%d",studentrs);
rewind(fp); //将文件指针移到最前面 rewind(fp); //将文件指针移到最前面
for(i=0;i<studentrs;i++){ for(i=0;i<studentrs;i++){
@ -756,20 +806,20 @@ int main(){
switch(a1){ switch(a1){
case 0: case 0:
printf("你选择对学校数据读档\n"); printf("你选择对学校数据读档\n");
dudan1(school); dudan1(school,&schoolgs);
b2=0; b2=0;
a2=0; a2=0;
break; break;
case 1: case 1:
printf("你选择了对学生数据读档\n"); printf("你选择了对学生数据读档\n");
dudan2(student); dudan2(student,&studentrs);
b1=0; b1=0;
a2=0; a2=0;
break; break;
case 2: case 2:
printf("你选择了两个都读档\n"); printf("你选择了两个都读档\n");
dudan1(school); dudan1(school,&schoolgs);
dudan2(student); dudan2(student,&studentrs);
b1=0; b1=0;
b2=0; b2=0;
printf("都读取完毕了\n"); printf("都读取完毕了\n");

Binary file not shown.
Loading…
Cancel
Save