滨州学院软件工程课程设计(2010——2011年度第二学期)题目好书在线专业计算机科学与技术班级2009级计本四班小组成员李丽丽2009022899窦凤平2009022895二〇一一年十二月一日《软件工程》课程设计成绩评定成绩学号姓名成绩备注2009022899李丽丽2009022945窦凤平指导教师:闫晓薇软件工程课程设计报告1摘要:随着Internet技术的发展,人们的日常生活已经离不开网络。未来社会人们的生活和工作将越来越依赖于数字技术的发展,越来越数字化、网络化、电子化、虚拟化。Internet的发展历程以及目前的应用状况和发展趋势,可以充分地相信网络技术将极大的改变我们的生活和工作方式,甚至社会的价值观也会发生某种变化。本设计尝试用ASP.NET在网络上架构一个网上书店,以使每一位顾客不用出门在家里就能够通过上网来轻松购书。本文从理论和实践两个角度出发,对一个具有数据挖掘功能网上书店进行设计与实现分析。论文首先较为详尽地介绍了面向对象分析与设计的有关概念与技术,特别深入介绍了在本系统中运用到的知识,如:面向对象的分析设计流程;系统中所用到的开发技术ASP.NET以及ADO.NET的特点、结构框架以及使用方法。接着对书店系统的可行性进行了分析,然后对系统的设计思想、设计目标与系统的整体结构进行了明确的规划。最后对系统的主要页面、数据库、应用程序的设计与实现作了较为详细的讲解。本网上书店系统是在VisualStudio.Net平台上运用ASP.NET技术来实现的。其主要功能有:用户管理,新书上架,分类查找,图书检索,图书收藏夹,购买流程,销售排行,图书评论,网站管理等。论文在撰写过程中,力求将理论与实践应用相结合,对各种理论进行阐述的同时配合系统从实际应用和操作技巧上加以说明,希望能够更充分地体现到这些知识与技术在本系统中的应用与实现。关键词:面向对象分析与设计,ASP.NET,ADO.NET一、课程设计的目的与要求通过软件开发的实践训练,进一步掌握软件工程的方法和技术,提高软件开发的实际能力,培养工程设计能力和综合分析、解决问题的能力。具体如下:1.学习和实践在分析和设计计算机应用系统所需要的知识,包括面向对象的系统分析与设计,编码和测试方面的知识;2.熟悉自动化的软件开发工具RationalRose2003,并将其运用于软件开发的全过程;3.进一步加强和提高软件工程文档的编写能力;4.培养协作能力和团队精神。二、设计正文1.概述1.1课题题目:好书在线系统1.2系统的主要目标:本系统目标是实现选课系统所需的各种基本功能,能够很好的实现在线购书、评论、查看书籍信息等功能,还可以实现管理员进行对书籍的管理、对评论的管理以及对于订单的管理等功能。1.3系统的开发环境及运行环境:操作系统:WindowsXPProSP2建模工具:RationalRose2003软件工程课程设计报告2数据库系统:SQLServer2005开发工具:VisualStudio2008Web服务器:IIS+ASP.NET2.0平台2.系统需求分析随着网络在中国的广泛普及,网络支付手段的逐步完善,越来越多的中国人逐渐习惯于网上购物,习惯于鼠标点击下订单,送货上门的快捷便利的购物方式。传统书店的购书观念正在被网上书店这一方便快捷的购书方式所冲击。网上书店在国际互联网上可以实现的商务功能已经越来越多样化,从最开始的信息发布功能,到现在的在线图书展示功能、在线洽谈业务功能、在线交易功能、在线采购功能、在线客户服务功能、在线网站管理功能等等,几乎传统书店所提供的功能都可以在互联网上进行电子化的高效运作,而借助网络的跨地域特点,更是将传统书店的地域限制加以突破,全国各地的读者都可以通过网络在同一个网上书店购书,从而大大增加了客户的数量。为了使网上书店的投入回报和管理效益最大化,在对网上书店进行系统开发之前,必须对一系列问题进行科学的论证,如网上书店的需求分析、网上书店总体规划、网上书店系统的功能和实施方案、网上书店的传播与推广、运行网上书店系统的软件和硬件配置、网上书店的管理系统和管理方法等等。综上所述,网上书店已经成为互联网时代购书者的最佳选择,必将获得巨大的成功。E-R图图2-1学生选课系统E-R图软件工程课程设计报告3E-R说明:2.1数据流图图2-2学生选课系数据流图3.系统总体设计3.1设计问题域子系统学生选课系统是实现学生选课退课、教师提交成绩以及学校教务管理员维护信息的一个平台,整个学生选课系统有前台和后台两部分,共分为4个模块:管理员模块,教师模块,学生模块和公有模块,分别用于完成各自的功能。以下为学生选课系统总体设计图和各功能模块说明:(1)总体设计图(2)各模块功能表3-1学生选课系统功能模块表功能模块包含子功能模块功能管理员模块学生管理子模块对学生信息的添加、修改,删除操作教师管理子模块对教师的添加,修改,删除,查询操作课程管理子模块对课程的添加,添加时为其分配任课教师,上课时间和地点,实现对课程的修改,删除,查看某学生选课系统前台模块后台模块学生登录模块教师登录模块学生处理模块教师处理模块管理员处理模块公共模块管理员登录模块图3-1学生选课系统总体设计图软件工程课程设计报告4个课程的详细信息等教师模块实现查看自己所教授的课程,课程有哪些学生选修,以及利用本系统提交学生的成绩学生模块实现学生选课,查看所选课程,修改自己的选课信息公有模块实现用户的身份验证,密码修改,退出系统等功能3.2设计数据管理子系统(1)数据库表表3-2数据库表序号数据库表数据表存储的内容1Student存储学生的信息2Teacher存储教师的信息3Users存储管理员的信息4Elect存储选课的信息5Cource存储课程的信息6Depart存储学校系院信息(2)数据库表结构①学生表Student的详细数据字段:表3-3Student学生用户表序号字段名字段类型说明备注1stuIDnvarchar(20)notnull学生学号关键字2stuPwdnvarchar(20)notnul学生密码3stuNamenvarchar(20)notnul学生姓名4stuDepartInt学生系院号5stuGradeint学生年级6stuClassint学生班级②教师表Teacher的详细数据字段:表3-4Teacher教师用户表序号字段名字段类型说明备注软件工程课程设计报告51teaIDnvarchar(20)notnull教师编号关键字2teaPwdnvarchar(20)notnull教师密码3teaNamenvarchar(100)notnull教师姓名4teaDepartInt(4)教师系院号③课程表Course的详细数据字段:表3-5Cource课程信息表序号字段名字段类型说明备注1courseIDnvarchar(20)notnull课程编号关键字2teaIDnvarchar(20)notnull教师编号关键字3courseNamenvarchar(100)notnull课程名称4courseTimenvarchar(20)上课时间5courseAddressnvarchar(50)上课地点6courseInfoText课程简介④选课表Elect的详细数据字段:表3-6Elect选课信息表序号字段名字段类型说明备注1stuIDnvarchar(20)notnull学生学号关键字2courseIDnvarchar(20)notnull课程编号关键字3teaIDnvarchar(20)notnull教师编号关键字4Scoreint课程成绩⑤系统管理员表Users的详细数据字段:表3-7Users管理员表序号字段名字段类型说明备注1adminNamenvarchar(20)notnull系统管理员用户名关键字2adminPwdnvarchar(20)系统管理员密码⑥系院表Depart的详细数据字段:表3-8Depart系院表序号字段名字段类型说明备注软件工程课程设计报告61departIDIntnotnull系院号关键字2departNamenvarchar(100)系院名称3.3设计人机交互子系统(1)用户分类本系统的用户可分为三类:①管理员用户;②教师用户;③学生用户。(2)用户描述①管理员用户的描述:管理员用户在整个选课系统中起到管理和维护的作用,对学生和教师的信息进行管理和维护以及开设课设等职责。②教师用户的描述:教师用户在本系统中具有管理选修了自己开设的课程的学生的权限,查看选修了自己开设课程的学生信息有及提交学生成绩。③学生用户的描述:选课系统主要是针对管理学生的,学生在本系统中具有修改自己的信息,以及选课和退选的功能。(3)设计命令层次①系统的人机交互子系统的内容和准则:本学生选课系统的人机交互子系统在根据不同的用户身份登陆到不同的页面,然后按照不同的用户只能进行用户权限内的操作,其结构图如下:②通过采用树形结构,细化命令的组织方式,如下:主系统界面学生用户界面教师用户界面管理员用户界面图3-3人机交互子系统结构图软件工程课程设计报告74.详细设计学生选课系统是实现学生网上选课、教师提交成绩以及学校教务管理员维护信息的一个平台,整个学生选课系统共分为4个大模块:管理员模块,教师模块,学生模块和公有模块,其中复杂的方法和模块的详细设计流程图如下。4.1系统用户登录流程图主系统界面管理员用户学生用户教师用户选课查看选课学生管理教师管理课程管理查看选课信息提交成绩退课添加学生修改学生信息删除学生添加教师修改教师信息删除信息添加课程修改课程信息删除课程图3-4细化命令组织方式软件工程课程设计报告84.2用户密码修改流程图开始输入用户名、密码验证用户名、密码提示用户登录失败进入相应的用户页面选择相关管理操作安全退出系统验证正确结束是否图4-1系统用户登录流程图软件工程课程设计报告94.3教师提交成绩流程图4.4管理员添加课程流程图开始点击成绩提交填写学生成绩提示已提交,不能再提交点击提交提交成绩,并提示成功检查是否已提交过确认提交?结束是否否是图4-3教师提交成绩流程图开始输入用户旧密码、新密码验证用户密码是否合法输入不合法,重新输入修改用户密码提示修改成功是否合法?结束图4-2用户密码修改流程图是否软件工程课程设计报告104.5学生选修课程流程图开始结束点击选修选修成功更新选、退课课表提示时间冲突,不能选修上课时间冲突继续选课?是否是否图4-5学生选修课程流程图开始退出转到添加课程填写课程信息点击添加填写编号提示重新填写编号添加课程提示添加成功课程编号是否重复?否是图4-4管理员添加课程流程图软件工程课程设计报告115.系统实现本系统采用了三层架构来实现,即分为用户界面层(UI)、业务逻辑层(BLL)和数据访问层(DAL),用户界面层是展示给用户的界面,方便用户与系统进行交互;业务逻辑层是对系统业务实体的封装,完成系统业务功能;数据访问层直接与数据库打交道,为业务逻辑层提供底层的数据库操作。5.1Database类主要是与数据库连接,提供数据库操作功能,代码如下:namespaceMyElectCourse.DAL{publicclassDatabase{protectedstringconnectionString;protectedSqlConnectionconnection=null;publicDatabase(){connectionString=ConfigurationManager.ConnectionStrings[ConnectionString].ConnectionString.ToString();}~Database(){if(connection!=null){connection=null;}}protectedvoidOpen(){if(connection==null){connection=newSqlConnection(connectionString);}if(connection.State.Equals(