加速C++实战编程(2000版)

需积分: 0 2 下载量 148 浏览量 更新于2024-08-02 收藏 2.58MB PDF 举报
"Accelerated C++ 2000" 是一本由 Andrew Koenig 和 Barbara E. Moo 合著的编程书籍,专注于 C++ 实践编程。本书通过实例引导读者快速掌握 C++ 语言,旨在加速学习过程。本书第二版于2000年由 Addison-Wesley 出版,共336页,涵盖了从基础到进阶的多个主题。 在书中,作者首先介绍了 C++ 的基本概念,帮助新手快速入门。第0章"Getting started"讲解了以下几个关键知识点: 1. **评论(Comments)**:C++ 中的注释方式,包括单行注释(//)和多行注释(/*...*/),用于提高代码可读性。 2. **#include**:预处理器指令,用于将其他文件的内容包含到当前源文件中,通常用于引入标准库或自定义头文件。 3. **main函数**:C++ 程序的入口点,所有执行都从这里开始。 4. **花括号(Curly braces)**:用于定义代码块,如类、函数和控制结构。 5. **标准库的输出(Using the standard library for output)**:使用 `std::cout` 进行输出,这是 C++ 标准库中的 IO 流组件。 6. **return语句(The return statement)**:用于从函数返回一个值,结束函数执行。 7. **深入理解(A slightly deeper look)**:本节可能进一步探讨了以上概念的细节和应用。 接下来的章节逐步引入更复杂的编程概念: 第1章"Working with strings"关注字符串操作,包括: 1. **输入(Input)**:如何从用户或文件获取文本数据。 2. **Framing a name**:可能涉及字符串的格式化输出,如在名字前后添加引号。 第2章"Looping and counting"介绍循环和计数技巧: 1. **问题(The problem)**:提出使用循环解决的问题场景。 2. **整体结构(Overall structure)**:如何设计循环结构以解决特定问题。 3. **Writing an unknown number of rows**:处理动态行数的循环。 4. **Writing a row**:在每一行内进行操作的逻辑。 第3章"Working with batches of data"讨论批量数据处理,例如: 1. **Computing student grades**:计算学生成绩,可能涉及到数组和条件语句。 2. **Using medians instead of averages**:用中位数替代平均数,介绍统计概念在编程中的应用。 第4章"Organizing programs and data"讲解程序结构和数据组织: 1. **Organizing computations**:如何设计算法和函数以提高代码的模块化和可维护性。 2. **Organizing data**:数据结构的选择和使用,如数组、结构体等。 3. **Putting it all together**:将各种组件整合成完整程序的过程。 第5章"Using sequential containers and analyzing strings"涉及序列容器和字符串分析: 1. **Separating students into categories**:可能用到了容器(如 std::vector 或 std::list)来分类学生数据。 2. **Iterators**:迭代器的概念,它是访问容器元素的一种机制。 3. **Using iterators instead of indices**:比较使用迭代器与下标访问容器元素的区别和优势。 4. **Rethinking our data structure**:重新考虑数据结构以优化程序性能。 这本书通过实例和逐步解析,旨在帮助读者快速掌握 C++ 编程,并理解如何有效地组织代码和处理数据。每章末尾的 "Details" 部分通常会深入讨论相关技术的细节,帮助读者深化理解。
2012-01-02 上传
这个C++管理系统基本涵盖了“学生成绩管理系统”的所有功能,你可以从中借鉴到C++链表、类、封装、继承、文件操作、排序等等很多知识,极具借鉴意义,以下为本项目的功能介绍: 1. 建立文件 (1)可以使用默认文件名或指定文件名将记录存储到 (2)设置适当的标志位,作为对记录进行操作的 (3)写同名文件将覆盖原来文件的 2.增加学生记录 (1) 可在已有记录后面追加新的记录 (2) 可以随时增加新的记录,它们仅保存在向量数组中 (3) 可以将一个文件读入,追加在已有记录之后 (4) 采取文件追加方式时,在没有保存到文件之前,将继续保持文件追加状态,以便实现连续追加操作方式 3. 新建学生信息文件 (1) 用来新建学生信息记录 (2) 如果已经有记录存在,可以覆盖原记录或者在原记录后面追加,也可以将原有记录信息保存 到一个指定文件,然后重新建立记录 (3) 给出相应的提示信息 4. 显示记录 (1) 如果没有记录可供显示,给出提示信息 (2) 可以随时显示内存中的记录 (3) 显示表头 5. 文件存储 (1) 可以按默认名字或指定名字存储记录文件 6. 读取文件 (1) 可以按默认名字或指定名字将记录文件读入内存 (2) 可以将指定或默认文件追加到现有记录的尾部 (3) 可以将文件连续追加到现有记录并更新记录中的“名次” 7. 删除记录 (1) 可以按“学号”、“姓名”或“名次”方式删除记录 (2) 标志将被删除的记录, 可以再次取消标志, 经确认后删除已经标志的记录(3) 如果记录是空表, 删除时应给出提示信息并返回主菜单 (4) 如果没有要删除的信息, 输出“没有找到”的信息 (5) 更新其他记录的名次 (6) 删除操作仅限于内存, 只有执行存储操作时, 才能覆盖原记录 8. 修改记录 (1) 可以按“学号”、“姓名”或“名次”方式查找要修改的记录内容 (2) 给出将被修改记录的信息, 经确认后进行修改 (3) 如果记录已经是空表,应给出提示信息并返回主菜单 (4) 如果没有找到需要修改的信息, 输出“没有找到”的信息 (5) 更新其他记录的名次 (6) 修改操作仅限于内存, 只有执行存储操作时, 才能覆盖原记录 9. 查询记录 (1) 可以按“学号”、“姓名”或“名次”方式查询记录 (2) 能给出查询记录的信息 (3) 如果查询的信息不存在, 输出提示信息 10. 对记录进行排序 (1) 可以按”学号”进行升序和降序排列 (2) 可以按”姓名”进行升序和降序排列 (3) 可以按”名次”进行升序和降序排列 (4) 如果属于选择错误, 可以立即退出程序