C语言程序设计(项目教学版)

C语言程序设计(项目教学版)"

作者:梁爽、吴瑕、赵云鹏、蒋方美、张岩、罗万波
ISBN:9787302547808
定价:¥45
字数:千字
页数:
出版时间:2020.04.01
开本:
版次:1-3
装帧:
出版社:清华大学出版社
简介

《C语言程序设计:项目教学版》面向工作过程并按职业能力递进的顺序安排内容,以“项目导向,任务驱动”的教学模式,将各个知识点和各项教学活动紧密联系,以培养学生的自主开发能力。

《C语言程序设计:项目教学版》共分10个项目:项目1为通讯录信息输出,主要介绍C程序宏观架构、开发过程及环境、数据类型、顺序结构程序设计、C程序的输入输出;项目2为银行存款期限及利率计算,主要介绍分支结构设计;项目3为小学生计算机辅助教学系统,主要介绍循环结构设计;项目4为选秀节目选手排序,主要介绍数组设计和使用;项目5为学生成绩分析系统,主要介绍函数设计与实现;项目6为计件工资管理程序,主要介绍指针的使用;项目7为生日祝贺程序,主要介绍结构体与共用体;项目8为家庭理财程序,主要介绍文件的使用;项目9为通讯录管理程序;项目10为学生成绩管理系统程序,综合应用C语言中涉及的相关内容,完成完整的项目需求分析、设计和实现。

《C语言程序设计:项目教学版》程序代码均在Visual C++6.0运行环境中调试通过。C源文件、书中所有项目程序的源代码和相关课件均有提供。

《C语言程序设计:项目教学版》适合作为应用型本科学生的教材,也可以作为高职学生及其他培训班的C语言课程的教学用书,还可以作为等级考试的辅导用书。

前言

前    言

  目前,很多高等院校都选用C语言作为程序设计基础课程的学习语言。传统的C语言教材比较注重按照知识的体系结构组织内容,不能将理论知识与实际的软件开发结合起来,学生普遍反映学习难度较大,影响学习的积极性和主动性。针对这种情况,我们在教学内容、教学方法的改革和创新方面进行了大胆尝试,本着“项目导向,任务驱动”的教学原则,组织长期从事C语言教学的老师精心编写了本书。 

  本书以培养学生的C语言程序设计应用能力为主线,强调理论与实践相结合。通过各项目的学习,可掌握C语言的知识和语法。本书在编写过程中有以下特点。

1. 面向工作过程和职业能力递进设计课程内容体系

  针对企业使用C语言程序设计的工作过程,与企业专家共同重构课程内容体系,围绕C语言程序设计需要的知识、能力、素质,我们搭建了项目工作场景,细化出相应的课程单元,保障了(项目)工作任务实施与实际工作过程的一致。学生在完成(项目)工作任务的过程中,构建知识体系,发展职业能力。

2. 全面实施“项目导向,任务驱动” 

  项目导向,我们与企业专家共同选择了通讯录信息输出、银行存款期限及利率计算、小学生计算机辅助教学系统、选秀节目选手排序、学生成绩分析系统、计件工资管理程序、生日祝贺程序、家庭理财程序、通讯录管理程序和学生成绩管理系统程序共10个项目作为背景。任务驱动,我们将每个项目分解成多个任务,通过对任务的分析和实现,引导学生由浅入深、由简到难地学习,使学生的编程能力在10个项目的实施中逐步得到提高,达到学以致用的目的。

3. 基础知识与延展知识相结合,保证知识的覆盖面

  本书选用的10个项目包含C语言中的大部分知识点,对于少部分没有涉及的内容,在延展知识中加以补充。教师可以根据教学要求,灵活分配和组织教学内容。

4. 强化训练,注重动手能力培养

  为了更好地掌握程序开发,本书按照教学全过程实施技能训练的思路,设置了大量的训练任务,通过“学用结合,理实一体”,实现同步训练、小组活动和任务拓展训练,强化学生的动手能力。

  本书由梁爽策划,吴瑕、赵云鹏、蒋方美、张岩和罗万波参加了部分编写和校验工作,并由梁爽完成统稿。本书在编写过程中,得到沈阳工学院领导、同事、朋友的帮助和支持,在此表示衷心的感谢!

  由于编者水平有限,书中难免有疏漏和错误之处,恳请广大读者批评指正。

  

  编  者    

  

  

  

  

  

  

  

  

  

  

目录

目    录

项目1  通讯录信息输出 1

任务1.1   认识C程序宏观结构 2

任务实施 2

1.1.1  程序框架结构 2

1.1.2  程序构成 4

任务1.2  程序开发过程和环境 5

任务实施 5

1.2.1  程序开发过程 5

1.2.2  程序开发环境 6

任务1.3  分析输出数据及类型 9

任务实施 9

任务1.4  声明变量并赋值 10

任务实施 10

1.4.1  输出数据分析 10

1.4.2  变量声明与赋值 10

任务1.5  录入通讯录信息 20

任务实施 20

1.5.1  任务分析与实现 20

1.5.2  数据的输入和输出 21

任务1.6  显示通讯录信息 30

任务实施 30

1.7  上机实训 30

1.7.1  输出学生成绩训练 30

1.7.2  输出职工工资表训练 32

项目小结 33

知识补充 33

1.8  C语言程序代码编写规范 33

项目任务拓展 35

项目2  银行存款期限及利率计算 36

任务2.1  定义项目中的数据结构 37

任务实施 37

2.1.1  项目数据结构 37

2.1.2  运算符和表达式概述 37

2.1.3  赋值运算符和赋值表达式 38

2.1.4  算术运算符和算术表达式 41

2.1.5  关系运算符和关系表达式 43

2.1.6  逻辑运算符和逻辑表达式 45

2.1.7  条件运算符和条件表达式 47

2.1.8  逗号运算符和逗号表达式 48

任务2.2  将非标准数据转化成标准存储

月数 49

任务实施 49

2.2.1  存款期限转换成固定月份 49

2.2.2  实现选择结构的if语句 49

任务2.3  根据存款期限确定存款利率 56

任务实施 56

2.3.1  给定存款期限,输出本息

合计 56

2.3.2  switch语句的结构及应用 56

2.4  上机实训 58

2.4.1  个人所得税计算 58

2.4.2  企业员工年终奖管理程序 59

项目小结 60

知识补充 61

2.5  程序中的语法错误与逻辑错误调试 61

项目任务拓展 62

项目3  小学生计算机辅助教学系统 64

任务3.1  学生根据提示计算 65

任务实施 65

3.1.1  学生用辅助系统计算 65

3.1.2  循环控制结构与循环语句 65

3.1.3  while语句的结构及应用 67

任务3.2  限制重做次数 68

任务实施 68

3.2.1  学生用辅助系统计算,

最多算3次 68

3.2.2  do…while语句的结构及应用 69

任务3.3  连续10道乘法计算题 70

任务实施 70

3.3.1  限制10道乘法计算题 70

3.3.2  for语句的结构及应用 71

3.3.3  循环嵌套 73

任务3.4  随机产生10道四则混合运算,

并计算分数 74

任务实施 74

3.4.1  随机计算四则运算题 74

3.4.2  goto语句的结构及应用 75

3.4.3  break语句的结构及应用 77

3.4.4  continue语句的结构及应用 78

3.5  上机实训 79

3.5.1  百元百鸡问题 79

3.5.2  猜数字游戏 80

项目小结 81

知识补充 82

3.6  算法的时间复杂度 82

项目任务拓展 83

项目4  选秀节目选手排序 84

任务4.1  定义数组变量 84

任务实施 84

4.1.1  定义选秀节目选手排序的

数组 84

4.1.2  一维数组的定义 85

任务4.2  输入待排序数据 86

任务实施 86

4.2.1  输入待排序数据示例 86

4.2.2  一维数组的初始化 86

任务4.3  冒泡排序法 88

任务实施 88

4.3.1  冒泡排序法介绍 88

4.3.2  一维数组的引用 88

任务4.4  输出排序结果 91

任务实施 91

4.5  知识延展 91

4.5.1  二维数组 91

4.5.2  多维数组 95

4.5.3  字符数组 96

4.6  上机实训 104

4.6.1  整数插入排序数组 104

4.6.2  按字母排序输出国家名称 105

项目小结 106

知识补充 106

4.7  算法的空间复杂度 106

项目任务拓展 107

项目5  学生成绩分析系统 108

任务5.1  输入学生成绩 109

任务实施 109

5.1.1  输入10名学生5门课程的

成绩 109

5.1.2  函数的引入 110

任务5.2  每位学生的平均分 111

任务实施 111

5.2.1  计算每位学生的平均分 111

5.2.2  函数定义的形式 111

任务5.3  每门课程的平均分 118

任务实施 118

5.3.1  计算每门课程的平均分 118

5.3.2  函数的参数 118

任务5.4  查找最高分的学生和课程 124

任务实施 124

5.4.1  举例查找各门课程最高分的

学生和课程 124

5.4.2  函数的嵌套调用与递归调用 124

任务5.5  按学号查成绩 127

任务实施 127

5.5.1  按学号查成绩举例 127

5.5.2  变量的存储类别与作用域 127

5.6  上机实训 135

5.6.1  打印超市购物小票的票头 135

5.6.2  Hanoi塔问题 136

项目小结 137

知识补充 138

5.7  模块化程序设计 138

项目任务拓展 139

项目6  计件工资管理程序 140

任务6.1  输入产品数量 141

任务实施 141

6.1.1  输入员工一天制作的产品

数量 141

6.1.2  地址、指针、指针变量 141

任务6.2  显示产品数量 145

任务实施 145

6.2.1  显示员工一天制作的产品

数量 145

6.2.2  指针的运算 145

任务6.3  统计制作产品最多的员工和

数量 149

任务实施 149

6.3.1  统计一天中制作产品最多的

员工序号和产品数量 149

6.3.2   指针变量作为函数参数 149

任务6.4  显示产品数量排序 152

任务实施 152

6.4.1  显示一天中员工制作产品

数量排序的结果 152

6.4.2  指针与数组 152

任务6.5  统计总量与平均值 163

任务实施 163

6.5.1  统计一天中制作产品的

总量和平均值 163

6.5.2  指针与字符串 163

任务6.6  统计工作量低于平均值的

员工 167

任务实施 167

6.6.1  统计低于平均工作量的

员工 167

6.6.2  指针数组 168

6.7  上机实训 171

6.7.1  用数组指针实现冒泡排序 171

6.7.2  提取字符串的子串 173

项目小结 174

知识补充 175

6.8  动态内存分配 175

项目任务拓展 176

项目7  生日祝贺程序 177

任务7.1  设计数据结构 178

任务实施 178

7.1.1  定义日期和员工信息

结构体 178

7.1.2   结构体类型的定义 178

任务7.2  输入员工数据 179

任务实施 179

7.2.1  定义函数输入n位员工数据 179

7.2.2   结构体变量、数组的定义与

引用 180

任务7.3  查找指定生日日期的员工 183

任务实施 183

7.3.1  定义查找函数查找指定

日期的员工 183

7.3.2   指向结构体变量的指针 183

任务7.4  主函数中先后调用输入和

查找函数 185

任务实施 185

7.4.1  调用输入和查找函数实现

系统功能 185

7.4.2  链表 186

7.5  知识延展 195

7.5.1  共用体 195

7.5.2  枚举类型 199

7.5.3  用typedef定义类型 201

7.6  上机实训 202

7.6.1  结构指针计算一组学生的

成绩 202

7.6.2  扑克牌的结构表示 203

项目小结 206

知识补充 206

7.7  数据库技术 206

项目任务拓展 208

项目8  家庭理财程序 209

任务8.1  定义项目中的数据结构 210

任务实施 210

8.1.1  定义家庭收支项目记录

结构体数据类型item 210

8.1.2  相关知识 210

任务8.2  显示用户选择主菜单 213

任务实施 213

8.2.1  显示用户选择主菜单示例 213

8.2.2  文件记录指针的顺序定位

操作 213

任务8.3  统计家庭所有收支项目记录

总数 217

任务实施 217

8.3.1  统计文件中的家庭收支

记录 217

8.3.2  文件记录指针的随机定位

操作 219

任务8.4  增加一条家庭收支项目记录 220

任务实施 220

8.4.1  使用文件读写函数增加

记录 220

8.4.2  随机读写函数 222

任务8.5  显示家庭所有收支项目记录 223

任务实施 223

8.5.1  读取文件显示家庭收支项目

记录 223

8.5.2  文件操作的辅助函数 224

任务8.6  查询最后一次家庭收支项目

记录 226

任务实施 226

任务8.7  编写主函数 227

任务实施 227

8.7.1  实现系统功能 227

8.7.2  文件的打开与关闭 228

8.8  上机实训 231

8.8.1  使用文件读写学生数据 231

8.8.2  使用文件统计学生成绩 233

项目小结 234

知识补充 235

8.9  云计算与大数据 235

项目任务拓展 236

项目9  通讯录管理程序 237

任务9.1  主函数 238

任务实施 238

任务9.2  菜单函数 239

任务实施 239

任务9.3  输入记录函数 240

任务实施 240

任务9.4  显示记录函数 240

任务实施 240

任务9.5  查找记录函数 241

任务实施 241

任务9.6  显示指定记录函数 241

任务实施 241

任务9.7  查找函数 241

任务实施 241

任务9.8  删除函数 242

任务实施 242

任务9.9  插入记录函数 243

任务实施 243

任务9.10  保存函数 243

任务实施 243

任务9.11  读入函数 244

任务实施 244

任务9.12  按序号显示记录函数 244

任务实施 244

任务9.13  排序函数 245

任务实施 245

任务9.14  快速查找函数 246

任务实施 246

任务9.15  复制文件函数 246

任务实施 246

项目10  学生成绩管理系统程序 248

任务10.1  主函数 249

任务实施 249

任务10.2  菜单函数 250

任务实施 250

任务10.3  创建链表函数 251

任务实施 251

任务10.4  输入字符串函数 252

任务实施 252

任务10.5  输出链表函数 252

任务实施 252

任务10.6  删除记录函数 253

任务实施 253

任务10.7  查找记录函数 254

任务实施 254

任务10.8  插入记录函数 255

任务实施 255

任务10.9  保存数据到文件函数 256

任务实施 256

任务10.10  从文件读数据函数 257

任务实施 257

任务10.11  追加记录到文件函数 258

任务实施 258

任务10.12  文件拷贝函数 259

任务实施 259

任务10.13  排序函数 260

任务实施 260

任务10.14  计算总分和均值函数 261

任务实施 261

任务10.15  索引函数 261

任务实施 261

任务10.16  分类合计函数 262

任务实施 262

附录A  标准ASCII码表 264

附录B  运算符的优先级和结合性 267

附录C  C语言的库函数 269

参考文献 273

  

  \

  

  

  

  

  

  

  

  

  

  

  

作者简介

编辑推荐

《C语言程序设计:项目教学版》面向工作过程并按职业能力递进的顺序安排内容,以“项目导向,任务驱动”的教学模式,将各个知识点和各项教学活动紧密联系,以培养学生的自主开发能力。

作者寄语

《C语言程序设计:项目教学版》面向工作过程并按职业能力递进的顺序安排内容,以“项目导向,任务驱动”的教学模式,将各个知识点和各项教学活动紧密联系,以培养学生的自主开发能力。

电子资料

www.luweidong.cn

下一个