//_7_6_main.cpp #include "GradeBook.h" #include <cstdlib> #include <ctime> using namespace std; int main() { const int gradesArraySize = 10; int gradesArray[gradesArraySize]; //随机产生学生成绩 srand((unsigned)time(NULL)); for(int i=0;i<gradesArraySize;i++) { gradesArray[i] = rand()%101 ; } GradeBook myGradeBook("C++",gradesArray); myGradeBook.displayMessage(); myGradeBook.processGrades(); system("pause >> cout"); return 0; }
//GradeBook.h #include <string> using namespace std; class GradeBook { public: //要设置成静态的const常量,,, static const int students = 10;//参加考试的学生 GradeBook(string,const int[]); void setCourseName(string); string getCourseName(); void displayMessage();//打印一条欢迎信息! void processGrades();//综合下面函数的功能,,,, int getMaximum();//得到学生成绩中的最大值 int getMinimum();//得到学生成绩中的最小值 double getAverage();//计算该门课程学生成绩的平均值 void outputBarChart();//输出学生成绩的柱状图 void outputGrades();//输出学生的成绩 private: string courseName;//专业名称 int grades[students];//学生成绩的数组 };
//GradeBook.cpp #include "GradeBook.h" #include <iostream> #include <iomanip> using namespace std; GradeBook::GradeBook(string name,const int a[]) { setCourseName(name); for(int i=0;i<students;i++)//将调用的数组信息复制到类的对象的数组中 grades[i] = a[i] ; } void GradeBook::setCourseName(string name) { courseName = name; } string GradeBook::getCourseName() { return courseName; } void GradeBook::displayMessage()//打印一条欢迎信息! { cout << "Welcome to the grade book for\n" << getCourseName() << " !" << endl; } void GradeBook::processGrades()//综合下面函数的功能,,,, { outputGrades();//先输出学生成绩: cout << "Class average is " << setprecision(2) << fixed <<getAverage() << endl; cout << "Lowest grade is " << getMinimum() << endl; cout << "Highest grade is " << getMaximum() << endl; outputBarChart(); } int GradeBook::getMaximum()//得到学生成绩中的最大值 { int max = 0; for(int k=0;k<students;k++) { if(max<grades[k]) max = grades[k]; } return max; } int GradeBook::getMinimum()//得到学生成绩中的最小值 { int min = 100; for(int k=0;k<students;k++) { if(min>grades[k]) min = grades[k]; } return min; } double GradeBook::getAverage()//计算该门课程学生成绩的平均值 { int sum = 0; for(int k=0;k<students;k++) sum+=grades[k]; return (static_cast<double>(sum))/students ; } void GradeBook::outputBarChart()//输出学生成绩的柱状图 { cout << "\nGrades distribution:" << endl;//学生的成绩分布 const int frequencySize = 11; int frequency[frequencySize] = {0}; for(int i=0;i<students;i++) frequency[grades[i]/10] ++ ; for(int count=0;count<frequencySize;count++) { if(count == 0) cout << " 0-9:" ; else if(count == 10) cout << " 100:" ; else cout << count*10 << "-" << count*10 + 9 << ":" ; for(int star=0;star<frequency[count];star++) cout << "*" ; cout << endl; } } void GradeBook::outputGrades()//输出学生的成绩 { cout << "\nThe grades are :" << endl; for(int student=0;student<students;student++) cout << "Student" << setw(2) << (student+1) << " : " << setw(4) << grades[student] << endl; cout << endl; }
程序运行结果:
相关推荐
C++语言代码 C++大学教程第五版中的一道简单的作业题包括一些基本的函数
从给定的文件信息中,我们可以提取到关于C++编程语言中的类定义、构造函数、成员函数以及如何在主程序中实例化并调用这些功能的关键知识点。以下是对这些知识点的详细阐述: ### 类定义与成员变量 在C++中,类是一...
在这一部分的内容中,我们将会详细解析《C++大学教程第五版》中的一个具体实例——`GradeBook`类的设计与实现。本节重点在于理解类的基本概念、成员函数的作用以及如何通过构造函数初始化对象。 ### `GradeBook` 类...
1. **类与对象**:Gradebook库可能会包含表示学生的类,每个学生类实例可以包含姓名、科目成绩等属性。此外,还可能有表示整个成绩册的类,用于管理多个学生对象。 2. **数据结构与集合**:为了存储和操作大量学生...
本资源提供了C++大学基础教程的课后习题答案,涵盖了C++编程语言的基础知识和面向对象编程的概念。下面是该资源的知识点总结: 1. C++基础知识: * C++标准string类的使用 * 使用using语句导入标准库 * 成员函数...
在"Java How To Program, 10e, Early Objects"一书的第7章中,作者深入介绍了这一主题,该章节可能涵盖了面向对象编程的基础和数组的应用。 在Java编程中,二维数组可以被视为一个表格,每个元素是一个一维数组。在...
案例研究部分通过GradeBook类展示了如何使用数组(一维和二维)来存储成绩,以及如何利用线性搜索和插入排序对成绩进行处理。此外,还介绍了vector类模板的使用,它是C++中一个强大的工具,能提供更高级的动态数组...
- `GradeBook` 和 `Student` 类:一对多关系,一个`GradeBook`管理多个学生及其成绩。 - `UserInterface` 和 `GradeBook` 类:协作关系,用户界面通过`GradeBook`类实现操作。 - `FileHandler` 和 `GradeBook` 类...
在本项目中,我们需要修改`gradebook.py`文件,以便计算并显示每个学生的平均成绩以及每个作业的平均分。这涉及到使用Python编程语言对二维数组(矩阵)进行操作。二维数组在这里代表了一个虚拟课程的成绩数据,其中...
procedure Rank(VAR Xstr : array of string; NoCases : integer);procedure PcntCorrect(VAR Xstr : array of string; NoCases : integer);procedure Percentiles(VAR Xstr : array of string;...
"Gradebook-Java" 是一个专门为教授设计的用于管理学生分数的应用程序,它采用 Java 语言编写,提供了方便的功能来记录、计算和管理学生的学术表现。这个应用可能包含了一个直观的用户界面,允许教授轻松输入、编辑...
本项目旨在利用Python语言实现一个基本的学生成绩管理系统,能够完成学生信息录入、成绩录入、查询及成绩统计等功能。 #### 二、核心概念与技术要点 1. **面向对象编程(OOP)**: - 在Python中,通过定义`class`...
普通的C++中的类,是GradeBook类的最普通的形式,希望对初学者有些帮助。 另外说明,本人也是初学者
《基于控制台的成绩簿管理系统(Java)》是一个利用Java编程语言开发的简易应用程序,它旨在帮助教师或管理员方便地管理学生的成绩数据。该系统通过控制台界面与用户交互,提供添加、修改、删除和查询学生成绩的功能...
C++ for Programmers: Deitel Developer Series by Paul Deitel, Harvey Deitel release type: eBook (.chm) release size: 4.80 MB Publisher: Prentice Hall PTR Pub Date: February 2, 2009 Print ...
【sbg-python-gradebook】是一个使用Python编程语言开发的、基于命令行界面的标准化成绩管理工具。这个项目的核心目标是为教育工作者提供一个简洁而有效的系统,用于跟踪和管理学生在不同学科的标准基础上的成绩。...
酒井成绩册出口 Quartz作业,用于将Sakai的成绩簿数据导出到CSV文件。 每个站点生成CSV文件后,每个用户的每个文件都包含一行,其中包含所有作业的所有成绩,最后是课程成绩。 可以在sakai.properties配置要导出的...
Chapter 6: Organizing the Gradebook Using Categories 103 Adding categories 104 Excluding assessments from the final grade 107 Excluding assessments from the aggregation for all students 107 Excluding ...
成绩簿 用于基于项目的教室的愚蠢的快速,愚蠢的基于简单性能的评估工具。 -基本功能/工作流程是“选择一个学生,添加评论或标签并提交否定为肯定” 页数: 班级:查看班级中所有学生的网格, 学生:随时间查看...