C++ 提高
演讲比赛流程管理案例
评委打分案例
有 5 名选手:选手 ABCDE,10 个评委分别对每一名选手打分,去除最高分,去除评委中最低分,取平均分。 分析: 创建五名选手,放到 vector 中 遍历 vector 容器,取出来每一个选手,执行 for 循环,可以把 10 个评委打分存到 deque 容器中 sort 算法对 deque 容器中分数排序,去除最高和最低分 deque 容器遍历一遍,累加总分 获取平均分 class Player{ public: Player(string name){ m_name = name; m_avgScore = 0; } void setAvgScore(int v){ m_avgScore = v; } void printInfo()const{ cout << m_name << "的平均分为:" << m_avgScore << endl; } private: string m_name; int m_avgScore; }; void createPlayers(vector<Player> &v){ string nameSeed = "ABCDE"; for(int i = 0; i < nameSeed....
文件操作
一、文件读写 文件输入流 ifstream 文件输出流 ofstream 文件输入输出流 fstream 文件的打开方式 文件流的状态 文件流的定位:文件指针(输入指针、输出指针) 二、文本文件 #include <iostream>#include <fstream>using namespace std; void ReadWriteFile(){ ifstream ifs("D:\\Users\\cui_z\\Desktop\\source.txt", ios::in); ofstream ofs("D:\\Users\\cui_z\\Desktop\\target.txt", ios::out | ios::app); if (!ifs) { cout << "输入文件打开失败" << endl; return; } if (!ofs) { cout << "输出文件打开失败" << endl; return; } char ch; while (ifs.get(ch)) { cout << ch; ofs << ch; } ifs.close(); ofs.close(); } 三、二进制文件 文本文件和二进制文件在计算机中都是以二进制的方式存储的 程序中的对象都是二进制存储的 Windows 中的文本文件换行符用 \r\n 表示,二进制是以 \n 存储,所以存储和显示时会做一下转换 Linux 中二进制和文本文件换行都是以 \n 存储和表示 class Person { private: int m_age; int m_id; public: Person():m_age(0), m_id(0){ } Person(int age, int id){ m_age = age; m_id = id; } ~Person() = default; void show(){ cout << "Age: " << m_age << " ID: " << m_id << endl; } }; void BinaryReadWrite(){ // 存储二进制 ofstream ofs("D:\\Users\\cui_z\\Desktop\\target....
格式化输出
#include <iostream>#include <cstdlib>#include <cstring>#include <iomanip> // 控制符头文件using namespace std; // 格式化输出 void func(){ // 方式一:使用成员方法 int number = 10; cout << number << endl; cout.unsetf(ios::dec); // 八进制 cout.setf(ios::oct); cout.setf(ios::showbase); cout << number << endl; // 012 // 十六进制 cout.unsetf(ios::oct); cout.setf(ios::hex); cout << number << endl; // 0xa // 固定宽度 cout.width(10); cout.fill('*'); cout << number << endl; // *******0xa // 上面的设置只对当前输出有效,下次的输出格式要重新设置 cout.setf(ios::left); cout.width(10); cout....