39学生期末成绩及平均分最高最低分计算.docx

上传人:b****6 文档编号:6719629 上传时间:2023-01-09 格式:DOCX 页数:12 大小:19.06KB
下载 相关 举报
39学生期末成绩及平均分最高最低分计算.docx_第1页
第1页 / 共12页
39学生期末成绩及平均分最高最低分计算.docx_第2页
第2页 / 共12页
39学生期末成绩及平均分最高最低分计算.docx_第3页
第3页 / 共12页
39学生期末成绩及平均分最高最低分计算.docx_第4页
第4页 / 共12页
39学生期末成绩及平均分最高最低分计算.docx_第5页
第5页 / 共12页
点击查看更多>>
下载资源
资源描述

39学生期末成绩及平均分最高最低分计算.docx

《39学生期末成绩及平均分最高最低分计算.docx》由会员分享,可在线阅读,更多相关《39学生期末成绩及平均分最高最低分计算.docx(12页珍藏版)》请在冰豆网上搜索。

39学生期末成绩及平均分最高最低分计算.docx

39学生期末成绩及平均分最高最低分计算

河北工业大学计算机软件技术基础(VC)

课程设计任务书(编号:

39)

附录个人参考源代码

一、题目:

学生期末成绩及平均分、最高最低分计算

二、目的与要求:

1.目的

培养学生综合利用C++语言进行程序设计的能力,通过学生独立思考,提高学生将所学知识转化为分析和设计简单实际问题的能力,建立程序文档、归纳总结的能力,从而增强创新和实践能力。

2.基本要求

要求用C++语言编程,在VisualC++环境下调试完成。

3.创新要求

进一步完善程序,按班级分类后,再分别求出平时成绩的和总成绩的最高分最低分;进一步考虑结构体数组大小设定为100或50,每次输入学生个数,再进行处理。

三、设计方法和基本原理:

1.课题功能描述

在计算机文化基础课中讲了用EXCEL处理数据表,可以对数据表进行填充数据、分类汇总等操作,要求对表1所示的数据表填充总成绩,并按班级求期末成绩、平时成绩和总成绩的平均分,各班期末成绩的最高分和最低分。

2.问题详细描述

对表1所示的数据表进行填充和分类汇总,具体操作如下:

1)填充总成绩,公式为:

总成绩=期末成绩*70%+平时成绩*30%。

2)分类汇总:

(1)按班级求期末成绩、平时成绩和总成绩的平均分

(2)各班期末成绩的最高分和最低分。

3.问题的解决方案:

1)采用结构体数组存储表1的数据表,结构体的成员中班级、学号、姓名字段为字符型(char),期末成绩、平时成绩和总成绩成员为数值型,类型为double型。

定义如下:

structstudent

{

charbj[10];;

charxh[9];

charxm[8];

doubleqmchj;

doublepshchj;

doublezchj ;

}std_s[10];//此处结构体数组元素可以先设为10个,调好后,再增加。

2)调试时,提供数据的方法可以采用初始化或输入的方法。

首先,以5-10条记录进行测试,具体记录可在表1中选择,程序调试正确后,再增加记录量。

该题综合性较强,涉及到数组可参考教材第4章,函数参考教材第5章,结构体参考第6章。

分类实际就是排序算法,讲过冒泡排序和选择排序,你自己任选一种,注意,对班级排序是字符串排序,字符串比较要用字符串比较函数。

3)输出结果要求:

(1)输出填充结果的数据表,形式如表1。

(2)输出按班级汇总后的期末成绩、平时成绩和总成绩平均分,形式如下:

班级

期末成绩平均分

平时成绩平均分

总成绩平均分

传媒1

传媒2

传媒3

 

(3)输出各班期末成绩的最高分和最低分,形式如下:

班级

最高分

最低分

传媒1

传媒2

传媒3

 

表1各班学生成绩信息表

班级

学号

姓名

期末成绩

平时成绩

总成绩

传媒1

10641301

刘晓玮

65

80

 

传媒2

10641302

夏海霞

74

85

 

传媒1

10641303

陈威

81

90

 

传媒2

10641304

周莉

87

90

 

传媒3

10641305

贾君

75

90

 

传媒1

10641306

韩晓萍

58

80

 

传媒2

10641307

奚景泊

80

90

 

传媒3

10641308

胡华

85

95

 

传媒1

10641309

李栋

93

95

 

传媒2

10641310

李建炎

70

80

 

传媒3

10641311

包黎年

69

90

 

传媒1

10641312

李娟

92

95

 

传媒2

10641313

何小卫

84

90

 

传媒3

10641314

王平平

67

85

 

传媒1

10641315

陈治同

80

90

 

传媒2

10641316

赵荣

84

90

 

传媒3

10641317

徐清泉

85

95

 

传媒1

10641318

邹伟斌

75

90

 

传媒2

10641319

李文辉

78

95

 

传媒3

10641320

魏楠

87

90

 

传媒1

10641321

朱敏敏

91

95

 

传媒2

10641322

丁志刚

60

90

 

传媒3

10641323

周开俊

70

90

 

传媒1

10641324

吴俊

80

80

 

传媒2

10641325

管峰

89

95

 

传媒3

10641326

蒋佳佳

83

90

 

传媒1

10641327

王奇安

88

80

 

传媒2

10641328

张赛男

88

90

 

传媒3

10641329

周玲玲

84

90

 

传媒1

10641330

毛佳禹

91

95

 

传媒2

10641331

赵金金

88

90

 

传媒3

10641332

周天炯

67

90

 

传媒1

10641333

卜英杰

67

85

 

传媒2

10641334

杜宁波

74

90

 

传媒3

10641336

侯蕴慧

62

80

 

传媒1

10641337

陆菊杰

85

90

 

传媒2

10641338

王贞

79

85

 

传媒3

10641339

颜执栋

95

95

 

四、课程设计的考核方式及评分方法

1.考核方式

课程设计结束时,在机房当场验收。

2.评分方法

(1)出勤率;

(2)课程设计运行结果;

(3)机房当场验收分数;

(4)课程设计报告分数。

五、书写设计报告的要求(详细内容见“设计报告模板”)

六、上交设计报告要求:

1、用A4纸打印出设计报告,在机房验收时将打印的设计报告交给验收老师评阅,如不需修改,当场交给班长;若需要修改,改后交给班长。

在指定时间内由班长收齐设计报告后交给验收老师。

2、上传设计报告的电子版,在指定的网址,指定的文件夹内找到以你名字命名的文件夹,将你的设计报告和.cpp源文件(含有.h)一并上传到该文件夹。

 

参考源代码:

Author:

hujianfei

Sinaweibo:

互联网的飞虫

Date:

201303011

//由于看到本报告浏览量很大但是我没有上传源代码,所以有些说不过去,故花费一个小时自己写下了源代码,希望可以帮助你的课程设计.

//以下可以直接复制到MicrosoftVisualC++6.0中运行,已经测试没有错误.

#include

#include

 

typedefstructtagSTUDENT

{

charbj[10];

charxh[9];

charxm[8];

doubleqmchj;

doublepshchj;

doublezchj;

}STUDENT,*PSTUDENT;

 

//只需要在这里增加人数算法不改变

STUDENTstd_s[10]={

{{"传媒1"},{"10641301"},{"刘晓玮"},65,80,0},

{{"传媒2"},{"10641302"},{"夏海霞"},74,85,0},

{{"传媒1"},{"10641303"},{"陈威"},81,90,0},

{{"传媒2"},{"10641304"},{"周莉"},87,90,0},

{{"传媒3"},{"10641305"},{"贾君"},75,90,0},

{{"传媒1"},{"10641306"},{"韩晓萍"},58,80,0}

};

typedefstructtagCLASSINFO

{

charbj[10];

doubleqmchj;//期末成绩

doublepshchj;//平时成绩

doublezchj;//总成绩

//平均分

doubleqmchjpjf;

doublepshchjpjf;

doublezchjpjf;

intxsrs;//学生人数

//期末成绩最低分最高分

doublemaxfen;

doubleminfen;

}CLASSINFO,*PCLASSINFO;

CLASSINFOclassinfo[3]={

{"传媒1",0,0,0,0,0,0,0,0,100},

{"传媒2",0,0,0,0,0,0,0,0,100},

{"传媒3",0,0,0,0,0,0,0,0,100}

};//共三个班级

//输出所有的学生信息

//传入学生结构体数组的指针,和学生的数量

voidShowAllStudentInfo(PSTUDENTpStudent,unsignedintiStudentNumber);

//班级汇总

//传入学生结构体数组的指针,和学生的数量

voidClassSummary(PSTUDENTpStudent,unsignedintiStudentNumber);

//输出各班的期末成绩的最高分和最低分

voidShowClassInfo(PCLASSINFOpClassInfo);

//填充学生总成绩

voidCalculateStudentTotalGrade(PSTUDENTpStudent,unsignedintiStudentNumber);

intmain()

{

printf("________显示原始数据______________________________________\n");

ShowAllStudentInfo(std_s,6);

printf("________填充总成绩_________________________________________\n");

CalculateStudentTotalGrade(std_s,6);

ShowAllStudentInfo(std_s,6);

printf("________按班级汇总__________________________________________\n");

ClassSummary(std_s,6);

ShowClassInfo(classinfo);

return0;

}

//班级汇总

//传入学生结构体数组的指针,和学生的数量

voidClassSummary(PSTUDENTpStudent,unsignedintiStudentNumber)

{

inti;

for(i=0;i

{

if(strcmp(pStudent[i].bj,"传媒1")==0)

{

classinfo[0].pshchj+=pStudent[i].pshchj;

classinfo[0].qmchj+=pStudent[i].qmchj;

classinfo[0].zchj+=pStudent[i].zchj;

classinfo[0].xsrs++;

if(pStudent[i].qmchj>classinfo[0].maxfen)

{

classinfo[0].maxfen=pStudent[i].qmchj;

}

if(pStudent[i].qmchj

{

classinfo[0].minfen=pStudent[i].qmchj;

}

}

elseif(strcmp(pStudent[i].bj,"传媒2")==0)

{

classinfo[1].pshchj+=pStudent[i].pshchj;

classinfo[1].qmchj+=pStudent[i].qmchj;

classinfo[1].zchj+=pStudent[i].zchj;

classinfo[1].xsrs++;

if(pStudent[i].qmchj>classinfo[1].maxfen)

{

classinfo[1].maxfen=pStudent[i].qmchj;

}

if(pStudent[i].qmchj

{

classinfo[1].minfen=pStudent[i].qmchj;

}

}

elseif(strcmp(pStudent[i].bj,"传媒3")==0)

{

classinfo[2].pshchj+=pStudent[i].pshchj;

classinfo[2].qmchj+=pStudent[i].qmchj;

classinfo[2].zchj+=pStudent[i].zchj;

classinfo[2].xsrs++;

if(pStudent[i].qmchj>classinfo[2].maxfen)

{

classinfo[2].maxfen=pStudent[i].qmchj;

}

if(pStudent[i].qmchj

{

classinfo[2].minfen=pStudent[i].qmchj;

}

}

}

for(i=0;i<3;++i)

{

classinfo[i].pshchjpjf=classinfo[i].pshchj/classinfo[i].xsrs;

classinfo[i].qmchjpjf=classinfo[i].qmchj/classinfo[i].xsrs;

classinfo[i].zchjpjf=classinfo[i].zchj/classinfo[i].xsrs;

}

}

//输出各班的期末成绩的最高分和最低分

voidShowClassInfo(PCLASSINFOpClassInfo)

{

inti;

printf("%7s%16s%16s%16s\n","班级","期末成绩平均分","平时成绩平均分","总成绩平均分");

for(i=0;i<3;++i)

{

printf("%7s%13.2lf%13.2lf%13.2lf\n",

pClassInfo[i].bj,

pClassInfo[i].qmchjpjf,

pClassInfo[i].pshchjpjf,

pClassInfo[i].zchjpjf);

}

printf("________________________________________________\n");

printf("%7s%8s%8s\n","班级","最高分","最低分");

//一共三个班级这里没有使用变量

for(i=0;i<3;++i)

{

printf("%7s%9.2lf%9.2lf\n",

pClassInfo[i].bj,

pClassInfo[i].maxfen,

pClassInfo[i].minfen);

}

}

//输出所有的学生信息

//传入学生结构体数组的指针,和学生的数量

voidShowAllStudentInfo(PSTUDENTpStudent,unsignedintiStudentNumber)

{

inti;

//使用c语言的格式输出比使用c++的更方便

printf("%8s%8s%7s%5s%5s%5s\n","班级","学号","姓名","期末成绩","平时成绩","总成绩");

for(i=0;i

{

printf("%8s%8s%7s%7.2lf%7.2lf%7.2lf\n",

pStudent[i].bj,

pStudent[i].xh,

pStudent[i].xm,

pStudent[i].qmchj,

pStudent[i].pshchj,

pStudent[i].zchj);

}

}

 

//填充学生总成绩

voidCalculateStudentTotalGrade(PSTUDENTpStudent,unsignedintiStudentNumber)

{

unsignedinti;

for(i=0;i

{

pStudent[i].zchj=0.7*pStudent[i].qmchj+pStudent[i].pshchj*0.3;

}

}

 

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

当前位置:首页 > 外语学习 > 法语学习

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

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