学生成绩单制作.docx

上传人:b****5 文档编号:4493382 上传时间:2022-12-01 格式:DOCX 页数:8 大小:88KB
下载 相关 举报
学生成绩单制作.docx_第1页
第1页 / 共8页
学生成绩单制作.docx_第2页
第2页 / 共8页
学生成绩单制作.docx_第3页
第3页 / 共8页
学生成绩单制作.docx_第4页
第4页 / 共8页
学生成绩单制作.docx_第5页
第5页 / 共8页
点击查看更多>>
下载资源
资源描述

学生成绩单制作.docx

《学生成绩单制作.docx》由会员分享,可在线阅读,更多相关《学生成绩单制作.docx(8页珍藏版)》请在冰豆网上搜索。

学生成绩单制作.docx

学生成绩单制作

学生成绩单制作

课题二:

学生成绩单制作一、目的

1(掌握结构体变量及数组的定义、赋值、初始化、输入、输出2(结构体数组的操作。

二、实习环境

个人计算机,Windows操作系统,TurboC2.0或WinTC或VisualC++等编译开发环境三、实习内容、步骤与要求

1(定义一个结构体数组,存放10个学生的学号,姓名,三门课的成绩2(从键盘输入10个学生的以上内容

3(输出单门课成绩最高的学生的学号、姓名、以及该门课程的成绩4(输出三门课程的平均分数最高的学生的学号、姓名及其平均分5(将10个学生按照平均分数从高到低进行排序,输出结果,格式如下所示:

numbernamemathChineseEnglishaverage

103tom909010095

101alice90807080

6(在实习报告中画出程序流程图,说明程序设计的算法,附主要程序段及运行结果(屏幕截图)。

7(在实习报告中说明知识点。

8(在实习报告中说明程序设计过程中的难点、解决办法及编程小结或体会。

四、程序代码

#include

#include

#defineN10

structstudent

{

charnum[10];

charname[8];

intchinese;

intmath;

intenglish;

intaverage;

};

structsort

{

intscore;

charnum[10];

};

voidmain()

{

structstudentstu[N];

structsortsor[N];

inti,j,temp;

intmax_score,max_average;

charmax_score_course[10];

charmax_score_stuname[10],max_average_stuname[10];

charmax_score_stunum[10],max_average_stunum[10];

chartempnum[10];

/*INPUT*/

for(i=0;i

{

printf("Inputstudent%dnum:

",i+1);

scanf("%s",stu[i].num);

printf("Inputstudent%dname:

",i+1);

scanf("%s",stu[i].name);

printf("Inputstudent%dChinesescore:

",i+1);

scanf("%d",&stu[i].chinese);

printf("Inputstudent%dMathscore:

",i+1);

scanf("%d",&stu[i].math);

printf("Inputstudent%dEnglishscore:

",i+1);

scanf("%d",&stu[i].english);

printf("\n");

}

for(i=0;i

{

stu[i].average=(stu[i].chinese+stu[i].math+stu[i].english)/3;

}

/*Maxscore*/

max_score=stu[0].chinese;

strcpy(max_score_course,"Chinese");

strcpy(max_score_stuname,stu[0].name);

strcpy(max_score_stunum,stu[0].num);

for(i=0;i

{

if(stu[i].chinese>max_score)

{

max_score=stu[i].chinese;

strcpy(max_score_stuname,stu[i].name);

strcpy(max_score_stunum,stu[i].num);

}

}

for(i=0;i

{

if(stu[i].math>max_score)

{

max_score=stu[i].math;

strcpy(max_score_stuname,stu[i].name);

strcpy(max_score_stunum,stu[i].num);

strcpy(max_score_course,"Math");

}

}

for(i=0;i

{

if(stu[i].english>max_score)

{

max_score=stu[i].english;

strcpy(max_score_stuname,stu[i].name);

strcpy(max_score_stunum,stu[i].num);

strcpy(max_score_course,"English");

}

}

printf("Maxscore:

\n");

printf("%s\t%s\t%s\t\t%d",max_score_stunum,max_score_stuname,max_score_course,max_

score);

printf("\n\n");

/*Maxaverage*/

max_average=stu[0].average;

strcpy(max_average_stuname,stu[0].name);

strcpy(max_average_stunum,stu[0].num);

for(i=0;i

{

if(stu[i].average>max_average)

{

max_average=stu[i].average;

strcpy(max_average_stuname,stu[i].name);

strcpy(max_average_stunum,stu[i].num);

}

}

printf("Maxaverage:

\n");

printf("%s\t%s\t\t\t%d",max_average_stunum,max_average_stuname,max_average);

printf("\n\n");

/*Sortandoutput*/

for(i=0;i

{

sor[i].score=stu[i].average;

strcpy(sor[i].num,stu[i].num);

}

for(i=0;i

for(j=i+1;j

{

if(sor[i].score

{

temp=sor[i].score;

sor[i].score=sor[j].score;

sor[j].score=temp;

strcpy(tempnum,sor[i].num);

strcpy(sor[i].num,sor[j].num);

strcpy(sor[j].num,tempnum);

}

}

printf("num\tname\tMath\tChinese\tEnglish\taverage\n");

for(i=0;i

{

for(j=0;j

{

if(!

strcmp(sor[i].num,stu[j].num))

printf("%s\t%s\t%d\t%d\t%d\t%d\n",stu[j].num,stu[j].name,stu[j].math,stu[j].chines

e,stu[j].english,stu[j].average);

}

}

getch();

}

五、程序流程图

六、程序运行结果

七、程序知识点

1、结构体的输入

2、结构体数据的调用

3、对应排序

八、心得体会

在这个程序中,我学会了结构体的定义、调用等关于结构体的知识,题目要求的是10个学生,初期为了调试方便,我换成了2个学生,揭晓了调试难度,也明白了宏定义的好处,程序最后一个模块的排序看似很简单,其实并不好实现,最后我用了一个新的结构体保存了排序后的成绩与与之对应的学号,在通过学号之间的对比,从原来的结构体中调用成绩信

息。

输出时需要多次调试,将标题栏与下面数据栏对其,这一方面多调试几次就可达到清晰

美观的界面。

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

当前位置:首页 > 初中教育 > 其它课程

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1