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

面向对象程序设计


面向对象程序设计报告

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. 类的声明和定义 类成员函数的定义 构造函数和析构函数 友元类 结构体数据类型



相关文章:
面向对象程序设计
面向对象程序设计》课程考试试卷(A)一、 选择题(每题 2 分,共 30 分) 1.C++对 C 语言作了很多改进,下列描述中(D )使得 C 语言发生了质变,从面向过程...
面向对象程序设计习题
对象内部数据结构上建有防火 墙 D.对象内部数据结构的不可访问性 [解析]输入数据必须输入保密口令和数据经过加密处理都不是面向对象程序设计的特征; 对 象内部数据...
面向对象程序设计试卷及答案
面向对象程序设计试卷及答案_工学_高等教育_教育专区。考试试卷 A(答案) 面向对象程序设计注意事项: 1. 请考生按要求在试卷装订线内填写姓名、学号和年级专业。 ...
8.7C++面向对象程序设计举例
8.7C++面向对象程序设计举例_计算机软件及应用_IT/计算机_专业资料。这里我们将通过几个简单的例子来演示如何站在面向对象的角度设计程序,以及使用类的好处。 【例...
java面向对象程序设计(董小园版)
java面向对象程序设计(董小园版)_计算机软件及应用_IT/计算机_专业资料 暂无评价|0人阅读|0次下载|举报文档 java面向对象程序设计(董小园版)_计算机软件及应用_IT/...
面向对象程序设计教程 (马石安版)
(2) 面向对象程序设计方法中,将程序设计为一组相互协作的对象(Object)而不是一组 相互 协作的函数。在程序中,属性用数据表示,用来描述对象静态特征;行为用程序...
第三章 面向对象程序设计(答案)
第三章 面向对象程序设计(答案)_理学_高等教育_教育专区。学号: 第三章 面向对象程序设计作业 姓名: 一、判断题 1、一个 Java 源程序可有多个类,但只仅有一...
C++面向对象程序设计考试复习内容
对象名 D. 基类指针 18、下列特性中不是面向对象程序设计语言所特有的是( D) 。(A)数据封装(B)继承(C)多态性 (D)模板 19、 ( B )是给变量取一个别名...
面向对象程序设计期末复习
面向对象程序设计课程期末复习一、填空题 1.Java 源程序的扩展名是 2.Socket 通常也称为 3.线程的优先级在 0 .java ,经过编译后的程序的扩展名是 ,用于描述...
面向对象程序设计题库_(2013)
面向对象程序设计题库_(2013)_理学_高等教育_教育专区。(一)面向对象程序设计(共 124 题,占 83%) [完成]面向对象相关概念(共 7 题,占 5%) 1、 什么是...
更多相关标签: