程序设计基础(2024秋)

辽宁科技大学 刘丽华

目录

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

实验9 输入与输出流——学生信息管理

目的

1. 掌握流的概念。

2. 掌握文件的打开与关闭。

3. 掌握文件的读写操作。

实验内容与要求

建立一个文本文件“students.txt”,打开该文件,向其添加学生信息并显示学生资料信息。要求可反复输入、显示。

 实验任务分解



指导

1. 建立工程

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

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

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

最后点击确定。

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

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

4 当确定后,就进入了源代码的编辑窗口,如图所示:

  2. 学生信息类

(1) 声明学生信息类:STUDENT

class STUDENT{

 

}

(2) 定义描述学生信息的私有变量:如学生编号、学生名字、学生性别、专业名称、班级名称、年级名称、家庭住址、电话号码等。

(3) 学生信息输入的方法,依次输入相关信息,由于要被主函数调用,定义为公有方法。

       void srBh(){   //输入编号

              cout<<"请输入学生编号:";

              cin>>bh;

              cout<<endl;

       }

(4) 学生信息输出的方法。

       void scXX(){  //输出学生信息

              cout<<"你输入的学生信息如下:"<<endl;

              cout<<"学生编号:"<<bh<<"     ";

      }

  3. 记事本类

(1) 声明记事本类:NOTEBOOK

class NOTEBOOK{

}

(2) 定义文件名、流对象,创建学生类对象“STUDENT s;”。

private:

       char filename[20];

       fstream f;

       STUDENT s;

(3) 构造方法:

NOTEBOOK(char *f){

              strcpy(filename,f);

       }

(4) 创建文件的方法:creat( )

f.open(filename, ios::in|ios::trunc);

       f.close();

(5) 添加记录方法:append( )

f.open(filename, ios::in|ios::app);        

              if(!f){

                     cerr<<"文件不能打开!"<<endl;

                     return false;

              }else{

                     f<<"学生编号:"<<s.bh<<"学生姓名:"<<s.mz<<"学生性别:"<<s.xb;

                     f<<"专业名称:"<<s.zy<<"年级:"<<s.nj<<"班级:"<<s.bj;

                     f<<"家庭住址:"<<s.dz<<"电话号码:"<<s.dh<<endl;

              }

(6) 显示记录方法:display( )

f.open(filename, ios::in|ios::app);        

              if(!f){

                     cerr<<"文件不能打开!"<<endl;

                     return;

              }else{

                     f.seekg(0);

                     while(!f.eof()){            

                            f.getline(p,100);

                            cout<<p<<endl;

                     }

              }

              f.close();

  4. 主函数

(1) 在主函数创建记事本实例,并指定文本文件为“students.txt“。

       NOTEBOOK b("students.txt");

(2) 循环输入操作指令,根据指令完成创建、增加、显示功能。

       while(true){

              cout << "请选择操作:";

              cin>>w;

              switch(w){

              case 1:b.creat();break;

         }