C/C++ Programming  (2015 Fall 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 Monday Evening and Thursday Morning in Week 6-16: Lab N1-Midlde 206
(2) Programming Test: to be annouced
(3) Paper Test:to be annouced


Syllabus
,C/C++ Coding Guidelines

Week

Category

Date

Lecture Content

Experiment

6

Lecture1

10-8

Topic: Introduction [slides]
Textbook: Chapter1.

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

7

Lecture2

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

7

Lecture3

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

8

Lecture4

10-19 Topic: Control statement 2 [slides]
Textbook: Chapter4, Chapter9

Instruction: Control statement [slides]

8

Experiment 10-22 Experiment 01-04 实验集中检查 华中科技大学2014-2015年校历

9

Lecture5

10-26 Topic: C function 1 [slides]
Textbook: Chapter5
Instruction: Function1 [slides]

9

Lecture6

10-29 Topic: C function 2 [slides]
Textbook: Chapter5
Instruction: Function2 [slides]

10

Lecture7

11-2 Topic: C array 1 [slides]
Textbook: Chapter6

Instruction: Array1 [slides]

10

Lecture8

11-5 Topic: C array 2 [slides]
Textbook: Chapter6

Instruction: Array2 [slides]

11

Experiment 11-9 Experiment 05-08 实验集中检查  

11

Lecture9

11-12 Topic: C pointer 1 [slides]
Textbook: Chapter7
Instruction: Pointer1 [slides]

12

Lecture10

11-16 Topic: C pointer 2 [slides]
Textbook: Chapter7, Chapter8
Instruction: Pointer2 [slides]
12

Lecture11

11-19 Experiment 09-10 实验集中检查  
13

Lecture12

11-23 Topic: C struct [slides]
Textbook: Chapter10, Chapter11
sample: file-operation.c, syllabus1.txt, syllabus2.txt
Instruction: Struct [slides]
13 Experiment 11-26
Topic: Linked list [slides]
Textbook: Chapter12
sample: link-list.c

Instruction: Linked list [slides]

14 Experiment 11-30 Experiment 11-12 实验集中检查 课程表程序的设计与实现
14

Lecture13

12-3

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

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

15

Lecture14

12-7

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

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

Lecture15

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

Lecture17

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

Lecture18

12-17 Topic: Polymorphism [slides]
Textbook: Chapter21
Excercise: Polygon Class
Book codes: Chapter 21
Sample code: polymorphism.zip
  Experiment report submission (Report template); Programming Test
  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>