计算机程序设计(VC++)

本课程以C++语言为载体,讲授计算机程序设计,为更好地利用计算机解决工程实践、科学研究和日常生活中的问题打下基础。从程序设计方法角度分,计算机语言有面向过程的和面向对象的。面向过程的思想是将任务分解成一系列的函数,函数通过相互调用联系起来完成任务。面向对象的思想是将任务分解成一系列对象,对象具有功能。对象间通过消息传递信息,触发事件,完成任务。面向对象的语言被认为具有更好的重用性、可维护性和可扩展性。C++是面向对象的语言。但也要注意,面向过程和面向对象不是截然分开的,不是对立的。面向过程是面向对象的基础。本课程前半部分的编程思想仍是面向过程的,这对初学者更容易入门;后半部分是面向对象的,为进一步学习奠定基础。学习程序设计,要学习语言的语法,更重要的是求解问题的算法思想。语法的学习需要多尝试,算法的学习需要多思考。学习程序设计,就要多编程。

此线上环节主要以单元测验为主,以客观题形式考核,占总评成绩的25%;

对于慕课堂班级,线上线下混合翻转的参与情况,占总评成绩的15%;

期末线下考试成绩,占总评成绩的60%。

本课程面向零基础同学。学习过“大学计算机基础”或其他计算机课程对学习有帮助,但不是必要的。

第1周程序设计与C++概述

1.1程序设计和C++

1.2计算机语言的分类

1.3HelloWorld和编程环境

1.4程序错了怎么办

1.5实例:生日贺卡

1.6实例:加法计算器

1.7实例:计算存款本息

1.8C++程序的基本要素

本周课件和推荐阅读

第1周单元测试

第1周编程作业

C++基础练习100题

本节内容是练习题,逐步推出C++基础练习100题

第1周基础练习

第2周基础练习

第3周基础练习

第4周基础练习

第5周基础练习

第6周基础练习

第7周基础练习

第8周基础练习

第9周基础练习

第10周基础练习

第11周基础练习

第12周基础练习

第13周基础练习

第2周简单信息的表示和基本运算

2.1数据类型

2.2常量和变量

2.3算术运算和自增自减运算

2.4关系运算

2.5逻辑运算符

2.6位运算

2.7特殊运算符(赋值运算符、字节数运算符、条件运算符和逗号运算符)

2.8混合运算的类型转换

2.9实例:计算三角形的面积

2.10实例:构造5位数的反序数

2.11实例:加密解密

重点难点:整数、字符和字符串

重点难点:转义符

本周课件

小技巧:设置运行窗口颜色为白底黑字

第2周单元测试

第2周编程作业

第3周运算的流程控制

3.1程序流程控制

3.2单路和双路分支

3.3多路分支

3.4已知次数循环

3.5已知条件循环

3.6实例:解一元二次方程

3.7实例:简单计算器

3.8实例:寻找自幂数

重要技巧:程序调试方法——加输出语句

重要技巧:程序调试方法——单步跟踪

第3周单元测试

第3周编程作业

第4周复杂信息的表达与处理

4.1一维数组

4.2二维数组

4.3结构体

4.4枚举(实例三色球组合)

4.5实例:冒泡排序

4.6实例:文字信息统计

4.7实例:使用string字符串

4.8实例:矩阵乘法

4.9实例:取子字符串

4.10实例:词频统计

第4周单元测试

第4周编程作业

第5周问题的模块化求解

5.1模块化程序设计

5.2函数的定义

5.4函数的调用格式

5.5参数的传递方式

5.6为形参指定默认值

5.7数组名作为函数的参数

5.8结构体变量作为函数的参数

5.9实例讲解

第5周课件

第5周单元测试

第5周编程作业

第6周问题的模块化求解(2)——特殊函数

6.1递归函数

6.2内联函数

6.3函数重载

6.4变量的作用域和存储类型

6.5实例讲解(Hanoi问题,Fibonacci序列递归求解,二分查找的递归实现,排序函数重载)

第6周课件及课程学习建议

补充——图解汉诺塔

第6周单元测试

第6周编程作业

第7周按址操作(1)——指针、变量和函数

7.1什么是指针

7.2指针和变量的关系

7.3指针作为函数的参数

7.4返回指针的函数

7.5指向函数的指针

7.6实例讲解(利用指针实现三个数的排序、返回字符指针的去掉字符串首部空格函数、通过指针同时返回圆的面积和周长(扩展-多功能函数)、通定积分函数)

第7周单元测试

第7周编程作业

第8周按址操作(2)——指针与数组、字符串、结构体,动态数组

8.1数组与指针、指针的算术运算

8.2指针的关系运算、通过指针访问数组元素

8.3二维数组与指针

8.4指向一维数组指针(行指针)、字符串指针

8.5字符指针应用、指针数组

8.6结构体与指针

8.7动态数组

8.8实例讲解(数组元素逆序(指针和动态数组实现)、字符串排序(指针和动态数组实现)、32位二进制IP地址转换为十进制点分IP地址(带合法性检验))

第8周单元测试

第8周编程作业

第9周数据的抽象与封装——类与对象(1)

9.1类的概念

9.2类的定义

9.4类的私有、公有与保护成员

9.5日期类的设计

9.6结构化和面向对象的程序设计思想

9.7可鸣笛、运动和播放MP3的汽车类的设计

9.8圆类的设计

9.9实例讲解

第9周单元测试

第9周编程作业

第10周数据的抽象和封装——类(2)——构造函数、析构函数和指向对象的指针

10.1构造函数的定义

10.2重载构造函数

10.3析构函数的定义

10.4实例:整数翻译函数

10.5实例:实际意义的析构函数

10.6实例:Person类的设计

10.7对象与指针

10.8this指针

10.9实例讲解

10.10难点解析1——this指针

第10周单元测试

第10周编程作业

第11周取其精华发挥优势——继承

11.4基类与派生类

11.5继承方式

11.6派生类的构造函数与析构函数

11.7从点到圆再到圆柱体的派生类设计

11.8从U盘到MP3的派生类设计

11.9实例讲解

第11周单元测试

11.1具有行走听说功能的“人”类的设计

11.2为什么需要继承

11.3派生类的定义

第11周编程作业

第12周统一接口不同实现——多态性

12.1多态的概念

12.2派生类对象替换基类对象

12.3虚函数

12.4抽象类

12.5运算符的重载

12.6实例1水果类与虚函数

12.7实例2日期类与比较运算符的重载

12.8实例3分数类与加减运算符的重载

12.9实例4数组类与插入运算符(<<)的重载

12.10补充内容:虚析构函数

12.11补充内容:浅拷贝和深拷贝

第12周单元测试

第12周编程作业

第13周标准输入输出与文件操作

13.1流的概念和流类的结构

13.2标准输入流

13.3标准输出流

13.4文件操作基础

13.5文本文件读写

13.6二进制文件的读写

13.7文件操作实例(随机发牌、统计词频、MP3赋值、成绩管理)

13.8补充内容:const用法总结

第13周单元测试

第13周编程作业

第14周模板和标准模板库简介

14.1函数模板

14.2类模板

14.3STL简介

14.4vector容器

14.5vector上的迭代器

14.6vector上应用算法

14.7序列型容器概览

14.8关联容器概览

14.9map容器

14.10容器适配器概览

第14周PPT课件

第14周单元测试

教材和教学参考书

教材:

钱能.C++程序设计教程(第3版)通用版.北京:清华大学出版社.2019.7.ISBN978-7-302-52126-6参考书:

[1]赵英良仇国巍等.C++程序设计教程.清华大学出版社,2013.8.ISBN978-7-302-33057-8

[2]赵英良卫颜俊等.C++程序设计实验指导与习题解析.清华大学出版社,2013.8.ISBN978-7-302-33058-5

[3]谭浩强.C++程序设计(第3版).北京:清华大学出版社.2019.12.ISBN978-7-302-40830-7

[4]谭浩强.C++程序设计题解与上机指导(第3版).北京:清华大学出版社.2019.11.ISBN978-7-302-40842-0

[5]明日科技.VisualC++从入门到精通(第5版).北京:清华大学出版社.2019.11.ASINB08237X1LX

Q:本课程的选课条件是什么?A:本课程预计的主要对象是大学本科生,但不限于大学生。只要你有热情,有决心,就能学好。如果在大学学了“大学计算机基础”或接触过其他语言的程序设计,对本课学习会有所帮助,但这不是必要的,更不是充分的。

Q:如何学好程序设计?

Q:win10如果不能运行VC++6.0怎么办?A:由于vc++6.0已经很早了,所以Windows10会出现各种不兼容问题,最主要的就是不能打开。现在提供一种办法,不是修改兼容性,而是替换文件,方法已经使用多次。链接下面的网址,按网页中介绍的方法去处理,就OK了。

Q:VC++6.0打开文件就出现闪退情况,怎么解决?

A:我们平时使用的都是经典的VC++6.0,总是遇到打开文件崩溃(闪退)的问题。

THE END
1.C++学习方法c++的学习技巧C++学习方法 一.学基础 1.看图文讲解 2.看视频讲解 现如今很多视频网站上都有很多大佬的0基础课程,选择自己喜欢的老师学习。 3.自己作笔记归纳 可以手写也可以注册一个新的账号在许多平台上记录(如CSDN) 4.多练习 多练多练多练https://blog.csdn.net/2301_78352776/article/details/140364345
2.C++编程练习题大全带答案.docC++编程练习题大全带答案.doc,一、简单问题: 5. 编程计算: 1!+2!+3!+…+20!,并将结果输出.输出格式: 1!+2!+3!+…+20!= 表达式的值 package moreEasy; public class The5th { public static void main(String[] args) { long sum=0; for(int i=1;i=20;i++){ long r=1; fohttps://max.book118.com/html/2021/1110/5020104210004103.shtm
3.在Windows下用GCC编译器练习C/C++的简单教程--- 开始正文 --- 最近有许多师弟师妹们问入门 C 语言和 C++ 的时候练习代码应该装什么软件。 根据老师和前辈们的建议以及我这一年的折腾经验,在Linux系统下学习 C 语言和 C++ 的话那真是极好的,但是鉴于现实的情况(例如 Linux 命令行操作对于一个暂时对电脑不是非常了解的人来说可能一开始不太好上手),很多https://cloud.tencent.com/developer/article/1543542
4.C/C++练习经典的快慢指针问题移除元素江河入海,知识涌动,这是我参与江海计划的第5篇。题目描述 题目出处 :移除元素 示例 题解 ?对于本题我将按照由易到难的顺序为大家分享三种解题思路,并逐一分析它们的优劣,以及注意事项。思路一:暴力求解 ?我想暴力求解应该是第一次接触到此题的小伙伴们最先想出来的办法吧。这道题目暴力https://open.alipay.com/portal/forum/post/135801052
5.C++编程基础练习,入门必备练手程序员白二呀练习1.2 将上述程序的内容进行扩充(1)要求用户同时输入名字(first name)和姓氏(last name);(2)修改输出结果,同时打印姓氏和名字。 C/C++的学习裙【105+302+9869】,无论你是小白还是进阶者,是想转行还是想入行都可以来了解一起进步一起学习!裙内有开发工具,很多干货和技术资料分享! https://www.cnblogs.com/lxhxq/p/13991626.html
6.CCFCSP认证注册报名查询成绩做模拟题等答疑CCF CSP认证注册、报名、查询成绩、做模拟题等答疑 CCF CSP认证中心将考生在注册,或报名,或查询成绩,或历次真题练习时遇到的问题进行汇总,并给出解决方法,具体如下: 1、注册时,姓名可否随意填写? 答:不能,否则成绩单会显示不正确的信息,而且,若是CCF会员,则无法享受会员价格。https://www.cspro.org/cms/show.action?code=publish_8ac21fad692439c7016932b9e83e010d
7.2017计算机二级C++操作练习题附答案引导语:2017年9月计算机二级考试快要来临了,你是否在烦恼没有操作练习题呢,以下是百分网小编分享给大家的2017计算机二级C++操作练习题附答案,欢迎练习! 一、程序改错题(18分) 使用VC++6.0打开考生文件夹下的源程序文件1.cpp,该程序运行时有错,请改正其中的错误,使程序正常运行,并使程序输出的结果为 TC1 TC2 https://www.oh100.com/kaoshi/ncre2/tiku/413268.html
8.怎么使用iotDB的cli命令行工具iotstdio怎么使用iotDB的cli命令行工具 iot stdio 我们从一开始就一直在利用C++的输入输出在做着各种练习,输入输出是由iostream库提供的,所以讨论此标准库是有必要的,它与C语言的stdio库不同,它从一开始就是用多重继承与虚拟继承实现的面向对象的层次结构,作为一个c++的标准库组件提供给程序员使用。https://blog.51cto.com/u_16213626/10227100