新書推薦:
《
啊哈!原来如此(中译本修订版)
》
售價:NT$
290.0
《
部分识别入门——计量经济学的创新性方法
》
售價:NT$
345.0
《
东野圭吾:变身(来一场真正的烧脑 如果移植了别人的脑子,那是否还是我自己)
》
售價:NT$
295.0
《
严复与福泽谕吉启蒙思想比较(王中江著作系列)
》
售價:NT$
750.0
《
甘于平凡的勇气
》
售價:NT$
225.0
《
存在与结构:精神分析的法国转向——以拉康与萨特为中心
》
售價:NT$
240.0
《
生成式人工智能:AIGC与多模态技术应用实践指南
》
售價:NT$
495.0
《
石油帝国的兴衰:英国的工业化与去工业化
》
售價:NT$
445.0
編輯推薦:
2007年*精品网络课程和2016年*精品资源共享课程教材;与《C 程序设计基础(第5版)(上)》(ISBN 978-7-121-28595-0)配套;增加了一个贯穿各章的应用案例简易教务管理系统的设计与实现
內容簡介:
本书的例程以Microsoft Visual Studio 2010为运行环境,全书分为上、下两册:上册《C++程序设计基础(第5版)(上)》(ISBN 978-7-121-28595-0)介绍C++程序设计的基础知识,下册介绍VC++在.NET环境下的Windows应用程序设计。在第4版的基础上,下册增加了一个贯穿各章的应用案例——简易教务管理系统的设计与实现。下册共7章,主要内容包括:C++CLI托管编程、控制台程序设计、常用控件、复杂界面设计、图形图像应用、数据库应用、网络编程。应用案例的介绍分散在以上各章中,第1章介绍案例的总体设计,第2章介绍案例登录界面的设计与实现,第3章介绍学生信息管理部分模块的设计与实现(包括类的设计与实现),第4章利用复杂界面的相关知识对系统进行优化,第5章对系统中的统计数据进行可视化,第6章将系统的数据存储改用数据库实现,第7章介绍了反馈信息处理功能的设计与实现。本书免费提供配套的电子课件和例程的源代码,请登录华信教育资源网(www.hxedu.com.cn)注册后下载。本书可以作为高等学校计算机类、信息类、电类专业本科生高级语言程序设计课程教材,也可以作为教师、学生和C++语言爱好者的参考书。
關於作者:
周霭如,华南理工大学,教授。出版教材:《计算机系统应用教程》,《FoxPro数据库管理基础》,《Visual Basic程序设计教程》,《Visual Basic程序设计》,《C++程序设计基础》1~5版。华南理工大学计算机学院“高级语言程序设计(C++)”课程负责人,该课程是2007年国家级精品网络课程,2012年国家级精品资源共享课程。
目錄 :
目 录
第1章 C++CLI托管编程(1)
1.1 .NET框架(1)
1.2 简单控制台程序(2)
1.2.1 一个简单程序(2)
1.2.2 格式串(4)
1.3 C++CLI数据(6)
1.3.1 基本数据类型(6)
1.3.2 枚举类型(8)
1.3.3 字符与字符串(9)
1.3.4 日期时间(13)
1.3.5 数组(14)
1.4 句柄(17)
1.4.1 句柄操作(17)
1.4.2 托管引用(19)
1.4.3 函数的句柄参数与引用参数(19)
1.5 托管类(20)
1.5.1 托管类定义(20)
1.5.2 托管类属性(21)
1.5.3 继承(24)
1.6 C++CLI中的多态(24)
1.6.1 虚函数(24)
1.6.2 重写约束(25)
1.6.3 纯虚函数和抽象类(26)
1.6.4 接口(27)
1.6.5 模板与泛型(28)
1.7 .NET的文件和流(28)
1.7.1 文件系统管理(28)
1.7.2 文件操作(32)
1.8 简易教务管理系统设计(39)
1.8.1 需求分析(39)
1.8.2 系统设计(40)
1.8.3 系统实现部分章节安排(43)
本章小结(44)
习题1(44)
第2章 简单Windows应用程序(45)
2.1 Windows窗体设计器(45)
2.2 建立应用程序(49)
2.2.1 主要工作步骤(49)
2.2.2 一个简单例子(50)
2.2.3 添加文件(52)
2.3 使用控件输入输出数据(55)
2.4 简易教务管理系统登录界面设计与实现(57)
2.4.1 界面设计(57)
2.4.2 代码实现(58)
本章小结(59)
习题2(59)
第3章 常用控件(60)
3.1 控件概述(60)
3.2 窗体和消息框(64)
3.2.1 窗体(64)
3.2.2 消息框(66)
3.3 文本控件(68)
3.3.1 标签(69)
3.3.2 网页浏览控件(70)
3.3.3 文本框(70)
3.3.4 关联文本控件(75)
3.4 图像控件(78)
3.4.1 图片框(78)
3.4.2 图片列表(79)
3.5 键盘和鼠标事件(81)
3.5.1 焦点和Tab顺序(81)
3.5.2 键盘事件(82)
3.5.3 鼠标事件(83)
3.6 按钮(84)
3.6.1 命令按钮(84)
3.6.2 复选框(84)
3.6.3 单选按钮(86)
3.7 容器(86)
3.7.1 分组框(87)
3.7.2 其他容器控件(88)
3.8 列表(90)
3.8.1 标准列表框(90)
3.8.2 复选列表框(94)
3.8.3 组合框(96)
3.9 滚动条(97)
3.10 计时器(98)
3.11 对话框(99)
3.11.1 颜色对话框(100)
3.11.2 字体对话框(101)
3.11.3 文件对话框(103)
3.12 剪贴板(107)
3.13 学生信息管理模块设计与实现(109)
3.13.1 登录模块完善(109)
3.13.2 教务员首页设计与实现(111)
3.13.3 学生信息管理功能设计与实现(112)
3.13.4 类的设计与实现(121)
本章小结(142)
习题3(142)
第4章 复杂界面(144)
4.1 菜单(144)
4.1.1 菜单的形式(144)
4.1.2 菜单栏(145)
4.1.3 快捷菜单(148)
4.2 工具栏(149)
4.3 状态栏(150)
4.4 视图(152)
4.4.1 树视图(152)
4.4.2 列表视图(156)
4.5 多窗体(161)
4.5.1 多重窗体界面(161)
4.5.2 多文档界面(163)
4.5.3 窗体之间的数据传递(167)
4.5.4 窗体之间的关系(170)
4.6 简易教务管理系统界面优化(171)
4.6.1 菜单设计与实现(171)
4.6.2 系统托盘设计与实现(176)
本章小结(177)
习题4(177)
第5章 图形图像(178)
5.1 基础(178)
5.1.1 图形与图像(178)
5.1.2 GDI+简介(178)
5.1.3 像素(179)
5.1.4 坐标系(179)
5.1.5 绘图元素(180)
5.2 绘图(183)
5.2.1 绘图基本方法(183)
5.2.2 画笔(184)
5.2.3 绘制图形(186)
5.2.4 图像刷新(194)
5.3 填充(195)
5.3.1 画刷(195)
5.3.2 填充方法(199)
5.4 图像处理(200)
5.4.1 Bitmap类(200)
5.4.2 坐标变换(202)
5.4.3 颜色变换(206)
5.5 文本输出(210)
5.5.1 简单文本输出(210)
5.5.2 输出格式化文本(211)
5.6 图像编辑器(214)
5.7 简易教务管理系统统计信息可视化(216)
5.7.1 图形绘制(216)
5.7.2 统计数据可视化(221)
本章小结(228)
习题5(229)
第6章 数据库应用(230)
6.1 数据库基础知识(230)
6.1.1 数据、数据库、数据库管理系统(230)
6.1.2 关系数据库(231)
6.2 SQL简介(232)
6.2.1 数据检索(233)
6.2.2 表的连接(234)
6.2.3 记录的排序(235)
6.3 MySQL数据库管理系统(236)
6.3.1 什么是MySQL(236)
6.3.2 MySQL的安装与配置(236)
6.3.3 启动服务并登录MySQL数据库(241)
6.3.4 创建数据库(244)
6.3.5 创建数据表(245)
6.3.6 插入数据(247)
6.4 数据库与ADO.NET(248)
6.4.1 ADO.NET概述(248)
6.4.2 使用DataReader(252)
6.4.3 使用DataSet(254)
6.4.4 在DataSet中访问多个表(261)
6.4.5 使用数据控件(264)
6.5 基于MySQL的简易教务管理系统的实现(271)
6.5.1 创建数据库和数据表(271)
6.5.2 注册ODBC数据源(273)
6.5.3 数据访问(273)
本章小结(289)
习题6(289)
第7章 网络编程(290)
7.1 有关网络编程的一些基本概念(290)
7.1.1 ISOOSI网络模型(290)
7.1.2 TCPIP(292)
7.1.3 Socket(套接字)(294)
7.2 单线程套接字编程(294)
7.2.1 建立TCP服务器(295)
7.2.2 建立TCP客户端(297)
7.2.3 使用Socket建立客户-服务器交互(298)
7.3 多线程套接字编程(303)
7.3.1 多线程的概念(303)
7.3.2 多线程套接字网络通信程序(303)
7.3.3 带心跳检测的网络通信程序(308)
7.3.4 多客户端网络通信程序(312)
7.4 简易教务管理系统—反馈处理模块设计与实现(315)
7.4.1 概要设计(315)
7.4.2 界面设计(316)
7.4.3 服务器端代码设计(317)
7.4.4 客户端代码设计(322)
本章小结(324)
习题7(324)
內容試閱 :
前 言
C语言是优秀的计算机程序设计语言,它的功能相当强大。我们编写这本书的目的是,为没有任何程序设计基础的理工科大学生提供一本适用教材,使他们掌握从理论到实践都要求很高的C语言。
一门课程的设置应该放在整个教学培养计划中统筹考虑。我们的教学目标不是马上培养一个会使用某种语言(例如C语言)的程序员,而是强调对程序设计语言的理解和应用,计算机语言的角色是第一位的。所以,在教材编写和组织教学的过程中,我们力图通过对基本语法现象的剖析,由浅入深地让学生理解、掌握语言规则的原理,懂得用计算机指令的模式去分析和求解问题,并在机器上实现简单的程序。至于深入的算法及大程序的组织讨论,将由相关的后续课程(例如,数据结构、算法分析、计算方法、软件工程等)完成。因此,对高级程序设计语言规则的理解和应用是本教材编写的立足点。
我们根据多年从事计算机程序设计教学的经验,按照学生学习的认知规律,精心构造整本教材的体系和叙述方式,原则是:循序渐进、难点分散、通俗而不肤浅。本教材以语法范畴和程序组织为脉络,清晰渐进,从字、词、数据、表达式、语句,到函数、类,是语法范畴构成的基本脉络;在程序功能方面,则以组织数据和组织程序为另外一条基本脉络,并以渐进的、粒度扩大的方式逐步导入分析。
例如,数据的组织方式:基本数据类型数组结构链表,体现如何利用基本数据类型根据需要组织数据;程序的组织方式:语句函数类,体现结构化思想和面向对象思想对程序不同的组织方式。
指针是C语言的重要概念,是操作对象的有力工具。本书没有一般C语言、C语言教材中专门的指针一章。我们从最简单的变量开始,建立对象的名和地址的概念,用对象的不同访问方式贯穿于各章节。从结构化程序设计到面向对象程序设计,采取了比较平滑的过渡。首先,在一开始介绍基本数据类型、程序流程控制、函数等结构化程序设计的基本知识时,就非正式地使用对象这个术语(从计算机程序的角度,任何占有存储空间的实体都是对象);继而,掌握结构到类的演变,给出对象的准确定义;进一步,展开介绍面向对象程序的几个基本特性,即封装、继承、多态和类属在C语言中的实现方法。同时,我们在本书的阐述中体现一个思想:没有一种对所有问题都是最好的程序设计方法,对特定问题,选择合适的解决方案是程序员必备的素质。
本书之所以取名为《C程序设计基础》,原因有二:第一,它不是一本C语言手册,不可能包罗所有语法规则和特定版本提供的各种功能;第二,它没有涉及复杂的算法和工程化的面向对象分析设计方法。这两个问题与教材的定位相关。对第一个原因,我们认为学生在掌握了程序设计的基本概念和基本方法之后,可以通过语言平台(例如Visual C)或者其他资料学习,拓展对语言功能的了解。我们在有关章节中,也做了类似的引导,例如,STL标准类库的介绍,这些内容提供给教师选择或学生自学。至于第二个原因,那些是计算机专业后续课程的教学内容。本书介绍的程序设计方法和使用到的算法都立足于基本概念和方法,所以,例程通常是简单和小规模的。
本书分别在2003年、2006年、2009年和2012年出版了第1~4版,目前为第5版。本书分为上、下两册。上册《C程序设计基础(第5版)(上)》(ISBN 978-7-121-28595-0)介绍程序设计的基础知识,在第5章中增加了一节讨论结构参数;第11章增加了文件应用的例程;全书配有按章节的同步练习和综合练习,以方便学生自学。下册介绍Visual C在.NET环境下的Windows应用程序设计,增加了一个贯穿下册各章的应用案例简易教务管理系统的设计与实现。
下册共7章,主要内容包括:CCLI托管编程、简单Windows应用程序、常用控件、复杂界面、图形图像、数据库应用、网络编程。应用案例的介绍分散在以上各章中,第1章介绍案例的总体设计,第2章介绍案例登录界面的设计与实现,第3章介绍学生信息管理部分模块的设计与实现(包括类的设计与实现),第4章利用复杂界面的相关知识对系统进行优化,第5章对系统中的统计数据进行可视化,第6章将系统的数据存储改用数据库实现,第7章介绍反馈信息处理功能的设计与实现。
本书免费提供电子课件及全部例程和案例的源代码,请登录华信教育资源网(www.hxedu.com.cn)注册后下载。
本书可以作为高等学校计算机类、信息类、电类专业本科生高级语言程序设计课程教材,也可以作为教师、学生和C语言爱好者的参考书。
本书的编写过程,是作者不断向学生学习,向同行学习,向C学习的过程。在此,对所有使用本书的教师、学生,以及热心向我们提出宝贵意见的读者致以诚挚的感谢!希望继续得到读者的支持和帮助。
作 者