VisualC#与数学软件混合编程

VisualC#与数学软件混合编程"

作者:李丽红、阎红灿、阎少宏
ISBN:9787302350644
定价:¥35
字数:千字
页数:
出版时间:2014.03.01
开本:
版次:1-1
装帧:
出版社:清华大学出版社
简介

本书系统地讲解了计算机数学语言MATLAB、统计分析软件SPSS的主要功能和SQL Server数据库的基础知识,使用Microsoft Visual Studio 2008集成开发环境,通过C#编程实现界面设计和数据交互,使用SQL Server数据库技术实现数据的存储和管理,通过交互协同工作弥补单一软件解决实际问题时自身的不足,并给出了多个软件间的混合编程案例。 

全书分为数学软件和混合编程两部分,第一部分(第1~3章)主要介绍常用的数学软件及数据库的基础知识,系统讲解了计算机数学语言MATLAB和统计分析软件SPSS的主要功能;第二部分(第4~7章)以C#调用MATLAB和SPSS应用技术为主线,讲述了SQL Server数据库编程技术、MATLAB创建COM组件技术、SPSS的二次编程接口技术以及Excel Link的强大数据处理功能,并通过案例演示了各种技术细节。

本书适合作为高等院校计算机、应用数学专业高年级本科生、研究生的教材,同时可供对C#比较熟悉并且对数学软件、数据库有所了解的开发人员、广大科技工作者和研究人员参考。

前言

C#是一种安全稳定的、由C和C++衍生出来的面向对象的编程语言,它在继承C和C++强大功能的同时去掉了一些复杂特性,同时综合了VB简单的可视化操作和C++的高运行效率,以其强大的操作能力、优雅的语法风格、创新的语言特性和便捷的面向组件编程的支持成为.NET开发的首选语言,成为构建各类组件的理想之选——无论是高级的商业对象还是系统级的应用程序。使用简单的C#语言结构构建的组件可以方便地转化为XML网络服务,从而使它们可以由任何语言在任何操作系统上通过Internet进行调用。

MATLAB作为一个科学计算可视化工具,经过二十多年的发展,已经成为应用最广泛的科学处理工具软件包,为科学研究、工程设计等众多科学领域提供了一种全面的解决方案,代表了当今国际科学计算软件的先进水平。

MATLAB在科学运算领域应用广泛,但是在图形用户界面处理方面功能不够强大,缺少独立的应用程序框架,所以开发的计算程序必须在安装MATLAB的计算机上才能够运行。而C#集成环境将可视化程序设计和算法融合,成为多领域程序开发利器,将MATLAB与C#进行有效结合,发挥C#和MATLAB各自的科学优势,能更好地解决科学和工程领域的相关计算和可视化的相关问题。

SPSS是世界上最早采用图形菜单驱动界面的统计软件,它最突出的特点就是操作界面极为友好,输出结果美观漂亮。SPSS的基本功能包括数据管理、统计分析、图表分析、输出管理等。SPSS和SAS、BMDP并称为国际上最有影响的三大统计软件。在国际学术界有条不成文的规定,即在国际学术交流中,凡是用SPSS软件完成的计算和统计分析,可以不必说明算法,由此可见其影响之大和信誉之高。SPSS输出结果虽然漂亮,但是很难与一般办公软件如Office或是WPS 2000直接兼容,如不能用Excel等常用表格处理软件直接打开,只能采用复制、粘贴的方式加以交互,所以如果由C#编程实现SPSS、SQL数据库和Office的功能结合,可以很好地解决数据的转换问题。

笔者结合自己多年教学和使用C#、MATLAB、SPSS以及数据库混合编程进行科学研究和项目开发的经验撰写了本书,希望能够引领各位读者通过混合编程的方式解决自己领域的问题。本书结合大量实例和不同领域的实际案例,全面、系统地介绍了MATLAB、SPSS和数据库技术的基础知识、不同类型的混合编程开发方式以及在不同领域的应用,学习完本书后,读者应该可以具备使用C#和MATLAB、SPSS及数据库技术通过编程实现领域问题求解的能力。

本书的特点

(1)  与传统语言教程针对技术通篇全面系统介绍不同,本书将C#语言技术的学习融于案例,通过任务驱动的方式学习技术知识。

(2)  数学软件能够解决复杂的工程问题,如电路、电子技术、电力电子技术、电机与拖动、自动控制原理等,但是它的数据存储和输入输出处理很简单,没有提供很友好的界面设计功能。本书讲解的混合编程技术,通过C#编程实现界面设计和数据交互,使用SQL Server数据库技术实现数据的存储和管理,有效解决了这些问题。

(3)  介绍了C#与MATLAB、SPSS以及与Word、Excel应用程序间的交互调用,通过交互协同工作弥补单一软件解决实际问题时自身的不足,并给出了多个软件间的混合编程案例,通过实际应用达到提高综合编程能力的目的。

(4)  重在实用,强调实践。针对大中专院校的工程类学生或工程技术人员,引领他们解决实际问题,所以每章都有一个综合性案例,通过演示整个设计过程,由浅入深地诠释重点知识的应用。

本书的内容

第1章: 从编程基础开始,通过可视化、工具包和数值计算等方面,详细讲解了计算机数学语言MATLAB。

第2章: 系统地讲解了统计软件SPSS,包括数据编辑、统计绘图和基本功能应用等。

第3章: 介绍SQL Server数据库的基本理论知识,包括管理、数据定义、查询和操纵等。

第4章:  主要讲解数据库编程技术,包括ADO.NET、访问控件和LINQ,并系统介绍了酒店管理系统的开发过程。

第5章: 详细讲解了MATLAB创建COM组件技术并通过案例系统演示。

第6章: 详细讲解了SPSS的混合编程技术,包括SPSS与MATLAB的混合编程、C#操作SPSS数据文件以及SPSS与Word和Excel间的通信。

第7章: 通过Excel Link技术讲解MATLAB与Excel间的混合编程。

教师可以针对不同专业和不同类别的学生,挑选本书中不同章节的内容进行讲解。

适合的读者

本书适合以下几类读者学习参考:

 大中专院校的学生;

 社会培训学生;

 C#应用开发者;

 数据库开发初学者;

 数学软件使用者。

致谢

书中实例是编者多年教学、教研工作的积累和总结,渗入了程序设计及软件开发的基本技巧。本书第1章由阎少宏编写,第2~5章由李丽红编写,第6章和第7章由阎红灿编写,全书由李丽红统稿。编写过程中参考了多种同类教材、专著,在此向参考文献与资料的编著者表示衷心感谢!在本书编写过程中,得到了河北联合大学理学院院长刘保相教授、徐秀娟副教授和陈学斌副教授的大力支持和帮助;周丽晖老师对部分内容提出了修改建议;研究生祝弘扬、李言和孙杰参与书稿核对工作;在此一并表示感谢。

本书力求反映当代数学软件与程序设计的新发展、新技术,以保持本书的先进性和实用性。但限于水平,书中难免存在不足和疏漏之处,恳请广大读者批评指正。

编者2014年1月于河北联合大学

目录

第1章计算数学语言MATLAB1

1.1MATLAB编程基础3

1.1.1MATLAB的启动与工作环境3

1.1.2MATLAB的基本命令与基本函数9

1.1.3MATLAB程序设计初步10

1.1.4MATLAB语言流程控制结构14

1.1.5M文件的编写16

1.2MATLAB数据可视化18

1.2.1图形窗口及其操作19

1.2.2二维绘图19

1.2.3三维绘图22

1.3MATLAB数值计算26

1.3.1向量运算26

1.3.2矩阵运算30

1.3.3多项式运算38

1.3.4线性方程组的数值解43

1.3.5数理统计44

1.4MATLAB符号计算54

1.4.1建立符号表达式55

1.4.2符号表达式的代数运算55

1.4.3符号极限、微积分和级数求和59

1.4.4符号方程的求解62

1.4.5符号函数的可视化64

思考题67第2章统计分析软件SPSS68

2.1SPSS的启动与工作环境68

2.1.1SPSS环境要求68

2.1.2SPSS的启动69

2.1.3SPSS的运行管理方式69

2.1.4窗口及其功能概述70

2.2SPSS的数据编辑72

2.2.1数据的输入72

2.2.2变量标签74

2.2.3缺失值74

2.2.4输入数据75

2.2.5编辑数据75

2.3SPSS统计绘图76

2.4SPSS的基本功能应用79

2.4.1SPSS基本统计分析79

2.4.2均值检验84

2.4.3方差分析89

2.4.4回归分析97

2.4.5多元线性回归分析100

2.4.6曲线估计103

2.4.7聚类分析104

思考题110第3章SQL Server数据库117

3.1SQL Server 2005的管理117

3.1.1Microsoft SQL Server概述117

3.1.2Microsoft SQL Server 2005功能简介119

3.1.3TSQL概述122

3.1.4SQL Server 2005的管理123

3.2SQL Server的数据定义125

3.2.1数据库的创建与维护126

3.2.2数据表的创建与维护130

3.2.3索引的创建与维护137

3.3SQL Server的触发器和存储过程138

3.3.1触发器简介138

3.3.2触发器的创建与维护138

3.3.3存储过程的创建与维护142

3.3.4存储过程的调用144

3.4SQL Server的查询设计145

3.4.1单表查询147

3.4.2多表查询157

3.4.3联合查询158

3.4.4嵌套查询159

3.5SQL Server的数据更新与控制161

3.5.1数据更新161

3.5.2数据控制163

3.5.3数据的导入和导出164

3.6SQL Server的关系图和视图管理165

3.6.1关系图概述165

3.6.2视图概述165

3.6.3视图的定义166

3.6.4视图的使用169

思考题170第4章数据库编程技术172

4.1ADO.NET技术172

4.1.1ADO.NET简介172

4.1.2基于数据绑定的数据访问175

4.1.3基于SqlCommand的数据访问176

4.2数据库访问控件178

4.2.1ListBox控件178

4.2.2TreeView控件179

4.2.3ListView控件181

4.3LINQ to SQL182

4.3.1LINQ to SQL编程: 从数据库取得信息183

4.3.2LINQ查询和数据绑定185

4.3.3创建主视图/细目视图186

4.3.4LINQ to SQL编程: 地址簿案例研究188

4.4开发实例——酒店管理系统的设计与实现190

4.4.1系统分析190

4.4.2数据库设计192

4.4.3系统登录的设计198

4.4.4系统功能实现203第5章MATLAB的混合编程技术231

5.1COM技术概述231

5.1.1COM简介231

5.1.2COM组件的有关概念232

5.2MATLAB的ActiveX服务功能234

5.2.1MATLAB服务函数234

5.2.2在客户程序中执行MATLAB命令234

5.2.3与客户程序进行数据交换234

5.2.4应用案例——实现矩阵的转置、求解矩阵的逆矩阵和特征值235

5.3通过MATLAB Builder for .NET创建COM组件239

5.3.1MATLAB Builder for .NET技术简介239

5.3.2创建和使用COM组件240

5.3.3运用MATLAB的全局变量进行数据转换240

5.3.4将M函数打包为.NET组件241

5.3.5配置MATLAB编译器和MATLAB Builder for .NET编译器247

5.4应用案例——傅里叶变换图示248

5.5进一步理解数据转换251

5.5.1MATLAB函数参量传递252

5.5.2理解数据转换类252

5.5.3自动转换MATLAB数据类型252

思考题253第6章SPSS的混合编程技术254

6.1SPSS与MATLAB的混合编程254

6.1.1SPSS中的对象254

6.1.2MATLAB调用SPSS255

6.1.3SPSS调用MATLAB257

6.2C#操作SPSS数据文件262

6.2.1通过COM组件操作SPSS数据文件262

6.2.2使用SPSS.NET操作SPSS数据文件264

6.3SPSS与Word间的通信266

6.3.1在SPSS中打开Word266

6.3.2在SPSS中定制打开Word的菜单267

6.4SPSS与Excel间的通信269

6.4.1SPSS调用Excel文件数据269

6.4.2SPSS数据的Excel文件类型保存270

6.4.3通过ODBC驱动读取多张数据表270

6.5应用案例——利用MATLAB和SPSS进行季节性预测272

思考题275第7章MATLAB与Excel的混合编程276

7.1通过Excel Link实现Excel和MATLAB的数据共享276

7.1.1Excel Link技术概述277

7.1.2Excel Link函数279

7.2使用Excel生成器280

7.2.1概述280

7.2.2创建Excel生成器插件281

7.2.3创建和使用Excel插件案例——魔方281

7.3直接将MATLAB工作空间的数据复制到Excel287

7.4应用案例——插值数据的三维曲面显示289

7.5使用Excel Link的注意事项291

7.5.1使用Excel Link的准备工作291

7.5.2Excel Link的使用说明291

思考题293附录思考题答案294参考文献313

第1章C语言及程序设计概述1

1.1C语言简介1

1.1.1C语言的发展过程1

1.1.2C语言的主要特点1

1.2C语言程序的结构3

1.2.1C语言程序的结构及其主要特点3

1.2.2标识符与关键字5

1.3C语言编译工具简介7

1.3.1C语言程序实现的步骤7

1.3.2Turbo C 2.0编译工具简介7

1.3.3Visual C++ 6.0编译工具简介11

1.4如何学习C语言15

1.4.1学习C语言的理由15

1.4.2学好C语言的步骤17

1.5编程实践18

任务1: 输出金字塔图案18

任务2: 打印输出华氏和摄氏的温度对照表19

习题20

第2章数据类型、运算符与表达式22

2.1常量和变量22

2.1.1常量22

2.1.2变量25

2.2基本数据类型27

2.2.1整数类型27

2.2.2字符型28

2.2.3实数类型29

2.3数据类型的转换30

2.3.1自动类型转换31

2.3.2强制类型转换33

2.4运算符和表达式34

2.4.1算术运算符和算术表达式34

2.4.2关系运算符和关系表达式39

2.4.3逻辑运算符和逻辑表达式42

2.4.4赋值运算符和赋值表达式43

2.4.5位运算符与位运算45

2.4.6条件运算符与条件表达式49

2.4.7逗号运算符与逗号表达式50

2.4.8求字节数运算符51

2.4.9特殊运算符52

2.5运算符的优先级和结合性52

2.5.1运算符的优先级52

2.5.2运算符的结合性53

2.6编程实践55

任务: 分析MD5散列算法的基本运算55

习题56

第3章算法概念与顺序结构程序设计64

3.1算法简介64

3.1.1算法的概念64

3.1.2算法的常用描述方法65

3.2C语句概述67

3.3C语言的基本输入与输出69

3.3.1字符输入/输出函数69

3.3.2格式输入/输出函数71

3.4顺序结构程序设计80

3.4.1顺序结构程序设计思想80

3.4.2顺序结构程序设计举例80

3.5编程实践82

任务: 计算正弦函数的面积82

习题83

第4章选择结构程序设计87

4.1if语句87

4.1.1单分支if语句87

4.1.2双分支if语句88

4.1.3多分支if语句89

4.1.4if 语句的嵌套91

4.1.5条件运算符和条件表达式93

4.2switch语句93

4.2.1switch语句94

4.2.2switch语句的嵌套96

4.3选择结构程序设计举例97

4.4编程实践99

任务: 计算个人所得税99

习题100

第5章循环结构程序设计113

5.1while和dowhile循环结构113

5.1.1while语句的一般形式113

5.1.2while语句使用说明114

5.1.3dowhile语句的一般形式115

5.1.4dowhile语句使用说明 116

5.2for循环结构和循环的嵌套116

5.2.1for循环语句的一般形式117

5.2.2for循环语句使用说明118

5.2.3循环嵌套的形式119

5.2.4嵌套循环的说明119

5.3流程转向语句120

5.3.1goto语句120

5.3.2break语句121

5.3.3continue语句122

5.4循环结构程序设计举例123

5.4.1确定循环次数与不确定循环次数123

5.4.2选择循环语句125

5.4.3提前结束循环127

5.4.4其他应用举例127

5.5编程实践128

任务: 验证哥德巴赫猜想128

习题129

第6章数组136

6.1一维数组136

6.1.1一维数组的定义136

6.1.2一维数组元素的引用136

6.1.3一维数组的初始化137

6.1.4一维数组应用举例 138

6.2多维数组140

6.2.1二维数组的定义140

6.2.2二维数组元素的引用141

6.2.3二维数组的初始化142

6.2.4二维数组使用举例142

6.3字符数组145

6.3.1字符数组的定义145

6.3.2字符数组的初始化146

6.3.3字符串与字符串结束标志147

6.3.4字符数组的引用与输入/输出147

6.3.5字符串处理函数148

6.3.6字符数组使用举例153

6.4数组应用举例155

6.5编程实践158

任务: 多规格打印万年历158

习题160

第7章函数165

7.1函数的定义165

7.1.1函数概述165

7.1.2函数类型165

7.1.3函数定义168

7.2函数参数和返回值170

7.2.1形式参数和实际参数170

7.2.2函数的返回值174

7.3函数的调用175

7.3.1函数调用175

7.3.2函数声明175

7.4函数的嵌套调用和递归调用176

7.4.1函数的嵌套调用176

7.4.2函数的递归调用178

7.5变量的作用域181

7.6变量的存储类别184

7.7编程实践186

任务1: 正(余)弦曲线演示器186

任务2: 杨辉三角形188

习题190

第8章指针196

8.1指针和地址196

8.2指针变量197

8.2.1指针变量的定义197

8.2.2指针变量赋值198

8.2.3指针运算符与指针表达式200

8.2.4指针变量的引用 202

8.2.5指针变量作为函数的参数202

8.3指针和数组206

8.3.1指向数组的指针206

8.3.2通过指针引用数组元素207

8.3.3数组名作为函数参数209

8.3.4指向多维数组的指针和指针变量212

8.4指针和字符串216

8.4.1字符串的表示216

8.4.2字符串指针作为函数参数218

8.4.3字符数组与字符串指针的区别219

8.5指针和函数221

8.5.1函数的指针221

8.5.2用指向函数的指针作为函数参数222

8.5.3返回指针值的函数224

8.6指向指针的指针225

8.6.1指向指针的指针225

8.6.2指针数组226

8.6.3指针数组作为main函数的参数228

8.7编程实践229

任务1: 黑白棋子交换229

任务2: 班干部值日安排231

习题234

第9章结构体和共用体239

9.1结构体239

9.1.1结构体类型定义239

9.1.2结构体变量的定义241

9.1.3结构体变量的引用243

9.1.4结构体变量的赋值244

9.2结构体数组与结构体指针246

9.2.1结构体数组246

9.2.2指向结构体的指针249

9.2.3结构体作为函数的参数252

9.2.4结构体举例256

9.3链表258

9.3.1链表概述258

9.3.2处理动态链表所需的函数259

9.3.3链表的基本操作262

9.4共用体266

9.4.1共用体类型的定义267

9.4.2共用体类型变量的定义267

9.4.3共用体变量的引用268

9.4.4共用体变量的初始化268

9.5枚举类型和自定义类型270

9.5.1枚举类型的定义271

9.5.2枚举变量的定义和初始化271

9.5.3枚举数据的运算272

9.5.4枚举数据的输入/输出273

9.5.5枚举变量举例274

9.5.6用typedef定义类型276

9.6编程实践279

任务1: 三天打鱼两天晒网279

任务2: 航班订票系统280

习题289

第10章文件294

10.1文件概述294

10.1.1文件的分类294

10.1.2文件的编码形式294

10.1.3文件的读写方式295

10.2文件的基本操作296

10.2.1文件的打开与关闭296

10.2.2文件的读和写298

10.3文件操作举例303

10.4编程实践310

任务: 精挑细选310

习题312

第11章预处理命令314

11.1宏定义314

11.1.1无参宏定义314

11.1.2带参数的宏定义318

11.2“文件包含”处理322

11.3条件编译323

11.4编程实践325

任务: 串化运算325

习题326

第12章综合案例实训331

12.1五子棋游戏项目实训331

12.1.1功能模块设计331

12.1.2数据结构设计332

12.1.3函数功能描述332

12.1.4系统数据流程图333

12.1.5程序实现333

12.1.6程序运行344

12.2ATM(自动取款机)案例实训345

12.2.1功能模块345

12.2.2数据结构分析345

12.2.3函数功能描述345

12.2.4系统数据流程图346

12.2.5代码实现347

12.2.6运行结果363

附录A常用字符与ASCII对照表365

附录BC语言常用语法提要366

B.1标识符366

B.2常量366

B.3表达式366

B.4数据定义367

B.5函数定义368

B.6变量的初始化368

B.7语句368

B.8预处理命令369

附录CC语言的常用库函数370

C.1输入/输出函数370

C.2数学函数371

C.3字符函数和字符串函数372

C.4动态存储分配函数373

参考文献374

作者简介

编辑推荐

作者寄语

电子资料

www.luweidong.cn

下一个