IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 系统运维 -> 济南大学自动化学院C++第四次上机 -> 正文阅读

[系统运维]济南大学自动化学院C++第四次上机

#include<iostream>

#include<string>

using namespace std;
class score {
public:
	score()
	{
		times = 2;
		cout << "默认学生为2" << endl;
	}
	score(int times1)
	{
		times = times1;
		cout << "自定学生人数" << endl;
	}
	~score()
	{
		cout << "~score" << endl;
	}

	void inputscore()
	{
		for (int i = 0; i < times; i++)
		{
			cout << "输入学生姓名" << endl;
			cin >> name[i];
			cout << "输入科目A成绩" << endl;
			cin >> grade[i][0];
			cout << "输入科目B成绩" << endl;
			cin >> grade[i][1];
			cout << "输入科目C成绩" << endl;
			cin >> grade[i][2];
		}
	}
	void showscore()
	{
		for (int i = 0; i < times; i++)
		{
			cout << "学生姓名是" << name[i] << endl;
			cout << "科目A成绩是" << grade[i][0] << endl;
			cout << "科目B成绩是" << grade[i][1] << endl;
			cout << "科目C成绩是" << grade[i][2] << endl;

		}
	}
	void showStuAvgScore()
	{
		//float avg = 0;
		for (int i = 0; i < times; i++)
		{
			float avg = 0;
			for (int j = 0; j <= 2; j++)
			{
				avg = avg + grade[i][j];
			}
			avg = avg / 3;
			cout << name[i] << "同学的平均值是" << avg << endl;
		}
	}
	void showSubAvgScore()
	{
		float avgA = 0;
		float avgB = 0;
		float avgC = 0;
		for (int i = 0; i < times; i++)
		{
			avgA = avgA + grade[i][0];
			avgB = avgB + grade[i][1];
			avgC = avgC + grade[i][2];
		}
		avgA = avgA / times;
		avgB = avgB / times;
		avgC = avgC / times;
		cout << "科目A的平均分是" << avgA << endl;
		cout << "科目B的平均分是" << avgB << endl;
		cout << "科目C的平均分是" << avgC << endl;

	}
	void sortSub()
	{
		float temp;
		for (int i = 0; i <= 2; i++)
		{
			for (int j = 1; j < times; j++)
			{
				if (grade[j][i] > grade[j - 1][i])
				{
					temp = grade[j][i];
					grade[j][i] = grade[j - 1][i];
					grade[j - 1][i] = temp;
				}

			}
			for (int j = 0; j < times; j++)
			{
				cout << grade[j][i] << " ";
			}
			cout << endl;
		}

	}
private:
	float grade[100][100];
	int times;
	string name[100];
};
int main()
{
	score x;
	x.inputscore();
	x.showscore();
	x.showStuAvgScore();
	x.showSubAvgScore();
	x.sortSub();
}

代码如上!

代码实现情况为

?

.冒泡法排序:
从第一个和第二个开始比较,如果第一个比第二个大,则交换位置,然后比较第二个和第三个,逐渐往后

经过第一轮后最大的元素已经排在最后,所以重复上述操作的话第二大的则会排在倒数第二的位置。

那重复上述操作n-1次即可完成排序,因为最后一次只有一个元素所以不需要比较。

代码实现如下:

void score::sortSub()
?? ?{
?? ??? ?float temp;
?? ??? ?for (int i = 0; i <= 2; i++)
?? ??? ?{
?? ??? ??? ?for (int j = 1; j < times; j++)
?? ??? ??? ?{
?? ??? ??? ??? ?if (grade[j][i] > grade[j - 1][i])
?? ??? ??? ??? ?{
?? ??? ??? ??? ??? ?temp = grade[j][i];
?? ??? ??? ??? ??? ?grade[j][i] = grade[j - 1][i];
?? ??? ??? ??? ??? ?grade[j - 1][i] = temp;
?? ??? ??? ??? ?}
?
?? ??? ??? ?}
?? ??? ??? ?for (int j = 0; j < times; j++)
?? ??? ??? ?{
?? ??? ??? ??? ?cout << grade[j][i] << " ";
?? ??? ??? ?}
?? ??? ??? ?cout << endl;


? ? ? ? 冒泡排序是一种简单直接暴力的排序算法,每一轮比较可能多个元素移动位置,而元素位置的互换是需要消耗资源的,所以这是一种偏慢的排序算法,仅适用于对于含有较少元素的数列进行排序。

? ? ? 稳定性:我们从代码中可以看出只有前一个元素大于后一个元素才可能交换位置,所以相同元素的相对顺序不可能改变,所以它是稳定排序。

? ? ? 比较性:因为排序时元素之间需要比较,所以是比较排序。

? ? ? 时间复杂度:因为它需要双层循环n*(n-1)),所以平均时间复杂度为O(n^2)。

? ? ? 空间复杂度:只需要常数个辅助单元,所以空间复杂度为O(1),我们把空间复杂度为O(1)的排序成为原地排序(in-place)。

原文链接:https://blog.csdn.net/CTO_51/article/details/8852971

?原文链接:https://blog.csdn.net/LbinBB/article/details/89231346
原文链接:https://blog.csdn.net/LbinBB/article/details/89231346

  系统运维 最新文章
配置小型公司网络WLAN基本业务(AC通过三层
如何在交付运维过程中建立风险底线意识,提
快速传输大文件,怎么通过网络传大文件给对
从游戏服务端角度分析移动同步(状态同步)
MySQL使用MyCat实现分库分表
如何用DWDM射频光纤技术实现200公里外的站点
国内顺畅下载k8s.gcr.io的镜像
自动化测试appium
ctfshow ssrf
Linux操作系统学习之实用指令(Centos7/8均
上一篇文章      下一篇文章      查看所有文章
加:2021-11-22 12:45:44  更:2021-11-22 12:47:29 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/16 0:43:57-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码