C++基础题目:
题目:
学生参加考试,有N个学生,每个学生参加3门课程考试。要求定义学生类student,数据有学号num,姓名name,三门课程socre[3]:数学,英语,计算机;静态成员count表示学生人数。要求工程文件实现,工程名称为:自己姓名。
(1) 输入学生学号,姓名,学生成绩。(setdate 函数实现)
(2) 设计构造函数和析购函数。每构造一个对象,实现个数加1,每删除一个对象,个数减1。
(3) 求每个学生的总分。(成员函数stu_sum实现)
(4) 设计一个友元函数,输出学生每门课程成绩对应的等级。(友元函数kc_dj()) 90100:优秀;8090:良好;7079:中等;6069:及格;小于60:不及格。
(5) 输出学生信息,每门课程成绩,相应等级,学生总分。(print函数实现)
(6) 编写主函数验证,输入学生个数,学生相应数据,输出信息。对象数组实现。
学生 Student的定义
//Student.h
#pragma once
#include<iostream>
using namespace std;
#ifndef STUDENT_H
#define STUDENT_H
class student
{
private: //定义私有成员
char num[30];
char name[10];
int score[3];
static int count; //定义静态成员
public: //定义共有成员
student();
~student();
void setdate();
int stu_sum();
friend void kc_dj(int);
char* getnum()
{ return num; }
char* getname()
{ return name; }
int getscore1();
int getscore2();
int getscore3();
int setcount()
{ cin >> count; return count; }
int getcount()
{ return count; }
};
#endif // !student
学生Student 的实现
//Student.cpp
#include "student.h"
student::student() //构造函数
{
count++;
}
student::~student() //析构函数
{
count--;
}
void student::setdate() //输入学生信息
{
cout << "学生学号:"; cin >> num;
cout << "学生姓名:"; cin >> name;
cout << "学生数学、英语和计算机成绩:";
for (int i = 0; i < 3; i++)
{
cin >> score[i];
}
}
int student::stu_sum() //求和
{
int sum = 0;
for (int i = 0; i < 3; i++)
{
sum += score[i];
}
return sum;
}
int student::getscore1()
{
return score[0];
}
int student::getscore2()
{
return score[1];
}
int student::getscore3()
{
return score[2];
}
void kc_dj(int x) //友元函数
{
if (90 <= x)
printf("\t优秀\n");
if (80 <= x && 90 > x)
printf("\t良好\n");
if (70 <= x && 80 > x)
printf("\t中等\n");
if (60 <= x && 70 > x)
printf("\t及格\n");
if (x < 60)
printf("\t不及格\n");
}
主函数
//主函数.cpp
#include <iostream>
using namespace std;
#include "student.h"
void kc_dj(int);
int student::count = 0;
int main()
{
int sum = 0;
student box[3];
cout << "学生个数:";
box->setcount();
cout << "学生信息:\n" << endl;
for (int i = 0; i < box->getcount(); i++)
{
box[i].setdate();
sum = box[i].stu_sum();
printf("学生个数:%d\n", box[i].getcount());
printf("学生学号:%s\n", box[i].getnum());
printf("学生姓名:%s\n", box[i].getname());
printf("学生成绩:\n");
printf("\t数学:%d", box[i].getscore1());
printf("\n\t英语:%d", box[i].getscore2());
printf("\n\t计算机:%d\n", box[i].getscore3());
printf("成绩等级:\n");
kc_dj(box[i].getscore1());
kc_dj(box[i].getscore2());
kc_dj(box[i].getscore3());
printf("学生总分:%d\n", box[i].stu_sum());
}
return 0;
}