关于c++版本的计算学生成绩

要求是这样的:输入名字,输入期中考和期末成绩,然后是不定个平时作业成绩,按照一定的比例算出总评成绩。

用C语音实现的话没什么好说的,但是我要用c++并且使用各种奇怪的模板或者容器来实现(→ →其实我暂时也不是很懂),代码按照Accelerated C++打出,然后自己写出注释。

上代码:

 1 #include <algorithm> //STL中的内容 在这段代码中用来实现对向量(其实也就是C中的数组)进行快速排序
 2 #include <iomanip>   //下面代码中使用的setprecision的头文件 在这里用来实现精确位数的输出。manip是manipulator的缩写。
 3 #include <ios>    //下面代码中使用的streamsize的头文件,在这里用来表示长度(typedef)
 4 #include <iostream> //输出与输入流  5 #include <string>
 6 #include <vector>   //使用容器vector的头文件
 7 using namespace std;
 8 int main()
 9 {
10     cout<<"please enter your first name:";
11     string name;
12     cin>>name;
13     cout<<"hello, "<<name<<" !"<<endl;
14     cout<<"please enter your midterm and final exam grades :";
15     double midteam,final;
16     cin>>midteam>>final;
17     cout<<"enter all your homework gradge, "
18     "followed by end-of-file: ";
19     /*      前面这一部分代码实现一些输入输出和变量的定义等,并且说明了输出平时作业成绩的时候要用EOF的方式进行结束(end-of-file)    */20     vector<double>homework;//书上说的是定义一个向量homework,其实我的理解就是定义一个数组.用vector来定义一个向量的方式是 vector<数据类型>向量名
21     double x;              //变量x用来读取数据,起到临时工的作用
22     while(cin>>x)      //当输入成功的时候就继续执行while循环
23         homework.push_back(x);  //将括号里面的数压进向量里面。书写的格式为 向量名.push_back(x);
24     typedef vector<double>::size_type vec_sz;    /*  上面这一句是重点。vector类型下面还定义了一个类型,叫做size_type,用来保存向量的长度,而且这个长度可以是无限大,       这样的话就不会因为变量类型的不同影响到长度的获取,也能把系统环境独立出来。       。还有一个叫做size的函数,属于vector类型,用来返回长度值。       但是每次都用size_type来写就太麻烦了,于是为了简化程序,那堆天才就发现一种语言工具叫做typedef。       通过上面这句代码的使用,我们就用vec_sz替代了vector<double>::size_type,以后需要用的时候直接用vec_sz来代替就好了。       要注意的是,这里使用的格式是这样的 ”typedef vector<数据类型>::size_type 替代名“    */25    vec_sz size = homework.size(); //等同于 vector<double>::size_type = homework.size();
26     if(size==0)    //if语句用来判断到底有没有读进平时作业成绩,如果没有,直接退出重新来过~
27     {
28         cout<<endl<<"you must enter your gradge."
29         "please try again."<<endl;
30
31         return 1;
32     }
33     sort(homework.begin(),homework.end()); //对向量进行快速排序(非递减)。其中vector类下面还提供两个成员函数begin和end,用来返回头尾元素
34     vec_sz mid=size/2;
35     double median;
36     median = size % 2 ==0?(homework[mid]+homework[mid-1])/2:homework[mid];    /* 上面这一段用来求中值。注意36行的写法。问号后面跟的是执行式,不需要写homework=xxxxxxxxxx....*/
38     streamsize prec = cout.precision();          //这部分暂时理解不了,以后再来
39     cout<<"your final grade is "<<setprecision(3)
40     <<0.2*midteam+0.4*final+0.4*median
41     <<setprecision(prec)<<endl;
42     return 0;
43 }
时间: 2024-08-29 23:05:24

关于c++版本的计算学生成绩的相关文章

Java测试题---简易学生成绩系统

刚刚接触Java不久,写法上和一些术语还不是很熟悉,如有不对的地方,希望指正.本次学生成绩系统要求能实现成绩录入,修改成绩,绩点计算,退出系统四个功能,在进行思路分析后,我构建了三个大类:ScoreInformation类:Surface类:Main类. 一,ScoreInformation类: 1 public class ScoreInformation { 2 private String stunumber; //学号 3 private String name; //姓名 4 priv

Java学生成绩系统

package text; public class helloworld{ private String stunumber; private String name; private double mathematicsscore; private double englishiscore; private double networkscore; private double databasescore; private double softwarescore; public hello

Java编写学生成绩管理系统

思路:定义两个类,一个scoreinformation类,一个scoremanagement类,scoreinformation类用于编写姓名,学号,以及各项成绩的输入函数,scoreinformation类有七个私有变量,和各个变量的get(),set()函数,scoremanagement类用于表现各项功能,包括学生信息的引入函数,学生信息的添加函数,学生信息的修改函数,学生成绩绩点的计算函数,以及退出系统的函数,在最后的主函数中,首先调用存储学生信息的函数,然后运用switch,case函

Java实现简单的学生成绩管理系统

ScoreInformation.java import java.util.Scanner; class ScoreInformation {    private String stunumber;           //八位学号    private String name;    private double mathematicsscore;    private double englishscore;    private double networkscore;    priv

JAVA语言课堂测试01源代码(学生成绩管理系统)

package 考试; /*信1807-8 * 20183798 * 向瑜 */ import java.util.Scanner; //ScoreInformation 类 class ScoreInformation { private String stunumber; private String name; private double mathematicsscore; private double englishscore; private double networkscore;

开学考试学生成绩管理Java

首先student类 package xuexi; public class Student { private String stunumber; private String name; private double mathematicsscore; private double englishiscore; private double networkscore; private double databasescore; private double softwarescore; pu

awk应用-计算学生的平均成绩

让我们来看awk应用的一个例子,其中先对一系列学生的成绩进行相加,然后计算其平均值.下面是输入文件的具体数据: $ cat grades john 85 92 78 94 88 andrea 89 90 75 90 86 jasper 84 88 80 92 84 在学生的姓名后面有5个成绩.下面的脚本将给出每个学生的平均成绩: $ cat grades.awk #求5个成绩的平均值 { total = $2 + $3 + $4 + $5 + $6 avg = total / 5 print $

52.从键盘上输入若干学生成绩(成绩在0~100之间),计算平均成绩,并输出低于平均分的学生成绩,用输入负数结束输入

//1.建立一个for循环用于输入数据,设置退出条件 //2.算出平均成绩 #include<iostream> using namespace std; int main() { int Score,sum=0,k=0; int a[100]; float Average; cout<<"please input some students's score:"<<endl; for(int i=0;i<100;i++) { cin>&g

Hadoop MapReduce编程 API入门系列之统计学生成绩版本1(十七)

不多说,直接上代码. 代码 package zhouls.bigdata.myMapReduce.ScoreCount; import java.io.IOException;import org.apache.hadoop.conf.Configuration;import org.apache.hadoop.fs.FSDataInputStream;import org.apache.hadoop.fs.FileSystem;import org.apache.hadoop.fs.Path;