书籍详情
《基于C#的管理信息系统开发》[44M]百度网盘|亲测有效|pdf下载
  • 基于C#的管理信息系统开发

  • 出版社:清华大学出版社
  • 出版时间:2017-09
  • 热度:6744
  • 上架时间:2024-06-30 09:08:33
  • 价格:0.0
书籍下载
书籍预览
免责声明

本站支持尊重有效期内的版权/著作权,所有的资源均来自于互联网网友分享或网盘资源,一旦发现资源涉及侵权,将立即删除。希望所有用户一同监督并反馈问题,如有侵权请联系站长或发送邮件到ebook666@outlook.com,本站将立马改正

内容介绍

编辑推荐

1. 侧重MIS系统开发,采用实用案例,坚持“实际应用需求引入?技术要点分析?关键代码剖析?技术经验总结”的学习路线,突出应用性和实践性。
2. 使用C#语言进行各类管理信息系统开发,是C#语言学习的实践提高教材。
3. 采用实际应用需求引入、实际案例详解,应用性和实践性强

内容简介

  《基于C#的管理信息系统开发(第2版)/高等学校计算机专业规划教材》主要介绍如何使用C#语言进行各类管理信息系统开发,是C#语言学习的实践提高教材。
  《基于C#的管理信息系统开发(第2版)/高等学校计算机专业规划教材》共9章,第1章介绍MIS基础知识;第2章介绍利用C#进行数据库操作的高级特性;第3章介绍常用系统架构;第4章介绍如何创建报表;第5章介绍建模工具PowerDesigner在数据库设计中的应用;第6~9章介绍实际的MIS系统案例开发,其中第6章为图书管理系统开发案例,第7章为超市商品进销存管理系统开发案例,第8章为在线考试系统开发案例,第9章为高校实践课题管理系统开发案例。
  《基于C#的管理信息系统开发(第2版)/高等学校计算机专业规划教材》采用实际应用需求引入、实际案例详解,应用性和实践性强,可作为高等院校计算机软件相关专业C#应用程序开发类课程的教材,也可作为软件开发人员的参考用书。

内页插图

目录

第1章 管理信息系统概述??/ 1
1.1 信息、管理、管理信息与系统 1
1.1.1 信息与数据 1
1.1.2 管理与管理信息 3
1.1.3 系统 3
1.2 信息系统 4
1.2.1 信息系统的概念 4
1.2.2 信息系统的类型 5
1.2.3 信息系统与管理 5
1.3 管理信息系统 5
1.3.1 管理信息系统的概念 5
1.3.2 管理信息系统的功能 6
1.3.3 管理信息系统的特征 6
1.3.4 管理信息系统的类型 7
1.4 管理信息系统的技术基础 7
1.4.1 数据处理技术 8
1.4.2 数据库技术 8
1.4.3 计算机网络技术 9
1.5 管理信息系统的开发原则、策略和方法 9
1.5.1 管理信息系统开发原则 9
1.5.2 管理信息系统的开发策略 9
1.5.3 管理信息系统的开发方法 10
1.6 管理信息系统的典型案例 12
1.6.1 MIS支持沃尔玛创造商业奇迹 12
1.6.2 海尔集团:信息化助力创造世界名牌公司 12
本章小结 13
本章习题 13
第2章 数据库高级编程??/ 15
2.1 SQL Server相关配置 15
2.2 使用ADO.NET访问数据库 20
2.2.1 连接数据库 20
2.2.2 对数据库进行添加、修改及删除操作 22
2.2.3 查询数据库中的数据 24
2.2.4 数据绑定控件 27
2.3 Entity Framework基础知识 51
2.3.1 从委托到Lambda 52
2.3.2 Entity Framework 架构 60
2.4 使用Entity Framework访问数据库 61
2.4.1 Entity Framework的安装 61
2.4.2 创建数据库及实体对象模型 61
2.4.3 数据库增、删、改、查操作 65
本章小结 71
本章习题 71
第3章 系统架构??/ 72
3.1 三层架构简介 72
3.2 简单三层架构 74
3.2.1 数据访问层 74
3.2.2 数据访问通用类库 83
3.2.3 实体类库 87
3.2.4 业务逻辑层 91
3.2.5 表示层 94
3.3 工厂模式三层架构 108
3.3.1 接口类库设计 110
3.3.2 工厂类库设计 112
3.3.3 其他层的代码修改 113
本章小结 115
本章习题 115
第4章 RDLC报表??/ 116
4.1 RDLC报表简介 116
4.2 制作RDLC报表 118
4.2.1 制作简单RDLC报表 118
4.2.2 排序 122
4.2.3 公式与函数 123
4.2.4 分组 123
4.2.5 制作图表 124
4.2.6 设置报表标题 126
4.2.7 制作动态报表 127
本章小结 130
本章习题 130
第5章 建模工具PowerDesigner??/ 131
5.1 PowerDesigner简介 131
5.2 从概念数据模型出发设计数据库 133
5.2.1 问题描述 133
5.2.2 创建概念数据模型 134
5.2.3 定义属性的标准检查约束 137
5.2.4 定义实体的主、次标识符 138
5.2.5 联系的定义及使用 138
5.2.6 CDM转换为PDM 140
5.3 从物理数据模型出发设计数据库 142
5.3.1 问题描述 142
5.3.2 创建物理数据模型 143
5.3.3 创建表 144
5.3.4 编辑列 145
5.3.5 定义引用 146
5.3.6 创建视图 148
5.3.7 创建触发器 149
5.3.8 定义存储过程与函数 150
5.3.9 生成SQL脚本 152
5.4 反向工程 153
本章小结 159
本章习题 160
第6章 图书管理系统??/ 161
6.1 项目描述 161
6.1.1 项目背景 161
6.1.2 业务描述 161
6.1.3 用户描述 162
6.2 系统需求 162
6.2.1 需求描述 162
6.2.2 模块设计 163
6.2.3 数据库设计 164
6.3 系统实现 167
6.3.1 技术要点 167
6.3.2 主要功能模块及界面设计 167
6.4 程序打包 182
本章小结 189
本章习题 189

精彩书摘

  第3章
  系 统 架 构
  在进行具有一定规模的数据库应用系统开发时,如果仍采用传统的代码编写方式,将一个功能模块的所有代码都写在Form中的做法是非常不合适的。因为以这种方式编写的代码,在面临需求变更时,所引发的修改往往是灾难性的。即使是一个数据库IP地址的变更都可能会导致数十甚至上百处的代码变化(每个涉及连接数据库的代码都要修改连接字符串)。所有的代码堆砌在一个窗体内,职责繁杂造成代码可读性差,可维护性、可移植性差,违反了单一职责原则;在面临需求变更时,一定要通读所有代码,再在合适的位置做修改,违反了对修改关闭、对扩展开放的开放-关闭原则;所有代码没有任何抽象,不对接口编程,代码耦合度太高,无法适应较大的需求变更,违犯了依赖倒转原则。
  例如,本书第8章的考试系统属于中小型应用系统,该系统分为两个子系统:教师端子系统和学生端子系统。首先,两个子系统都访问同一个数据库,其中有许多访问数据库的操作及业务逻辑都是相同的,如果再像传统的编写方式一样将代码都放在各个Form中,那就无法实现代码的复用,必然造成大量的冗余,为后续扩展和维护带来麻烦。此外,本考试系统面对的客户不同,其对于软件产品的经济投入也会不同,必然涉及不同的用户采用不同类型数据库的情况,如果代码不做到充分解耦,在面对数据库类型变更时,几乎都要把所有访问数据库的代码修改一遍,显然是不现实的。
  采用一些典型架构开发软件,其目的就是为了使软件代码更具可维护、可扩展、可复用性,从而令系统更为灵活,可以适应任何合理的需求变更。
  3.1 三层架构简介
  在软件体系架构设计中,分层式结构是最常见、也是最重要的一种结构,微软公司推荐的分层式结构一般分为三层,即三层架构(3-Tier Application),这三层从下至上分别为数据访问层、业务逻辑层以及表示层,如图3-1所示。
  1. 数据访问层
  数据访问层(Data Access Layer,DAL)又名持久层,该层负责访问数据库,通俗点讲就是该层负责实现对数据库各表的增、删、改、查操作,当然数据存储方式不一定是数据库,也可能是文本文件、XML文档等。该层不负责任何业务逻辑的处理,更不涉及任何界面元素。
  2. 业务逻辑层
  业务逻辑层(Business Logic Layer,BLL)又称领域层。该层是整个系统的核心,负责处理所有的业务流程,从简单的数据有
  图3-1 三层架构示意图
  效性验证到复杂的对一整条业务链的处理。例如商城购物,从查询商品到添加购物车,再到下订单,直至付款结束等过程。当然,不排除个别软件项目业务逻辑简单,导致业务逻辑层代码较少的情况。例如本章由于篇幅所限,所提供的示例业务逻辑简单,就会出现业务逻辑层“瘦小”的现象。当业务逻辑层需要访问数据库时,它会通过调用数据访问层来实现,而不直接访问数据库。这样可以使业务逻辑层的实现与具体数据库无关,从而有效解耦。业务逻辑层同样不涉及任何界面元素。
  3. 表示层
  表示层(User Interface,UI)即用户界面,表示层可以是WinForm、WebForm甚至是控制台,该层负责用户与系统的交互,接收用户的输入及事件触发。理想状态下,该层不应包含系统的业务逻辑,即使有逻辑代码,也应只与界面元素有关。例如,根据用户的身份控制按钮的可用性等。具体的业务逻辑可通过调用业务逻辑层来完成,该层不能直接调用数据访问层,更不能直接访问数据库。
  如此分层具有以下优点:
  (1)分散关注:开发人员可以只关注自己所负责一层的技术实现。例如,负责数据访问层的开发人员,可以不需要关心系统的任何业务逻辑,更不用关心界面的设计,只需要关心所访问的数据库类型及表结构,最大限度地实现对各数据表的增、删、改、查操作即可。如此,对于开发人员的技术要求可以降到最低,项目经理也可以根据团队成员的专长,合理为其分配擅长的领域工作。
  (2)松散耦合:三层之间呈线性调用,业务逻辑层的实现不依赖于数据访问层的具体实现,表示层的实现同样不依赖于业务逻辑层的具体实现,可以很容易用新的实现来替换原有层次的实现,而不会对其他层造成影响。
  (3)逻辑复用:个别层代码所生成的组件(动态链接库文件DLL)可以直接被其他项目所使用。例如,某系统最初只有WinForm版本,随着业务扩展,逐渐有了Web版、手机版等需求,但各版本功能一致,业务逻辑相同。这样在新建Web版和手机版项目时,只需将原WinForm版项目中的业务逻辑层和数据访问层组件引用到新项目中,直接使用即可,无须再重写代码。
  当然,在获得优点的同时,分层也不可避免会付出一些“代价”,其缺点是:
  (1)降低了系统性能:原本在不采用分层的情况下,UI可以直接访问数据库,但现在要通过层层调用才能达到同样的目的,必然会在运行效率上有所降低。
  (2)容易导致级联修改:用户某些需求的变化,如用户觉得某个功能模块目前所维护的信息不够,需要再加入一些信息,势必导致UI的变化,为了存储这些数据也会导致相应数据表字段的增加,从而数据访问层和业务逻辑层都会受到影响,这就是级联修改。
  3.2 简单三层架构
  简单三层架构即基本三层架构,其结构如图3-1所示。现以一个小示例介绍简单三层架构的代码编写方式。
  示例所用数据库及业务需求如下。
  要求设计一个通讯录软件,实现对联系人类型的定制以及联系人的管理,即实现对联系人类型和联系人的增、删、改、查功能。
  数据库名为MyDb,其中有两个数据表,名为LinkmanType(联系人类型)表和Linkmen(联系人)表,表结构分别如表3-1和表3-2所示。
  表3-1 LinkmanType(联系人类型)表结构
  字 段 名
  数据类型
  长 度
  主 键
  含 义
  TypeId
  nvarchar
  20
  是
  联系人类型编号
  typeName
  nvarchar
  20
  否
  联系人类型名称
  表3-2 Linkmen(联系人)表结构
  字 段 名
  数据类型
  长 度
  主 键
  含 义
  lkmId
  int
  4
  是
  联系人编号(自动加1)
  lkmName
  nvarchar
  10
  否
  联系人姓名
  lkmMPNum
  nvarchar
  12
  否
  联系人移动电话
  lkmOPNum
  nvarchar
  20
  否
  联系人办公室电话
  lkmEmail
  nvarchar
  30
  否
  联系人电子邮箱
  lkmCompName
  nvarchar
  50
  否
  联系人单位名称
  typeId
  nvarchar
  20
  否
  联系人类型编号3.2.1 数据访问层
  1. 创建一个空解决方案
  打开Visual Studio 2012,单击“文件”“新建”“项目”菜单项,弹出图3-2所示的“新建项目”窗口,在该窗口左侧列表中单击“其他项目类型”“Visual Studio 解决方案”,选择右侧的“空白解决方案”,修改名称为“ThreeLayer”,选择好保存位置,单击【确定】按钮,完成空解决方案的创建,如图3-3所示。
  图3-2 “新建项目”窗口
  图3-3 创建后的空解决方案
  2. 创建数据访问层项目DAL
  在图3-3中右侧的“解决方案资源管理器”子窗口中的“解决方案ThreeLayer”节点上单击鼠标右键,选择“添加”“新建项目”,会再次弹出图3-2所示的“新建项目”窗口,在其中选择“Visual C#”,在右侧选择“类库”,将名称改为“DAL”,单击【确定】按钮,此时,图3-3的解决方案会变成图3-4所示状态。
  图3-4 创建DAL项目之后的解决方案
  3. 编写数据访问层代码
  右击DAL项目中的Class1.cs文件,在弹出菜单中选择“删除”,将DAL默认创建的Class1.cs文件删除。再次右击DAL项目,在弹出菜单中选择“添加”“类”,弹出图3-5所示的“添加新项”窗口。
  在图3-5中,将名称命名为“LinkmanType.cs”,单击【添加】按钮,在DAL项目中,会出现名为“LinkmanType.cs”的类文件。
  3.1节提到数据访问层的任务就是实现对数据库的操作,即对各数据表数据的增加、删除、修改、查询。作为LinkmanType类,其功能就是要实现对LinkmanType数据表的增加、删除、修改、查询操作。
  ……

前言/序言

  本书第1版自2014年出版以来,先后多次印刷,深受广大读者的欢迎,被多所高等学校选为教材,并获得2015年度河南省教育科学研究优秀成果二等奖(豫教〔2015〕04744号)、2015年度河南省信息技术教育优秀成果二等奖(豫教〔2015〕10366号)。在使用过程中,也有不少教师和读者提出了一些很好的意见与建议,为适应技术发展,结合教学实践、读者意见和建议,我们对本教材进行了修订,推出第2版。本次修订保持了第1版的写作风格和特色,侧重MIS系统开发,采用实用案例,坚持“实际应用需求引入→技术要点分析→关键代码剖析→技术经验总结”的学习路线,突出应用性和实践性。
  本版修订的主要内容有:
  (1)升级开发环境与工具。开发环境由第1版的Visual Studio .NET 2010升级为Visual Studio .NET 2012,数据库采用SQL Server 2012,所有案例都是在Visual Studio .NET 2012下完成。第2章中的数据库访问技术LINQ更新为目前更为流行的EntityFramework,第7章中的数据库操作也相应地改为采用EntityFramework,保持技术先进性。
  (2)优化调整了部分章节内容。删减了非主流工具介绍,第4章中删减了Crystal Report报表,第5章中删减了Visual SourceSafe,第9章缩减了部分用例规约及顺序图,为压缩篇幅,缩减了部分非关键案例代码(出版社网站可下载全部代码)。
  全书共9章,可分为以下三部分:
  (1)第一部分:第1章,介绍MIS基础知识。
  (2)第二部分:第2~5章,主要介绍C#语言的高级特性和常用开发设计工具。其中,第2章介绍利用C#进行数据库操作的高级特性;第3章介绍常用系统架构;第4章介绍如何创建报表;第5章介绍建模工具PowerDesigner在数据库设计中的应用。
  (3)第三部分:第6~9章,为典型的MIS实际案例开发详解。其中,第6章为图书管理系统开发案例;第7章为超市商品进销存管理系统开发案例;第8章为在线考试系统开发案例;第9章为高校实践课题管理系统开发案例。这些实际案例,在解决方案、架构和实现技术上,由浅入深、循序渐进。本书以典型实例为引导,解决实际问题、剖析解决过程、拓展解题思路,读者可结合每章的技术经验总结,快速提高C#应用开发实践能力。
  限于篇幅,案例讲解在书中只给出了主要功能的源代码,完整系统的代码和数据库等相关资料可在清华大学出版社网站下载。
  本书可作为高等院校计算机软件相关专业C#应用程序开发类课程的教材,也可供软件开发人员参考。相信此次修订后的教材,更适合教师的教学和读者的学习。
  本次修订由郭基凤、高亮担任主编,韩玉民、赵冬担任副主编,第1章由韩玉民编著,第2章2.1节、2.2节及第9章由赵冬编著,第2章2.3节、2.4节及第7章由余雨萍编著,第3章由郭基凤编著,第4章和第6章由朱彦松编著,第5章由缑西梅编著,第8章由高亮编著,全书由郭基凤、高亮负责统稿。
  本书修订过程中,得到了中原工学院车战斌教授的指导和帮助,本书的出版得到了中原工学院教材建设基金资助,另外也吸取了许多相关专著和文献的优点,在此一并表示感谢。
  虽然我们力求完美,但限于水平,不当之处在所难免,敬请广大读者不吝赐教。
  编 者
  2017年6月