程序设计基础(2023春)

辽宁科技大学 刘丽华

目录

  • 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 上机题库
实践01

实践1 简单c++程序组成、VC++6.0上机环境

目的

⒈熟悉VC++的集成开发环境,学习运行一个C++程序的步骤。

⒉了解几种运算符的使用规则。

⒊掌握变量命名规则,学会变量的定义和使用。

实验内容与要求

1.上机实验题一

1)使用Visual C++6.0对一个C++程序进行编辑、编译、连接和运行。

#include <iostream.h>

void main()

{cout<<”I am a student”<<endl;}

上机实验题二

编写程序完成变量x和变量y值的交换,调试程序并观察运行结果。

分析

要交换变量x和变量y的值,需使用临时变量z才能在进行。

一个完整的参考程序如下:

#include<iostream.h>

void main()

{     int x,y,z;   //A                                                    cout<<"x,y= ";

      cin>>x>>y;

      cout<<"输入的x="<<x<<"  y="<<y <<endl;

      z=x;

      x=y;

      y=z;

      cout<<"输出的x="<<x<<"  y="<<y <<endl;

}

上机实验题三

编程序输入xyz的值,计算的值。

分析

表达式的值不一定为整数,故程序中变量的类型应采用实型。

一个完整的参考程序如下:

#include<iostream.h>

void main()

{   float x,y,z,e,f w; //A

cout<<"x,y,z= "<<endl;

cin>>x>>y>>z;

e= (x+1)*(y-1); //B

f=x+y;  //C

w=e/f;//D

cout<<"w="<<w<<endl;

}

上机实验题四

编写程序。从键盘输入一个三位正整数,输出其逆转数。例如:输入861,输出为168

分析

输入的三位数为整数,变量类型按整型进行处理。可采用求余数的方法计算各位上的数,然后逆序输出。

一个完整的参考程序如下:

#include<iostream.h>

void main()

{     int n,i,j,k;               

      cout<<"输入一个三位正整数n:";

      cin>>n;      

      i=n%10; //i存放个位数

      n=(n-i)/10; //去掉个位数

      j=n%10; //j存放十位数

      n=(n-j)/10; //去掉十位数

      k=n;//k存放百位数

      n=i*100+j*10+k;

      cout<<"逆转数为:"<<n<<endl;

}

5.上机实验题五

给出下列程序的运行结果

分析

本例测试了不同数据类型之间的数据转换。

#include<iostream.h>

void main()

{

      int a=32,b;

      double c=2.7,d;

      char e='D',f;

      b=a+c; //A

      d=a+c;

      f=a+e;

      cout<<"b="<<b<<endl;

      cout<<"d="<<d<<endl;

      cout<<"f="<<f<<endl;      //B

      cout<<b+d+f<<endl;       //C

}

指导

1.上机实验题一

编辑、编译、连接和运行一个程序输出”HelloC++!”。(编辑调试过程见前面所述)

上机实验题二

在键盘上分别按如下格式输入两组数据:

5,3(回车)

5 3(回车)

观察程序运行结果。

将程序中的xyz命名为autobreakcase分析程序出错原因。

只将程序Ax改为大写X,运行程序观察程序运行结果。

修改程序用条件运算符输出两个数中的较大数。

3.上机实验题三

输入x5.4y3.1z2.7,观察程序运行结果。

将程序中A行改为“int x,y,z,e,f,w ;”,输入x5.4y3.1z2.7,观察程序运行结果。

将程序中A行改为“float x,y,z,w;” BCD行改为“w=(x+1)*(y-1)/x+y;”,观察程序运行结果。

写出实验报告。

4.上机实验题四

修改程序使其先取百位数,再取十位数,最后取个位数。

5.上机实验题五

修改程序A行,对b的输出值四舍五入。

修改程序B行,按整型值输出f

分析C行数据的值的类型。

注意:本例A行提示如下警告:“conversion from 'double' to 'int', possible loss of data.”属于正常。

实验要求

1.       结合上课内容,写出程序,并调试程序,要给出测试数据和实验结果。

2.       整理上机步骤,总结经验和体会。完成实验报告和上交源程序。