数据库课程设计-快件派送系统.docx_第1页
数据库课程设计-快件派送系统.docx_第2页
数据库课程设计-快件派送系统.docx_第3页
数据库课程设计-快件派送系统.docx_第4页
数据库课程设计-快件派送系统.docx_第5页
已阅读5页,还剩16页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

成绩课程设计(论文)课程名称数据库课程设计 题目名称_ 快件派送系统 _学生学院计算机学院 专业班级13计算机科学与技术(一) 学 号_31130057xx_学生姓名_xxxx_指导教师 2016年1月10日目录1 引言11.1课程设计选题11.2课程设计的目的11.3本选题的设计背景12 系统分析与设计12.1 功能及性能分析12.1.1 功能需求12.1.2 性能需求22.1.3工作流程图22.2 系统的开发运行环境32.3 系统总体设计33 数据库设计53.1 数据库概念结构(e-r图)53.2 数据库逻辑结构63.2.1 关系模型及优化63.2.2 视图的设计63.3 数据库的实现63.3.1表63.3.2 安全性设计73.3.3 一致性设计73.3.4触发器的设计74 详细设计与实现94.1 登录模块94.2管理员管理模块124.3用户模块154.4 派件员模块15结论17参考文献17iv数据库原理课程设计报告广东工业大学计算机学院1 引言1.1课程设计选题快件派送系统1.2课程设计的目的通过数据库系统课程设计,熟悉了sql server数据库管理系统的结构与组成;掌握了sql server数据库管理系统的应用技术和的使用;应用工具实践了快件派送系统的数据库应用系统的设计方法、开发过程和sql server数据库的管理与维护。最终达到掌握数据库管理系统的使用和开发,提高分析问题、解决问题和实践应用能力。1.3本选题的设计背景随着计算机技术的发展和物联网时代的到来,人们已经进入了物联时代,亦或是数字化时代。在数字化的网络环境下,用户希望能够用现代化的手段进行信息查询和记录;服务机构也希望给用户提供更灵活的服务。快件派送系统正是迎合这一需求而开发的,它旨在探索一种以物联网为基础的派件模式。通过这种新的模式,为考生创造一种更快捷更透明的派件过程,提高效率和标准化水平。2 系统分析与设计2.1 功能及性能分析2.1.1功能需求l 从总体上考虑,系统应该实现下列功能:l 用户能够上网查看派件员的信息和快件信息l 派件员能够上网查看需要派送的快件信息和用户信息l 管理员能够添加快件并匹配派件员2.1.2性能需求为了保证考试正常进行,系统性能设计应满足如下要求:保证系统数据安全性:由于系统通过internet提供服务,开放的环境中系统在权限控制、数据安全、防范内外部攻击破坏等安全措施方面具有良好的应变能力,如在每个登录界面设置了用户信息验证,通过查询登陆界面输入信息是否为数据库中合法用户来实现相应操作;保证系统数据一致性:数据库中的所有信息在任何操作下都能够保持一致,如一旦管理员添加了快件信息和派件员信息,在用户和派件员登陆后就可以立即看到,或者一旦有派件任务完成,数据库中的表中要有所变动。2.1.3工作流程图在线考试流程图如下所示:2.2 系统的开发运行环境本系统开发平台: eclipse4.3(java 1.7)+mysql本系统运行环境: windows7(64位)2.3 系统总体设计根据快件派送系统的特点,可以将其分为前台和后台两个部分进行设计:前台主要用于用户和派件员查询信息;后台主要用于管理员安排配送信息和完成派送信息后派件信息的删除。在登陆界面,设置了用户身份验证模式,一旦用户输入与数据库中不符的信息,系统将给出提示信息,以保证该系统的安全性。用户和派件员属于前台只能前台操作,管理员可以后台操作。3 数据库设计3.1 数据库概念结构3.1.1数据库中各表的数据描述如下:根据前面所作的需求分析本系统的实体及其属性如下:固定管理员信息暂不构建表。用户(用户名,密码,真实姓名,手机号码,所在区域)派件员(用户名,密码,真实姓名,手机号,派送时间段,派送区域)快件(快件编号,物品名,大小,寄出区域,配送用费)3.1.2整体e-r图全局e-r图如下:3.2 数据库逻辑结构3.2.1关系模型及优化用户表(用户名,密码,真实姓名,手机号码,所在区域)派件员表(派件员名,密码,真实姓名,手机号,派送时间段,派送区域)快件表(快件编号,物品名,重量,寄出区域,配送用费)快件对派件员表(快件编号,派件员名,是否完成)快件对用户表(快件编号,用户名,是否领取)都属于3nf级或以上。3.2.2视图的设计本系统用到的视图其实只有一种,但是用户和派件员都需要查看,所以面向不同的人出现两个view:1. 派件员查看用户(以派件员名为group,按照升序排列)2. 用户查看派件员(以用户为group,按照升序排列)3.3 数据库的实现3.3.1表快件派送系统的数据库中共包含了5个数据表。用户信息表(u)用来保存用户信息,该表的结构如下:派件员信息表(p)用来保存派件员的信息,该表的结构如下:快件信息表(c)用来存储快件的相关信息,该表的结构如下:派件员派件关系表(cp)用来保存派件员和快件的相关信息,该表的结构如下:用户收件关系表(cu)用来存储用户和快件的相关信息,该表的结构如下:3.3.2安全性设计该系统的用户有三种:管理员、用户和派件员,只有管理员才有权限添加用户、添加派件员,添加快递并且与用户派件员匹配,并且更改信息;用户能够查看快件信息和派件员信息,派件员可以查看快件信息和用户信息并且可以更新派件状态(派送转状态和完成状态)。所以安全性比较高。3.3.3一致性设计主要是对数据库表的三种完整性进行设计:实体完整性:通过设置主键都已实现。参照完整性:题库表中的试卷号在本表中不做主码,但在试卷表中做主码,所以为题库表的外码,对insert和update强制级联更新和级联删除相关记录;成绩表中的考号对应考生表的考号,试卷号对应试卷表中的试卷号。用户自定义完整性:在该系统中,设置了是否完成派送和是否登记完成派送必须是y或者n的enum 约束。4 数据库代码与图形界面4.1 登录模块该模块包括三个使用者选择。任何使用者要使用快件派送系统提供的功能,那么在使用之前必须登录。管理员设置成一个(管理员名:admin,密码:admin)。用户和派件员只要输入用户名、密码就可以了,输入的以上两项与数据库中保存的相符,则表明用户登录成功,打开各自的界面;如果不符,系统会提示错误。数据库代码:privatevoid actionuser() /gen-first:event_jbutton1actionperformed resultset rs = null; preparedstatement ps = null;try class.forname(com.mysql.jdbc.driver); string urlname = jdbc:mysql:/localhost:3306/kauijianpaisong;connection con = drivermanager.getconnection(urlname,root,1234); ps = con.preparestatement(select * from u where uname=?, resultset.type_scroll_sensitive, resultset.concur_read_only);/ ps.setstring(1, loginname.gettext(); rs = ps.executequery();if (rs.first() = false) jlabel msglbl1 = new jlabel(用户名不存在 !); joptionpane.showmessagedialog(null, msglbl1, error , joptionpane.error_message); else string str2=new string(loginpassword.getpassword();if (str2.trim().equals(rs.getstring(password).trim() = false) jlabel msglbl1 = new jlabel(密码不正确!); joptionpane.showmessagedialog(null, msglbl1, error , joptionpane.error_message); else jlabel msglbl1 = new jlabel(登陆成功, 欢迎使用 !); joptionpane.showmessagedialog(null, msglbl1, welcome, joptionpane.information_message); user user = new user(loginname.gettext(); user.setvisible(true); rs.close(); con.close();/umain myframe = new umain();/myframe.setlocation(400, 100);/myframe.setvisible(true);this.dispose(); catch (exception e) system.out.println(数据库加载失败!); privatevoid actionp() /gen-first:event_jbutton1actionperformedtry class.forname(com.mysql.jdbc.driver); string urlname = jdbc:mysql:/localhost:3306/kauijianpaisong;connection con = drivermanager.getconnection(urlname,root,1234);preparedstatement ps = con.preparestatement(select * from p where pname=?,resultset.type_scroll_sensitive,resultset.concur_read_only); ps.setstring(1, loginname.gettext(); resultset rs = ps.executequery();if (rs.first() = false) jlabel msglbl1 = new jlabel(用户名不存在 !); joptionpane.showmessagedialog(null, msglbl1, error , joptionpane.error_message); else string str2=new string(loginpassword.getpassword();if (str2.trim().equals(rs.getstring(password).trim() = false) jlabel msglbl1 = new jlabel(密码不正确!); joptionpane.showmessagedialog(null, msglbl1, error , joptionpane.error_message); else jlabel msglbl1 = new jlabel(登陆成功, 欢迎使用 !); joptionpane.showmessagedialog(null, msglbl1, welcome, joptionpane.information_message); p p = new p(loginname.gettext(); p.setvisible(true); rs.close(); con.close();this.dispose(); catch (exception e) system.out.println(数据库加载失败!); privatevoid actionadmin() /gen-first:event_jbutton1actionperformed string adminstring = loginname.gettext(); string adminchar = new string(loginpassword.getpassword();if (adminstring.equals(admin) ) if(adminchar.equals(admin)jlabel msglbl1 = new jlabel(登陆成功, 欢迎使用 !); joptionpane.showmessagedialog(null, msglbl1, welcome, joptionpane.information_message);admin admin = new admin();admin.setvisible(true);this.dispose();else jlabel msglbl1 = new jlabel(密码不正确!); joptionpane.showmessagedialog(null, msglbl1, error , joptionpane.error_message); elsejlabel msglbl1 = new jlabel(此管理员不存在 !); joptionpane.showmessagedialog(null, msglbl1, error , joptionpane.error_message); 4.2 管理员管理模块4.2.1进入系统后,管理员首先界面,可以查看用户信息,派件员信息,快件信息,并且更改快件完成情况,即把完成的快件,信息acomp改为y;数据库代码:查询用户)statement stmt = con.createstatement(); resultset rs = stmt.executequery(select u.uname, u.password, u.realname, u.phoneno, u.part from u); boolean morerecords = rs.next(); / 定位到达第一条记录 defaulttablemodel dtm = new defaulttablemodel(row,rowname);dtm.setrowcount(0);查询派件员)statement stmt = con.createstatement(); resultset rs = stmt.executequery(select p.pname, p.password, p.realname, p.phoneno, p.time,p.topart from p);boolean morerecords = rs.next(); / 定位到达第一条记录 defaulttablemodel dtm = new defaulttablemodel(row,rowname);dtm.setrowcount(0);查询快件)statement stmt = con.createstatement(); resultset rs = stmt.executequery(select u.uname, u.password, u.realname, u.phoneno, u.part from u);boolean morerecords = rs.next(); / 定位到达第一条记录 defaulttablemodel dtm = new defaulttablemodel(row,rowname);dtm.setrowcount(0);修改快件完成状态)preparedstatement ps = con.preparestatement(select cno, pname,acomp from cp where cno =?); rs.updatestring(acomp,y);rs.updaterow();42.2点击信息管理高级界面可以进去添加/修改用户、添加/修改派件员、添加/修改快件和匹配快件和用户和派件员。数据库代码:添加用户):insert into u values (taxtaddu1,taxtaddu2,taxtaddu3,taxtaddu4,taxtaddu5);修改用户):update u set password = taxtchu2,realname = taxtchu3,phoneno = taxtchu4,part = taxtchu5 where uname = taxtchu1;删除用户):delete from u where unmane = taxtdelu1;添加派件员):insert into p values (taxtaddp1,taxtaddp2,taxtaddp3,taxtaddp4,taxtaddp5,taxtaddp6);修改派件员):update p set password = taxtchp2,realname = taxtchp3,phoneno = taxtchp4,time = taxtchp5 topart = taxtchp6 where pname = taxtchp1;删除派件员):delete from p where pnmane = taxtdelp1;添加快件):insert into c values (taxtaddc1,taxtaddc2,taxtaddc3,taxtaddc4,taxtaddc5);修改快件):update c set cname = taxtchc2,weight = taxtchc3,frompart = taxtchc4,cost = taxtchp5 where cno = taxtchp1;删除用户):delete from c where cno = taxtdelc1;添加快件关联):insert into cp values (taxtaddcp1,taxtaddcp2,”n”); insert into cu values (taxtaddcu1,taxtaddcu2,”n”);4.3 用户模块此模块中用户可以查询快件信息派件员信息。数据库代码:preparedstatement ps = con.preparestatement(select o, ame,cu.pcomp,p.realname,p.phoneno,p.time,p.topart from c inner join cu on o = o inner join cp on o = o inner join p on cp.pname = p.pname inner join u on cu.uname=?);4.4 派件员模块派件员正确登录后,进入管理界面,可以查看快件任务和用户信息并且提供更改快件派送状态信息的能力:数据库代码:preparedstatem

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论