在线图书销售系统开发报告.docx
《在线图书销售系统开发报告.docx》由会员分享,可在线阅读,更多相关《在线图书销售系统开发报告.docx(13页珍藏版)》请在冰豆网上搜索。
![在线图书销售系统开发报告.docx](https://file1.bdocx.com/fileroot1/2023-6/27/6a7a0461-42ce-423e-a0fb-f0c69b0194a7/6a7a0461-42ce-423e-a0fb-f0c69b0194a71.gif)
在线图书销售系统开发报告
管理信息系统结课作业
课程名称:
在线图书销售系统开发报告
姓名:
李慧蔷
专业:
酒店管理
班级:
102081
学号:
10208121
指导教师:
姚海波
前言
在.NET平台中,.NET框架占据着核心的位置,它是整个.NET平台的关键支撑,是为众多高级语言(如C#、ManagedC++、Visnal、Basic.NET等)和应用程序模型(如Windows窗体、ASP.NETWed窗体、XMLWeb服务等)提供各种服务的重要基石。
脱离.NET框架来谈.NET平台,难免不陷入空中楼阁的尴尬境地。
实际上,在.NET平台中,任何一门编程语言提供的功能都只是.NET框架下一个子集的映射,集体的语言已经退居为一个语言表达的层次了。
除了编程语言外,各种类型的.NET应用程序在设计、开发、测试、部署、运行等诸多环节也和.NET框架密切相关。
虽然本书并不涉及这些具体.NET应用程序模型的细节,但是如果没有对.NET框架的深刻把握,学习再多的.NET应用程序模型“开发技巧”都将只是徒劳——皮之不存,毛将焉附?
因此,不管是学习Windows窗体、还是ASP.NETWeb窗体、抑或是XMLWeb服务,我们首先从.NET框架开始迈出坚实的一步——探微而知著。
在数据处理上,我们一直认为。
数据是外部世界信息的计算机化,是计算机加工处理的对象。
运用计算机处理数据时,必须解决四个方面的问题:
一是如何在计算机中方便、高效地表示和组织数据;二是如何在计算机存储器(内存和外存)中存储数据;三是如何对存储在计算机中的数据进行操作,可以有哪些操作,如何实现这些操作以及如何对同一问题的不同操作方法进行评价;四是必须理解每种数据结构的性能特征,以便选择一个适合于某个特定问题的数据结构。
这些问题就是数据结构这门课程所要研究的主要问题。
深刻理解面向对象的编程思想是必修的,然后是各种的B/S框架的模式(比如MVC)的理解,最后是设计模式等等软件工程的概念和技术。
未来更重实践。
首先,做项目时注意把一些可以实现在客户端的逻辑用DHTML在客户端实现出来,以此掌握结合服务端、客户端技术的方法,加深对HTML的DOM对象的理解,熟练常用的JavaScript技巧。
进而练习对Web界面的结构、数据、表现三者进行分离的规划、设计与实现。
快递是跨地区、跨行业的运作系统,标准化程度的高低不仅关系到各种快递功能,要素之间能否有效衔接和协调发展,也在很大程度上影响着全社会快递效率的提高。
在考察了快递的日常业务以及参考了其他快递管理系统后,快递管理系统中存在的主要问题体现在以下几个方面:
快递公司不能全面、清晰的确认收件人地址、联系方式,货物的数量、名称、价值。
不能客户手中的商品进行有效的售后管理.消费者收货时没有在货运单上先签字后验收,自身的权益将很难得到保障。
所以确定了本系统的需求。
在计算机网络,数据库和先进的开发平台上,利用现有的软件,配置一定的硬件,为企业提供准确、精细、迅速的各种信息。
通过快件管理系统,可以有效地管理人员,有效的配置人员及运送的快件,达到资源合理利用。
本快递管理系统是在.net平台上运用ASP.NET技术来实现的。
到货管理模块的主要功能有司机回执、客户回执和新到货物单信息。
其中在司机回执中主要实现司机回执单信息的查看、修改和删除;在客户回执中主要实现客户回执单信息的查看、修改和删除;在新到货物单信息中主要对货物的查询和确认。
本文分为三章来介绍快递管理系统的设计与实现。
第一章系统分析,在系统分析中主要是系统的需求分析、系统的功能分析、可行性分析、开发工具简介、架构简介等;第二章系统总体设计,提出系统功能模块的细分和数据库的详细设计等;第三章系统详细设计与实现,主要包括系统功能子模块的设计与实现、设计理念、实现功能和最终得到的结果等。
1系统分析
1.1需求分析
近年来,随着电子商务迅速崛起,快递业进入了一个高速发展时期,取得了不俗的成绩。
然而在快速发展过程中,随意倒货、合同陷阱、先签字后验货、赔偿难等问题却屡屡曝光,快递服务已经成为消费者投诉热点之一。
不难看出,快递业服务质量与用户期望依然相较甚远,因此开发一套好的快递管理软件,不但能大大降低工作人员的劳动强度,还能快递公司管理水平。
1.2功能分析
本模块主要功能是对到达的货物进行司机回执管理、客户回执管理和货物验新到货物单信息管理。
其中在司机回执中主要实现司机回执单信息的查看、修改和删除;在客户回执中主要实现客户回执单信息的查看、修改和删除;在新到货物单信息中主要对货物的查询和确认。
1.3可行性分析
1.3.1操作可行性
本系统性能稳定,简单易用易懂、功能完善,有利于公司管理人员的使用,大大提高管理的效率。
1.3.2经济可行性
本次系统的课设所用到的只是所用到的计算机和计算机上所安装时的软件来完成这次的开发,无需要经济上的投入,因此在经济上是可行的。
1.3.3技术可行性
MicrosoftVisualStudio.NET2005采用了可视化面向对象工具开发,其窗口、界面简洁易懂,易于操作。
MicrosoftSQLServer2005具有上手容易、可兼容性良好、扩展性强并且易于操作等诸多优点。
目前,C#语言作为微软在新一代开发平台.NET推出的、完全面向对象的语言,凭着其简洁、高效、模板、标准化的特性,所以系统在操作上是可行的。
2系统总体设计
2.1系统功能结构设计
1、到货模块功能描述:
到货管理的主要功能是对到达的货物进行回执管理和货物验收管理。
功能模块图如图2.1所示
图2.1到货管理功能模块图
2、到货回执管理(包括司机回执和客户回执):
1.)司机回执是在到达的货物通过验收以后,填写一份司机回执单,回执单内容包括,运输合同编号、司机姓名、验收纪录等。
2.)客户回执是收货客户收到货物,并验收后,填写一份客户回执单,回执单内容包括,货运单编号、客户姓名、验收纪录等。
3、到货验收(包括差错信息、新到货物、到货历史):
1.)差错记录是客户对已到达的货物进行验收时,对有差错问题的货物填写差错记录。
2.)新到货物是对新到的货物进行即时保存,并可查看到货内容。
3.)到货历史是对发过的到货通知进行记录保存,可查看详细信息
2.2数据库设计
2.2.1数据表设计
索做的模块主要涉及到客户回执信息表,货运回执信息表两个表,本模块应该能够将表中信息导出并显示出来,用户应对相应信息进行查询,添加,删除,修改都涉及到这两个表,对应删除,修改添加能改变表里面的信息,并将其存到数据库中。
1、客户回执信息表:
用于存放客户回执信息,包含货运单编号,客户名称,验收货物记录,收货人,收货日期等。
如表2.1所示。
表2.1客户回执信息表
名称
字段
数据类型
PKID
PKID
decimal(18)
货运单编号
GoodsBillCode
nvarchar(50)
客户名称
Customer
nvarchar(50)
验收货物记录
CheckGoodsRecord
nvarchar(50)
收货人
ReceiveGoodsPerson
nvarchar(50)
收货日期
ReceiveGoodsDate
datetime
运单事件PKID
CarryBillEventPKID
int
2、货运回执信息表:
用于存放货运回执的相关信息。
如表2.2所示。
表2.2货运回执信息表
名称
字段
数据类型
PKID
PKID
int
货运回执编号
GoodsRevertCode
varchar(50)
司机名称
DriverName
varchar(50)
验收货物记录
CheckGoodsRecord
varchar(50)
收货人
ReceiveGoodsPerson
varchar(50)
收货日期
ReceiveGoodsDate
datetime
2.2.2存储过程设计
到货管理模块共包含19个存储过程,其中主要的存储过程有uspUpdateDriverReturn、uspGetCustomerReturn、uspUpdateDriverReturn。
存储过程uspGetCustomerReturns是获取多客户回执信息。
如下表2.3所示。
表2.3存储过程uspUpdateDriverReturn
存储过程名
uspUpdateDriverReturn
功能描述
修改司机回执信息
输入参数
@PKIDint--司机回执ID
@goodsRevertCodevarchar(50)--运输合同编号
@driverNamevarchar(50)--司机名称
@checkGoodsRecordvarchar(50)--收获验收记录
@receiverGoodsPersonvarchar(50)--验收人
@receiveGoodsPersonDateTime--验收日期
输出参数
无
返回值
0;成功
<>0;失败
结果集
无
涉及到的表
1、司机回执信息表:
ArriveMgt_DriverReturn
操作说明
1.修改司机回执信息表的对应记录
2.更新字段:
司机回执信息表的相应字段=相应输入参数值
3.过滤条件:
PKID=@PKID
存储过程uspGetCustomerReturn功能主要获取单条客户回执信息,存储过程表结构设计如下表2.4所示。
表2.4存储过程uspGetCustomerReturn
存储过程名
uspGetCustomerReturn
功能描述
获取单条客户回执信息
输入参数
@PKIDint--客户回执ID
输出参数
无
返回值
无
结果集
GoodsBillCode--货运单编号
Customer--客户名称
CheckGoodsRecord--收货验收记录
ReceiveGoodsPerson--验收人
ReceiveGoodsDate--验收日期
涉及到的表
1、注册信息表:
ArriveMgt_DriverReturn
操作说明
1.从客户回执信息表中查询结果集包含的所有字段
存储过程uspUpdateDriverReturn主要是功能修改客户回执信息,存储过程的表结构设计如下图2.5所示。
表2.5存储过程uspUpdateDriverReturn
程名
uspUpdateDriverReturn
功能描述
修改客户回执信息
输入参数
@PKIDint--回执ID
@goodsBillCodevarchar(50)--货运单编号
@customervarchar(50)--客户名称
@checkGoodsRecordvarchar(50)--收获验收记录
@receiveGoodsPersonvarchar(50)--验收人
@receiveGoodsDateDateTime--验收日期
输出参数
无
返回值
0;成功
<>0;失败
结果集
无
涉及到的表
1、注册信息表:
ArriveMgt_DriverReturn
2、登录信息表:
Accecpt_CarryBillParent
3、选择信息表:
Accecpt_CarryBillEvent
操作说明
1.获取货运单事件PKID定义变量@carryBillEventPKID--货运单事件ID,赋值为客户回执信息表中满足PKID=@PKID过滤条件的CarryBilEventPKID字段的值
2.获取货运单ID定义变量@goodsBillPKID--货运单ID,赋值为货运单主表中满足GoodsBillCode-@goodsBillCode过滤条件的PKID字段的值
3系统详细设计与实现
3.1客户登录界面模块
增加客户回执页面向司机回执记录表ArriveMgt_CustomerReturn中增加一条信息。
包括判断运输合同编号是否存在,先注册用户的账户信息并进行登录。
界面如图3.1所示。
图3.1客户回执信息增加
实现过程:
在本界面中只放置了TextBox控件、Imagebutton控件但是实现了增加功能。
先实例化CustomerReturnBusiness调用里面地方法,后再调用DataAccess层的CreateCustomerReturn方法建立与存储过程之间联系,后在执行存储过程。
3.2客户注册界面模块
客户回执信息查询模块实现对客户信息的查询功能。
首先对是否存在货运单编号进行判断,然后判断客户名称(运输合同中的客户名称)然后根据所输入的编号和时间,再根据时间范围进行搜索,也可以通过时间段来进行搜索。
界面如图3.2所示。
图3.2客户注册信息查询
实现过程:
在本界面中放置了GridView控件、用户控件、和Imagebutton等控件来实现搜索功能。
GridView控件用于显示数据库的数据。
先实例化CustomerReturnBusiness类,在调用GetCustomerReturns()方法,在调用执行存储过程的方法执行uspGetCustomerReturns存储过程,存储过程中可以实现模糊查询还有进行分页。
最后通过使用DataBind绑定到页面的GridView控件上以显示数据,如果进行页面跳转的话还要调用用户控件里面的方法。
3.3客户选择、修改、删除模块
客户回执信息编辑模块实现对客户信息的修改删除功能。
首先是从客户回执信息查询模块中跳转过来,并传来了参数,通过这个参数可以直接进行修改删除功能功能,并还可以进行返回。
界面如图3.3所示。
图3.3客户回执信息编辑
实现过程:
本页面使用了TextBox控件、Imagebutton等控件,通过客户回执信息编辑模块传过来的参数,先实例化CustomerReturnBusiness类,调用数据层中的UpdateCustomerReturn和DeleteCustomerReturn方法,在进行存储过程的调用执行,分别进行修改删除。
3.4客户信息查询模块
首先对是否存在书籍的编号进行判断,然后判断编号。
然后根据所输入的编号和时间,再根据时间范围进行搜索,也可以只根据时间范围来进行搜索查找。
界面如图3.5所示。
还有进行分页。
最后通过使用DataBind绑定到页面的DataList控件上以显示数据,如果进行页面跳转的话还要调用用户控件里面的方法。
图3.5书籍选择信息查询
实现过程:
在本界面中放置了DataList控件、用户控件、和Imagebutton等控件来实现搜索功能。
DataList控件用于显示数据库的数据。
先实例化DriverReturnBusiness类,在调用GetDriverReturns()方法,在调用执行存储过程的方法执行uspGetDriverReturns存储过程,存储过程中可以实现模糊查询
结论
通过这次毕业设计让我对前面学过的许多课程有了更为深刻的理解,也是我对这四年所学的东西的一个综合体现。
这次设计让我感受颇深,让我真正体会到了在整个过程给我带来的无奈与快乐。
综合起来,主要体现在以下几个方面:
首先,急于求成的心情给我带来了很大的困难。
以前我注重是编码过程,以为只要能把最后的功能实现了就可以了,所以一开始我就稍微理了一下思绪就动起手来编码,我原以为很快就能完成此次任务,可万万没想到,编了二三天,自己就陷入了泥潭,进退两难,但后来面临的问题只有重来,这真是给了我很大的打击,这样的反复让我进行了几次。
后来我终于沉住气,吸取前几次的教训,严格的按照“管理信息系统”“软件开发工具”所提到开发管理信息系统所用的方法中都把系统规划和系统分析放在极为重要的位置。
认真细致地对开发过程进行了规划和分析,才逐渐弄清了整个系统的流程,把握整体布局,明确了系统的基本功能,做好业务流程图、数据流图的情况下,在设计好系统各主要部分,将一些细节问题考虑周全后才开始动手进行开发,使得后来的工作才得以顺利进行。
其次,在编程语言的熟悉程度也让我对整个开发过程受到了一定的阻碍。
因为以前只独立编制过一些微型程序,而那些程序涉及面比较窄,实现的功能相当有限,从而要求对语言的熟悉程序不高,然而这次很多都不同,这次设计,不但难度大,而且还要求对一些算法比较熟悉,否则将延迟工作速度,必须停下来再去学习,后因时间问题,本系统还有一些不尽如意之处。
最后,在撰写毕业论文时也遇到了一些困难。
由于这是我第一次写毕业论文,没有任何经验,对于论文的格式、要求和内容都一无所知,在查询了大量的书籍后才有了模糊概念。
所以在此篇毕业论文中不免会有些缺点。
总的来说,这次的毕业设计为我即将踏入社会之前提供了一次锻炼的舞台。
正像辅导老师说的一样,他让我对几年来所学的专业课有了更为深刻的认识,使知识得到了融会贯通,得到了比以往学习任何一门课都大的提高和进步。
对于我们来讲,我们每天都要学习,但这书本上的东西如果只是个理论,如果不把他应用于实践中,这门课可以对我们来说完全没有意义。
经过开发这个系统,这不仅仅是一次毕业设计,不仅仅是学会了一门开发语言,更重要的是在学习的过程中,所有的问题要自己去面对,有问题也只有靠自己去解决,这们,在学习和解决这些困难的过程中提高了我学习的能力、解决问题的能力和实际工作的能力,学到了许多书本以外的知识,这让我踏出这个校门给予自己最大的回报,同时我也相信会给我在以后的人生道路上带来很多的帮助。
这次毕业设计虽说不能堪称完美,但我会在以后的时间里尽量的完善它,不断的对它进行升级,解决系统可能出现的问题。
在整个模块的设计过程中,仍有以下问题没有解决:
1、在使用CheckBox控件可以允许用户选择true状态或false状态。
如果想计划使用多个CheckBox控件,则CheckBoxList控件是可选择使用控件,它提供方便的数据绑定功能。
然而,单个的CheckBox控件可提供对布局的更多控制。
两者之间的取舍是对程序完善的关键。
2、对于层与层之间的调用最后返回到页面上因为调用到很多层使得当数据量大的时候执行效率大大的下降,这种三层架构中的逻辑层问题有待改善。
3、在使用过程中,在对多浏览器的支持上有一定的欠缺,可能出现控件偏离及页面破损等现象,有待改进。