毕业设计(论文)选题的目的与意义
目的:通过对现有各类网上书店的研究及了解,所设计的网上书店也能够让用户方便选购图书,选购图书后可完成订单。书店的整体界面完整美观。这个选题可以运用在课堂上所学知识来培养我们独立完成课题的能力。
意义:对于自身充分理解在课堂上所学内容的实际应用具有重大意义,提高我们毕业生的全面综合的发展。让我们能够复习三年的所学知识,为我们将来的工作积累更多的项目经验。
毕业设计(论文)的资料收集情况(含指定参考资料)
①ASP.NETMVC程序设计开发教程/张松慧,鲁力主编--北京:中国铁道出版社,.8
②C#程序设计基础入门教程/传智播客高教产品研发部编著--北京:人民邮电出版社,.8
③JavaScript前端开发案例教程/黑马程序员编著--北京:人民邮电出版社,.2
④HTML+CSS网站设计基础教程/传智播客高教产品研发部编著--北京:人民邮电出版社,.12
毕业设计(论文)工作进度计划
年11月15日-年12月21日需求分析和概要设计
年12月22日-年01月26日详细设计
年01月30日-年03月29日编写代码与测试
年03月30日-年04月30日编写论文
目录
一、需求分析
(一)、国内外现状描述
(二)、前台用户系统描述
(三)、后台管理员系统描述
二、开发工具
三、概要设计
(一)、系统功能思维导图
1.用户流程图
2.管理员流程图
(二)、数据库设计
数据库E-R图
四、详细设计
(一)、数据库信息表
(二)、数据库代码(部分)
五、代码
(—)、前台用户系统代码(部分)
1.前台视图部分
2.前台控制器部分
(二)、后台管理员系统代码(部分)
六、测试
1.用户登陆注册测试图
2.购物车订单测试图
3.后台管理员测试图
总结
参考文献
致谢
网上书店
姓名
摘要:本文论述的网上书店分为用户平台、管理员平台两个大方向;其中用户端可进行注册登录进入系统平台,可对图书进行加入购物车及购买等操作。管理员平台可对用户的注册信息进行编辑查看和删除操作,也可对图书信息及图书类别进行编辑查看及删除操作,并对用户的购买信息进行查看。使用的主要工具是VisualStudio进行编码,样式运用CSS样式及JavaScript进行动态设计。
网上书店功能完善,界面美观,操作简单方便。
关键词:网上书店、MVC、CSS、JavaScript、VisualStudio
一、需求分析
(一)国内外现状描述
现在我们所购买图书所使用的方法一般分为两种,一种是线下购买,一种是网上购买;网络书店本身只是一个出版品与消费者间的中介,而不是被消费的主体。在国外,影响较大的网上书店有美国的亚马逊。亚马逊网上书店在十九世纪末时拥有了近万的顾客,到了二十世纪初有将近几十亿人在亚马逊进行网上购书,销售额不断增加,一路飙升。据统计分析,未来的网上书店的销售额将会成为图书销售渠道中的主要渠道之一。而在我国的大型网上书店有很多,如当当、卓越和旌旗席殊、中国书网网上书店等,这些网上书店都不太一样,各有各的好处以及劣势,在这里就不一一说明了。
通过对现有国内外的网上书店进行了了解分析,通过与客户座谈,发放问卷对网上书店进行了功能需求的分析,并与同学朋友家人的谈话中得出项目的大致需求。我所论述的网上书店通过需求分析现分为前台及后台两个方向。主要实现前台用户端可图书展示,选购图书,登陆注册等;后台用户端可对图书用户以及图书类别进行增删改查等操作。
(二)前台用户系统描述
1、登录注册界面:用户可进行登陆,注册,登录时验证用户注册信息,进入平台后向用户展示图书分类。
2、加入购物车界面:可对心仪图书进行加入购物车的操作,加购成功则会跳出弹框,显示加入购物车成功字样。加购不成功则会显示未加购成功字样。
3、我的订单界面:可在我的购物车中查询加购图书(若未登录则会跳转登录界面,无账号可跳转注册界面,注册新账号则登录成功),可对加购图书进行增加及删除,数量增加后价格会同等增加,选购结束后可进行订单结算页面。
4、订单结算界面:订单结算时则需要填写购买图书的用户的个人信息,以便后台管理员可以查询购买图书用户的个人信息,进行订单配送。
(三)后台管理员系统描述
1、管理员登录界面:管理员可通过特定的账号密码登录,无法注册管理员,登录界面与用户登录为同一界面,登录后进入后台管理员界面。
2、用户管理界面:可对用户进行删除及编辑的操作。
3、图书管理界面:可对现有图书进行编辑、查看详情、删除的操作,在类别管理中可对图书的类别同样进行编辑、查看详情、删除的操作,能够及时更新使用户端看到不同的图书信息。
订单管理界面:可看到用户最终所购买的图书信息及用户的个人信息,以便后台管理员能够及时将用户所购图书及时发出。
系统功能流程图如图1-1所示:
图1-1系统功能结构图
二、开发工具
使用的主要开发工具是在VisualStudio平台进行编码,样式运用CSS样式及JavaScript进行动态设计。
VisualStudio是微软公司推出的开发环境。是运行在Windows平台应用程序的开发环境。在此开发环境中使用MVC框架进行编码;MVC全名是ModelViewController,是模型(model)-视图(view)-控制器(controller)的缩写一种软件设计典范,就像是一种开发观念或者是一种程序设计模式,用一种业务逻辑、数据、界面显示分离的方法组织代码。通过业务逻辑层与数据表现层的分割,把两部分的数据分离开来,以编写出更具模块话、可维护性更高的程序。
界面美化采用CSS样式:层叠样式表(英文全称:CascadingStyleSheets)应用到HTML元素中,CSS不仅可以静态地修饰网页,还可以配合各种脚本语言动态地对网页各元素进行格式化。通过与JavaScript交互使用,使页面更加美观。
采用JavaScript进行动态设计:JavaScript是一种属于网络的脚本语言,已经被广泛用于Web应用开发,常用来为网页添加各式各样的动态功能,为用户提供更流畅美观的浏览效果。通常JavaScript脚本是通过嵌入在HTML中来实现自身的功能的。
严格采用MVC框架进行设计,分为模型(model)-视图(view)-控制器(controller)三个方向,并在此基础上进行加工美化。
1.模型(Model)又称数据模型,负责所有与数据有关的任务:
是应用程序中用于处理应用程序数据逻辑的部分。
通常模型对象负责在数据库中存取数据。
2.视图(View)是负责所有呈现在用户面前的东西:
是应用程序中处理数据显示的部分。
通常视图是依据模型数据创建的。
3.控制器(controller)掌控全局:
是应用程序中处理用户交互的部分。
通常控制器负责从视图读取数据,控制用户输入,并向模型发送数据。
二、概要设计
(一)系统功能思维导图
主体分为两个大的版块,前台用户和后台管理员,他们分别有不同的作用,对应用户端及管理员端。用户端可进行登录注册,后台管理员有固定的用户名及密码,登陆后可对网上书店的图书进行管理,对用户进行管理,对订单进行管理。思维导图可以让我们对整体内容进行更全面的把控,了解每个部分所需的功能及子目录下每个部分的具体实现。
网上书店系统功能思维导图如图3-1所示:
图3-1系统功能思维导图
1.用户流程图
游客可对网站进行浏览,可加购商品,确认购买后游客则跳转到注册页面,若已存在账号,可点击登录;登陆成功后可在购物车对加购商品进行数量上的加减,确认订单号后填写个人信息,则完成订单。订单完成后可在后台查询订单,方便后台管理员对图书进行发出。
用户流程图如图3-11所示:
图3-2用户流程图
2.管理员流程图
管理员与用户同一界面登录,登陆后拥有对用户,对现有图书类别,现有图书进行编辑;修改;删除;查看详情的权利。
后台管理员流程图如图3-12所示:
图3-3管理员流程图(二)数据库设计
1.数据库E-R图
实体-联系图(Entity-RelationDiagram)是用来建立数据模型,ER图提供了表示实体(即数据对象)、属性和联系的方法,用来描述现实世界的概念模型。通常将它简称为ER图,相应地可把用ER图描绘的数据模型称为ER模型。
我所设计的E-R图通过用户,图书,管理员之间的关系所绘制,通过实体,属性和之间的关系绘制成概念模型。存在一对多以及多对多之间的关系。
数据库E-R图如图3-2所示:
图3-4数据库E-R图
四、详细设计
(一)数据库信息表
对数据库的设计主要分为以下几部分:
a.用户信息表:用来存放书店用户的个人信息,供用户登陆注册以及购买。
b.图书信息表:用来存放网上书店中所销售图书的各类信息。
c.图书类别表:用来存放网上书店图书类别的信息。
d.购物车表:用来存放加入购物车的图书数量,可进行更改。
e.订单明细表:用来存放用户所购买的订单的信息,包括书籍以及数量。
f.订单主文件表:用来存放已下单用户所购买书籍以及用户个人信息。
表3-1用户信息表(Users)
表3-2图书信息表(Book)
表3-3图书类别表(BookCategory)
表3-4购物车表(Cart)
表3-5订单明细表(OrderDetail)
表3-6订单主文件表(OrderHeader)
(二)数据库代码(部分)
(1)数据库记录列表主要由Model(模型)设计
图4-1模型设计
(2)用户信息表代码:
图4-2用户信息表代码
(3)图书信息表代码:
图4-3图书信息表代码
五、代码
代码无疑是整个项目的核心,编码除数据库外主要分为两个方向:
1.视图(view)-主要对用户所看到的界面进行美化,实现基本功能,把数据库的内容显示到页面中。
2.控制器(controller)-写入数据库记录,是主要的核心内容。也是所有的所实现的功能的具体呈现
图5-1视图设计
图5-2控制器设计
(—)前台用户系统代码(部分)
1.前台视图部分
图5-3登陆页面js代码
图5-4首页样式2.前台控制器部分
//会员注册页面
publicActionResultRegister()
{
returnView();
}
//写入会员信息
[HttpPost]
publicActionResultRegister(Usersusers)
{//检查会员是否已经存在
varchk_user=db.UsersSet.Where(p=p.UserName==users.UserName).FirstOrDefault();
if(chk_user!=null)
{
ModelState.AddModelError("UserName","您输入的用户名已经被注册过了!");
}
if(ModelState.IsValid){
db.UsersSet.Add(users);
db.SaveChanges();
returnRedirectToAction("Index","Book");
}
else{
returnView();
}
//会员登录界面
publicActionResultLogin(stringreturnUrl)
{
ViewBag.ReturnUrl=returnUrl;
returnView();
}
//运行会员登录
[HttpPost]
publicActionResultLogin(stringUserName,stringPassword,stringreturnUrl)
{
if(UserName=="admin"Password=="admin")
{
returnRedirectToAction("Index","BookAdmin");
}
else
{
if(ValidataUser(UserName,Password))
{
FormsAuthentication.SetAuthCookie(UserName,false);
if(String.IsNullOrEmpty(returnUrl))
{
returnRedirectToAction("Index","Book");
}
else
{
returnRedirect(returnUrl);
}
}
ModelState.AddModelError("","您输入的用户名或密码错误");
returnView();
}
}
privateboolValidataUser(stringusername,stringpassword)
{
varuser=(frompindb.UsersSetwherep.UserName==username
p.Password==passwordselectp).FirstOrDefault();
return(user!=null);
thrownewNotImplementedException();
}
//运行会员注销
publicActionResultLogout()
{
//清除窗体验证的Cookies
FormsAuthentication.SignOut();
//清除所有曾经写过的Session信息
Session.Clear();
returnRedirectToAction("Index","Book");
}
(二)后台管理员系统代码(部分)
//后台管理员登陆
publicActionResultLogin_bookadmin(BookAdminadmin)
{
varadmins=db.BookAdminSet.Where(x=x.Name==admin.Name);
foreach(variteminadmins)
if(item.Name==admin.Nameitem.Password==admin.Password)
{
Session["name"]=item.Name;
returnRedirect("/Bookadmin/index/");
}
else
{
if(item.Name==admin.Name)
{
ModelState.AddModelError("Password","密码输入错误");
}
}
returnView();
}
六、测试
1.用户登陆注册测试图
图5-4首页样式图6-2用户登录图6-3用户注册2.购物车订单测试图
图6-4商品列表图6-5添加购物车图6-6购物车3.后台管理员测试图
图6-7图书类别管理图6-8图书管理图6-9用户管理
总结
经过接近两个月的不懈努力,我终于完成了这次毕业设计,通过该网上书店系统,消费者用户可以在线浏览书籍、查看书籍详情、加入购物车、结算购物车图书、更改购物车书籍数量、提交订单、取消订单、支付订单等。管理员通过该系统可以在线管理图书分类、管理图书、管理订单、管理用户等等。使用起来界面简单,易于操作。基本上完成了设计最初的目标。
通过这次的毕业设计,我的感触良多,其中不乏有各种困难的地方,以及各种困难的事情,经过查找文件,询问同学,老师等方法,很好的解决了这些困难,也让我明白了许多道理,遇到困难一定要及时寻求帮助,不能只靠自己的一己之力来解决自己完不成的任务。其中在数据库E-R上,遇到了难关,不会使用系统流程图,不能深刻理解各个数据之间的关系,这些问题对于我来说使我的毕业设计工作止步不前,并且使我陷入了焦虑之中,导致了后半部分不知如何下手。因为疫情的原因,也没有办法借阅图书,不过办法总比困难多,没有纸质的书籍,通过在网上查找资料,反复研究,使得我对这次的毕业设计有了更加深刻想法,通过与同学之间的探讨研究,理解了我不明白的各个方面。通过对老师的要求的认真了解,希望能够深刻理解老师的要求,努力做到更好。
通过对本网上书店的开发,使对系统开发有一个更清楚的了解,系统的开发过程中,首先是对系统的分析要求,然后功能设计,详细设计等和软件测试各个方面。对网上书店系统有更深刻的认识的同时,也拓宽了我对计算机的知识,使我觉得收获不小。
通过对网上书店的开发,我巩固了之前学过的知识,平时所学到的知识不仅融合了,还使我体会到每个计算机所学每个科目知识之间的关联。在整个设计过程中明白了许多东西,也培养了我以后独立工作的能力,我相信这对我以后的学习和工作生活中有至关重要的作用。通过写本次网上书店毕业设计的过程中我所汲取的东西,对我来说是一笔宝贵的财富,更加重要的是使我感受到学习的乐趣,在这次毕业设计中让我受益匪浅。
当然,由于个人技术水平等原因,系统还有很多不足的地方,比如说,系统不能直接完成支付操作。主页上没有搜索以及图书封面,以后这些方方面面还需要继续完善。由于时间原因,论文或许有不足之处,望老师能批评指正!谢谢!
参考文献
①ASP.NETMVC程序设计开发教程/张松慧,鲁力主编--北京:中国铁道出版社,.8“十三五”高等职业教育规划教材
②C#程序设计基础入门教程/传智播客高教产品研发部编著--北京:人民邮电出版社,.9(.8重印)
③网页设计数据库与发布/薛元昀主编--北京:清华大学出版社
④JavaScript前端开发案例教程/黑马程序员编著--北京:人民邮电出版社,.2(.7重印)
⑤HTML+CSS网站设计基础教程/传智播客高教产品研发部编著--北京:人民邮电出版社,.3(.12重印)工业和信息化人才培养规划教材
⑥SQL学习指南(第2版修订版)/(美)博利厄著,张伟超,林青松译--北京:人民邮电出版社,.2