C/C++ Programming  (2015 Spring Advancd Class)

Goals

(1) Understand the fundamental conceptions of C/C++ language, including data type, control statements, functions, array, pointer, …;
(2) Understand the principles of process-based/object-oriented software design, including Functions, Points, Arrays/ Class, object, Inheritance, …;
(3) Have the basic ability and skill in C/C++ basic programming;
(4) Know about the background of software programming and software engineering.


Classroom and Laboratory

(1) Every Tuesday and Thursday Evening in Week 1-11: Lecture hour 9-12 18:30-21:50, Lab N1-East204
(2) Programming Test: in Week 12
(3) Paper Test: in Week 13


Syllabus
,C/C++ Coding Guidelines

Week

Type

Date

Lecuture

Experiment

1

Lecture1

15-3-3

Topic: Introduction [slides]
Textbook: Chapter1.

Instruction: Basic coding [slides]
Task: menu.
常见错误列表

1

Lecture2

15-3-5 Topic: Basic programming with C [slides]
Textbook: Chapter2.
Instruction: Basic coding [slides]
常见错误列表

2

Lecture3

15-3-10 Topic: Control statement 1 [slides]
Textbook: Chapter3.
Instruction: Control statement [slides]

2

Lecture4

15-3-12 Topic: Control statement 2 [slides]
Textbook: Chapter4, Chapter9

Instruction: Control statement [slides]

3

Experiment 15-3-17 Experiment 01-04 实验参考答案 华中科技大学2014-2015年校历

3

Lecture5

15-3-19 Topic: C function 1 [slides]
Textbook: Chapter5
Instruction: Function1 [slides]

4

Lecture6

15-3-24 Topic: C function 2 [slides]
Textbook: Chapter5
Instruction: Function2 [slides]

4

Lecture7

15-3-26 Topic: C array 1 [slides]
Textbook: Chapter6

Instruction: Array1 [slides]

5

Lecture8

15-3-31 Topic: C array 2 [slides]
Textbook: Chapter6

Instruction: Array2 [slides]

5

Experiment 15-4-2 Experiment 05-08 实验参考答案  

6

Lecture9

15-4-7 Topic: C pointer 1 [slides]
Textbook: Chapter7
Instruction: Pointer1 [slides]

6

Lecture10

15-4-9 Topic: C pointer 2 [slides]
Textbook: Chapter7, Chapter8
Instruction: Pointer2 [slides]
7

Lecture11

15-4-14 Topic: C struct [slides]
Textbook: Chapter10, Chapter11
sample: file-operation.c, syllabus1.txt, syllabus2.txt
Instruction: Struct [slides]
7

Lecture12

15-4-16 Topic: Linked list [slides]
Textbook: Chapter12
sample: link-list.c

Instruction: Linked list [slides]

8 Experiment 15-4-21
Experiment 09-10 实验参考答案  
8 Experiment 15-4-23 Experiment 11-12 实验参考答案 课程表程序的设计与实现
9

Lecture13

15-4-28

Topic: Difference between C and C++[slides]
Textbook: Chapter15.

Excercise: 15.6
Book codes: Chapter 15
Sample code: reference vs. pointer

9

Lecture14

15-4-30

Topic: Introduction to object-oriented programming [slides]
Textbook: Chapter16-17

Excercise: Date Class
Book codes: Chapter 17
Sample code: myclass.zip
10

Lecture15

15-5-5 Topic: Advances in C++ Class[slides]
Textbook: Chapter18
Excercise: 18.6, 18.9, 19.8
Book codes: Chapter 18
Sample code: class member
10

Experiment

15-5-7 Experiment 13-15 实验参考答案 采用面向对象的方式修改课程表
11

Lecture17

15-5-12 Topic: Inheritance [slides]
Textbook: Chapter20
Excercise: Polygon Class
Book codes: Chapter 20
Sample code: inheritance.zip
11

Lecture18

15-5-14 Topic: Polymorphism [slides]
Textbook: Chapter21
Excercise: Polygon Class
Book codes: Chapter 21
Sample code: polymorphism.zip
12 Experiment report submission (Report template); Programming Test
13 Paper Test

 

Reference Textbooks

[1] H.M.Deitel, P.J.Deitel, C How to program, 5th ,Pearson 2005
[2] H.M.Deitel, P.J.Deitel, C++ How to program  [digital version download], 5th ,Pearson 2005
[3] 谭浩强,《C++程序设计》,清华教育出版社,2004.6
[4] 郑莉 等,《C++ 语言程序设计》,清华大学出版社,2005.7
[5] 钱能 等,《C++ 程序设计教程》(第2版),清华大学出版社,2005.9

 

Resources

(1) Textbook[1] source code [download]
(2) Reference book for standard C/C++ functions [download]
(3) Development tool: Virsual C++ 6.0 for teaching and study [download]
(4) Development tool: Virsual C++ Assistant [download]
(5) Development tool: Code Blocks [download] and in Chinese language patch [download]

Feedback

If you have questions, welcome write e-mail to liuwei@hust.edu.cn.
Due to the large number of spam e-mails, please add ``[C++][Question]'' as the prefix in the title of your e-mail.
That will help me to identify your e-mails, thank you.


<Last Updated: 2015-3-3>