当前位置:首页 >> 计算机软件及应用 >>

面向对象程序设计


面向对象程序设计报告

1. 题目概述
设计一个简单的学生成绩管理系统,其中设计三个类: 教师、教务人员、学生, 学生的信息:学号、姓名、民族、课程成绩、成绩等级, 教师信息:教工号、姓名, 教务人员信息:教工号、姓名。 学生的课程成绩由老师给出,学生的自然信息由学生给出 教务人员根据老师给出的成绩确定学生的成绩等级(及格、不及格) :普通学生 60 分及 格,少数民族学生 50 分及格 学生查询自己课程成绩 设计主函数,处理 10 个学生数据,输出学生的信息:学号、姓名、课程成绩、成绩等 级。

2. 程序介绍
2.1 类的声明定义
class CStudent; class CTeacher { private: //提前引用 //定义 CTeacher 类

long m_numtea; //教工号 string m_nametea; //姓名 public: void set(CStudent &student); }; class CDean //定义 CDean 类 { private: long m_numdean; //教工号 string m_namedean; //姓名 public: void write(CStudent &student); //确定学生等级 }; class CStudent //定义 CStudent 类 { private: long m_numstu; //学号 string m_namestu; //姓名 string m_nationstu; //民族 int m_gradestu; //成绩 //给定学生成绩

string m_classstu; public:

//等级

CStudent(long numstu, string namestu, string nationstu); //构造函数 ~CStudent(); //析构函数 void display(CStudent &student); //显示数据 friend CTeacher; //声明 CTeacher 类是友元 friend CDean; //声明 CDean 类是友元 }; 定义三个类 CTeacher、 CDean、 CStudent。 在 CStudent 中的构造函数 CStudent(long numstu, string namestu, string nationstu);来创建具有学号、姓名、民族属性的类对象,并且调用析构 函数~CStudent();进行对象空间的释放。 声明 CTeacher、CDean 类是友元类,使其可以访问 CStudent 类中的数据成员,老师可 以根据学生的学号、 姓名给出成绩 void set(CStudent &student);, 教务人员可以根据老师给出 的成绩和学生的民族来确定学生的等级 void write(CStudent &student);。

2.2 类成员函数的定义
void CTeacher::set(CStudent &student) //学生的课程成绩由老师给出 { cout << "the grade of " << student.m_numstu << '\t' << student.m_namestu << " is:" << endl; cin >> student.m_gradestu; } void CDean::write(CStudent &student) //教务人员根据老师给出的成绩确定等级 { if (student.m_nationstu == "汉族" && student.m_gradestu >= 60 || student.m_nationstu != "汉族" && student.m_gradestu >= 50) { student.m_classstu = "及格"; } else student.m_classstu = "不及格"; } CStudent::CStudent(long numstu, string namestu, string nationstu) //学生的属性自己给 出 { m_numstu = numstu; m_namestu = namestu; m_nationstu = nationstu; } CStudent::~CStudent() //析构函数释放对象分配的空间 {}

void CStudent::display(CStudent &student) //学生查询自己课程成绩 { cout << student.m_numstu << '\t'; cout << student.m_namestu << '\t'; cout << student.m_gradestu << '\t'; cout << student.m_classstu << '\t' << endl; }

2.3 主函数设计
struct Person //定义结构体数据类型 Person { long number; //学号 string name; //姓名 string nation; //民族 }; struct Person person[10] = { { 2014000012, "黄晓明", "汉族" }, { 2014000013, "baby", "汉族 " },{ 2014000014, "林俊杰", "高山族" }, { 2014000015, "成龙", "土家族" }, { 2014000016, " 陈赫 ", " 蒙古族 " },{ 2014000017, " 李晨 ", "汉族 " }, { 2014000018, " 郑凯 ", "汉族 " }, { 2014000019, "王宝强", "蒙古族" },{ 2014000020, "王祖蓝", "朝鲜族" }, { 2014000021, " 邓超", "苗族" } }; //结构体数组初始化 定义一个结构体数据类型 Person,包括学号、姓名、民族三个属性,并定义一个容量为 10 的结构体数组,用初始化列表的方法进行数据初始化。 int i = 0; for (i = 0; i < 10; i++) { CStudent student(person[i].number, person[i].name, person[i].nation); //定义一 个 CStudent 类的对象 CTeacher teacher; //定义一个 CTeacher 类对象 teacher.set(student); CDean dean; //定义一个 CDean 类对象 dean.write(student); student.display(student); } 采用循环的方式完成 10 个学生成绩的管理工作。

3. 所用知识点总结
1. 2. 3. 4. 5. 类的声明和定义 类成员函数的定义 构造函数和析构函数 友元类 结构体数据类型


赞助商链接
相关文章:
什么是面向对象程序设计
1 什么是面向对象程序设计,它与传统的结构式程序有什么不同。 什么是面向对象程序设计,它与传统的结构式程序有什么不同。 面向对象程序设计是一种适用于设计、 ...
面向对象程序设计教程 (马石安版)
(2) 面向对象程序设计方法中,将程序设计为一组相互协作的对象(Object)而不是一组相互 协作的函数。在程序中,属性用数据表示,用来描述对象静态特征;行为用程序...
面向对象程序设计(附答案)
面向对象程序设计》试卷 第7页 共9页 姓名: 学号: 系别: destructing C destructing B destructing A 六、程序设计(12 分) 已知复数类Complex的声明如下:...
面向对象程序设计历史发展
面向对象程序设计的历史发展 学院: 班级: 姓名: 学号: 面向对象程序设计技术被认为是程序设计方法学的一场实质性的革命, 是程序设 计方法学得一个里程碑,以上...
面向对象程序设计
面向对象程序设计报告 1. 题目概述设计一个简单的学生成绩管理系统,其中设计三个类: 教师、教务人员、学生, 学生的信息:学号、姓名、民族、课程成绩、成绩等级, ...
《面向对象程序设计》人员信息管理系统
解决问题过程的 思考、程序调试能力的思考、对 C++这门课程的思考、在课程设计过程中对 C++ 课程的认识等内容 本次课程设计,使我加深了对 C++面向对象程序设计的...
面向对象程序设计与面向过程程序设计的区别 (2)
面向过程程序设计和面向对象程序设计的区别 面向过程程序设计和面向对象程序设计的区别 过程程序设计 面向过程程序设计我个人的理解简单来说, 他考虑问题的方 式是...
面向对象程序设计方法
2.面向对象程序设计的基本概念 面向对象程序设计中的概念主要包括:对象、类、数据抽象、继承、动态绑定、数据封装、多态性、 消息传递。通过这些概念面向对象的思想...
结构化程序设计与面向对象程序设计的简述
关于结构化程序设计与面向对象程序设计的简述 关于结构化程序设计与面向对象程序设计的简述 一、 结构化程序设计 它采用结构化技术(结构化技术分析 结构化设计 结构...
《面向对象程序设计》第02章在线测试
面向对象程序设计》第02章在线测试_理学_高等教育_教育专区。《面向对象程序设计》第 02 章在线测试《面向对象程序设计》第 02 章在线测试 答题须知:1、本卷...
更多相关标签: