程序设计基础(2025春)

辽宁科技大学 刘丽华

目录

  • 1 c++概述
    • 1.1 c++语言特点、简单c++程序的组成
    • 1.2 c++程序编译、连接、运行
    • 1.3 模块重点
    • 1.4 项目案例
    • 1.5 资源下载
    • 1.6 实践01
    • 1.7 模块练习
    • 1.8 模块测试
    • 1.9 线上讨论
  • 2 c++基础知识
    • 2.1 c++的词法单位
    • 2.2 c++数据类型、常量、变量
    • 2.3 运算符和表达式
      • 2.3.1 运算符、优先级和结合性
      • 2.3.2 基本运算符及其表达式
        • 2.3.2.1 基本运算符及其表达式 1
        • 2.3.2.2 基本运算符及其表达式 2
    • 2.4 模块重点
    • 2.5 项目案例
    • 2.6 资源下载
    • 2.7 实践02
    • 2.8 模块练习
    • 2.9 模块测试
    • 2.10 线上讨论
  • 3 流程控制语句
    • 3.1 控制结构概述
    • 3.2 顺序结构程序设计
      • 3.2.1 cin、cout
      • 3.2.2 scanf、printf
    • 3.3 选择结构程序设计
    • 3.4 循环结构程序设计
      • 3.4.1 while、do while 、for语句
      • 3.4.2 多重循环
    • 3.5 模块重点
    • 3.6 项目案例
    • 3.7 资源下载
    • 3.8 实践03
    • 3.9 模块练习
    • 3.10 模块测试
    • 3.11 线上讨论
  • 4 数 组
    • 4.1 一维数组
    • 4.2 二维数组
    • 4.3 字符数组
    • 4.4 模块重点
    • 4.5 项目案例
    • 4.6 资源下载
    • 4.7 实践04
    • 4.8 模块练习
    • 4.9 模块测试
  • 5 函数
    • 5.1 函数的定义与声明
    • 5.2 函数类型和函数值
    • 5.3 函数的参数传递
    • 5.4 函数的调用
    • 5.5 内联函数、函数重载
    • 5.6 变量和函数的作用域
      • 5.6.1 变量的作用域
      • 5.6.2 函数的作用域
    • 5.7 宏定义、文件包含
    • 5.8 模块重点
    • 5.9 项目案例
    • 5.10 资源下载
    • 5.11 实践05
    • 5.12 模块练习
    • 5.13 模块测试
  • 6 指针
    • 6.1 指针的基础知识
    • 6.2 指针与数组
      • 6.2.1 指针与一维数组
      • 6.2.2 指针与二维数组
      • 6.2.3 指针与字符串
    • 6.3 指针与函数
    • 6.4 函数main()的预参数、动态内存分配
    • 6.5 模块重点
    • 6.6 项目案例
    • 6.7 资源下载
    • 6.8 实践06
    • 6.9 模块练习
    • 6.10 模块测试
  • 7 类与对象
    • 7.1 类与对象的基本概念
      • 7.1.1 类与对象的基本概念 1
      • 7.1.2 类与对象的基本概念 2
    • 7.2 构造函数
    • 7.3 析构函数
    • 7.4 友元函数和友元类、类的作用域
    • 7.5 模块重点
    • 7.6 项目案例
    • 7.7 资源下载
    • 7.8 实践07
    • 7.9 模块练习
    • 7.10 模块测试
  • 8 继承和多态
    • 8.1 继承的概念与派生的定义
    • 8.2 派生类的继承方式
    • 8.3 派生类的构造函数和析构函数
    • 8.4 多重继承
    • 8.5 基类和派生类的转换
    • 8.6 多态
    • 8.7 虚函数、纯虚函数与抽象类
    • 8.8 模块重点
    • 8.9 项目案例
    • 8.10 资源下载
    • 8.11 实践08
    • 8.12 模块练习
    • 8.13 模块测试
  • 9 综合应用案例
    • 9.1 综合应用案例分析
    • 9.2 综合应用案例设计
      • 9.2.1 类的设计
      • 9.2.2 代码实现
    • 9.3 综合应用案例实现
    • 9.4 应用创新设计案例
      • 9.4.1 交通信号设计
      • 9.4.2 复数计算的实现
      • 9.4.3 课表的实现
      • 9.4.4 迷宫问题
      • 9.4.5 四则运算游戏
      • 9.4.6 打印日历
      • 9.4.7 双向链表的实现
    • 9.5 实践09
    • 9.6 模块测试
  • 10 创新实践
    • 10.1 实践指导书
    • 10.2 实践单元
      • 10.2.1 通讯录设计
      • 10.2.2 车辆信息管理
      • 10.2.3 学生信息管理
  • 11 每周一练
    • 11.1 作品
  • 12 全国计算机等级考试(c++)
    • 12.1 考试大纲
    • 12.2 基础知识
    • 12.3 学习技巧
    • 12.4 实例编程
    • 12.5 上机题库
实践08

实验8 继承与派生——教师工资计算

目的

 1.理解继承的含义;

2.学习从现有类派生出新类的方式;

3.了解在派生类中如何使用基类的成员。

实验内容与要求

1.新建一个雇员类,它的数据成员有雇员代号,年龄,工资,性别,姓名,输入雇员资料方法,打印雇员资料方法。

2.以此雇员类为基类,从中派生出教师类,其中要求在教师类中加入一个计算教师工资的方法,教师工资=基本工资(1000)+课时(月工作量)×30

3.以此雇员类为基类,从中派生出实验员类,其中要求在实验员类中加入一个计算实验员工资的方法,实验员工资=基本工资(800)+实验室补助(150+值班时间(月工作量)×5

4. 以此雇员类为基类,从中派生出行政人员类,其中要求在行政人员类中加入一个计算行政人员工资的方法,行政人员工资=基本工资(900)+行政补贴(200)。

 

实验任务分解



指导

1. 建立工程

(1) 新建一个win32 Console Application的工程:

打开VC++开发软件,从[文件]菜单中点击[新建]菜单项,出现如图所示:

在右上角的工程下输入该工程的名称,如 c10,并设置该工程所保存的路径。

最后点击确定。

(2) 当确定后会出现要你选择工程类型的对话框,如图所示:请选择一个空的工程,即第一个选项。

(3) 当单击确定后,工程建立完毕,接下来建立程序源文件,请再单击[文件]菜单下的[新建]出现原先出现的对话框,请选择 “文件选项卡中的c++ source file选项,并取名,如c10

4 当确定后,就进入了源代码的编辑窗口


2. 定义基类

(1) 定义雇员基类

class  employer{

 

}

(2) 定义职工号、年龄、性别、姓名等基本信息变量。

protected:

       int code,age;//职工号及年龄

       char sex[10];//性别

       char name[10];//姓名

  (3) 构造成方法初始化教师基本信息

    public:

       employer()

       {

            code=0;

            age=0;

        }

  (4) 获得日期方法:getdata

       void getdata()

        {

             cin>> code>>name>>sex >>age;

        }

3. 定义教师派生类

(1) 定义教师派生类teacher

class teacher:public employer

{

 

}

(2) 定义课时等变量。

protected:

         int hour;//课时

  (3) 构造成方法初始化

    public:

       teacher()

       {

            hour=30;

        }

  (4) 获得日期方法:getdata

       void getdata()

       {      

            employer::getdata();

            cin>>hour;

    }

4. 定义实验员派生类

(1) 定义教师派生类labworker

class labworker:public employer

{

 

}

(2) 定义值班时间等变量。

protected:

      int  hour ;//值班时间

  (3) 构造成方法初始化

public:

      labworker()

          {

 

           }

(4) 获得日期方法:getdata

       void getdata()

       {

              employer::getdata();

              cin>>hour;

       }

5. 定义行政人员派生类

(1) 定义教师派生类admin

class admin:public employer

{

}

(2) 定义补贴等变量。

protected:

         double addition;//补贴

 (3) 构造成方法初始化

public:

     admin()

         {

   

          }

(4) 获得日期方法:getdata

       void getdata()

       {

              employer::getdata();

       }

6.编写主菜单函数

(1) 定义三个函数分别实现输入教师信息、输入实验员信息、输入行政人员信息。

          cout<< "确定本次输入的人数:";

          cin >>countt;

          cout<< "职工号\t姓名\t性别\t年龄\t课时\n";

          for(i=0;i<countt;i++)

          {

               t[i].getdata();

           }

(2) 定义三个函数分别实现输出教师信息、输出实验员信息、输出行政人员信息。

         int i;

         cout<< "职工号\t姓名\t性别\t年龄\t基本工资\t课时\t总工资\n";

         for(i=0;i<countt;i++)

          {

                t[i].print();

          }

7.编写一个主函数,实现输入、输出教师、实验员、行政人员信息。

       while(1)

       {

           cout<< "1.输入教师资料\n2.输入实验员资料\n3.输入行政人员资料\n0.退出\n选择您要进行的操作:";

        cin >>i;

           switch(i)

{

               case 1:

                      {

 

}

case 0:return;

         }

    }