记录作业。
题一
1、建立一个对象数组,内放 5 个学生的数据(学号、成绩),设立一个函数 max,用指向对象的指针作为函数参数,在 max 函数中找出5 个学生中成绩最高者,并输出其学号。(50 分)
类声明头文件
#include <iostream>
#include<string>
#include<vector>
using namespace std;
class StudentClass{
public:
StudentClass(string idCard = "", int score = 0) :mIdCard(idCard), mScore(score) {}
void setStudentData(string idCard, int score);
int getStudentScore();
string getStudentIdCard();
private:
string mIdCard;
int mScore;
};
类成员函数定义
#include "StudentClass.h"
void StudentClass::setStudentData(string idCard, int score) {
this->mIdCard = idCard;
this->mScore = score;
}
string StudentClass::getStudentIdCard() {
return mIdCard;
}
int StudentClass::getStudentScore() {
return mScore;
}
主程序
vector<StudentClass> findMaxScore(StudentClass *arr,int length) {
vector<StudentClass> stu;
string idCard = "";
int maxScore = arr->getStudentScore();
for (int i = 0; i < length; i++){
if (arr[i].getStudentScore() > maxScore){
maxScore = arr[i].getStudentScore();
idCard = arr[i].getStudentIdCard();
}
}
stu.push_back(StudentClass(idCard, maxScore));
for (int i = 0; i < length; i++){
if (arr[i].getStudentScore() == maxScore && arr[i].getStudentIdCard() != idCard) {
stu.push_back(StudentClass(arr[i].getStudentIdCard(), arr[i].getStudentScore()));
}
}
return stu;
}
int main(){
vector<StudentClass> stu = {
StudentClass("202112702001",85),StudentClass("202112702002",88),
StudentClass("202112702003",99),StudentClass("202112702004",99),
StudentClass("202112702005",99)
};
vector<StudentClass> maxStu = findMaxScore(&stu[0],stu.size());
cout << "最高分数为:" << maxStu[0].getStudentScore() << endl;
for (int i = 0; i < maxStu.size(); i++) {
cout << "对应学号为:" << maxStu[i].getStudentIdCard() << endl;
}
return 0;
}
运行结果
最高分数为:99
对应学号为:202112702003
对应学号为:202112702004
对应学号为:202112702005
题二
2、商店销售某一商品,允许销售人员在销售时灵活掌握售价,现已知 3 名销售员的销售情况如下:
销售员号(number) | 销售件数(count) | 销售单价(price) |
---|---|---|
101 | 5 | 23.5 |
102 | 12 | 24.5 |
103 | 10 | 21.5 |
请编写程序,计算当日此商品的总销售额和每件商品的平均售价。要求使用静态数据成员和静态成员函数。(提示:请同学们认真思考应该建立什么样的类,在类中定义什么样的静态数据成员和成员函数;
在类外,如何使用静态数据成员和静态成员函数)(50 分)
类声明头文件
#include<iostream>
#include<vector>
using namespace std;
class StoreClass{
public:
StoreClass(int number = 0,int count = 0,float price = 0):mNumber(number), mCount(count), mPrice(price){}
void compute();
static void showData();
private:
int mNumber;
int mCount;
float mPrice;
static int numCount;
static float totalSales;
static float avgPrice;
};
类成员函数定义
#include "StoreClass.h"
int StoreClass::numCount = 0;
float StoreClass::totalSales = 0;
float StoreClass::avgPrice = 0;
void StoreClass::compute() {
totalSales += mCount * mPrice;
avgPrice += mPrice;
numCount++;
}
void StoreClass::showData() {
cout << "总销售额:" << totalSales << endl
<< "平均售价:" << avgPrice/numCount << endl;
}
主程序
#include "StoreClass.h"
int main() {
vector<StoreClass> sale = {
StoreClass(101,5,23.5),
StoreClass(102,12,24.5),
StoreClass(103,10,21.5)
};
for (int i = 0; i < sale.size(); i++){
sale[i].compute();
}
StoreClass::showData();
return 0;
}
运行结果
总销售额:626.5
平均售价:23.1667