资源预览内容
第1页 / 共27页
第2页 / 共27页
第3页 / 共27页
第4页 / 共27页
第5页 / 共27页
第6页 / 共27页
第7页 / 共27页
第8页 / 共27页
第9页 / 共27页
第10页 / 共27页
亲,该文档总共27页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
软件工程专业大型软件项目实训 文件排版存档编号:UYTR-OUPT28-KBNTL98-UYNN208 辽宁工程技术大学 大型软件项目实训报告 教学单位 软件学院 专 业 软件工程 班 级 学生姓名 学 号 指导教师 一、实训目的 通过实训提高自己的实战能力,对软件编程项目有更深刻的理解。根据企业对人才的具体需求,针对软件学院应届毕业生,开展以大型软件工程项目为目的的实战训练,有效提升学生的项目实战能力和适应市场的能力,最终实现学生比较理想的就业率和就业质量。 二、实训时间和地点 1实训时间:2013 年 11 月 1 月2014 年 1 月 6 日 2实训地点:辽宁工程技术大学 三、实训单位简介 辽宁工程技术大学始建于 1949 年,原名阜新矿业学院。在六十年代初期经院校调整,四校合并,校址选于辽宁省阜新市,定名为阜新煤矿学院,成为东北地区唯一一所煤炭高等院校。1978 年确定为原煤炭工业部直属的全国重点大学,在煤炭行业享有“黄埔军校”的美誉,被公认为中国煤炭行业的最高学府之一。现任校党委书记潘一山、校长王继仁。 学校是以工程技术见长,地矿为特色的全国一本招生高校,教育部“卓越工程师教育培养计划”高校和辽宁省卓越工程师教育计划项目试点高校,教育部全国毕业生就业典型经验高校,教育部中国政府奖学金来华留学生接收高校,辽宁省人民政府与国家安全生产监督管理总局共建的省部共建大学,“中西部高校基础能力建设工程(小 211 工程)”重点建设高校。 学校建有阜新老校区(即南校区)、阜新玉龙新校区(即北校区)和葫芦岛校区,占地 4240 亩,其中阜新校区占地 1900 亩、葫芦岛校区占地 2340亩,校园内古朴、典雅的建筑鳞次栉比,校舍建筑面积约 73 万平方米,主要建筑为俄式欧式风格。教学科研仪器设备总值达亿元,二万七千平方米的现代化图书馆,纸质藏书余万册, 370 万册,电子期刊 8000 多种,订有中外文期刊 2000 多种。 辽宁工程技术大学校训是:诚朴求是,博学笃行。就是告诫师生们轻视、鄙薄铅华俗气,脚踏实地,孜孜以求,一步一个脚印,进入真才实学的境地。 坚持以德养才、厚重人品的育人理念,塑造历代学子的“”。“”是人们对煤炭的称颂,称颂它的朴实无华,没有宝石绚丽的光彩;称颂它的坚韧顽强,承受着大地的高温高压;称颂它的无私奉献,燃烧自己,奉献着光和热。建校伊始,该校就植根于煤炭艰苦行业和偏僻落后的辽西地区,秉承煤炭人的献身、敬业与特别能战斗精神,融合艰苦地区朴实、坚韧、刻苦、顽强的社会文化底蕴,经历史的积淀,铸就了辽宁工大人特有的朴实无华、坚韧顽强、无私奉献的“太阳石精神”。该校始终以“太阳石精神”为脊梁,弘扬勤勉敬业、无私奉献的师德,忠教爱生、严谨治学的教风,顽强刻苦、拼搏向上的学风,团结勤奋、求实创新的校风,将“太阳石精神”与现代意识、科学技术交融,形成了浓重而独具特色的校园文化。“太阳石精神”不仅是全校教职工治学厉行的精神源泉,更是辽宁工大学子成才立业的宝贵财富。 四、实训内容 1实训期间完成的学习任务 c#基础知识 #中布尔类型的值 true 和 false 都是小写的包括头字母 2.对象类型(object 类型)是所有类型的父类型,是其他类型最根本的基类。object myobject=100; 3.循环语句中: (1) if (x 15) (您的岁数真的这么小吗n); F:down +SQL Server 2005 全程指南Study_NETchap02tryfinally Finally 不管前面的程序是否有异常都会执行,但是在这个例子中总会提示 try 中异常,运行不到 finally 就停止了 5.在 try catch finally 语句中,一个 try 语句可能包含多个 catch块,将执行的第一个能够处理该异常的 catch 语句;任何后续的 catch 语句都将被忽略,即使他们是兼容的 6.在访问一个类时,系统最先执行构造函数中的语句,任何构造函数的执行都隐式的调用了系统提供的默认构造函数 base()。因此如果在类中声明了如下所示的构造函数: Function(). 实际就等价于 Function():base(). 无论如何创建类必须要有构造函数可以在即创建也可以是默认的,构造函数不能被继承。 构造函数总是 public 类型,如果是 private 类型,表明类不能被实例化,这往往用于只含有静态成员的类 析构函数不能是继承来的也不能显示的调用。在 c#中析构函数中不用写任何类似于 c+中的 delete 函数,垃圾收集器会自动完成这些工作 7.在 c#钟所有与多线程机制应用相关的类都是放在命名空间中的,其中thread 类用于创建线程,threadpool 类用于管理线程池。Thread 类中有几个至关重要的方法,描述如下: Start():启动线程 Sleep(int):静态方法,暂停当前线程指定的毫秒数 Abort():通常使用该方法来终止一个线程 Suspend():该方法并不终止未完成的线程,它仅仅挂起线程,以后还可以恢复 Resume():恢复被 suspend()方法挂起的线程的执行。 第三章 常用服务器控件 这章介绍了很多控件的使用方法,有的也跟着设计了,觉得好多时候在设计面板上设计不好比如在 table 上添加其他控件,位置不好控制,在代码里反而比较好设计,只是很多时候不知道要设置哪些东西,对控件的名字和属性知道的不清楚根本就是个设计不好,这就需要多多练习,熟悉常用的控 件的使用方法,及其属性的设置,还有就是培养对动手设计前台的那种感觉。 Button 的三种属性: Button 标准的表单按钮;ImageButton 显示图像的表单按钮;LinkButton 显示作为超链接样子 Button, Button 基本上就是 Text 属性来设置按钮上面的文字; ImageButton 基本上就是 ImageUrl 来设置按钮上图象的地址;AlternativeText 在浏览器不支持图片的时候显示的文字; LinkButton 基本上就是 Text 属性来设置按钮上的文字; 他们三者共同的属性就是 CausesValidation=true/false 来设置按钮提交的表单是不是被检验(后面将说到检验控件) 他们三者共同的方法就是 OnClick 就是点击按钮的时候触发的函数 Multiview 和 view 控件: 两者通常一起用,都属于容器控件,Multiview 是一个大容器,其中包含多个 view 控件,而 view 控件是一个小控件,其中包含了任何需要显示在页面中的内容。View 控件不支持任何样式属性,若要对 View 控件应用样式,可将一个或多个 panl 控件添加到 View 控件中。 若要允许用户在 Multiview 控件中的多个 View 控件之间进行定位,可将 LinkButton 或 Button 控件添加到每个 View 中,将 LinkButton 或 Button控件的 CommandName 属性设置为要定位到的 View 控件的 ID。 FileUpload 服务器控件: 可以看成是一个文本框控件和一个浏览按钮的组合,使用该控件可以将用户选择的客户端上的文件上传到 Web 服务器。防止服务攻击的方法之一就是限制可以使用 FileUpload 控件上传文件的大小,根据要上传的文件的类型,设置与类型相适应的大小,默认的大小为 4096KB(4MB)。可以通过设置 httpRuntime 元素的maxRequestLength 属性来允许上传更大的文件,若要增加整个应用程序所允许的最大文件大小,设置文件中的 maxRequestLength 属性。若要增加指定 页所允许的最大文件大小,设置中 location 元素内的 maxRequestLength 属性。 Calendar 控件: 该控件并不直接支持绑定数据库,即不是将日历作为一个整体绑定到数据源,但是可以为 Calendar 控件的 DayRender 事件创建一个方法,该事件在呈现当前日历月份中的每个日时引发。在该事件的方法中,可从数据源中提取信息,并将这些信息添加到向浏览器发送的流中。 AdRotator 控件: 该控件是一个广告控件,专门用来显示广告,常常在许多网页上用它爱显示一些广告的内容,因为它可以用来控制一些图片出现在网页中的几率,以及点选后重新导向的网址,所以每次使用者浏览网页时出现的广告都不同。建议将广告文件放置在 App_Data 文件夹中,原因是可以防止浏览器使用该文件夹中的文件。 第四章 验证控件 非空验证 非空验证主要使用 RequiredFileValidator 控件进行验证,当用户将页面中的数据提交给服务器进行处理时,它会自动检查被验证的控件的值是否为空,如果为空,则 RequiredFileValidator 控件会在网页中提示错误信息。当用户同时设置了 ErrorMessage 和 Text 属性的值,则在发生错误时将会显示 Text 属性中设置的信息,在这种情况下可以使用 ValidationSummary控件显示 ErrorMessage 属性中设置的错误信息。 范围验证 验证范围主要使用 RangeValidator 当用户输入的值不在指定的范围,将会引发页面错误。该控件提供了 5 种类型的验证,他们分别为 Integer,Sting,Data,Double,Currency。每种类型都存在一个最大值和一个最小值 Integer:用于验证输入的数据是否在指定的整数范围之内。 Sting:用于验证输入的字符是否在指定的范围之内。 Data:用于验证输入的日期是否在指定的日期范围之内 Double:用于验证输入的数据是否在指定的双精度范围之内 Currency:用于验证输入的货币是否在指定的货币范围之内 比较验证 比较验证主要使用 CompareValidator 控件进行验证,主要用于验证TextBox 文本框控件中的内容与某个控件中的内容、值或固定表达式的值是否相同。例如,用户在注册时用于验证用户输入的“密码”是否和“确认密码”相同,还可以通过设置 CompareValidator 控件的 Operator 属性来进行其他比较操作,如不相等、大于及小于等。 如果同时设置了 CompareValidator 控件的 ContralToCompare 和ValueToCompare 两个属性,则 ContralToCompare 属性优先,被验证控件将与 ContralToCompare 属性指定的控件进行比较。 如果将 CompareValidator 控件的 Operator 属性设置为Datatypecheck,则它的 ContralToCompare 和 ValueToCompare 属性将同时被忽略,然后判断用户输入的值是否可以转换成指定的数据类型,再和指定的数据进行比较。 使用正则表达式验证 正则表达式验证主要是使用 RegularExpressionValidator 控件进行验证。在 RegularExpressionValidator 控件中,主要使用ValidationExpression 属性指定信息的验证模式,它可以对 E-mail、身份证号码、电话号码及邮编的格式进行验证,同时用户也通过“正则表达式编译器”编写自己的验证表达式,只需要单击“RegularExpressionValidator”控件的“ValidationExpression”属性即可弹出正则表达式的编辑器。 正则表达式的语法比较复杂,它是由普通字符和特殊字符组成的字符模式。正则表达式作为一个模板,将字符模式与所要验证的字符串进行匹配,如匹配成功则通过验证。 普通字符 特殊字符(比如*、&、+等) 各个操作符运算的优先级 优先级 操作符 说明 1 转义符 2 ()、(:)、(=)、 圆括号或方括号 3 *、+、n、n,、n,m 限定符 4 、$、anymetacharacter 位置和顺序 当用户调用 Regex 类中的 IsMatch()方法时,须首先添加的命名空间,否则将不能使用 Regex 中的所有方法 自定义验证 自定义验证主要是使用 CustomValidator 控件进行验证它是使用自定义的函数验证控件的输入,创建一个验证函数,检查文本框中输入的值是否为偶数. CustomValidator 控件与其他控件最大的区别是该控件可以添加客户端验证和服务器端验证函数,客户端验证函数是在 ClientValidationFunction属性中指定的,而服务器端验证函数是通过 ServerValidate 时间处理并执行的。 当被验证的控件值为空时,CustomValidator 控件将不发挥任何作用,使用 RequiredFileValidator 控件防止用户跳过某个输入控件。 第五章 对象、状态和配置 Response 对象 Response 对象用于动态响应客户请求(Request),并将动态生成的响应结果返回到客户端浏览器中,使用 Response 对象可以直接发送信息给浏览器、重定向浏览器到另一个 URL 或设置 cookie 的值等。 Response 对象的常用属性 属性 功能说明 Buffer 表明页输出是否被缓冲 ContentType 指定响应的 HTTP 内容类型 Charset 将字符集的名称添加到内容类型标题中 CacheContro 决定代理服务器是否能缓存 ASP 生成的输出 Status 服务器返回的状态行的值 ExpiresAbsolute 指定浏览器上缓存页面超时的日期和时间 IsClientConnected 表明客户端是否与服务器断开 Pics 将 PICS 标记的值添加到响应的标题的 PICS 标记字段中 Response 对象的常用方法 方法 功能说明 AddHeader 设置 HTML 标题 Write 直接像客户端浏览器输出数据 Flush 立即发送缓冲的输出 AppendToLog 在 Web 服务器的日志文件中记录日志 BinaryWrite 按照字节格式向客户端浏览器输出数据,不进行任何字符集的转换 Clear 清楚服务器中缓存的 HTML 信息 Redirect 重定向当前页面,尝试链接另外一个 URL End 停止处理.asp 文件并返回当前的结果 在 Response 对象的 Write()方法中,被输入的信息既可以是变亮信息也可以是常量信息;同时,也可以通过 HTML 和 CSS 脚本来改变其样式。 使用 Response 输出图像时:DrawEllipse()方法的语法为:Public void DrawEllipse(pen pen,int x,int y,int width,int height)。 参数说明: pen:确定曲线的颜色、宽度和样式 x:定义椭圆边框的左上角的 x 坐标 y:定义椭圆边框的左上角的 y 坐标 width:定义椭圆边框的宽度 height:定义椭圆边框的高度 Response 对象的 WriteFile()方法使用非常广泛,它不近可以输出文 本文件中的数据,同时它也可以实现文件下载的功能,文件下载功能的代码如下: ET Framework 类,该类是从 HttpApplication 基类派生的。文件 本身被配置为自动拒绝对它的任何直接 URL 请求:外部无法下载或查看在该文件中编写的代码 文件为 Application 和 Sessions 定义了 5 个基本事件: 事件 Application_Start(Object Sender,EventArgs e)在Application 对象开始时被触发。在该事件中,应用程序可以进行一些与整个应用程序相关的初始化工作,如统计应用程序的总访问人数,就可以在该时间进行初始化工作。 事件 Application_End(Object Sender,EventArgs e)在Application 对象结束时被触发,在该事件中,应用程序还可以进行一些与整个应用程序相关的信息更新工作,如统计应用程序的总访问人数,当用户离开时,就可以在该事件中对总人数减 1. 事件 Application_Error(Object Sender,EventArgs e)在应用程序发送错误时被触发,在该事件中,应用程序可以进行一些与整个应用程序相关的错误信息或状态 事件 Session_Start(Object Sender,EventArgs e)在 Session 对象开始时被触发,在该事件中,应用程序可以进行一些与单个用户相关的初始化工作,如统计应用程序的当前访问人数,就可以在该事件中进行初始化工作。 事件 Session_End(Object Sender,EventArgs e)在 Session 对象结束时被触发,在该事件中,应用程序可以进行一些与单个用户相关的信息更新工作,如统计应用程序的当前访问人数,就可以在该事件中对总人数减 1. 文件除了上述 5 个基本事件外还存在很多事件,如事件Application_BeginRequest(Object Sender,EventArgs e)和Application_EndRequest(Object Sender,EventArgs e),这两个事件经常在网站验证用户身份时使用。 Application 对象 该对象可以产生一个全部的 Web 应用程序都可以存取的变量,这个变量可视范围涵盖全部的使用者,Application 对象变量的生命周期是关闭 IIS或使用 Clear 方法消除,Application 对象是 Page 对象的成员,可以直接调用。使用 Application 对象变量的语法如下:Application“变量”=“变量内容” Application 对象的常用属性 属性 说明 All 返回全部的 Application 对象变量到一个 object 类型的数值 AllKeys 返回全部的 Application 对象变量名称到一个字符串数组中 Count 取得 Application 对象变量的数量 Item 允许使用索引或 Application 变量名称传回内容值 Application 对象的常用方法 方法 说明 Add 新增一个新的 Application 对象变量 Clear 清楚全部的 Application 对象变量 Get 使用索引或变量名称传回变量值 Lock 锁定全部的 Application 变量 Remove 使用变量名称移除一个 Application RemoveAll 移除全部的 Application 对象变量 Set 使用变量名称更新一个 Application 对象变量的内容 UnLock 接触锁定 Application 对象 Session 对象 Session 是用来存储跨网页程序的变量或是对象、功能和 Application对象一样,但是他们之间的变量特性不太一样,Session 对象变量只针对单一网页使用者,也就是说,各个链接的计算机有各自的 Session 对象变量,不同的客户端无法互相存取,Application 对象变量终止与 IIS 服务的停止。但是 Session 对象变量终止于联机计算机离线时,也就是当网页使用者 关掉浏览器或超过设定 Session 变量对象的有效时间时,Session 对象的使用方式和 Application 对象变量类似,语法如下所示: Session“变量名”=内容 读取 Session 值的语法为: Variablesname=Session“变量名” Session 对象的常用属性 属性 说明 IsNewSession 如果用户在访问页面时是创建新的会话,则此属性返回True。在使用会话之前使用某些数据初始化会话时,此属性就非常有用 TimeOut 传回或设定 Session 对象变量的有效时间,当使用者超过有效时间没有动作,Session 对象便失效,默认值为 20 分钟 Session 对象的常用方法 方法 说明 Abandon 此方法结束当前会话,并清楚会话中的所有信息,如果用户随后访问页面,可以由它创建新会话(“重新建立”非常有效,这样用户就可以得到新的会话) Clear 此方法清除全部的 Session 对象变量,但不结束会话 Cookie 对象 Cookie 对象用于保存客户浏览器请求服务器页面的 i 请求信息,程序员也可以用它存放非敏感性的用户信息,信息保存的时间可以根据需要设置。如果没有设置 Cookie 失效时间,它们仅保存到关闭浏览器程序为止。如果将 Cookie 对象的 Expires 属性设置为 MiniValue 则标识 Cookie 永不过期。 ViewState 对象 ViewState 对象常用于保存单个用户的状态信息,有效期等于页面的生命期。如果某个控件不需要在回发期间保存状态信息,最好关闭该对象的ViewState,避免不必要的资源浪费。通过page 指令添加”enable ViewState=false”属性可以禁止整个页面的 ViewState 文件 文件是一个 XML 文本文件,它用来存储 Web 用于程序的配置信息(如最常用的设置 Web 有那个有程序的身份验证方式)。 在文件中包含多个配置节: 节 该配置节主要用于配置 身份验证(支持 Windows、Forms、PassPort 和None4 种),该元素只能用于计算机、站点、或应用程序级别声明。元素必须与节配合使用。以下示例为基于窗体(Forms)的身份验证配置站点,当没有登陆的用户访问需要身份验证的网页,网页自动跳转登陆网页。 节 该配置节主要用于控制对 URL 客户端资源的访问(如允许匿名用户访问),此元素可以在任何级别(计算机、站点、应用程序、子目录或页)上声明,必须与节配合使用,以下代码禁止匿名用户的访问: 同时,可以使用来获取已经验证的当前的用户名;可以使用方法将已验证的用户重定向到用户刚才请求的页面。 节 该配置节主要用于配置的编译设置,默认的 debug 属性为“True”,zai 在程序编译完成交付使用之后应将其设为 True。 节 该配置节主要用于配置应用程序发生错误跳转到指定的错误页面进行处理。它不适应于 XML Web Services 中发生的错误,当发生错误时,将网页 跳转到自定义的错误页面。处理应用程序错误存在 On、Offi 和 RemoteOnly三种模式: On,表示始终显示自定义(友好的)信息 Off,表示始终显示详细的错误信息 RemoteOnly,表示只对不再本地 Web 服务器上运行的用户显示自定义(友好的)信息。处于安全目的,建议使用此设置,以便不同远程客户端显示应用程序的详细信息, 其中元素 defaultRedirect 表示自定义的错误网页的名称。mode 元素表示对不再本地 Web 服务器上运行的用户显示自定义信息。 节 该配置节主要用于配置 HTTP 运行库设置,该节可以在计算机、站点、应用程序和子目录级别声明。控制用户上传文件最大为 4KB,最长时间为 60秒,最多请求数为 100 pages 节 该配置节主要用于标识特定于页的配置设置(如是否启用会话状态、试图状态,是否检测用户的输入等)。节还可以在计算机、站点、应用程序和子目录级别声明。 该配置主要用于配置会话状态设置(如设置是否启用会话状态,会话状态的保存位置)。 其中,mode=”InProc”表示在本地存储会话状态(可以选择存储在远程服务器或 SAL 服务器中或不启用会话状态)。cookieless=”true”表示 如果用户浏览器不支持 Cookie 时启用会话状态(默认为 false)。timeout=”20”表示会话可以处于空闲状态的分钟数。 节 该配置节主要用于配置跟踪服务,主要用来测试判读哪里出错。 其中 enable=”false”表示不启用跟踪;requestLimit=”10”表示指定在服务器上存储的跟踪请求的数目;pageOutput=”false”表示只能通过跟踪实用工具访问跟踪输出;traceMode=”SortByTime”表示以处理跟踪的顺序来显示跟踪信息;localOnly=”true”表示跟踪查看器只用于宿主 Web服务器。 配置数据库连接字符串: 配置数据库连接字符串主要是在配置节进行配置,在配置连接数据库字符串时,还必须添加一对标签,然后在标签中添加连接数据库的字符串,在配置过程中需要配置以下四个属性: DataSource 属性:用于指定数据库服务器名 DataBase 属性:用于指定要连接的数据库名 Uid 属性:用于指定登陆数据库服务器的用户名 Pwd 属性:用于指定登陆数据库服务器的用户密码 主要在和配置节中添加了连接数据库的字符串。 读取文件中连接数据库的字符串,代码如下: public string GetConnectString() ConnectionStrings“name”.ConnectionString; return GetConnectString; 2实训期间完成的实践项目 20 世纪末,随着计算机科学的发展,数据库技术在 Internet 中的应用越来越广泛,为广大网络用户提供了更加周到和人性化的服务。个性化已逐渐成为当今 Web 应用的潮流。本文研究了一种基于数据关联规则网上书店系统,此方案与现今网上已采用的一些方案相比,具有用户使用更简单、界面更直观等优点。网上书店在我国刚起步,但发展很快。随着我国互联网的更加普及和网上书店的更趋成熟,会有越来越大的消费群体,市场潜力会得到充分发挥。网上书店正是依靠 Internet 这个载体才得以发展和不断的成熟起来,并对产品的销售和物品的购买展示出了一种崭新的理念。 传统的图书管理模式其最大的特点是手工;首先要把买来的图书资料登记到资料本上,再给每本书分类贴上标签及制作和标签相对应的图书分类卡片,最后把图书分类卡片按类别分别放置在文件柜里。对于有学生(教师)证的学生(教师)来说还要对他们资料作一定的记录。并且在人们来借书的时候,首先持证件者要去存放图书分类卡片的文件柜里查找想借的书是否在架,如果卡片存在,再按照图书分类卡片在相应的书架上找到需要的图书,然后登记持证件者的借还书时间和在书签条上写下借还书记录,之后把借书证留在那里;还书的时候,相对应的消去出借记录;这样做起来比较麻烦,比较费时间。传统图书管理的特点是一直以来,中小型书店、中小学的小型图书馆及各高校图书馆和资料室使用传统的人工方式管理图书档案、会员档案。这种管理方式存在着诸多缺点,如:手续繁琐、工作量大、效率低下、出错率高等,同时给对大量资料的查询、更新及维护都带来不少困难。 网上书店管理系统主要是处理网上购书和库存的系统,提供具有图书分 类检索和搜索,购物车管理,在线订单,书籍推荐,热卖排行,顾客评论等功能和强大的后台管理功能,提供高效、安全、智能化的数据管理,从而提高整个网上书店各项功能管理水平。通过网上书店管理系统,可以做到信息的规范管理、科学统计和快速查询,从而减少管理方面的工作量,有效地提高网上购书的效率。 本设计中的书店业务信息管理系统使用 B/S 构架,以技术为平台,并用SQL Server 数据库技术支持,主要针对各中、小型书店。该系统对书店的业务信息管理实现完全数字化和网络化,能有效地利用现有网络资源,实现书店图书进销业务信息的规范化、自动化管理和实时性共享。该系统使书店的业务信息管理更加合理规范,提高经营管理者的工作效率,同时降低管理成本。在随时变化的市场中,该系统提供的各类业务统计数据,为经营管理者的快速决策提供可靠依据。本系统将会给书店管理来了明显的经济效益和社会效益,具有一定的开发和使用价值。 1.项目需求 网上书店系统为用户提供一系列网上购书服务。 系统包含两类用户,即管理员和普通用户。针对这两类用户,系统根据登录时的角色判断,跳转到相应的页面为其提供操作。网上书店系统实现了图书信息的列表显示,用户通过选择图书种类进入对应种类的图书列表,也可以输入图书名称进行模糊查询。普通用户可以针对某一本书进行放入购物车、查看详细信息、查看留言等操作,在结算中心,系统为用户创建当次购书订单,默认为“未结”状态。同时系统为普通用户提供订单管理操作,方便用户查看订单,并可以针对以前的未结订单进行已结操作。 管理员负责整个系统的运行与维护,针对图书、订单、留言、用户、角色等,执行添加、删除、修改等操作。 管理员和普通用户的功能模块图如下: 图 1:功能模块图 实体的设计:在系统功能模块设计上,按管理信息系统的设计要求,每个系统都必须有输入、输出、统计、维护、基础数据设置等功能。网上书店系 统的数据操作包括角色、用户、图书、图书种类、订单、订单子项、留言等,共同协调完成系统的运行与维护。 各实体属性: 1. 角色:角色 ID、角色名称 2. 用户:用户 ID、用户名、真实姓名、密码、地址、联系电话、创建日期、角色 ID 3. 图书种类:图书种类 ID、种类名称、上级种类 ID 4. 图书:图书 ID、图书名称、所属种类 ID、详细描述、供应商、数量、进货价格、销售价格、图片信息 5. 订单:订单 ID、所属用户 ID、图书总量、订单总费用、创建日期、订单状态 性能要求: 页面美观大方,实现无刷新技术,操作方便直观,有安全保障机制,后台使用 SQLServer2008 数据库。 三层框架 MVC3 目前,典型的分层架构是三层架构,依次是数据访问层、业务逻辑层和表示层。综合现有的成功实践和.NET 平台的特殊性,本系统中将三层架构的层次划分如下: 数据访问层负责与数据源的交互,即数据的插入、删除、修改以及从数据库中读出数据等操作。对数据的正确性和可用性不负责,对数据的用途不了解,不负担任何业务逻辑。 业务逻辑层负责系统领域业务的处理,负责逻辑性数据的生成、处理及转换。对流入的逻辑性数据的正确性及有效性负责,对流出的逻辑性数据及用户性数据不负责,对数据的呈现样式不负责。 表示层负责接收用户的输入、将输出呈现给用户以及访问安全性验证。对流入的数据的正确性和有效性负责,对呈现样式负责,对呈现友好的错误信息负责。 系统功能: 图 2:订书系统功能图 根据实体设定以及简要的需求分析,数据库设计如下: 图 3:E-R 图 数据库表的设计如下: 1.角色表 Roles 表 1:角色表 列名 数据类型 Allow nulls 描述 备注 roleID int N 角色 ID 主键 roleName Varchar (50) Y 角色名称 2.用户表 Users 表 2:用户表 列名 数据类型 Allow nulls 描述 备注 userID int N 用户 ID 主键 userName Varchar(50) N 用户名 realName Varchar(50) N 真实姓名 pwd Varchar(50) N 密码 addr Varchar(200) N 联系地址 phone Varchar(20) Y 联系电话 createDate datetime N 创建时间 roleID int N 角色 ID 外键 remark Varchar(2000) Y 备注 3.图书表 Book 表 3:图书表 列名 数据类型 Allow nulls 描述 备注 bookID int N 图书 ID 主键 bookName Varchar(200) N 图书名称 caregoryID int N 类别 ID 外键 data Varchar(50) Y 图片信息 info Varchar(2000) Y 内容简介 sell Varchar(200) Y 出版社 buyInDate datetime N 购入时间 quantity int Y 图书数量 inPrice money Y 进书价格 discount float Y 折扣 remark Varchar(2000) Y 备注 4.图书类别表 Category 表 4:图书类别表 列名 数据类型 Allow nulls 描述 备注 categoryID int N 类别 ID 主键 categoryName Varchar(50) Y 类别名称 parentID int N 上一级类别ID 外键 remark Varchar(2000) Y 备注 5.留言表 Comment 表 5:留言表 列名 数据类型 Allow nulls 描述 备注 commentID int N 留言 ID 主键 title Varchar(200) N 留言题目 body Varchar(2000) Y 留言内容 createDate datetime N 留言时间 userID int N 用户 ID 外键 bookID int N 图书 ID 外键 6.订单表 OrderForm 表 6:订单表 列名 数据类型 Allow nulls 描述 备注 orderFormID int N 订单 ID 主键 userID int N 用户 ID 外键 totalNum int Y 图书总数量 totoalMoney money Y 图书总价格 orderDate datetime N 创建时间 state Varchar(2000) Y 订单状态 7.订单子项表 OrderItem 表 7:订单子项表 列名 数据类型 Allow nulls 描述 备注 orderItemID int N 订单子项 ID 主键 bookID int N 图书 ID 外键 orderFormID int N 订单 ID 外键 num int N 图书数量 price money N 图书单价 2.功能介绍及使用。 系统主界面 登录页面,管理员登录后可进入管理员页面,普通用户进入普通用户界面。 图 4:用户登录界面 登录 输入用户名和密码点击登录按钮,确认身份后用户进入系统,若为空或者错误时会有相应的提示信息。登录后根据用户的角色系统进入不同界面,用户可以选择进行其他操作。 点击登录按钮:普通用户登录到普通用户的界面。 代码如下: Users us = Sessionuser = us;oString(); = (int)rowTotalNum; = (rowTotoalMoney.ToString(); = (string)rowState; = (int)rowuserID); (order); return list; 添加图书类别 填写表单信息,包括类别名称、备注等,选择“添加”,将当前信息存入数据库。 图 15:图书类别添加 类别管理 主界面 以表格形式显示当前系统所有的图书种类,点击“编辑”,可以类别名称、备注进行更新修改操作,同时提供删除功能的链接。 图 16:图书类别 购买图书(我的购物车) 普通用户将图书浏览页面进行查看后点击购物操作后,自动存入购物 车中,在购物车中用户可以修改所要购买图书的数量,并提供“去结算中心”的链接。 图 17:购物车 图 18:修改购物车 代码如下: protected void Page_Load(object sender, EventArgs e) if (!IsPostBack) if (SessionCart != null) Bind(); public void Bind() int orderFormId = orderFormId.ToString(); = = new string orderItemId ; protected void btnJiesusnCenter_Click(object sender, EventArgs e) OrderForm form = new OrderForm(); = orderFormId.ToString(); int totalNum=0; decimal totalPrice = 0; for (int i = 0; i i+); ot = new (); int orderItemId =(int) .Value; = num; = orderItemId; (alert(修改成功);); = -1; Bind(); protected void GridView1_RowEditing(object sender, GridViewEditEventArgs e) = ; Bind(); 结算中心 显示在购物车中已确认的图书信息,以及当前购买的图书总量、总价钱。用户可以选择“结账”操作,否则订单默认为“未结”状态。 图 19:结算中心 代码如下: protected void Page_Load(object sender, EventArgs e) if (!IsPostBack) if (Sessionuser = null) else if (SessionorderForm != null) Bind(); private void Bind() form = SessionorderForm; = = new string orderItemId ; = = protected void btnJiesuan_Click(object sender, EventArgs e) order = new (); form = SessionorderForm; = ; = 结算; (alert(结算成功);); 订单管理(查看订单信息) 显示当前普通用户的所有订单信息,用户可以选择查看未结订单,执行删除、支付操作,并提供“详细”链接。当用户执行支付操作时,若订单当前状态为“已结”,提示用户。 图 20:订单信息 代码如下: /实现支付 protected void GridView1_RowCommand(object sender, GridViewCommandEventArgs e) int orderFormId = if = check) order = new (); = orderFormId; = 结算; (alert(结算成功);); 五、实训收获与体会 通过这次实习我熟料掌握了 ASP 的基本操作,包括具体个界面的设计、类代码的设计、数据库与相连接方面的技能,体会面向对象的思想开发软件,使我初步体验到在将来实际工作中,作为一个软件开发人员所应做的工作和应该掌握的基本技能。同时我感到好的代码可以做到易读(见名知意),可以尽量少的使用注释。感觉网站建设和维护不是很方便,其中不仅要应用各种方面的知识还要对所学的知识学会变通使用,虽然会有一些成功的地方,但是,更多的是困惑,有太多的东西都不懂,以前学 C、数据库等一些相关知识的时候没好好学,现在想真正做好这个网站就显得不那么容易了。曾经看到网上有这么一句话,一个优秀的网络程序员不但要了解自己领域的一些专业技术,而且很多时候还要充当半个网络工程师,半个美术设计师和半个数据库管理员。照这么说来,我单单学习是远远不够的,还要学习计算机网络、美术设计、数据库,我很喜欢有关计算机方面的东西,认为我们当代的生活越来越离不开计算机,并且我也很痴迷计算机所带来的强大功能。是基于网络的交互开发平台,可以通过微软的 C#语言以及VisualStudio2010 开发环境进行开发。 通过此次实训,让我学到了很多课堂上更本学不到的东西,仿佛自己一下子成熟了,我知道在程序设计的时候,不要太在意程序是否最简洁灵活, 对于一般开发者而言,程序规范化和可读性可能比追求程序的灵活性更加重要。在互联网资源越来越丰富的情况下,我们可以参考一些规范的程序源代码来学习。同时我也知道,想要学好这门课程,所要具备很多条件,首先打代码要规范,要做注释,这样回头来看程序时可以很快的看懂,一方面可以练习自己的逻辑表达能力,对以后遇到难以实现的功能也可以很好的表达出来向别人请教,而且出去从事编程工作的话,代码的规范是相当重要的。还有一点要学会总结,把自己做的程序用到的知识点列出来就可以很好的总结自己的知识点。当形成知识体系,对知识的理解就会更上一层楼。更好地为我们今后的工作积累经验。 经过这次实训设计和对相关资料的收集,让我清楚的感到随着网络科技的不断发展和网络的广泛应用,使我们的生活离不开它了。网络它以自己的独特的优点征服了我们。在教育越来越受重视的 21 世纪,随着图书类型的不断增加和图书管理要求的不断提高,管理方面的工作量将会越来越大,并且其工作将是一件十分烦琐和非常容易出错的事情。在这样的情况下有一个实用网上书店系统是有其必然性的,如果能做出一个完善的网上书店管理系统就使管理方面的工作量减少很多。在这次的毕业设计中,我学会了很多,也感到自身知识的贫乏,希望在日后的努力中能做出更完善的系统。 六、致谢 通过本次项目实训我要感谢学校领导给我们提供了这次机会,让我们自己有出去体会生活,自己做项目的深刻体会。这次实训让我明白我自己之前的学习还是差很多,只有不断的努力,才能学好。我自己的努力固然重要,但是优秀教师给我做的培训,讲的理论都让我受益匪浅,让我对软件有了一个新的概念新的理解。 指 导 教 师 意 见 指导教师签字: 年 月 日 成绩 备注
收藏 下载该资源
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号