cpp: 学生成绩排序,计算平均分
来源:互联网 发布:java运行环境官方下载 编辑:程序博客网 时间:2024/04/29 13:46
不得不说,c++
比起c
便捷了很多,配上强大的IDE -> CLion
更是如虎添翼。
下面是一个简单是统计几个学生成绩的小案例。如果使用java
这样的纯面向对象的语言,非常简单;如果使用c
就比较麻烦了,需要去处理字符串,结构这些东西;如果是c++
呢?相对来说,还是比较简单。当然,这是一个简单的案例,没有涉及到函数的传参。
#include <iostream>using namespace std;struct Student { int age; bool gender; double score; string name;};int main() { Student xiaoming = { 12, true, 75.5, "小明" }; Student xiaohong = { 13, false, 73, "小红" }; Student hanmeimei = { 12, false, 88, "韩梅梅" }; Student leelei = { 13, true, 96, "李磊" }; Student member[] = {xiaoming, xiaohong, hanmeimei, leelei}; size_t len = sizeof(member) / sizeof(member[0]);// cout << "test for len === " << len << endl; double total = 0; for (int i = 0; i < len; ++i) { total += member[i].score; } double avgScore = total / len; // 平均分 // 按分数降序排列 for (int j = 0; j < len; ++j) { Student stu = {}; int k = -1; for (int i = j; i < len; ++i) { Student st = member[i]; if (stu.score < st.score) { stu = st; k = i; } } stu = member[j]; member[j] = member[k]; member[k] = stu; } // show sorted array for (int k = 0; k < len; ++k) { Student f = member[k]; cout << f.name << " , " << f.age << " , " << f.gender << " , " << f.score << endl; } cout << "平均成绩是:" << avgScore; return 0;}
可以看到,这个程序非常简单。
- 而且
c++
的结构很适合用来替代java
中的POJO
对象。因为这种对象里面不会有实际的方法,主要是一些变量的存储,对对象的描述。 - 另外,在调用方法,也是非常的
OOP
的,看不到显式的指针操作,完全是对象式调用。 - 对于字符串,
c++
提供的string
对象其实和java
中的String
对象非常相似。可以直接赋值,也可以二次赋值。还可以通过+
连接两个字符串。不需要像C
那样需要通过指针或者strcpy();
之类的函数去处理。
ps: 对于有java
基础,但是没有c/c++
基础,想学习c/c++
的人,我想说,不要去学习c
,应该直接去学习c++
。因为c
上手太痛苦了。即使你感觉已经理解了指针。但是去处理一个具体的案例你就明白其中的痛苦了。比如处理上面的这个成绩统计的小案例上面,估计一大半c
初学者,新手会折戟沉沙。但是如果你是一个c++
的新手,就不会有这样的感觉。你会感觉如此简单,根本不需要更多思考。 c
真的不适合处理这些东西,你要在结构和字符串花大量时间。而java & c++
很明确的提供了这些api,让你只需要处理业务逻辑就好了
阅读全文
0 0
- cpp: 学生成绩排序,计算平均分
- 计算学生平均成绩
- 学生成绩最高分/最低分/平均分
- 录入成绩计算平均分
- 三个学生,每人修四科,计算所有学生成绩的平均分,并输出某个学生的成绩
- 学生成绩平均分的链表
- 学生各门成绩、总分及平均分
- 各个班级学生成绩平均分
- while循环输出学生成绩,平均分
- 数组实现学生成绩录入、求最高分、最低分、平均分和排序
- 计算10个学生5门课的成绩平均分
- C实现输入学生数学成绩计算平均分及及格率
- C实现输入学生数学成绩计算平均分及及格率
- awk应用-计算学生的平均成绩
- 计算学生平均成绩方法二
- 输入学生的姓名学号成绩,并按平均分由低到高排序
- 3个学生各学4门课,计算总平均分,并输出第n个学生成绩
- Io排序计算学生成绩
- 下一个计划 : .NET/.NET Core应用性能管理
- 中间件中渲染Razor视图
- C# 跨平台的支付类库ICanPay
- 剑指Offer 面试题22:链表中倒数第k个节点 Java代码实现
- BigDecimal
- cpp: 学生成绩排序,计算平均分
- (二)安卓框架搭建之项目Butterknife引入,Application的简单封装
- Java中获取当前时间
- Hibernate update 只更新被修改字段
- 广度优先搜索--迷宫问题(poj 3984)
- python3.7连接mysql
- 计算机视觉
- Maven学习总结(42)——Maven多模块构建中常用的参数
- 我为什么写博客