本科毕业设计-客户点餐系统的设计与开发.doc
XXXXXXXXXXXX毕业论文题目: 客户点餐系统的设计与开发 系 别: XXXXXXXXX学院 专 业: 计算机xxxxxxxx 学 号: 姓 名: 指导老师: XXX年X月X日II前言21世纪,这一信息技术飞速发展的年代,各行各业都离不开信息处理。在此前提下,使得计算机技术得到了更为广泛的应用。计算机最大的好处在于资源共享以及信息处理上所占的绝对性的优势。我们在企业中使用计算机进行信息处理,既提高了日常工作效率,减少了人力物力上的输出,又更进一步的提高了数据的安全性。尤其是对于较为复杂的信息管理,计算机的优越性是人类行动力上无法比拟的。计算机对于信息管理与管理系统的开发关系甚密,良好的系统管理基于系统开发的基础之上。吃作为人五大需求中排行第一的老大哥,是人生存中必不可少的一部分。如今的社会,人们的生活节奏越来越快,对餐饮的要求也越来越高。既要求菜品色香味俱全,又要求就餐的时间和方式紧凑舒适。根据市场调查可知,以往餐厅对于客户的饮食管理只是局部于人工点餐,这一方式往往会导致早、中、晚客流高峰时段客户排队等位的现象严重化。许多客户由于工作繁忙无法抽出时间去餐厅排队等位用餐,常此以往,就形成了无法按时就餐这一现象,常此以往,人们的身体负荷也会加重。为了改善这一现象,就有了人们对快捷订餐的需求。同时,随着互联网技术的迅速发展,计算机早已成为人们日常生活中不可缺少的一部分,将餐饮与计算机连接起来,客户点餐系统油然而生。摘要本文详细的介绍了基于Windows的客户点餐系统的设计与开发过程。此系统采用Visual Studio 2010作为软件开发平台,C#作为开发语言再加上SQL Server 2008R2R2数据库软件,Photoshop CS6图形图象处理软件等一系列软件结合开发而来。此客户点餐系统主要分为两大模块:前台与后台。前台主要是客户点餐模块,后台则是管理员管理模块。前台又包括:客户登录、订餐、留言、修改密码、当前用户个人订单查询、销量查询。后台又包括:管理员登录、系统管理、订单查询、销量查询。而后台系统管理又可以细分为菜单管理、会员管理、客户管理。此客户点餐系统有别于别的点餐系统的地方就是此系统采用货到付款的结算方式。用户点完餐后,系统会根据是否是会员来结算订单金额,而后管理员通过后台界面查看订单,然后记录订单各方面情况开据发票,待客户收到餐饮之后,当场付钱,后再由管理员通过后台确认订单即可。最后,客户用完餐后,可以根据对菜品的满意程度,给店铺打分,完成订单。关键字:点餐系统,C#,SQL Server 2008R2AbstractThis paper introduces the design and development process of the customer order meal system based on Windows. This system uses Studio Visual 2010 as the software development platform, C# as the development language and Server 2008R2 SQL database software, CS4 Photoshop graphics and image processing software, such as a series of software development.This customer ordering system is divided into two main modules: foreground and background. Front desk is the main customer point of the meal module; the background is the administrator management module.The front desk includes: customer login, ordering, message, modify the password, the current user individual order inquiries, and sales inquiries. The background and include: administrator login, system management, orders inquiries, sales inquiries. The background system management and can be subdivided into menu management, member management, customer management, customer value.This system is different from the point of order of the system is the system to use the goods to the payment of the settlement method. After the end of the meal, the system will be based on whether it is a member to the settlement amount, and then the administrator through the background interface to view orders, and then record the order in each aspect of the case to open the invoice, to be received after the meal, the spot payment, and then by the administrator to confirm the order. Finally, after the customer has finished eating, According to the degree of satisfaction of the dishes, give the shop a score, complete order.Key words: point.Net database, C#,SQL Server 2008R2目录前言I摘要IIAbstractIII目录IV第1章 绪论11.1系统开发背景11.2国内现状11.3系统特点21.4开发平台及技术2第2章 需求分析32.1 系统设计目标32.2系统的主要功能3第3章 系统总体设计43.1系统功能结构43.2数据库设计43.2.1 数据库设计原则43.2.2 概念设计43.2.3 逻辑结构设计83.2.4 数据库表结构设计9第4章 详细设计134.1.1登录模块134.1.2系统应用模块174.1.3系统维护模块204.1.4数据查询模块234.1.5退出功能模块26结束语28致谢29参考文献30I第1章 绪论1.1系统开发背景传统的客户点餐方式无非分为两种,一种方式:餐厅服务员将点餐册子发给来往客人,客人根据自己的喜好选择相应的食物,再由服务人员记录客户所点餐品,最后在客户用完餐后,再在服务员的带领下到收银台结账或直接在餐桌前呼唤服务员结账。另一种方式多体现在在快餐店点餐,流程稍有不同的是,客户要先在柜台前排队点餐,付完帐后拿到食物而后再自己找空位落座享用食物。这两种点餐方式下,都存在的一种点餐缺陷是,用餐高峰期需要等位,不能合理的运用点餐空闲,前者还需要聘用多位服务人员,对于餐厅开支来说这是一大弊端。其他的人员点餐方式,与前两者大同小异。现今社会的特点,可以说是离了信息化的设备就存活不了。如何才能享受到极致迅速又不浪费时间的点餐服务,基于此点,客户点餐系统应运而生。1.2国内现状随着我国在世界范围上的影响越来越大,伴随着4G网络的到来,网络已经逐渐在我们的生活中起到了不可或缺的作用。之前,由于计算机最早诞生于外国,我们国家的起步总的来说是很晚的。国外很早之前就起用了智能点餐系统,而在国内,却是刚刚起步。只有在我国主流城市,才能看到颇多智能点餐系统的身影。而在一些中小型城市里,这种点餐系统的应用只有在客流量较大的商场区,或是店里较之别处消费额度较大的连锁店才能依稀看到。一种原因是:点餐系统的开发相对的成本还是挺大的,对于一些小店来说根本不可能在还未盈利的前提下在投资额度上另加一笔开销。另一种原因是:之前,我们国人对于计算机这一电子化产品的认识不够,没有过多关注,也没有过度使用。现如今,随着人们生活水平的提高,随着计算机在人们生活中起着举足轻重的地步,随着已完善系统的共享化,投资成本的相对减少,点餐系统较之之前,普及额度有了很大一步的提升。1.3 系统特点本系统的主要作用是客户点餐。本系统为人们的日常生活工作提供了极大的便利,人们可以在开始用餐前提前30分钟预定餐点,然后在下班后,立刻享受到新鲜出炉的美食,彻底杜绝了排队苦等最后却等到了冰冷的饭菜或是等到最后饭菜却被告知被卖完了这一令人不愉快的经历。本系统对于时间比金钱更重要的人来说,绝对是不二的选择。1.4 开发平台及技术本系统采取的软件环境是windows 2007操作系统、Visual Studio 2010集成开发中的c#面向对象语言开发环境结合SQL Server 2008R2数据库管理系统。数据库设计前期流程图、E-R图设计使用的是Microsoft公司的Microsoft Office Visio 2003。图片前期设计则是使用的Adobe公司的photoshopCS4.Visual Studio 2010是一套完整的开发工具集,它提供了在设计、开发、调试和部署Web应用程序所需要的工具。而SQL2008R2 则是一款功能十分强大的数据处理软件,再加Visual Studio 2010与SQL Server 2008R2以及 Visio 2003都是微软生产的软件,所以三者在兼容性上实现了完美的统一。另外photoshopCS4 则是一款功能十分全面的图形图像处理软件,作为图片的前期处理工具是再合适不过了。第2章 需求分析2.1 系统设计目标此客户点餐系统的设计目标就是致力于打造一款不需要服务类人员,客户可以自主点餐的自动化点餐系统,此系统设计的出发点以及最终目标就是便利客户。此前客户点餐服务人员是必不可少的。但是,本系统减少了聘请服务人员的开销的同时又大大减少了客户点餐、等待餐点的时间,让客户能在最短的时间里享受到最优越的服务质量,为客户带来了极大的便利。2.2 系统的主要功能此客户点餐系统主要分为两大模块:前台与后台。前台主要是客户点餐模块,后台则是管理员管理模块。前台又包括:客户登录(包含客户登录,客户注册)、订餐(按类别搜索菜品,选择菜品,下菜)、留言(对已购菜品星级评价以及提出意见)、修改密码(当前客户可以在此处修改自己的密码)、订单查询(仅包含当前用户之前的所有订单)、销量查询(用户可以查看所有菜品的销量,为客户选择何种菜提供参考)。后台又包括:管理员登录、系统管理(包含菜单管理,会员管理,客户管理)、订单查询、销量查询。第3章 系统总体设计3.1系统功能结构通过对上述的需求分析后,本系统的功能结构信息包括客户登录模块、系统应用模块、系统维护模块、数据查询模块、退出模块五个主要模块,其内主体功能结构图见图3-1。图3.1 系统整体功能模块图3.2 数据库设计3.2.1 数据库设计原则数据库的设计原则一般包括:层次分明、布局合理;数据库高度结构化;必须保证尽可能保持冗余度的平衡;必须维护数据的正确性以及一致性;可以在必要的地方设定相应的安全机制。3.2.2 概念设计本系统中涉及到的实体有:客户信息、管理员信息、菜品销量、菜品信息、客户充值、客户订单、订单明细、订单表、会员表、评价。其中客户信息表是主表,客户订单表,订单明细,订单表,留言表是它的从表。菜品销量表是菜品信息表的从表。客户信息实体属性图,见图3.2。 客户信息用户ID用户密码用户名联系地址用户类型性别联系电话图3.2客户信息实体属性图菜品信息实体属性图,见图3.3。菜品信息编号菜名价格原材料菜系图片销量口味荤素图3.3菜品信息实体属性图会员实体属性图,见图3.4。会员会员号姓名图3.4会员实体属性图管理员信息实体属性图,见图3.5。管理员信息管理员编号姓名性别密码图3.5管理员信息实体属性图菜品销量信息实体属性图,见图3.6。用户消费信息菜名编号价格消量图3.6菜品信息实体属性图客户意见实体属性图,见图3.7。用户意见菜名单价编号小计份数图3.7客户意见实体属性图订单详情实体属性图,见图3.8。订单明细菜名单价小计份数编号图3.8订单详情实体属性图订单实体属性图,见图3.9。订单送餐时间送餐地点客户联系方式定单号菜品数量总价客户姓名图3.9订单实体属性图评价实体属性图,见图3.10。评价留言时间星级留言序号用户名图3.10评价实体属性图客户点餐系统整体E-R图,见图3.11。图3.11客户点餐系统整体E-R图3.2.3 逻辑结构设计根据上述E-R图,再由E-R向关系模型转化的原则,可得关系模型如下:客户信息表(用户ID、用户名、性别、用户密码、用户类型、联系电话、联系地址)管理员信息表(管理员编号、名字、性别、管理员密码)菜品销量表(编号、菜名、销量、价格)菜品信息表(编号、菜名、菜系、原材料、口味、荤素、价格、图片、销量)客户订单表(编号、菜名、单价、份数、小计)订单明细表(编号、菜名、单价、份数、小计)订单表(定单号、送餐时间、送餐地点、菜品数量、客户姓名、客户联系方式、总价)会员表(会员名、姓名)评价表(序号、用户名、留言、星级、留言时间)3.2.4 数据库表结构设计根据数据库逻辑结构设计可得数据库表结构,具体信息见下方:客户信息表,见表3.1。表3.1客户信息表表名Users(客户信息)表列名称释义客户数据类型(长度)可空/不可空约束用户ID客户编号IntF主键用户名客户名varchar(20)F性别客户性别varchar(10)F用户密码客户密码varchar(20)F用户类型客户权限varchar(20)F联系电话客户电话varchar(20)F联系地址客户地址varchar(MAX)F菜品总体信息表,见表3.2。表3.2菜品总体信息表表名Menu(菜品信息表)表列名称释义客户数据类型(长度)可空/不可空约束编号菜品编号Int F主键菜名菜品名称varchar(20)F菜系菜品系别varchar(20)F原材料菜品原材料varchar(50)F口味菜品口味varchar(50)F荤素菜品名称varchar(10)F价格菜品价格floatF图片菜品图片imageF销量菜品销量intF会员信息表,见表3.3。表3.3会员信息表表名Vip(会员表)表列名称释义客户数据类型(长度)可空/不可空约束会员名客户编号Int F主键姓名客户名varchar(20)F主键管理员信息表,见表3.4。表3.4管理员信息表表名Admin(管理员信息表)表列名称释义客户数据类型(长度)可空/不可空约束管理员编号管理员编号varchar(6)F主键姓名管理员名varchar(20)F性别管理员性别varchar(10)F密码管理密码varchar(20)F菜品销量表,见表3.5。表3.5菜品销量表表名sales(菜品销量表)表列名称释义客户数据类型(长度)可空/不可空约束编号菜品编号IntF主键菜名菜品名称Varchar(50)F销量菜品销量IntF价格菜品价格intF客户订单表,见表3.6。表3.6客户订单表表名dOrders(客户订单表)表列名称释义客户数据类型(长度)可空/不可空约束编号意见编号Int F菜名菜品名称varchar(20)F单价菜品单价floatF份数菜品份数intF小计合计价格 floatF订单明细表,见表3.7。表3.7订单明细表表名DeMe(订单明细表)表列名称释义客户数据类型(长度)可空/不可空约束编号菜品编号Int F主键菜名菜品名称varchar(50)F单价菜品单价floatF份数菜品份数intF小计合计价格 floatF订单表,见表3.8。表3.8订单表表名Order1(订单表)表列名称释义客户数据类型(长度)可空/不可空约束定单号定单编号IntF主键送餐时间送餐时间varchar(50)F送餐地点送餐地点varchar(MAX)F菜品数量菜品数量intF客户姓名客户姓名 varchar(20)F客户联系方式客户联系方式varchar(20)F总价总计价格floatF评价表,见表3.9。表3.9评价表表名Liuyan(评价表)表列名称释义客户数据类型(长度)可空/不可空约束序号意见编号Int F主键用户名客户编号varchar(20)F留言客户留言varchar(MAX)T星级评价星级intF留言时间留言时间 datetimeF29第4章 详细设计根据前面系统各个功能模块的设计与分析,可以知道,此客户点餐系统主要分为五大模块,而这五大模块分别包含在前台与后台系统里。4.1.1登录模块登录模块总体流程图,见图4.1。图4.1登录模块总体流程图1客户登录客户登录分为管理员登录和普通客户登录,需要输入客户名和客户密码,确认密码并点击客户权限进行验证登录,客户登陆时输入的数据会在数据库中选择对应权限进行数据验证。客户登录界面设计,见图4.2。图4.2客户登录界面设计2客户注册客户注册只能注册普通客户,需要输入客户名、性别、密码、联系电话、联系地址进行注册,需要注意的是若客户名已被注册,则客户需要重新输入别的未被注册的客户名。点击注册后,若客户成功注册即可在同一时间将此客户的信息存储到数据库对应的表中。同时,注册部分有清空功能,客户若输错信息,可以一键清空。客户注册界面设计,见图4.3。图4.3客户注册界面设计在客户未登录的情况下,是进不了客户点餐系统的。可以看见此时系统只有退出系统,登录以及注销按钮可以用,其它都是灰的。客户系统主界面设计(未登录),见图4.4。图4.4客户系统主界面设计(未登录)当客户登录后,所有按钮显示为黑色,表示可用。但是这个时候,又多了一个权限设置。如果登陆此系统的不是管理员,即进入客户点餐主界面。本界面中有一个系统管理,若客户点击此按钮后,会弹出“您不是管理员,没有权限进入系统管理”。客户系统主界面权限设计界面,见图4.5。图4.5客户系统主界面权限设计界面若登录此系统的是管理员,则进入管理员对应的界面。管理员系统主设计界面(已登录),见图4.6。图4.6管理员系统主设计界面(已登录)关于权限部分代码如下。 private void 会员管理ToolStripMenT_Click(object sender, EventArgs e1) if (Common.DataBase.uName != "") MessageBox2.Show("您不是管理员,没有权限进入系统管理!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Asterisk); 4.1.2系统应用模块系统应用模块,包括点菜功能、修改密码功能、客户满意度提交功能。1.点餐功能模块该功能面向全体客户,客户可以在用餐前30分钟预定菜品。餐品有三大类型菜系、荤素、酒水。菜系部分又分为:湘菜,粤菜,川菜,东北菜;荤素部分又分为:荤菜,素菜;酒水部分又分为:类,饮料,茶水。用户可以根据个人需求进行检索,对应的下拉菜单会按客户所选要求显示对的菜品的编号、菜名、菜系。当客户选中任意菜品时,下拉框下面会显示此菜品所对应的图片。关于点菜,客户选中一个或多个菜品,点击下菜,即点菜成功。这时右边对应的显示框会显示出客户所点菜的菜名和单价。若客户想同一菜品选择多个,直接选择份数再下菜即可。当然,客户若是不小心下错菜,可以直接选中想要删除的菜品,点击显示框上面红色的叉直接删除即可。客户选完菜后,点击提交,此时当前客户若是会员会直接按照会员价打折后来结算总金额。普通客户若是此时消费满100,则有权利选择是否成为会员,若此客户选择成为会员,则按照会员价格结帐,若选择否,则还是按照原价结账。点菜流程图,见图4.7。图4.7点菜流程图点菜界面见图4.8。图4.8点菜界面见图2. 修改密码功能修改密码流程图,见图4.9。图4.9修改密码流程图客户修改密码界面,见图4.10。图4.10客户修改密码界面3.客户满意度提交功能在此功能下,用户可以对菜品进行打分(选择星级),留言评价提出意见后提交,以便管理人员根据情况改善需求。客户满意度提交流程图,见图4.11。图4.11客户满意度提交流程图客户满意度提交界面,见图4.12。 图图4.12客户满意度提交界面点菜部分代码如下。 private void diancai_Click(object sender, EventArgs e1) string CodStr = "" switch (Cb1.SelectedIndex) case 1: CodStr = "菜系 ='" + Cb3.Text.Trim() + "'" break; case 2: CodStr = "荤素 ='" + Cb3.Text.Trim() + "'" break; case 3: CodStr = "菜系 ='" + Cb3.Text.Trim() + "'" break; meuBindingSource.Filter = CodStr; private void QueRenxiacai_Click(object sender, EventArgs e1) Check af = new Check(); af.Owner = this; af.Show(); 4.1.3系统维护模块1订单管理管理员确认订单界面包含当前未所有未确认订单的客户的订单信息,方便管理员整理订单下发厨房,当管理员确认订单后,即说明订单已完成。管理员确认订单流程图,见图4.13。图4.13管理员确认订单流程图管理员确认订单界面,见图4.14。图 4.14管理员确认订单界面2菜谱更新菜谱更新功能是为了方便修改更新后台数据库而设置的,方便管理员查找不同类别的菜品从而根据商家当前情况来设置菜别,更新菜单,此功能下可以实现菜品的查询,删除,增加,修改。菜谱更新流程图,见图4.15。图4.15菜谱更新流程图菜谱更新界面,见图4.16。图4.16菜谱更新界面确认订单部分代码如下。 private void Inst6() string sqlstr1 = "delete from DeMe " dtba.RunNonSelect(sqlstr1); MessageBox1.Show("订单已确认", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information); MainForm c = new MainForm(); c.Owner = this; c.Show(); private void QueRen_Click(object sender, EventArgs e1) Inst6(); 4.1.4数据查询模块该模块包括客户信息查询功能、菜品销售情况查询、客户消费明细查询功能。1客户信息查询该功能是用于查询全部客户的信息,不过该功能仅面向管理员。客户信息查询流程图,见图4.17。图 4.17客户信息查询流程图客户信息查询界面,见图4.18。图4.18客户信息查询界面2菜品销售情况查询此功能面向全体客户,主要是为了方便客户与管理员能更客观的了解菜品的销售情况以便客户更好的选择菜品、管理员更好的根据销量来设置主打菜品,更好的迎合消费者的需求。菜品销售情况查询流程图,见图4.19。图 4.19菜品销售情况查询流程图(2)菜品销售情况查询界面,见图4.20。图4.20菜品销售情况查询界面3客户消费明细查询此部分的作用是方便客户及管理员更好的了解自己(所有客户)在此系统上所有消费情况。当然,管理员可以查看所有客户的消费情况,但是,客户只可以查看自己的消费情况。客户消费查询流程图,见图4.21。图4.21客户消费查询流程图管理员视角所见的客户消费明细查询界面,见图4.22。图4.22管理员视角所见的客户消费明细查询界面客户视角所见的点餐明细界面,见图4.23。图4.23客户视角所见的点餐明细界面4会员信息查询会员信息查询流程图,见图4.24。图4.24会员信息查询流程图会员查询界面,见图4.25。图4.25会员查询界面销量查询部分代码。 private void 销量查询ToolStripMenT_Click(object sender, EventArgs e1) if (Con.DataBase.uName != "") SaMa ff = new SaMa (); ff.Owner = this; ff.Show(); 4.1.5退出功能模块该模块包括注销当前客户,退出系统。此部分界面已经整合在上面的界面里,就不再贴图了。1注销当前客户该模块是为了方便客户注销本次登录,重新登录别的号。2退出系统该模块的主要作用是方便客户退出此系统。注销部分代码如下。 private void zhuxiao_Click(object sender, EventArgs e1) Con.DataBase.uName = "" this.Hide(); login a = new login(); a.ShowDialog(); 结束语一开始做毕业设计的时候,我有思考过到底选什么课题。其时,一开始我是想做二手网站的。在网站前台快要成形的时候,我同学跟我说,我们隔壁班实训的时候就是做的二手网站。经他这么一说,我开始考虑到底做什么更合适。在我的指导老师XX老师说要交流程图的那一天,我才终于定好了课题,选择了做这样一个系统。由于我们是在大一的时候学的C#,距离现在时间已经有好几年了,再加上我那个时候学习不认真,对于专业课不上心,以至于现在已经忘光了。所以这个系统的开发对我来说,真的是一个很大的考验。这次毕业设计,可以算是把我这几年课上学的,自学的全部用上来了。这次的系统,可以说是我平生第一个系统。此次的设计,让我对于系统的流程有了进一步的认识,知道了原来一个程序员是多么的不容易。知道了只有真正将理论融会到实践中才能实现知识价值。知识的匮乏也让我不禁感叹,以后不管学习什么,都要及时复习巩固,不然就是白学了。更让我更深层次的感叹到计算机真是一个神奇的东西。更新换代的速度较之别物堪比光速。最后,介于毕业设计的实践时间总得来说还是挺短的,又因为个人的编程能力有限,系统难免有许多不尽人意之处。如:介面不够美观,出错处理不够完善,考虑问题不全面等方方面面的问题还需要进一步改进。致谢这次设计能够顺利完成。我最要感谢的是我的指导老师XX老师。XX老师是一位很尽心尽力的老师。她对于我们提出的每一个问题都能很认真的解答。她的工作态度很是令人钦佩。为了能让我们完整的写出一篇论文来,还没开始做设计的时候XX老师就对我们讲了很多要点。关于如何写论文,如何梳理文章使文章更具条理性。毕业生论文里常见的错误以及在很久之前她就提醒我们要早点想好论文题目。她还拿出明显不合格的样本来一个个指点问题,避免我们写的时候犯一样的错误。其时,听的时候,感觉老师说的很对,自己应该不会犯这种错误,可是到自己写的时候。才发现根本不是那回事。由于是第一次写论文,所以感觉很是头大,改了很多遍,还是不让自己满意。像这种自己都不满意的,到老师那边肯定也不行。所以只能这样反复的读自己的论文,梳理章节。人常说,旁观者清,当局者迷。如果没有老师在旁指导的话,个人认为,一定不可能像这样顺利完成论文的编写。即便完成了,相信所花的时间也是成倍的往上番的。毕竟老师看过了无数的论文,带过很多毕业班的设计,远远不是我肚子里这点文墨能够补齐的。最后,让我再次感谢我此次的指导老师。谢谢您带给我们的帮助,最后的最后,还要感谢我的母校对我的栽培。谢谢!参考文献1ASP.NET软件开发实用教程 XXXXXX2SQL Server 数据库及应用(SQL Server 2008R2版)XXXXX3ASP.NET 3.5网站开发实例教程 XXXXXXXXXX4SQL server数据库开发技术XXXXXXXXXXXXXXXXX5Karli Watson, Christian Nagel,等.C#入门经典M.齐立波,译.3 版.北京:清华大学出版社,20066萨师煊,王珊,数据库系统概论M. 北京:高等教育出版社,20007数据组织与管理 王珊 经济科学出版社,20118 管理信息系统导论 黄梯云 机械工业出版社,20009Microsoft SQL Server 2008R2 中国电力出版社,200810Visual C#.NET程序设计经典 曹祖圣等 北京科学出版社, 2004