计算机编程设计报告模板

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

计算机编程设计报告题目:学生成绩管理系统

专业名称:信息与计算科学

班级:17信计(1)班

学号:28 09 16 23

26 34 20223

姓名:刘奇熊鹏王策李进

石锦锋杨炳坤李俊华

指导教师:***

组织单位:数理学院

时间:2018.5.14—2018.5.27

目录

1.题目要求 (2)

2. 题目分析 (2)

3. 编写程序 (3)

4.运行结果 (8)

1.题目要求

作为教师,考试之后对试卷进行分析和研究是必须要做的一项工作,下列图表某学校要求老师在考试之后填写的一个表格,并要求教师根据考试分数分布情况画出直方图。下面就来解决这个实际问题。

某高校试卷分析表

分类

项目不及格60~69分70~79分80~89分90~100分平均分标准差人数86163511

比例10.53%7.89%21%46%14%人数2011141912

比例26%14%18%25%16%人数1213191913

比例16%17%25%25%17%

15.04

19.11

17.97

期末考试卷面及格率:73.68% 期末考试卷面最高分:97 期末考试卷面最低分:28总评=平时*20%+考试*80% 学生总人数76名

平时成绩期末成绩总评77.371.572.6

2. 题目分析

(1)程序运行时,首先必须接收总评成绩的计算比例,应为针对不同的课程,平时成绩和期末考试成绩所占的比例可能不同。

(2)接收若干同学的平时成绩和期末考试成绩,计算出总评成绩,总评成绩的计算方法是“平时成绩所占比例乘以平时成绩+期末成绩所占比例乘以期末成绩”。 (3)根据考试成绩计算分数段的分布情况,画出直方图。

(4)计算平时成绩,期末成绩和总评成绩的平均分和标准差,以及期末考试卷面的及格率,最高分和最低分等。

由于针对一个学生有3个有关成绩的数据,因此最简单的方式就是使用结构体数组。

本题使用的存储结构如图14.1所示。第一列为学生的学号,第二列为学生的平时

成绩,第3列为学生的期末成绩,第4列为学生的总评成绩。 图 14.1

本例使用模块化程序思想,将程序分解为几个函数,函数的功能和调用关系如图14.2所示。

图 14.2

这里需要说明一下标准差的概念:标准差描述一组数据离散程度或个别差异程度。例如A,B 两班学生各34人,其C 语言考试成绩都是80分,但A 班最高分为98分,最低42分,而B 班最高分数为86分,最低60分。初步分析,两班考试成绩不一样,A 班学生的成绩个别差异程度大、水平参差不齐,而B 班学生成绩个别差异程度小,整齐度大些。标准差就可以刻画一组数据的差异程度,标准差的计算公式: 错误!未找到引用源。

其中,错误!未找到引用源。为某个同学的成绩;错误!未找到引用源。为平均成绩。 在本例中,一个同学的情况可以用一个结构体变量来表示,100个同学的情况可以就可以用一个结构体数组来储存了。

3. 编写程序

学生的结构体类型可以用类型定义表示为:

1 80 90 87

2 70 80 77

3 80 77 66

4 88 69 7

5 5

99

78

84

主函数

accept_data()

读入若干数据

show_data()

显示数据

draw() 画直方图

count() 计算

show_data2() 显示数据2

typedef struct student //学生数据结构体声明

{int number; //学号

int score[3]; //平时、期末和总评成绩

}STUDENT;

其中,number是学号或是排列序号(可以简单一点)。score数组表示一个学生的3个成绩,

score[0]为平时成绩,score[1]为期末成绩,score[2]为总评成绩

// 计算机编程设计.c.cpp : 定义控制台应用程序的入口点。

#include

#include"string.h"

#include"conio.h"

#include"math.h"

#define SIZE 300

typedef struct student

{int number;

int score[3];}STUDENT;

typedef enum boolen

{False,True}FLAG;

int accept_data(STUDENT stu[],int grade[]);

void show_data(STUDENT stu[],int sum,int grade[]);

void draw(int grade[]);

void count(int *max,int* min,double *pass,double ave[],double f[],STUDENT stu[],int sum); void show_data2(int max,int min,double pass,double ave[],double f[]);

int main()

{int sum,max,min;

double pass=0;

int grade[11]={0};

STUDENT stu[SIZE];

double ave[SIZE],f[SIZE];

sum=accept_data(stu,grade);

show_data(stu,sum,grade);

draw(grade);

count(&max,&min,&pass,ave,f,stu,sum);

show_data2(max,min,pass,ave,f);

return 0;

}

int accept_data(STUDENT stu[],int grade[])

相关文档
最新文档