上机程序.docx
- 文档编号:10783322
- 上传时间:2023-05-27
- 格式:DOCX
- 页数:25
- 大小:18.14KB
上机程序.docx
《上机程序.docx》由会员分享,可在线阅读,更多相关《上机程序.docx(25页珍藏版)》请在冰点文库上搜索。
上机程序
#include"stdio.h"
#include"conio.h"
#include"stdlib.h"
#include"string.h"
#include"math.h"
structstudent
{
intnum;
charname[20];
inta[5];//用来表示每一门课程分数
charx[6];//用来表示性别
inty;//用来表示年龄
charzw[30];//用来表示职务
floatave;
intm;
intmc;
floatxf;
}stud[32],k;
structkecheng//在founction1.6中用于表示学分表
{
intnumb;//课程编号
floatxf;//课程学分
charxk[30];//课程名称
}kec[5];
voidmain()/*主菜单*/
{charch1;
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级菜单*/
{charch21;
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级菜单*/
{charch22;
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级菜单*/
{charch23;
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()/*计算平均分及名次*/
{inti,j;
floatsum=0.0,n=0.0,xf[5];
charstr[100];
FILE*fp1,*fp2,*fp3;
if((fp1=fopen("分数.txt","r"))==NULL)
{printf("cannotopenfile\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("cannotopenfile\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 {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("cannotopenfile\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].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("学号姓名英语数学大物制图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()/*课程平均分及各分数段人数*/ {inti,j,k=0,rs[5][5]={0};//rs分数段人数 floatve[5]={0}; FILE*fp; charliu[100]; if((fp=fopen("分数.txt","r"))==NULL) {printf("cannotopenfile\n"); exit(0);} fgets(liu,100,fp); 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]++; elseif(stud[j].a[i]>=80) rs[i][1]++; elseif(stud[j].a[i]>=70) rs[i][2]++; elseif(stud[j].a[i]>=60) rs[i][3]++; else rs[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("cannotopenfile\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,"\n"); 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()/*男生和女生课程平均成绩*/ {inti,j,k=0; floatm;//记录男女人数 floatve[10]={0};//记录成绩 charstr[100]; FILE*fp1,*fp2,*fp3; if((fp1=fopen("职务.txt","r"))==NULL) {printf("cannotopenfile\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("cannotopenfile\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("cannotopenfile\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()/*统计不及格情况*/ {inti,j; charliu[100]; FILE*fp,*lp; if((fp=fopen("分数.txt","r"))==NULL) {printf("cannotopenfile\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("cannotopenfile\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]); } pr
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 上机 程序
![提示](https://static.bingdoc.com/images/bang_tan.gif)