C++程序设计上机实验.ppt

上传人:za****8 文档编号:15798691 上传时间:2020-09-06 格式:PPT 页数:22 大小:342.52KB
返回 下载 相关 举报
C++程序设计上机实验.ppt_第1页
第1页 / 共22页
C++程序设计上机实验.ppt_第2页
第2页 / 共22页
C++程序设计上机实验.ppt_第3页
第3页 / 共22页
点击查看更多>>
资源描述
华北电力大学计算机系,实验一考试成绩信息系统,华北电力大学计算机系,一、实验目的 通过用C编写一个学生考试成绩信息系统, 强化面向对象程序设计思想,使学生能够将C 程序设计中的面向对象、重载、模板、文件等各种 概念,灵活的运用到实际的程序设计中去。,华北电力大学计算机系,二、实验要求 1)录入课程和选课学生的信息; 2)录入成绩 3)学生信息和成绩的修改; 4)统计学生成绩; 5)成绩排序;按成绩排序 6)统计成绩分布功能:即各成绩段学生的数量:“优”:90100;“良”:8090;“中”:7080;“及格”:6070;“不及格”60。并输出统计分布结果; 7)查找:能够查找指定学生的各门成绩和平均分及其名次;,华北电力大学计算机系,三、实验原理 实验使用面向对象的设计思想,在学生成绩考试 系统中,主要涉及的是学生和课程,对于所有的学 生,都具有共性,因此可以抽象为一个学生类,同 理可以得到课程类。,华北电力大学计算机系,1类的设计:实验首先设计两个类:学生类和课程类,并根 据面向对象的信息隐蔽原则,设置相应的类成员的访问属性。 (1)学生类 (a)属性:主要包括学生的个人信息,包括学号、姓名、班级、成绩等。 (b)操作:学生信息的输入、输入函数,学生成绩的设置和获取函数。 (2)课程类 (a)属性:主要包括课程号、课序号、学分、任课教师、选课人数、学生成绩表。 (b)操作:包括课程信息的录入、录入选课学生信息、录入选课学生的成绩,(若成绩为-1表示缺考),成绩分析、成绩排序、显示课程及选课学生信息等。,华北电力大学计算机系,2. 类模板和函数模板的设计: (1)数组类模板的设计:对于某一门课,选课的学 生很多,可定义一个数组模板,并将数组模板实例 化为学生对象数组。 (2)无论对什么数据类型的排序,使用的排序算法 都是一样的,因此需要定义一个函数模板,用学生 类实例化,实现学生的成绩排序,排序算法可选用 插入排序、冒泡排序或者选择排序等。,华北电力大学计算机系,3运算符重载的设计 (1)学生的信息和成绩以及选课信息要求写入 文件并在需要时从文件中读出,需要重载插入、提取 运算符“”。 (2)学生成绩排序要对学生对象进行比较、赋值 等操作,而类实际上是一种复杂数据类型,因此上 述这些操作要通过运算符重载(=、)来实 现。,华北电力大学计算机系,四、实验所需仪器、设备、材料(试剂) 本实验基于window平台,使用VC+为开发工具。 五、实验预习要求、实验条件、方法及步骤 1理解C面向对象编程的基本概念,包括类和对象、模板、运算符重载等。 2根据实验要求,画出相应的类图。 3按照类图,编程并实现。,华北电力大学计算机系,实验二公司计薪系统,华北电力大学计算机系,一、实验目的 类的封装、派生和继承、多态性是C面向对象程序 设计三大特征,本实验通过编写一个简单的公司计薪系统, 使学生能够将上述三大特征灵活的运用到实际的编程当中 去,提高程序的复用性。,华北电力大学计算机系,二、实验要求 1问题描述 某公司,员工的薪水每月发一次,每月1日,上报上月个人工作信 息。这些信息由会计将信息输入计薪系统。对于该系统要求如下: (1)公司主要分为三种员工:经理、时薪人员、销售人员。 (2)对于任何一位员工,计薪系统都能够: (a)计算工资 (b)打印该员工的工资单 (c)员工也可以查询自己的工资。 (3)三种员工的薪金计算方式不同 (a)经理:固定月薪 (b)时薪人员:时薪每月工时 (c)销售人员:时薪每月工时佣金销售额 (4)总经理拥有特殊权利,可以更改某人时薪和佣金。,华北电力大学计算机系,2.研究计薪系统的问题域,根据研究对象的共性抽 取出类,并抽象出各个类之间的派生关系,并画出类 图。 3.确定哪些类为基类,哪些为派生类,并分别确定 基类和派生类的成员属性和操作。,华北电力大学计算机系,三、实验原理 1类和派生的使用 在公司计薪系统中,主要涉及的是三类雇员,对于所有的雇员, 都具有共性普通员工的基本信息,包括个人信息,薪金等。只是计算方 法和相应的操作不同,如下图所示。,华北电力大学计算机系,class Employee private: char m_name30; public: Employee(); Employee(const char * nm); ; Employee:Employee() m_name0=0; Employee:Employee(const char *nm) strcpy(m_name,nm); ,华北电力大学计算机系,class Manager:public Employee private: float m_salary; public: Manager(const char* nm); void setSalary(); float computePay(); Manager:Manager(const char *nm):Employee(nm) m_salary=15000.0; void Manager:setSalary(float salary) m_salary=salary; float Manager:computePay() return m_salary; ,华北电力大学计算机系,class Wage:public Employee private: float m_wage; float m_hours; public: Wage(const char * nm); void setWage(float wg); void setHours(float hrs); float computePay(); Wage:Wage(const char *nm):Employee(nm) m_wage=250.0; m_hours=40.0; void Wage:setWage(float wg) m_wage=wg; ,void Wage:setHours(float hrs) m_hours=hrs; float Wage:computePay() return m_wage*m_hours; ,华北电力大学计算机系,class Sales:public Wage private: float m_comm; float m_sales; public: Sales(const char *nm); void setCommission(float comm); void setSales(float sale); float computePay(); Sales:Sales(const char *nm):Wage(nm) m_comm=m_sale=0.0; void Sales:setCommission(float comm) m_comm=comm; ,void Sales:setSales(float sale) m_sales=sale; float Sales:computePay() Wage:computePay()+ m_comm*m_sales; ,华北电力大学计算机系,考察Sales类具有的成员 char m_name30; float m_wage; float m_hours; float m_comm; float m_sales; void setWage(float wg); void setHours(float hrs); void setCommission(float comm); void setSales(float sale); void computePay();,华北电力大学计算机系,2多态的使用 我们会想以一个通用指针表示所有可能的职员类型,Employee *pEmployee; Wage aWager(“陈大”); Sales aSales(“陈二”); Manager aManager(“陈三”); pEmployee=.,可以把职员指针指向任何一种职员。 好处:程序设计的巨大弹性。 譬如:设计一个职员链表职员指针数组,各个元素都是职员,我们会想以一个循环处理所有职员的computePay。,华北电力大学计算机系,虚拟函数与一般化 可以体会,上述的while循环其实就是把操作一般 化。一般化之所以重要,在于它可以把现在的、未来的 情况统统纳入考虑。将来即使有另一种名曰“顾问”的成 员,上述计薪循环仍然能够正常。 我们需要的是什么呢? 依旧以Employee指针代表每一种职员,而又能够在 实际指向不同种类之职员调用到不同版本之computePay 的能力,华北电力大学计算机系,修改: 利用多态性,将computePay函数提到基类Employee中, 并在前面加上virtual使之成为虚拟函数,然后Employee的派生类中根据 各个具体的雇员类型重新定义computePay函数。这样,定义一个Employe e类型的指针代表每一种雇员,通过动态联编,能够在程序运行时,根据 实际指向不同种类之雇员对象调用到不同版本的computePay。,华北电力大学计算机系,四、实验所需仪器、设备、材料(试剂) 本实验基于window 平台,使用VC+为开发工具。 五、实验预习要求、实验条件、方法及步骤 1理解C面向对象编程的基本概念,包括类和对象、派生和继承、多态、虚函数等。 2根据实验要求,画出相应的类图。 3按照类图,编程并实现。,
展开阅读全文
相关资源
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 课件教案


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!