C++程序设计B 实验1

1、有3个候选人,每个选民只能投票选一人,要求编一个统计选票的程序,先后输入被选人的名字,最后输出各人得票结果。

解题思路:

设一个结构体数组,数组中包含3个元素

每个元素中的信息应包括候选人的姓名(字符型)和得票数(整型)

输入被选人的姓名,然后与数组元素中的“姓名”成员比较,如果相同,就给这个元素中的“得票数”成员的值加1

输出所有元素的信息

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

struct Person {
    char name[20];
    int count;
} leader[3] = {"Li", 0, "Zhang", 0, "Sun", 0};

int main() {
    char name[20];
    cout << "请输入投票姓名:" << endl;
    for(int i = 0; i < 5; i++) {
        cin >> name;
        for(int j = 0; j < 3; j++) {
            if(strcmp(name, leader[j].name) == 0) { //比较
                leader[j].count++;
            }
        }
    }
    cout << "投票结果:" << endl;
    for(int i = 0; i < 3; i++) {
        cout << leader[i].name << ":" << leader[i].count << endl;
    }
}

2、有一个学生情况如表所示。编写程序,对该学生情况表按成绩(grade)从低到高进行排序。(要求:用多函数分别实现数据的输入,输出,排序,在主函数中调用这些函数完成操作)

#include <iostream>
using namespace std;

struct Person {
    int num;
    char name[20];
    char sex;
    int age;
    double grade;
} stu[3];

void Input(Person stu[], int n) {
    for(int i = 0; i < n; i++) {
        cin >> stu[i].num >> stu[i].name >> stu[i].sex >> stu[i].age >> stu[i].grade;
    }
}

void Compare(Person stu[], int n) {
    Person t;
    for(int i = 0; i < n - 1; i++) {
        for(int j = i + 1; j < n; j++) {
            if(stu[i].grade > stu[j].grade) {
                t = stu[j];
                stu[j] = stu[i];
                stu[i] = t;
            }
        }
    }
}

void Output(Person stu[], int n) {
    cout << "学号(num)\t" << "姓名(name)\t" << "性别(sex)\t" << "年龄(age)\t" << "成绩(grade)" << endl;
    for(int i = 0; i < n; i++) {
        cout << stu[i].num << "\t" << stu[i].name << "\t" << stu[i].sex << "\t" << stu[i].age << "\t" << stu[i].grade << endl;
    }
}

int main() {
    int n;
    cout << "请输入学生个数" << endl;
    cin >> n;
    cout << "请输入学生学号(num) 姓名(name) 性别(sex) 年龄(age) 成绩(grade)" << endl;
    Input(stu, n);
    Compare(stu,n);
    cout << "排序后输出结果:" << endl;
    Output(stu, n);
}

3、定义三角形类,完成:为三边置值、取三边的值并输出、求三角形周长、求三角形面积、输出三角形周长和面积。

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

class Triangle {
    double a, b, c;
public:
    void Set(double x, double y, double z) {
        a = x;    //为三边置值
        b = y;
        c = z;
    }
    void Get() {
        cout << "三边的值:" << a << " " << b << " " << c << endl; //取三边的值并输出
    }
    double l() {
        return a + b + c;   //求三角形周长
    }
    double s() {
        return (sqrt((a + b + c) * (a + b - c) * (a + c - b) * (b + c - a)) / 4);   //求三角形面积
    }
};

int main() {
    Triangle A;
    double x, y, z;
    cout << "请输入三边的值(x,y,z)" << endl;
    cin >> x >> y >> z;
    A.Set(x, y, z);
    A.Get();
    cout << "三角形周长:" << A.l() << endl;
    cout << "三角形面积:" << A.s() << endl;
}
  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

再见以前说再见

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值