收藏 分销(赏)

源程序代码电子教案.doc

上传人:w****g 文档编号:3769263 上传时间:2024-07-17 格式:DOC 页数:6 大小:73KB 下载积分:6 金币
下载 相关 举报
源程序代码电子教案.doc_第1页
第1页 / 共6页
源程序代码电子教案.doc_第2页
第2页 / 共6页


点击查看更多>>
资源描述
主 要 功 能 可按学号、按科目计算最高分、最低分、平均分及总最高分、最低分、平均分 并可按照提示进行查询,查询时序号错误可提示重新输入。 程 序 代 码 #define km 4 //宏定义科目个数// #include<stdio.h> #include<string.h> void fun(float arry[103][km+3],int n) //函数一计算每个同学、各科、总体的最高分、最低分及平均分// { int i,j; for(i=0;i<n;i++) //计算每个同学的最高分、最低分及平均分// { arry[i][km]=arry[i][km+1]=arry[i][0]; arry[i][km+2]=0; for(j=0;j<km;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][km+1])?arry[i][j]:arry[i][km+1]; arry[i][km+2]+=arry[i][j]/km; } } for(j=0;j<km+3;j++) //计算各科、总体的最高分、最低分及平均分// { arry[n][j]=arry[xs+1][j]=arry[0][j]; arry[n+2][j]=0; for(i=0;i<n;i++) { arry[n][j]=(arry[i][j]>arry[n][j])?arry[i][j]:arry[n][j]; arry[n+1][j]=(arry[i][j]<arry[n+1][j])?arry[i][j]:arry[n+1][j]; arry[n+2][j]+=arry[i][j]/n; } } } int cx(char str1[xs][15],char str2[15],int n) //函数二查询学号对应的行,学好错误重新输入// { int a,i,b=1; loop:for(i=0;i<xs;i++) if(strcmp(str1[i],str2)==0)a=i,b=0; if(b==1){printf("学号不存在! 请重新输入: ");scanf("%s",str2);goto loop;} return(a); } void main() //主函数// { float cj[103][km+3]; int i,j, tc=0,xs; char aj,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<xs;i++) scanf("%s",xh[i]); printf("请依次输入每个学生的各科成绩:\n"); //输入成绩// for(i=0;i<xs;i++) for(j=0;j<km;j++) scanf("%f",&cj[i][j]); printf(" 科目 数学 英语 专业 政治\n"); //输出成绩// for(i=0;i<xs;i++) { printf("%15s",xh[i]); for(j=0;j<km;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')goto lp; 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; } } } 流 程 图 函数一(求最高分、最低分、平均分) void fun(float array[xs+3][km+3],int n) 一、计算各行(学号)的最高分、最低分、平均分 定义 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][km+1])?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[n+1][j])?arry[i][j]:arry[n+1][j]; 求平均值arry[n+2][j]+=arry[i][j]/n; 直到i>=n 直到j>=km+3 函数二(查询学号对应的行) int cx(char str1[xs][15],char str2[15]) int a,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) 主函数 float cj[103][km+3]; int i,j, tc=0,xs; char aj,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=0 外 循 环 scanf("%f",&cj[i][j]) 内 循 环 直到j>=km 直到i>=xs 输出成绩 printf("科目 数学 英语 专业 政治\n"); i=0 输出学号 printf("%15s",xh[i]) 外 循 环 直到i>=xs j=0 printf("%8.2f",cj[i][j]); 内循环 直到j>=km printf("\n"); 直到i>=xs 调用函数一 fun(cj); 循环开始 当tc(退出)≠0时结束 tc=0 printf("个人成绩信息查询请按 0 单科成绩信息查询请按 1\n 总最高、最低、平均分查询请按 2\n退出查询请按 3\n"); scanf("%c",&aj) 直 到 tc !=0 switch(aj) case'0' case'1' case'2' case'3' printf("请输入学号和查询项目"); printf("最高分— 0\n个人最低分—— 1\n个人平均分— 2\n"); printf("请输入科目代码和查询项目\n"); printf(" 数学—0英语—— 1 专业—2政治—— 3 单科最高分——0 单科最低分——1 单科平均分 2\n"); printf("请输入查询项\n") printf(" 最高分—— 0最低分—— 1平均分——2 \n "); tc=1; printf("您已退出查询!") scanf("%s%d",xh_,&j); scanf("%d%d",&j,&i) scanf("%d",&i); printf("学号%s 查询项目%6d 查询结果%8.2f\n"xh_,j,cj[cx(xh,xh_)] [j+km]); printf("查询科目%6d 查询项目%6d 查询结果%8.2f\n",j,i,cj[i+xs][j]); printf("查询项目%6d 查询结果%8.2f\n",i,cj[i+xs][i+km]); break; break; break; break; 直到tc!=0
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 教育专区 > 其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服