一.编译题目:1 学生成绩管理2 破译密码3 显示心形二.分析设计与说明:分别建立三个数据文件文件1(成绩.txt)用于存放学生成绩;文件2(职务.txt)用于存放学生编号职务年龄;文件3(学分.txt)用于存放课程及其学分。
程序设计思想1)学生成绩管理系统1.(定义三个结构体数组:成绩.txt存放学生成绩;职务.txt用于存放学生编号职务年龄;学分.txt用于存放课程及其学分)2.读入原始数据并显示(将其从成绩.txt,职务和学分.txt中读入原始数据);3.编写函数用于计算平均分及名次(将其读入另外的”排名.txt”中);4.编写函数计算分数段人数及课程平均分(将其读入另外的”成绩分布.txt”中);5男女生每门课程平均分(将其读入另外的男女分别的平均分.txt中)6.编写函数统计不及格情况(将其读入另外的”不及格.txt”中);7.编写函数输出优秀学生(将其读入另外的”优秀学生名单.txt”中);8.编写函数输出优秀学生干部(将其读入另外的“优秀学生干部名单.txt”中)9.编写菜单,共有8个菜单项,其中7个为题目要求,第8个为退出函数。
2)破译密码根据提示3)显示心形程序实现功能本程序在VC++环境下实现1)学生成绩管理系统1.班级成绩单查看见文件(分数.txt),班级学生信息详情见文件(职务.txt),课程学分详情见(学分.txt);利用文件的输出函数将原始表格输出。
2.班级成绩排名表单(排名.txt);计算平均分及名次:先把每个学生各科分数乘以相应的学分并相加除以学分总和求加权平均分;再把一个学生的加权平均分与其他的所有学生的进行比较并按从大到小达顺序排列,最后用循环把名次从1到32排出来,并将这种结果输出到文本文件“排名.txt”3.成绩分数分布段及人数见(成绩分布.txt)先令每一个分数段(>=90;>=80;>=70;>=60;<60)的人数都是0,然后利用循环结构,遇到一个在某个分数段的成绩,那个分数段的计数变量加1,最后可得每门科目每个分数段人数;并将这种结果输出到文本文件“成绩分布.txt”.输出课程平均分:利用循环结构,将所有人的同一科成绩相加,再除以总人数,并将结果输入“成绩分布.txt”中;4.男女生课程平均分(男女分别的平均分.txt)先用if语句判断性别,将男女的成绩分别付给两个不同的数组,并分别记下人数,然后用for语句分别把每一门的平均成绩根据性别不同分别算出来,最后见这个结果输出到文件“男女分别的平均分.txt”5.不及格学生的名单(不及格.txt);统计不及格情况:利用循环,将每个人的各科成绩和60相比较,若小于60,则输出名单(学号、姓名、不及格课程名称、课程学分及成绩)结果存放在文本文件:“不及格.txt”中6.优秀学生的名单(优秀学生名单txt);利用if语句并且结合for语句,分别判断每个同学是否满足下列条件:1.平均分≥90。
2.名次在本班前三名。
3.平均分≥85,并且至少有一门课的成绩为95分。
4平均分≥85,并且至少有二门课的成绩为≥90分。
如果在判断某个同学是符合条件,则输出并同时存放到“优秀学生名单中;7.优秀学生干部名单(优秀学生干部名单txt)利用循环先判断是否有职务,再用for语句和if语句判断是否满足下了条件:1.平均分≥85。
2.名次在本班前20%名。
3.平均分≥80,并且至少有一门课的成绩≥95。
4.平均分≥80,并且至少有二门课的成绩≥90。
如果在判断某个同学是符合条件,则输出并同时存放到“优秀学单.txt”中;8.退出。
2)破译密码根据题目所给条件,首先找出100至200间的素数及个数,可知共有21个素数;定义一个数组d[21][3],然后将21个素数的百位、十位、个位分别赋给d[i][0] 、d[i][1]、 d[i][2];用fgets()函数从"加密文件.txt"中读入被加密的文件并将字符付给了数组str[90],用if语句逐个判断str[90]中的字符,若为字母则将字母赋给数组str1[90],否则赋给数组str2[90];按题目要求,用数组d[21][3]将数组str1[90]中对应的元素按序轮换减去;若被减的字母原先为小写字母且被减后其ASCII 码不在小写字母范围内,则被减后再加26;若被减的字母原先为大写字母且被减后其ASCII码不在大写字母范围内,则被减后再加26;最后将上述结果再赋给数组str2[90],并用fprintf()函数将其输入到"解密文件.txt"中。
以‘r’方式打开‚解密文件.txt‛,并用while循环及fgetc()函数将该文件中的数据输出到终端(显示屏)。
3)显示心形根据提示把方程列出来,然后把输出的类容写在文件心形.txt内,由于这样输出的是一个横放的心,要使屏幕上出现一个竖放的心,需要用另外一个数组把它转置后再输出来。
编程中出现的问题1、细节错误,如前后字符类型不相符,掉分号;2、程序调试中无错误,但运行结果一闪而过或者是自行退出;3、给变量赋值时没有注意是否在合适的地点,导致不出现正确的结果;4、程序运行成绩条时屏幕上显示但不能保存到指定的的文档中;5、程序运行时必须按顺序进行,不能跳跃式进行或者同一程序运行几遍;6、同一程序在不同的计算机上的结果可能不同(出不来结果);三.程序框图1.主菜单功能模块图2.3.数据结构说明1.数据分为八个部分,如果想知道那一部分的具体信息直接按相应的数字后,按下回车键,即可得到。
2,数据为两部分,首先按运行键回车后,输入相应的数字后即可得到相应的大字符。
四、.源程序清单# include"stdio.h" # include"conio.h" # include"stdlib.h" # include"string.h" # include"math.h" struct student {int num;char name[20];int a[5]; //用来表示每一门课程分数 char x[6]; //用来表示性别 int y; //用来表示年龄 char zw[30]; //用来表示职务 float ave; int m; int mc; float xf;返回上一级菜单返回上一级}stud[32],k;struct kecheng //在founction1.6中用于表示学分表{int numb; //课程编号float xf; //课程学分char xk[30]; //课程名称}kec[5];void main() /*主菜单*/{ char ch1;do{ system("cls"); /*清屏*/printf("\n\n\n\n\n\n\n\n\n");printf(" ************** C语言程序设计上机实习****************\n");printf(" ---------------------------------------------------------------\n\n");printf(" 1 学生成绩管理\n\n");printf(" 2 破译密码\n\n");printf(" 3 显示心形\n\n");printf(" 4 退出\n\n");printf(" 输入选择序号:");while( (ch1=getchar(), ch1!='1'&& ch1!='2' &&ch1!='3'&&ch1!='4' )) ;switch(ch1){case '1' : section1(); break;case '2' : section2(); break;case '3' : section3(); break;case '4' : exit(0); }}while(1);}section1() /*第1个2级菜单*/{ char ch21;do{ system("cls"); printf("\n\n\n\n\n\n\n\n\n\n");printf(" ********************学生成绩管理系统**********************\n");printf(" ---------------------------------------------------------------------------\n\n");printf(" 1. 读入原始数据并显示 2. 计算平均分及名次\n\n");printf(" 3. 输出课程平均分和各分数段人数 4 输出男生和女生课程平均成绩\n\n");printf(" 5. 统计不及格情况 6. 输出优秀学生\n\n");printf(" 7. 输出优秀学生干部8. 返回上级菜单\n\n");printf("输入选择序号:");while((ch21=getchar(),ch21!='1'&&ch21!='2'&&ch21!='3'&&ch21!='4'&&ch21!='5'&&ch21!='6' &&ch21!='7'&&ch21!='8')) ;switch(ch21){case '1' : function1_1(); break;case '2' : function1_2(); break;case '3' : function1_3(); break;case '4' : function1_4(); break;case '5' : function1_5(); break;case '6' : function1_6(); break;case '7' : function1_7(); break;case '8' : return(0);}}while(1);}section2() /*第2个2级菜单*/{ char ch22;do{ system("cls");printf("\n\n\n\n\n\n\n\n\n\n");printf(" *****************破译密码****************\n");printf(" ----------------------------------------------------------------\n");printf(" 1. 运行\n\n");printf(" 2. 返回上级菜单\n\n");printf(" 输入选择序号\n");while( (ch22=getchar(), ch22!='1'&& ch22!='2')) ;switch(ch22){case '1' : function2_1(); break;case '2' : return(0);}}while(1);}section3() /*第3个2级菜单*/{ char ch23;do{ system("cls");printf("\n\n\n\n\n\n\n\n\n\n");printf(" *****************显示心形****************\n");printf(" -------------------------------------------------\n");printf(" 1. 运行\n\n");printf(" 2. 返回上级菜单\n\n");printf(" 输入选择序号\n");while( (ch23=getchar(), ch23!='1'&& ch23!='2')) ;switch(ch23){case '1' : function3_1(); break;case '2' : return(0);}}while(1);}function1_1(){FILE *fp1,*fp2,*fp3;fp1=fopen("分数.txt","r");while(!feof(fp1)) putchar(getc(fp1));getch();fp2=fopen("职务.txt","r");while(!feof(fp2)) putchar(getc(fp2));getch();fp3=fopen("学分.txt","r");while(!feof(fp3)) putchar(getc(fp3));printf("\n");printf(" *********按Enter键继续**********\n");getchar();getchar(); }function1_2() /*计算平均分及名次*/{int i,j;float sum=0.0,n=0.0,xf[5];char str[100];FILE *fp1,*fp2,*fp3;if((fp1=fopen("分数.txt","r"))==NULL){printf("cannot open file\n");exit(0);}fgets(str,100,fp1);for(i=0;i<32;i++)fscanf(fp1,"%d%s%d%d%d%d%d",&stud[i].num,stud[i].name,&stud[i].a[0], &stud[i].a[1],&stud[i].a[2],&stud[i].a[3],&stud[i].a[4]);fclose(fp1);if((fp2=fopen("学分.txt","r"))==NULL){printf("cannot open file\n");exit(0);}fgets(str,100,fp2);for(i=0;i<5;i++)fscanf(fp2,"%d%s%f",&n,str,&xf[i]);fclose(fp2);for(i=0;i<5;i++) n=n+xf[i];for(i=0;i<32;i++){sum=0.0;for(j=0;j<5;j++){ sum=sum+stud[i].a[j]*xf[j];}stud[i].ave=sum/n; }for(j=0;j<32;j++)for(i=0;i<32-j;i++)if(stud[i].ave<stud[i+1].ave){k=stud[i];stud[i]=stud[i+1];stud[i+1]=k;}for(i=0;i<32;i++)stud[i].mc=i+1;if((fp3=fopen("排名.txt","w"))==NULL){printf("cannot open file\n");exit(0);}fprintf(fp1,"学号姓名英语数学大物制图C语言平均分名次\n");for(i=0;i<32;i++)fprintf(fp3,"%3d%9s %6d %8d %7d%9d%9d %.2f %d\n",stud[i].num,stud[i].na me,stud[i].a[0],stud[i].a[1],stud[i].a[2],stud[i].a[3],stud[i].a[4],stud[i].ave,stud[i].mc);fclose(fp3);printf("学号姓名英语数学大物制图C语言平均分名次\n");for(i=0;i<32;i++){fscanf(fp3,"%3d%9s %6d %8d %7d%9d%9d %.2f %d\n",&stud[i].num,stud[i]. name,&stud[i].a[0],&stud[i].a[1],&stud[i].a[2],&stud[i].a[3],&stud[i].a[4],&stud[i].ave,&stud[i].mc);printf("%3d%9s%6d%8d%7d%9d%9d %.2f %d\n",stud[i].num,stud[i].name,stud[i]. a[0],stud[i].a[1],stud[i].a[2],stud[i].a[3],stud[i].a[4],stud[i].ave,stud[i].mc); } fclose(fp3);printf(" *********按Enter键继续**********\n");getchar(); getchar();}function1_3() /*课程平均分及各分数段人数*/{ int i,j,k=0,rs[5][5]={0}; //rs分数段人数float ve[5]={0};FILE *fp;char liu[100];if((fp=fopen("分数.txt","r"))==NULL){printf("cannot open file\n");exit(0);}for(i=0;i<36;i++)fscanf(fp,"%d%s%d%d%d%d%d",&stud[i].num,stud[i].name,&stud[i].a[0], &stud[i].a[1],&stud[i].a[2],&stud[i].a[3],&stud[i].a[4]);fclose(fp);for(i=0;i<5;i++)for(j=0;j<32;j++)if(stud[j].a[i]>=90)rs[i][0]++;else if(stud[j].a[i]>=80)rs[i][1]++;else if(stud[j].a[i]>=70)rs[i][2]++;else if(stud[j].a[i]>=60)rs[i][3]++;elsers[i][4]++;for(i=0;i<5;i++){{for(j=0;j<32;j++)ve[k]+=stud[j].a[i];} //ve表示每门课程平均分ve[k]/=32.0;k++;}if((fp=fopen("成绩分布.txt","w"))==NULL){printf("cannot open file\n");exit(0);}fprintf(fp,"分数段英语高数物理机械制图C程序设计\n"); fprintf(fp,">=90 ");for(i=0;i<5;i++)fprintf(fp,"%8d",rs[i][0]);fprintf(fp,"\n");fprintf(fp,"80~90 ");for(i=0;i<5;i++)fprintf(fp,"%8d",rs[i][1]);fprintf(fp,"\n");fprintf(fp,"70~80 ");for(i=0;i<5;i++)fprintf(fp,"%8d",rs[i][2]);fprintf(fp,"\n");fprintf(fp,"60~70 ");for(i=0;i<5;i++)fprintf(fp,"%8d",rs[i][3]);fprintf(fp,"<60 ");for(i=0;i<5;i++)fprintf(fp,"%8d",rs[i][4]);fprintf(fp,"\n");fprintf(fp,"课程平均分");for(i=0;i<5;i++)fprintf(fp,"%.1f ",ve[i]);fclose(fp);printf("分数段英语高数物理机械制图C程序设计\n");printf(">=90 ");for(i=0;i<5;i++)printf("%8d",rs[i][0]);printf("\n");printf("80~90 ");for(i=0;i<5;i++)printf("%8d",rs[i][1]);printf("\n");printf("70~80 ");for(i=0;i<5;i++)printf("%8d",rs[i][2]);printf("\n");printf("60~70 ");for(i=0;i<5;i++)printf("%8d",rs[i][3]);printf("\n");printf("<60 ");for(i=0;i<5;i++)printf("%8d",rs[i][4]);printf("\n");printf("课程平均分");for(i=0;i<5;i++)printf("%.1f ",ve[i]);printf("\n");printf(" *********按Enter键继续**********\n");getchar();getchar();}function1_4() /*男生和女生课程平均成绩*/{int i,j,k=0;float m; //记录男女人数float ve[10]={0};//记录成绩char str[100];FILE *fp1,*fp2,*fp3;if((fp1=fopen("职务.txt","r"))==NULL){printf("cannot open file\n");exit(0);}fgets(str,100,fp1);for(i=0;i<38;i++)fscanf(fp1,"%d%s%s%d%s",&stud[i].num,stud[i].name,stud[i].x,&stud[i].y,stud[i].zw);fclose(fp1);if((fp2=fopen("分数.txt","r"))==NULL){printf("cannot open file\n");exit(0);}fgets(str,100,fp2);for(i=0;i<38;i++)fscanf(fp2,"%d%s%d%d%d%d%d",&stud[i].num,stud[i].name,&stud[i].a[0],&stud[i].a[1],&stud[i].a[2],&stud[i].a[3],&stud[i].a[4]);fclose(fp2);for(i=0;i<5;i++){m=0;for(j=0;j<32;j++)if(strcmp (stud[j].x,"男")==0){ve[k]+=stud[j].a[i]; m++; }ve[k]/=m; k++;}for(i=0;i<5;i++){m=0;for(j=0;j<32;j++)if(strcmp(stud[j].x,"男")==1){ve[k]+=stud[j].a[i]; m++ ;}ve[k]/=m; k++;}if((fp3=fopen("男女分别得平均分.txt","w"))==NULL){printf("cannot open file\n");exit(0);}fprintf(fp3,"性别英语高数物理机械制图C程序设计\n");fprintf(fp3,"男%.1f %.1f %.1f %.1f %.1f\n",ve[0]+0.05,ve[1]+0.05,ve[2]+0.05, ve[3]+0.05,ve[4]+0.05);fprintf(fp3,"女%.1f %.1f %.1f %.1f %.1f\n",ve[5]+0.05,ve[6]+0.05,ve[7]+0.05, ve[8]+0.05,ve[9]+0.05);fclose(fp3);printf("性别英语高数物理机械制图C程序设计\n");printf("男%.1f %.1f %.1f %.1f %.1f\n",ve[0]+0.05,ve[1]+0.05,ve[2]+0.05, ve[3]+0.05,ve[4]+0.05);printf("女%.1f %.1f %.1f %.1f %.1f\n",ve[5]+0.05,ve[6]+0.05,ve[7]+0.05, ve[8]+0.05,ve[9]+0.05);printf(" *********按Enter键继续**********\n");getchar();getchar();}function1_5() /*统计不及格情况*/{int i,j;char liu[100];FILE *fp,*lp;if((fp=fopen("分数.txt","r"))==NULL){printf("can not open file\n");exit(0);}fgets(liu,100,fp);for(i=0;i<32;i++)fscanf(fp,"%d%s%d%d%d%d%d",&stud[i].num,&stud[i].name,&stud[i].a[0],&stud[i].a[1],&stud [i].a[2],&stud[i].a[3],&stud[i].a[4]);fclose(fp);if((lp=fopen("不及格的.txt","w"))==NULL){printf("can not open file\n");exit(0);}fprintf(lp,"不及格科目学号姓名分数\n");fprintf(lp," 英语");fprintf(lp," \n");for(i=0;i<32;i++)if(stud[i].a[0]<60)fprintf(lp,"%8d%10s%8d\n",stud[i].num,stud[i].name,stud[i].a[0]);fprintf(lp," 数学");fprintf(lp," \n");for(i=0;i<32;i++){if(stud[i].a[1]<60)fprintf(lp,"%8d%10s%8d\n",stud[i].num,stud[i].name,stud[i].a[1]);}fprintf(lp," 大物");fprintf(lp," \n");for(i=0;i<32;i++){if(stud[i].a[2]<60)fprintf(lp,"%8d%10s%8d\n",stud[i].num,stud[i].name,stud[i].a[2]);}fprintf(lp," 制图");fprintf(lp," \n");for(i=0;i<32;i++){if(stud[i].a[3]<60)fprintf(lp,"%8d%10s%8d\n",stud[i].num,stud[i].name,stud[i].a[3]);}fprintf(lp," C语言");fprintf(lp," \n");for(i=0;i<32;i++){if(stud[i].a[4]<60)fprintf(lp,"%8d%10s%8d\n",stud[i].num,stud[i].name,stud[i].a[4]);}fclose(lp);printf("不及格科目学号姓名分数\n");printf(" 英语\n");for(i=0;i<32;i++)if(stud[i].a[0]<60)printf("%18d%10s%7d\n",stud[i].num,stud[i].name,stud[i].a[0]);printf(" 数学\n");for(i=0;i<32;i++){if(stud[i].a[1]<60)printf("%18d%10s%7d\n",stud[i].num,stud[i].name,stud[i].a[1]);}printf(" 大物\n");for(i=0;i<32;i++){if(stud[i].a[2]<60)printf("%18d%10s%7d\n",stud[i].num,stud[i].name,stud[i].a[2]);}printf(" 制图\n");for(i=0;i<32;i++){if(stud[i].a[3]<60)printf("%18d%10s%7d\n",stud[i].num,stud[i].name,stud[i].a[3]);}printf(" C语言\n");for(i=0;i<32;i++){if(stud[i].a[4]<60)printf("%18d%10s%7d\n",stud[i].num,stud[i].name,stud[i].a[4]);}printf(" *********按Enter键继续**********\n");getchar();getchar();}function1_6() /*优秀学生的名单*/{ int i,j,m=0,num;char str[100];FILE *fp1,*fp2,*fp3,*fp4;if((fp1=fopen("职务.txt","r"))==NULL){printf("cannot open file\n");exit(0);}fgets(str,100,fp1);for(i=0;i<32;i++)fscanf(fp1,"%d%s%s%d%s",&stud[i].num,&stud[i].name,stud[i].x,&stud[i].y,stud[i].zw);fclose(fp1);if((fp2=fopen("分数.txt","r"))==NULL){printf("cannot open file\n");exit(0);}fgets(str,100,fp2);for(i=0;i<32;i++)fscanf(fp2,"%d%s%d%d%d%d%d",&stud[i].num,&stud[i].name,&stud[i].a[0],&stud[i].a[1],&stud[i].a[2],&stud[i].a[3],&stud[i].a[4]);fclose(fp2);if((fp3=fopen("学分.txt","r"))==NULL){printf("cannot open file\n");exit(0);}fgets(str,100,fp3);for(i=0;i<5;i++)fscanf(fp3,"%d%s%f",&kec[i].numb,kec[i].xk,&kec[i].xf);fclose(fp3);if((fp4=fopen("优秀学生.txt","w"))==NULL){printf("cannot open file\n");exit(0);}for(i=0;i<32;i++){num=0;for(j=0;j<5;j++)num+=stud[i].a[j];stud[i].ave=num/5.0;}for(j=0;j<32;j++)for(i=0;i<32-j;i++)if(stud[i].ave<stud[i+1].ave){k=stud[i];stud[i]=stud[i+1];stud[i+1]=k;}for(i=0;i<32;i++)stud[i].mc=i+1;fprintf(fp4,"学号姓名性别职务英语高数物理制图C语言平均成绩名次\n");for(i=0;i<32;i++){if(stud[i].ave>=90){fprintf(fp4,"%2d %7s %4s %8s%5d%7d%6d%7d %8d %7.2f%4d\n",stud[i].num,st ud[i].name,stud[i].x,stud[i].zw,stud[i].a[0],stud[i].a[1],stud[i].a[2],stud[i].a[3],stud[i].a[4],stud[i].a ve,stud[i].mc);}else if(stud[i].ave>=85&&(stud[i].a[0]>=95||stud[i].a[1]>=95||stud[i].a[2]>=95||stud[i].a[3]>=95||stud[i].a[4]>=95)){fprintf(fp4,"%2d %7s %4s %8s%5d%7d%6d%7d %8d %7.2f%4d\n",stud[i].num,st ud[i].name,stud[i].x,stud[i].zw,stud[i].a[0],stud[i].a[1],stud[i].a[2],stud[i].a[3],stud[i].a[4],stud[i].a ve,stud[i].mc);}else if(stud[i].mc<=3){fprintf(fp4,"%2d %7s %4s %8s%5d%7d%6d%7d %8d %7.2f%4d\n",stud[i].num,st ud[i].name,stud[i].x,stud[i].zw,stud[i].a[0],stud[i].a[1],stud[i].a[2],stud[i].a[3],stud[i].a[4],stud[i].a ve,stud[i].mc);}elseif(stud[i].ave>=85&&((stud[i].a[0]>=90&&stud[i].a[1]>=90)||(stud[i].a[0]>=90&&stud[i].a[2]>= 90)||(stud[i].a[0]>=90&&stud[i].a[3]>=90)||(stud[i].a[0]>=90&&stud[i].a[4]>=90)||(stud[i].a[1]>=90& &stud[i].a[2]>=90)||(stud[i].a[1]>=90&&stud[i].a[3]>=90)||(stud[i].a[1]>=90&&stud[i].a[4]>=90)||(stud[i].a[2]>=90 &&stud[i].a[3]>=90)||(stud[i].a[2]>=90&&stud[i].a[4]>=90)||(stud[i].a[3]>=90&&stud[i].a[4]>=90))){ fprintf(fp4,"%2d %7s %4s %8s%5d%7d%6d%7d %8d %7.2f%4d\n",stud[i].num,st ud[i].name,stud[i].x,stud[i].zw,stud[i].a[0],stud[i].a[1],stud[i].a[2],stud[i].a[3],stud[i].a[4],stud[i].a ve,stud[i].mc);}}fclose(fp4);printf("学号姓名性别职务英语高数物理制图C语言平均成绩名次\n");for(i=0;i<32;i++){if(stud[i].ave>=90){printf("%2d %7s %4s %8s%5d%7d%6d%7d %8d %7.2f%4d\n",stud[i].num,stud[i]. name,stud[i].x,stud[i].zw,stud[i].a[0],stud[i].a[1],stud[i].a[2],stud[i].a[3],stud[i].a[4],stud[i].ave,stu d[i].mc);}elseif(stud[i].ave>=85&&(stud[i].a[0]>=95||stud[i].a[1]>=95||stud[i].a[2]>=95||stud[i].a[3]>=95||stud[i ].a[4]>=95)){printf("%2d %7s %4s %8s%5d%7d%6d%7d %8d %7.2f%4d\n",stud[i].num,stud[i]. name,stud[i].x,stud[i].zw,stud[i].a[0],stud[i].a[1],stud[i].a[2],stud[i].a[3],stud[i].a[4],stud[i].ave,stu d[i].mc);}else if(stud[i].mc<=3){printf("%2d %7s %4s %8s%5d%7d%6d%7d %8d %7.2f%4d\n",stud[i].num,stud[i]. name,stud[i].x,stud[i].zw,stud[i].a[0],stud[i].a[1],stud[i].a[2],stud[i].a[3],stud[i].a[4],stud[i].ave,stu d[i].mc);}elseif(stud[i].ave>=85&&((stud[i].a[0]>=90&&stud[i].a[1]>=90)||(stud[i].a[0]>=90&&stud[i].a[2]>= 90)||(stud[i].a[0]>=90&&stud[i].a[3]>=90)||(stud[i].a[0]>=90&&stud[i].a[4]>=90)||(stud[i].a[1]>=90& &stud[i].a[2]>=90)||(stud[i].a[1]>=90&&stud[i].a[3]>=90)||(stud[i].a[1]>=90&&stud[i].a[4]>=90)||(stud[i].a[2]>=90 &&stud[i].a[3]>=90)||(stud[i].a[2]>=90&&stud[i].a[4]>=90)||(stud[i].a[3]>=90&&stud[i].a[4]>=90))){ fprintf(fp4,"%2d %7s %4s %8s%5d%7d%6d%7d %8d %7.2f%4d\n",stud[i].num,st ud[i].name,stud[i].x,stud[i].zw,stud[i].a[0],stud[i].a[1],stud[i].a[2],stud[i].a[3],stud[i].a[4],stud[i].a ve,stud[i].mc);}}printf(" *********按Enter键继续**********\n");getchar();getchar();}function1_7() /*优秀学生干部的名单*/{int i,j,m=0,num;char str[100];FILE *fp1,*fp2,*fp3,*fp4;if((fp1=fopen("职务.txt","r"))==NULL){printf("cannot open file\n");exit(0);}fgets(str,100,fp1);for(i=0;i<32;i++)fscanf(fp1,"%d%s%s%d%s",&stud[i].num,&stud[i].name,stud[i].x,&stud[i].y,stud[i].zw);fclose(fp1);if((fp2=fopen("分数.txt","r"))==NULL){printf("cannot open file\n");exit(0);}fgets(str,100,fp2);for(i=0;i<32;i++)fscanf(fp2,"%d%s%d%d%d%d%d",&stud[i].num,&stud[i].name,&stud[i].a[0],&stud[i].a[1],&stud[i].a[2],&stud[i].a[3],&stud[i].a[4]);fclose(fp2);if((fp3=fopen("分数.txt","r"))==NULL){printf("cannot open file\n");exit(0);}fgets(str,100,fp3);for(i=0;i<5;i++)fscanf(fp3,"%d%s%f",&kec[i].numb,kec[i].xk,&kec[i].xf);fclose(fp3);if((fp4=fopen("优秀学生干部.txt","w"))==NULL){printf("cannot open file\n");exit(0);}for(i=0;i<38;i++){num=0;for(j=0;j<5;j++)num+=stud[i].a[j];stud[i].ave=num/5.0;}for(j=0;j<32;j++)for(i=0;i<32-j;i++)if(stud[i].ave<stud[i+1].ave){k=stud[i];stud[i]=stud[i+1];stud[i+1]=k;}for(i=0;i<32;i++)stud[i].mc=i+1;fprintf(fp4," 优秀学生干部名单\n");fprintf(fp4,"学号姓名性别职务英语高数物理制图C语言平均成绩名次\n");for(i=0;i<32;i++){if(stud[i].ave>=85&&strcmp(stud[i].zw,"无")!=0){fprintf(fp4,"%2d %7s %4s %8s%5d%7d%6d%7d %8d %7.2f%4d\n",stud[i].num,st ud[i].name,stud[i].x,stud[i].zw,stud[i].a[0],stud[i].a[1],stud[i].a[2],stud[i].a[3],stud[i].a[4],stud[i].a ve,stud[i].mc);}elseif(stud[i].ave>=80&&(stud[i].a[0]>=95||stud[i].a[1]>=95||stud[i].a[2]>=95||stud[i].a[3]>=95||stud[i ].a[4]>=95)&&strcmp(stud[i].zw,"无")!=0){fprintf(fp4,"%2d %7s %4s %8s%5d%7d%6d%7d %8d %7.2f%4d\n",stud[i].num,st ud[i].name,stud[i].x,stud[i].zw,stud[i].a[0],stud[i].a[1],stud[i].a[2],stud[i].a[3],stud[i].a[4],stud[i].a ve,stud[i].mc);}else if(stud[i].mc<=6&&strcmp(stud[i].zw,"无")!=0){fprintf(fp4,"%2d %7s %4s %8s%5d%7d%6d%7d %8d %7.2f%4d\n",stud[i].num,st ud[i].name,stud[i].x,stud[i].zw,stud[i].a[0],stud[i].a[1],stud[i].a[2],stud[i].a[3],stud[i].a[4],stud[i].a ve,stud[i].mc);}else if(strcmp(stud[i].zw,"无")!=0&&stud[i].ave>=80&&((stud[i].a[0]>=90&&stud[i].a[1]>=90)||(stud[i].a[0]>=90&&stud[i]. a[2]>=90)||(stud[i].a[0]>=90&&stud[i].a[3]>=90)||(stud[i].a[0]>=90&&stud[i].a[4]>=90)||(stud[i].a[1]>=90& &stud[i].a[2]>=90)||(stud[i].a[1]>=90&&stud[i].a[3]>=90)||(stud[i].a[1]>=90&&stud[i].a[4]>=90)||(stud[i].a[2]>=90 &&stud[i].a[3]>=90)||(stud[i].a[2]>=90&&stud[i].a[4]>=90)||(stud[i].a[3]>=90&&stud[i].a[4]>=90))){ fprintf(fp4,"%2d %7s %4s %8s%5d%7d%6d%7d %8d %7.2f%4d\n",stud[i].num,st ud[i].name,stud[i].x,stud[i].zw,stud[i].a[0],stud[i].a[1],stud[i].a[2],stud[i].a[3],stud[i].a[4],stud[i].a ve,stud[i].mc);}}fclose(fp4);printf(" 优秀学生干部名单\n");printf("学号姓名性别职务英语高数物理制图C语言平均成绩名次\n");for(i=0;i<32;i++){ if(stud[i].ave>=85&&strcmp(stud[i].zw,"无")!=0){printf("%2d %7s %4s %8s%5d%7d%6d%7d %8d %7.2f%4d\n",stud[i].num,stud[i]. name,stud[i].x,stud[i].zw,stud[i].a[0],stud[i].a[1],stud[i].a[2],stud[i].a[3],stud[i].a[4],stud[i].ave,stu d[i].mc);}elseif(stud[i].ave>=80&&(stud[i].a[0]>=95||stud[i].a[1]>=95||stud[i].a[2]>=95||stud[i].a[3]>=95||stud[i ].a[4]>=95)&&strcmp(stud[i].zw,"无")!=0){printf("%2d %7s %4s %8s%5d%7d%6d%7d %8d %7.2f%4d\n",stud[i].num,stud[i]. name,stud[i].x,stud[i].zw,stud[i].a[0],stud[i].a[1],stud[i].a[2],stud[i].a[3],stud[i].a[4],stud[i].ave,stu d[i].mc);}else if(stud[i].mc<=6&&strcmp(stud[i].zw,"无")!=0){printf("%2d %7s %4s %8s%5d%7d%6d%7d %8d %7.2f%4d\n",stud[i].num,stud[i]. name,stud[i].x,stud[i].zw,stud[i].a[0],stud[i].a[1],stud[i].a[2],stud[i].a[3],stud[i].a[4],stud[i].ave,stu d[i].mc);}else if(strcmp(stud[i].zw,"无")!=0&&stud[i].ave>=80&&((stud[i].a[0]>=90&&stud[i].a[1]>=90)||(stud[i].a[0]>=90&&stud[i]. a[2]>=90)||(stud[i].a[0]>=90&&stud[i].a[3]>=90)||(stud[i].a[0]>=90&&stud[i].a[4]>=90)||(stud[i].a[1]>=90& &stud[i].a[2]>=90)||(stud[i].a[1]>=90&&stud[i].a[3]>=90)||(stud[i].a[1]>=90&&stud[i].a[4]>=90)||(stud[i].a[2]>=90 &&stud[i].a[3]>=90)||(stud[i].a[2]>=90&&stud[i].a[4]>=90)||(stud[i].a[3]>=90&&stud[i].a[4]>=90))) {printf(fp4,"%2d %7s %4s %8s%5d%7d%6d%7d %8d %7.2f%4d\n",stud[i].nu m,stud[i].name,stud[i].x,stud[i].zw,stud[i].a[0],stud[i].a[1],stud[i].a[2],stud[i].a[3],stud[i].a[4],stud [i].ave,stud[i].mc);}}printf(" *********按Enter键继续**********\n");getchar();getchar();}function2_1(){FILE * fp1,*fp2;int d[50][3];char str[90],str1[90],str2[90],ch;int i,j,a,b,c,k,l=0;for(j=100;j<=200;j++){for(i=2;i<j;i++)if(j%i==0)break;if(i==j){a=j/100;b=j/10-10;c=j%10;d[l][0]=a;d[l][1]=b;d[l][2]=c;l++;}}if((fp1=fopen("密码文件.txt","r"))==NULL){printf("can not open this file!\n");exit(0);}fgets(str,90,fp1);if((fp2=fopen("解密文件.txt","w"))==NULL){printf("can not open this file!\n");exit(0);}for(j=0;j<l;j++){i=0;for(k=0;k<90;k++){if((str[k]>=65&&str[k]<=90)||(str[k]>=97&&str[k]<=122)) /*判断是否为英文字母*/ {str1[i]=str[k];str2[k]=str1[i]-d[j][i%3];if(str1[i]>=65&&str1[i]<=90) /*判断小写字母*/ {if(str2[k]<65) /*判断超出小写字母则加26*/str2[k]=str2[k]+26;}if(str1[i]>=97&&str1[i]<=122) /*判断大写字母*/{if (str2[k]<97) /*判断超出大写字母则加26*/str2[k]=str2[k]+26;}i++;}else str2[k]=str[k];}fprintf(fp2,"%s\t密匙:%d%d%d\n",str2,d[j][0],d[j][1],d[j][2]);}fclose(fp1);fclose(fp2);if((fp2=fopen("解密文件.txt","r"))==NULL){printf("can not open this file!\n");exit(0);}while(!feof(fp2)){ch=fgetc(fp2);putchar(ch);}fclose(fp2);printf(" *********按Enter键继续**********\n");getchar();getchar();}function3_1(){FILE*fp;float r,n;int x,y,i,j,m,p;char cs1[52][50],cs2[50][52];for(i=0;i<52;i++)for(j=0;j<50;j++)cs1[i][j]=' ';for(n=0;n<=2*3.14159;n=n+0.01){r=20*(1-sin(n));x=r*cos(n)+26;y=5-r*sin(n);cs1[x][y]='h';}fp=fopen("心形.txt","w");if(fp==NULL){printf("can not open");exit(0);}for(i=0;i<52;i++)for(j=0;j<50;j++){if(j==49)fprintf(fp," \n");fprintf(fp,"%c",cs1[i][j]);}for(i=0;i<52;i++)for(j=0;j<50;j++)cs2[j][i]=cs1[i][j];for(i=0;i<50;i++){for(j=0;j<52;j++)printf("%c",cs2[i][j]);printf(“\n”); //向屏幕输出一个换行符}fclose(fp);printf(" *********按Enter键继续**********\n");getchar();getchar();}五.原始数据及结果。