源程序代码.doc
- 文档编号:382245
- 上传时间:2022-10-09
- 格式:DOC
- 页数:6
- 大小:74KB
源程序代码.doc
《源程序代码.doc》由会员分享,可在线阅读,更多相关《源程序代码.doc(6页珍藏版)》请在冰豆网上搜索。
主要功能
可按学号、按科目计算最高分、最低分、平均分及总最高分、最低分、平均分
并可按照提示进行查询,查询时序号错误可提示重新输入。
程序代码
#definekm4//宏定义科目个数//
#include
#include
voidfun(floatarry[103][km+3],intn)//函数一计算每个同学、各科、总体的最高分、最低分及平均分//
{
inti,j;
for(i=0;i { arry[i][km]=arry[i][km+1]=arry[i][0]; arry[i][km+2]=0; for(j=0;j { arry[i][km]=(arry[i][j]>arry[i][km])? arry[i][j]: arry[i][km]; arry[i][km+1]=(arry[i][j] arry[i][j]: arry[i][km+1]; arry[i][km+2]+=arry[i][j]/km; } } for(j=0;j { arry[n][j]=arry[xs+1][j]=arry[0][j]; arry[n+2][j]=0; for(i=0;i { arry[n][j]=(arry[i][j]>arry[n][j])? arry[i][j]: arry[n][j]; arry[n+1][j]=(arry[i][j] arry[i][j]: arry[n+1][j]; arry[n+2][j]+=arry[i][j]/n; } } } intcx(charstr1[xs][15],charstr2[15],intn)//函数二查询学号对应的行,学好错误重新输入// { inta,i,b=1; loop: for(i=0;i if(strcmp(str1[i],str2)==0)a=i,b=0; if(b==1){printf("学号不存在! 请重新输入: ");scanf("%s",str2);gotoloop;} return(a); } voidmain()//主函数// { floatcj[103][km+3]; inti,j,tc=0,xs; charaj,xh[100][15],xh_[15]; printf("★☆★☆★☆★☆★☆★☆★→C程序设计〓综合实验←★☆★☆★☆★☆★☆★☆★\n"); printf("------班\n"); printf("◇***\n"); printf("---------------------------------------------------------------------------\n"); do {printf("请输入学生个数<1-100>\n"); scanf("%d",&xs);} while(xs<1||xs>100); printf("请输入学号: \n"); for(i=0;i scanf("%s",xh[i]); printf("请依次输入每个学生的各科成绩: \n");//输入成绩// for(i=0;i for(j=0;j scanf("%f",&cj[i][j]); printf("科目数学英语专业政治\n");//输出成绩// for(i=0;i { printf("%15s",xh[i]); for(j=0;j printf("%8.2f",cj[i][j]); printf("\n"); } fun(cj,xs);//调用函数一// while(tc==0) { tc=0; printf("个人成绩信息查询请按0\n单科成绩信息查询请按1\n总最高、最低、平均分查询请按2\n退出查询请按3\n"); printf("---------------------------------------------------------------------------\n"); lp: scanf("%c",&aj); if(aj! ='0'&&aj! ='1'&&aj! ='2'&&aj! ='3')gotolp; switch(aj) { case'3': tc=1;printf("您已退出查询! ");break;//退出查询// case'0': //个人成绩信息查询// printf("请输入学号和查询项目,用空格隔开\n"); printf("个人最高分———————0\n个人最低分———————1\n个人平均分———————2\n"); scanf("%s%d",xh_,&j);//输入学号和查询项目// printf("学号%s查询项目%6d查询结果%8.2f\n",xh_,j,cj[cx(xh,xh_),xs][j+km]); break; case'1': //单科成绩信息查询// printf("请输入科目代码和查询项目代码,用空格隔开\n"); printf("数学——————0\n"); printf("英语——————1单科最高分———————0\n"); printf("专业——————2单科最低分———————1\n"); printf("政治——————3单科平均分———————2\n"); scanf("%d%d",&j,&i);//输入科目代码和查询项目代码// printf("查询科目%6d查询项目%6d查询结果%8.2f\n",j,i,cj[i+xs][j]); break; case'2': //总最高、最低、平均分查询// printf("请输入查询项目代码: \n"); printf("最高分———————0\n最低分———————1\n平均分———————2\n"); scanf("%d",&i); printf("查询项目%6d查询结果%8.2f\n",i,cj[i+xs][i+km]); printf("-------------------------------------------------------------------------\n"); break; } } } 流程图 函数一(求最高分、最低分、平均分) voidfun(floatarray[xs+3][km+3],intn) 一、计算各行(学号)的最高分、最低分、平均分 定义i,j i=0 最大、最小值赋初值array[i][km]=array[i][km+1]=array[i][0]; 平均值赋初值array[i][km+2]=0; 外循环 j=0 求最大值array[i][km]=(array[i][j]>array[i][km])? array[i][j]: array[i][km]; 内 循 环 求最小值array[i][km+1]=(array[i][j] array[i][j]: array[i][km+1]; 求平均值array[i][km+2]+=array[i][j]/km; 直到j>=km+3 直到i>=n 二、计算各列(科目)及总体的最高分、最低分、平均分 j=0 最大、最小值赋初值arry[n][j]=arry[n+1][j]=arry[0][j]; 平均值赋初值arry[n+2][j]=0; 外循环 i=0 求最大值arry[n][j]=(arry[i][j]>arry[n][j])? arry[i][j]: arry[n][j]; 内 循 环 求最小值arry[n+1][j]=(arry[i][j] arry[i][j]: arry[n+1][j]; 求平均值arry[n+2][j]+=arry[i][j]/n; 直到i>=n 直到j>=km+3 函数二(查询学号对应的行) intcx(charstr1[xs][15],charstr2[15]) inta,i,b=1; strcmp(str1[i],str2)==0? i=0 外 循 环 Y 内 循 环 b=1? a=i,b=0 Y printf("学号不存在! 请重新输入: ");scanf("%s",str2); 直到i>=xs 直到b=0 return(a) 主函数 floatcj[103][km+3];inti,j,tc=0,xs;charaj,xh[100][15],xh_[15]; printf("请输入学号: \n"); do 输入学生个数{printf("请输入学生个数<1-100>\n"); scanf("%d",&xs);} while(xs<1||xs>100); 输入学号i=0 scanf("%s",xh[i]) 循 环 直到i>=xs 输入成绩i=0 j=
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 源程序 代码