首页 > 编程语言 >滑湿计院书后习题精华即参考程序汇总!!!

滑湿计院书后习题精华即参考程序汇总!!!

时间:2024-06-18 23:27:48浏览次数:21  
标签:计院 Rational int double void Sale 滑湿 Student 习题

目录

 一、原题见谭浩强C++课本第九章(P295)第四题

题目:

程序:

运行:

二、原题见谭浩强C++课本第九章(P295)第九题

题目:

程序:

运行:

 三、宋桂琴白皮书项目2(P8)第1题

题目:

程序:(部分)

运行:(部分)


 一、原题见谭浩强C++课本第九章(P295)第四题

题目:

        建立一个对象数组,内放5个学生的数据(学号,成绩),设立一个函数max,用指针指向对象的指针作为函数参数,在max函数中找出5个学生中成绩最高者,并输出其学号。

程序:

#include<iostream>
#include<cstring>
using namespace std;


class Student {
public:
	string num;
	double score;
public:
	Student(string n, double s) {
		num = n;
		score = s;
	}
	void print() {
		cout << num << " " << score << endl;
	}

};
void max(Student *pt,Student t[]) {
	Student* m = NULL;
	double ma=0;
	for (int i = 0; i < 5; i++) {
		if ((pt + i)->score > ma) {
			ma = (pt + i)->score;
			m = pt+i;
		}
	}
	m->print();
}
int main() {
	Student t[5]{ 
		Student("001",20),
		Student("002",50),
		Student("003",10),
		Student("004",80),
		Student("005",40),
	};
	Student* pt;
	pt = &t[0];
	max(pt, t);
}

运行:

二、原题见谭浩强C++课本第九章(P295)第九题

题目:

        商店销售某一商品,每天公布统一的折扣。同时允许销售人员在销售是灵活掌握售价,在此基础上,一次购时间以上者,享受98折优惠,现已知当天3个销售员销售情况为:

销售员号(num)销货件数(quantity)销货单价(price)
1015

23.5

1021224.56
10310021.5

请编写程序,计算当日此产品的总销售款sum以及每件商品的平均单价,要求用静态成员和静态成员函数。

程序:

#include<iostream>
using namespace std;
class Sale {
private:
	int num;//工号
	int quantity;//每个人销售的件数
	double price;//销售单价
	static double sum;//总销售款
	static double discount;
	static int n;//总销售件数
public:
	Sale(int n, int q, double p) {
		num = n;
		quantity = q;
		price = p;
	}
	static double average();
	friend void inputdiscount();
	static void print(Sale s[]);
	void cal() {
		if (quantity <= 10) {
			sum += quantity * discount * price;
		}
		else {
			sum += quantity * discount * price * 0.98;
		}
		n += quantity;
	}

};
double Sale::sum = 0;
int Sale::n = 0;
double Sale::discount = 1;
void inputdiscount() {
	cin >> Sale::discount;
}




double Sale::average() {
	return sum / n;
}
void Sale::print(Sale s[]) {
	for (int i = 0; i < 3; i++) {
		cout << "number: " << s[i].num << " quantity: " << s[i].quantity << " price: " << s[i].price << endl;
	}
	cout << "sum: " << sum << " sum of quantity: " << n << " average: " << average() << endl;
}
int main() {
	Sale s[3]{
		Sale(101,5,23.5),
		Sale(102,12,23.56),
		Sale(103,100,21.5),
	};
	inputdiscount();
	for (int i = 0; i < 3; i++)
		s[i].cal();
	s[0].print(s);
}

运行:

 三、宋桂琴白皮书项目2(P8)第1题

题目:

        编写有理数(即分数,包括整数类型的分子,分母)类,并进行运算符重载,编写运算符“+”,“-”,“*”,“/”的重载函数,在主函数的函数体内实现使用运算符重载直接进行有理数对象的加减乘除运算。

程序:(部分)

#include<iostream>
#include<cmath>
#include<algorithm>
using namespace std;
class Rational {
protected:
	int denomenator;//分母
	int molecule;//分子
public:
	void input() {
		cout << "please enter the molecule and the denomenator" << endl;
		cin >> molecule >> denomenator;
	}
	void reduction();
public:
	friend Rational operator +(Rational, Rational);
	friend Rational operator *(Rational, Rational);
	friend ostream& operator <<(ostream&, Rational&);
};

inline int gcd(int a, int b) {
	int r;
	while (b > 0) {
		r = a % b;
		a = b;
		b = r;
	}
	return a;
}

ostream& operator <<(ostream& output, Rational& r) {
	 if(r.denomenator!=1){
		output << r.molecule << "/" << r.denomenator;
	 }
	 else {
		 output << r.molecule;
	 }
	return output;
}


void Rational::reduction() {//约分函数
	int gcdred = gcd(denomenator, molecule);
	denomenator /= gcdred;
	molecule /= gcdred;
	return;
}
Rational operator +(Rational r1, Rational r2) {//运算符加号的重载
	Rational res;
	int lcm_plus = r1.denomenator * r2.denomenator;
	res.denomenator = lcm_plus;
	res.molecule = ((lcm_plus / r1.denomenator) * r1.molecule) + ((lcm_plus / r2.denomenator) * r2.molecule);
	res.reduction();
	return res;
}
Rational operator *(Rational r1, Rational r2) {
	Rational res;
	res.denomenator = r1.denomenator * r2.denomenator;
	res.molecule = r1.molecule * r2.molecule;
	res.reduction();
	return res;
}
int main() {
	Rational a, b, res;
	a.input();
	b.input();
	res = a + b;
	cout << a << "+" << b << "=" << res<<endl;
	res = a * b;
	cout << a << "*" << b << "=" << res << endl;
	
}

运行:(部分)

标签:计院,Rational,int,double,void,Sale,滑湿,Student,习题
From: https://blog.csdn.net/weixin_45080800/article/details/139786154

相关文章

  • Hadoop习题汇总(更新中)
    目录选择单选多选判断填空简答选择单选查看HDFS系统版本的Shell命令,以下正确的是()。hdfs-verhdfsversion(答案)dfsadminversionhadoop-ver数据存储单位从小到大排列顺序是()TB、PB、EB、ZB、YB(答案)TB、YB、ZB、PB、EBTB、PB、EB、YB、ZBTB、EB、PB、YB、ZB假设已经......
  • 【Python入门与进阶】综合练习题:学生成绩管理系统
    综合练习题:学生成绩管理系统题目描述:请你设计一个简单的学生成绩管理系统,要求能够进行以下操作:添加学生信息(包括姓名和学号)添加学生的成绩(包括科目和成绩)查询学生的平均成绩打印所有学生的成绩单解题思路:定义类:创建一个Student类,包含以下属性:name:学生姓名i......
  • 【Git入门和实战】第2课:git中的专有名词和概念解释:仓库、工作目录、暂存区、远程仓库
    本文是git入门到实战系列文章的第2课,主要讲解git中的专有名词和概念,主要有仓库(repository)、工作目录(WorkingDirectory)、暂存区(Stage/Index)、远程仓库(remote)、、提交(commit)、HEAD指针、文件状态、分支(branch)、合并(merge)、标签(tag)、引用(ref)。(文末附练习题,......
  • 谢启鸿第四版高等代数第七章习题解析
    前言:之前写过两篇第七章习题解析,本篇主要是补充,将之前没有来得及写上的习题补充完整,顺便归个类。前两篇看主页吧,不指路了。习题7.4部分1(1).根据下列不变因子组写出有理标准型:解:排除0次多项式,的友阵为(1),的展开式为,则其友阵为可以得到有理标准型为.2(1).求下列矩阵的......
  • Java习题
    1.题目使用Java的输入、输出流将一个文本文件的内容按行读出,每读出一行就顺序添加行号,并写入到另一个文件中。代码及详细注释importjava.io.*;//导入JavaI/O库中的所有类publicclassE{//定义一个公共类Epublicstaticvoidmain(Stringargs[]){//主......
  • 【C语言习题】30.使用指针打印数组内容
    文章目录作业标题作业内容2.解题思路3.具体代码作业标题使用指针打印数组内容作业内容写一个函数打印arr数组的内容,不使用数组下标,使用指针。arr是一个整形一维数组。2.解题思路先定义一个数组,使用指针打印数组内容那就是说我们可以通过对指针解引用,来访问......
  • JAVA面向对象模型练习题3
    题目要求:        需求:在实际开发中,经常会遇到一些数组使用的工具类。请按照如下要求编写一个数组的工具类:ArraysUtils:        ①我们知道数组对象直接输出的时候是输出对象的地址的,而项目中很多地方都需要返回数组的内容,请在ArraysUtils中提供一个工具类......
  • C语言练习题05
    练习1:使用二维数组计算杨辉三角#include<stdio.h>#include<string.h>#include<stdlib.h>intmain(intargc,constchar*argv[]){intm,i,j;printf("请输入你所要打印的杨辉三角的列数:\n");scanf("%d",&m);putchar(10);int......
  • C语言练习题04
    练习1:输入一个5个元素的一维数组,实现冒泡排序。#include<stdio.h>#include<string.h>#include<stdlib.h>intmain(intargc,constchar*argv[]){ inttemp; inta[5]={0}; for(inti=0;i<5;i++) { printf("请输入一个数:\n"); scanf("%d"......
  • 数据结构习题(快期末了)
    一个数据结构是由一个逻辑结构和这个逻辑结构上的一个基本运算集构成的整体。从逻辑关系上讲,数据结构主要分为线性结构和非线性结构两类。数据的存储结构是数据的逻辑结构的存储映像。数据的物理结构是指数据在计算机内实际的存储形式。算法是对解题方法和步骤的描述。若......