源程序代码.doc

上传人:wj 文档编号:1329797 上传时间:2023-04-30 格式:DOC 页数:6 大小:74KB
下载 相关 举报
源程序代码.doc_第1页
第1页 / 共6页
源程序代码.doc_第2页
第2页 / 共6页
源程序代码.doc_第3页
第3页 / 共6页
源程序代码.doc_第4页
第4页 / 共6页
源程序代码.doc_第5页
第5页 / 共6页
源程序代码.doc_第6页
第6页 / 共6页
亲,该文档总共6页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

源程序代码.doc

《源程序代码.doc》由会员分享,可在线阅读,更多相关《源程序代码.doc(6页珍藏版)》请在冰点文库上搜索。

源程序代码.doc

主要功能

可按学号、按科目计算最高分、最低分、平均分及总最高分、最低分、平均分

并可按照提示进行查询,查询时序号错误可提示重新输入。

程序代码

#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=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

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 求职职场 > 简历

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2