《C#程序设计/大学计算机基础教育规划教材》以C#为基础,系统地介绍了程序语言的特性以及简单的算法与数据结构技术。全书共包含9章,以程序设计语言、程序设计方法和程序设计技术三大主题组织教材,采用“数据表示”和“程序实现”双线索知识体系,按照应用问题求解的知识需求顺序进行内容编排,优化了程序设计的知识结构。
《C#程序设计/大学计算机基础教育规划教材》结构清晰、图文并茂,语言朴实简洁,并辅有大量表格和代码示例,全面地阐述了最新版C#语言(C#语言规范4.O版本)的各种特性,同时配套有经过多年教学实践的程序设计综合训练平台,使读者能够快速理解、学习和使用C#。
《C#程序设计/大学计算机基础教育规划教材》可作为高等院校理工类、文管类专业和信息技术类培训机构的程序设计课程教材,也可作为计算机程序爱好者学习程序开发和编程技术的自学教材。
程序设计是大学计算机基础教育和计算机专业的基础核心课程,是其他专业技术课或实践环节的软件工具和验证手段,也是大学生参加课程设计、毕业设计、创新实验、科技制作和学科竞赛等活动的主要实现平台,是各类专业必修的计算机类基础课程。
C#是近些年在国内外得到广泛应用的计算机程序设计语言,其设计宗旨为“简单、现代、通用”;它安全、稳定、简单、优雅,是由C和C++衍生出来的面向对象编程语言,在继承C和C++强大功能的同时去掉了一些复杂特性(例如,没有宏以及不允许多重继承)。同时,C#综合了VB简单的可视化操作和C++的高运行效率,以其强大的操作能力、优雅的语法风格、创新的语言特性和便捷的面向组件编程支持成为.NET开发的首选语言,在TIOBE编程语言排行榜上位列前茅。
然而,程序设计的学习难度很大,尤其C#这种完全面向对象的语言,很多学生学习结束后仍然不会编写程序,无法把解题的思路变成代码,更谈不上利用程序设计解决实际应用问题。作者经过多年教学经验总结发现,单调的程序语言教学、贫乏的编程技能训练是造成教学效果不佳的重要原因。
为此,编者结合自主研发的程序设计综合平台和教学辅助软件群,推出以语言为工具、以技能为目标、以编程技术为核心的系列程序设计教材。
本教材遵循编者多年提倡的“精讲多练、注重技能、开拓创新”的教学理念,在程序设计语言知识体系的构建上,在算法、数据结构等与程序设计的结合上精心设计,力图适合高等院校和计算机培训的教学目标和培养要求,体现出以下5个特色。
1. 双线索的程序设计知识体系
本教材的双线索程序设计知识体系以“数据表示”和“程序实现”作为教学上的两条主线索,螺旋上升、交叉推进,如图0.1所示。
图0.1双螺旋线索C#知识体系示意首先,教材通过简单程序引出程序基本结构,以编程为目标给出两条线索: 数据表示和程序实现。其次,从引入简单程序框架开始,逐步解决运算和程序组织,进而上升到程序模块化的实现。最后,从基本类型提高到复杂数据类型,上升到结构体和类层面的数据表示。双螺旋线索结构揭示了程序设计与应用软件开发的一般规律。
实际教学效果表明,双线索程序语言知识体系突出了程序设计方法学,使程序语言成为服务于编程的工具而不是目标,学习者既能获得语言知识,又能掌握编程技能。
2. 优化程序设计知识安排
现有的多数教材中知识安排导致以技能为目标的程序设计难以实现,出现教学瓶颈。表现在语言阶段冗长,使得以函数、自定义类型等内容为教学中心的编程阶段在实际教学中接近期末,从而使应用程序设计教学目标落空。
本教材在程序设计语言知识方面采用了“快节奏”,在程序设计方法和编程技术方面采用了“慢节奏”,解决了多年来程序设计教与学的难题。教材中,语言基础知识的学习被大幅度压缩,从一开始就以简单程序框架展开程序知识,直接进入以程序模块化为主的教学环境。这种安排策略使得教师方便精讲知识,学生方便早练多练;而较难的以编程技术为核心的专题分配更多学时,方便教师组织技能训练,学生获得编程技巧。
另外,本教材的所有内容安排紧密结合人类进行实际应用问题求解的认识过程和循序渐进的规律,章节知识点的名称也体现出程序设计与自然领域的对应关系,使得学生在学习过程中更容易实现程序设计知识向编程技能的转化。
3. 注重典型案例的精选和提炼
本教材设计了初级难度语言示范型、中等难度算法应用型以及较高难度综合设计型三种梯度的案例。通过这些精选的案例,提高学生的程序设计学习兴趣,激发学生的学习热情,开阔其在计算机现实问题求解上的视野和思维,使之在程序设计方法和思路的开拓与编程技巧的应用上有一个深层次的锻炼和提高。
4. 注重编程风格
本书使用C#语言规范4.0,充分体现了程序语言的最新进展和当前业界的最佳实践。
书中广泛采用各专业公司的编程规范优点,从语法语义、书写形式等方面潜移默化地引导学习者与专业化接轨。
书中所有程序均在Visual Studio 2010上调试通过。同时,教材中的所有源代码均可在清华大学出版社网站上下载。
5. 配套程序设计教学平台、系列教学软件和教学资源
自2001年以来,编者基于专业的软件开发科研优势,结合一线教学和课程改革的经验,围绕课堂、实验、作业、设计、考核5个教学环节,开发了系列教育软件。例如,“程序设计在线评测系统INPOJ”采用计算机系统使学生通过大量习题的训练提高解题速度以解决TLOC(Total Line of Codes,累计代码行数);“软件设计协同开发平台DevForge”按专业软件开发方式引导、跟踪、自动评阅学生课程设计程序和报告以解决SLOC(Software Lines of Code,软件代码的行数);“远程网络考试系统inTest”实现技能测试和实践考核;“网络硬盘inBox”实现学生作业和文档的规范管理与存储。这些教学平台的使用,使得实验机房变成了学生讨论、思考、相互教授的研究场所,形成数字化课堂教学、网络辅助教学、电子教室、智能答疑、综合训练等立体化教学环境,为落实教学理念和教学目标提供了先进工具。
使用本教材的高等院校和培训机构想要进一步了解有关程序设计综合训练平台和系列教育软件的更多信息,请与作者(jxf@nwpu.edu.cn)联系。
本书内容共分为9章,内容从结构化的程序设计逐步上升到面向对象程序设计的方法,知识体系结构和内容安排策略由刘君瑞和姜学锋共同设计完成,第1章由姜学锋编写,第2~9章内容由刘君瑞编写,全书由刘君瑞主编并统稿。在书稿的编著过程中,得到了许多专家的关心和热情支持,西北工业大学计算机基础教学的老师们对全书的内容提出了许多宝贵的意见和建议,特别是魏英和张秀伟对本书的编写给了很大的帮助,清华大学出版社对本书的出版十分重视并做了周到的安排。在此,对所有鼓励、支持和帮助过本书编写工作的领导、专家、同事和广大读者表示真挚的谢意!
由于时间紧迫以及作者水平有限,书中难免有不足、疏漏之处,恳请读者批评指正。
作者2014年1月于西北工业大学
第1章 程序设计基础
1.1 计算机系统和工作原理
1.1.1 计算机系统的组成
1.1.2 指令、程序与软件
1.2 信息的表示与存储
1.2.1 计算机的数字系统
1.2.2 进位记数制的转换
1.2.3 数值数据的表示
1.2.4 非数值数据的表示
1.3 程序设计语言
1.3.1 机器语言与汇编语言
1.3.2 高级语言
1.4 程序设计概述
1.4.1 计算机问题求解的基本特点
1.4.2 算法的定义与特性 第1章 程序设计基础
1.1 计算机系统和工作原理
1.1.1 计算机系统的组成
1.1.2 指令、程序与软件
1.2 信息的表示与存储
1.2.1 计算机的数字系统
1.2.2 进位记数制的转换
1.2.3 数值数据的表示
1.2.4 非数值数据的表示
1.3 程序设计语言
1.3.1 机器语言与汇编语言
1.3.2 高级语言
1.4 程序设计概述
1.4.1 计算机问题求解的基本特点
1.4.2 算法的定义与特性
1.4.3 算法的表示
1.4.4 程序设计技术
1.5 C#语言概述
1.5.1 C#语言的历史与特点
1.5.2 C#语言基本词法
1.5.3 简单的C#程序
1.5.4 C#程序基本结构
1.5.5 C#程序开发步骤
1.5.6 C#程序编码风格
习题
第2章 将简单数据与计算引入C#
2.1 数据类型
2.1.1 整型
2.1.2 实数型
2.1.3 字符和字符串
2.1.4 布尔型
2.2 常量
2.2.1 整数字面常量
2.2.2 实数字面常量
2.2.3 字符字面常量
2.2.4 字符串字面常量
2.2.5 符号常量
2.3 变量
2.3.1 变量的概念
2.3.2 定义变量
2.3.3 使用变量
2.3.4 可空类型
2.4 运算符与表达式
2.4.1 运算符与表达式的概念
2.4.2 数值数据的运算与处理
2.4.3 文本数据的运算与处理
2.4.4 逻辑数据的运算与处理
2.4.5 其他运算符
2.4.6 常量表达式
2.5 赋值和类型转换
2.5.1 赋值运算符
2.5.2 类型转换
习题
第3章 程序控制结构
3.1 语句
3.1.1 简单语句
3.1.2 复合语句
3.1.3 注释
3.1.4 语句的写法
3.2 输入与输出
3.2.1 输入方法
3.2.2 输出方法
3.3 程序顺序结构
3.3.1 顺序执行
3.3.2 跳转执行
……
第4章 模块化程序设计
第5章 批量数据的表示与处理
第6章 复杂数据的表示与处理
第7章 类和对象
第8章 规模化程序设计
第9章 永久性数据的操作
附录A ASCII码对照表
附录B 常用字符的Unicode编码表
附录C C#语言关键字
附录D C#语言运算符及其优先级、结合性
参考文献