1.设计一个CStudent(学生)类,并使CStudent类具有以下特点:
a.有学生姓名、学号、程序设计、信号处理、数据结构三门课程的成绩;
b.全部信息由键盘输入;
c.通过成员函数统计学生平均成绩,当课程数量增加时,成员函数无须修改仍可以求取平均成绩;
d.输出学生的基本信息、各科成绩与平均成绩;
e.学生对象用链表存储;
f.统计不及格学生人数。
#include <iostream>
#include <cstring>
using namespace std;
#define course_num 3 //课程数量,当课程数量增加时,请更改此处
#define N course_num
class CStudentNode
{
private:
string name;
string number;
float prog; //程序设计
float signal; //信号处理
float data; //数据结构
public:
CStudentNode* next;
CStudentNode()
{
cout << "请输入姓名\n" << "姓名:";
cin >> name;
cout << "\n请输入学号\n" << "学号:";
cin >> number;
cout << "请输入程序设计,信号处理,数据结构的成绩\n" << "成绩:";
cin >> prog >> signal >> data;
}
//统计不及格人数
int fail()
{
if (prog < 60 || signal < 60 || data < 60)
return 1;
else
return 0;
}
void Avrg()
{
cout << "平均分:\t" << (prog + signal + data) / N << endl;
}
void OutPut()
{
cout << "姓名:\t" << name << "\t学号:" << number << endl;
cout << "成绩:\n" << "程序设计:\t" << prog << "\t信号处理:\t" << signal << "\t数据结构:\t" << data << endl;
Avrg();
}
};
class CStudentList
{
private:
CStudentNode* head;
int length,failed;
public:
CStudentList()
{
head = NULL;
length = 1;
failed = 0;
head = new CStudentNode;
}
//添加学生信息
void add()
{
CStudentNode* p = head;
CStudentNode* q = new CStudentNode;
while (p->next)
{
p = p->next;
}
p->next = q;
length++;
}
//显示学生信息
void show()
{
CStudentNode* p = head;
while (p)
{
p->OutPut();
p = p->next;
}
}
//统计不及格人数
void fail()
{
CStudentNode* p = head;
while (p)
{
if(p->fail())
{
failed++;
}
p = p->next;
}
cout << "不及格人数为:" << failed << endl;
}
};
int main()
{
CStudentList A;
A.add();
A.show();
A.fail();
}
自己写实验报告时码的,网上找不到一样的program.
如有错误,还请大神们看到多多指教!!