数据库课程设计宿舍信息管理系统_第1页
数据库课程设计宿舍信息管理系统_第2页
数据库课程设计宿舍信息管理系统_第3页
数据库课程设计宿舍信息管理系统_第4页
数据库课程设计宿舍信息管理系统_第5页
已阅读5页,还剩14页未读 继续免费阅读

下载本文档

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

文档简介

数据库课程设计学院:专业:学号:姓名:宿舍信息管理系统1、需求分析1.1处理对象系统要处理的对象包括宿舍楼根本信息、学生根本信息、宿舍根本信息、楼栋管理员根本信息、物品出入根本信息等五个方面,各个对象包括信息如下所示〔详细的数据见于数据字典〕:1.学生根本信息(Student):包括学生编号、学生所在学院信息、学生姓名、学生性别、学生来自省份、学生出生日期、学生入学时间、学生所学专业、所在班级等方面的信息,可以方便学生信息的查询和更新;2.宿舍楼根本信息(Dormitory):包括宿舍楼编号、每一幢宿舍楼楼管处的、宿舍楼楼管员信息、宿舍楼性别分类信息等方面,这样可以方便管理者对宿舍楼的管理,提高查询效率;3.宿舍根本信息(Room):包括宿舍编号、舍长信息、舍员信息、楼栋号;4.楼栋管理员根本信息(Worker):包括工作人员编号、工作人员姓名、工作类型、工资、性别、联系方式、工作时间等数据项,可以方便管理人员对宿舍楼道工人的任用、信息查询及更改;6.物品出入根本信息(ArticalInOut):包括出入物品的学生信息、出入的物品信息、出入物品时的负责人信息、出入物品时间,尽量减少宿舍事故的发生,保障学生宿舍财产的平安。1.2处理功能要求系统主要完成一下几个功能:1.宿舍楼根本信息查询与修改;2.学生根本信息查询与更新以及插入;3.每一幢宿舍楼中宿舍信息的查询与信息更新;〔1〕宿舍信息管理系统实现对学生,管理员信息的全部读取;实现对某个学 生或管理员特定信息的读取;〔2〕实现对某个人员信息的删除;〔5〕将某个学生增加到某个人数空缺的寝室。〔6〕学生退房。〔7〕建立插入类触发器,当在宿舍楼表,当在寝室,寝室成员,学生插入时检查插入信息,确保相应信息受约束。4.宿舍楼物品出入审批及记录;1.3平安性和完整性要求平安性先通过视图机制,不同的用户只能访问系统授权的视图,这样可提供系统数据一定程度上的平安性,再通过用户授权机制,欲用户登陆来识别用户级别,根据这个级别来分配用户权限,到达数据更高层次的平安保密功能。完整性要求用于描述宿舍楼根本信息、学生根本信息、宿舍根本信息、楼栋管理员根本信息、物品出入根本信息中数据项能否为null,以及一些用户自定义完整性〔符合实际要求〕。2、概要设计2.1功能结构图用户用户宿舍楼根本信息楼栋管理员信息宿舍居住信息学生根本信息宿舍楼物品出入信息插入显示全部信息删除个人查找显示全部信息删除物品查找进入界面帮助插入插入显示全部删除个人查找插入显示全部删除个人查找插入显示全部删除宿舍查找

2.2E-R图学生学生宿舍楼管宿舍楼入住n1组成m1管理1n性别分类宿舍编号学号姓名性别管理员编号

2.3建立数据库、数据表、插入数据2.3.1建立数据库createdatabaseroom;2.3.2建立数据表/*1、建立宿舍楼根本信息表*/createtableDormitory( DorNointnotnullunique, DorPhNochar(12), DorAdministchar(10), DorSexchar(2)notnull, primarykey(DorNo),check(DorNo>1andDorNo<100) );/*2、建立楼栋管理员根本信息表*/createtableWorker( WorNochar(8)notnullunique, WorNamechar(8)notnull, WorTypechar(8)null, WorWageint, WorSex char(2)notnull, WorPhNochar(12)null, WorTimechar(30)null, DorNoint, primarykey(WorNo), foreignkey(DorNo)referencesDormitory(DorNo),check(WorSexin('男','女')) );/*3、建立宿舍根本信息表*/createtableRoom( RNochar(6)notnullunique, RHeaderchar(8)notnull, ROnechar(8), RTwochar(8), RThreechar(8), RDepart char(20), RProfesschar(20), DorNointnotnull, primarykey(RNo), foreignkey(DorNo)referencesDormitory(DorNo) );/*4、建立宿舍学生信息表*/createtableStudent( StuNochar(8)notnullunique, StuDepchar(20)notnull, StuNamechar(8)notnull, StuSex char(2)notnull, StuHome char(10)notnull, StuBorthdatetimenotnull, StuETimedatetimenotnull, StuProfesschar(20)notnull, StuClasschar(8)notnull, RNochar(6)notnull, DorNointnotnull, primarykey(StuNo), foreignkey(RNo)referencesRoom(RNo), foreignkey(DorNo)referencesDormitory(DorNo) );/*5、建立宿舍楼物品出入根本信息表*/createtableArticalInOut( StuNochar(8) notnull, AIOArticalchar(20) null, AIOPrinchar(8) notnull, AIODatedatetimenotnull, AIONoint notnullunique, DorNointnotnull, primarykey(AIONo,AIODate), foreignkey(StuNo)referencesStudent(StuNo), foreignkey(AIOPrin)referencesWorker(WorNo), foreignkey(DorNo)referencesDormitory(DorNo), check(AIONo>0));2.3.3导入数据insertintoDormitoryvalues('19',,'019','女');insertintoDormitoryvalues('20',,'020','男');/*2、导入宿舍根本信息*/insertintoRoomvalues('620','陈雪平','聂绍高','夏佳文','王志全','计算机学院','软件工程','19');insertintoRoomvalues('621','张超耀','常文达','刘欢','李阳','计算机学院','软件工程','19');insertintoRoomvalues('622','张三','王敏','李四','晨雾','计算机学院','软件工程','19');insertintoRoomvalues('733','方超','郑拓','周庆','何名','计算机学院','软件工程','19');insertintoRoomvalues('734','姜晓文','李刚','罗清','黄小','计算机学院','软件工程','19');/*3、导入宿舍学生信息*/insertintoStudentvalues('10103102','计算机学院','方正','男','天津市','1991-01-01','2010-09-15','软件工程','072015','733','19');insertintoStudentvalues('10103104','计算机学院','张伟','男','天津市','1991-01-01','2010-09-15','软件工程','072015','733','19');insertintoStudentvalues('10103105','计算机学院','李四','男','天津市','1991-01-01','2010-09-15','软件工程','072015','622','19');insertintoStudentvalues('10103106','计算机学院','吴麒','男','天津市','1991-01-01','2010-09-15','软件工程','072015','622','19');insertintoStudentvalues('10103107','计算机学院','王敏','男','天津市','1991-01-01','2010-09-15','软件工程','072015','622','19');insertintoStudentvalues('10103108','计算机学院','杨敏','男','天津市','1991-01-01','2010-09-15','软件工程','072015','622','19');insertintoStudentvalues('10103109','计算机学院','李刚','男','天津市','1991-01-01','2010-09-15','软件工程','072015','734','19');insertintoStudentvalues('10103110','计算机学院','邱之','男','天津市','1991-01-01','2010-09-15','软件工程','072015','621','19');insertintoStudentvalues('10103112','计算机学院','宋杰','男','天津市','1991-01-01','2010-09-15','软件工程','10103101','620','19');/*4、导入楼栋管理员根本信息*//*5、导入宿舍楼物品出入根本信息*/insertintoArticalInOutvalues('10103103','电脑','019','2009-01-07','1','019');insertintoArticalInOutvalues('10103113','笔记本电脑','020','2009-01-07','2','020');3、详细设计3.1新生入住宿舍业务流程图:学生学生未批准入住楼管处新生入住证件批准入住并登记信息宿舍

3.2查询业务流程图〔查询宿舍学生信息、楼栋管理员信息、宿舍楼信息等〕:查询宿舍学生信息表查询宿舍学生信息表查询宿舍信息表查询楼栋管理员信息表楼管处查询结果外来人员3.3宿舍楼物品出入业务流程图:申请出入物品的学生申请出入物品的学生楼管处物品出入申请宿舍出入物品登记表宿舍出入物品注销表

3.4数据字典数据项名数据项含义数据说明数据类型别名StuNo学生编号char(8)学号StuDep学生所在学院char(20)学院StuName学生姓名char(8)姓名StuSex学生性别char(2)性别StuHome学生来自省份char(10)祖籍StuBorth学生出生时间datetime出生日期StuETime学生入学时间datetime入学时间StuProfess学生所在专业char(20)专业StuClass学生所在班级编号Char(8)班级RNo宿舍编号char(6)宿舍号RHeader舍长信息等于StuNamechar(8)舍长ROne宿舍学生信息等于StuNamechar(8)舍员1RTwo宿舍学生信息等于StuNamechar(8)舍员2RThree宿舍学生信息等于StuNamechar(8)舍员3RDepart宿舍学生所在学院等于StuDepchar(20)学院RProfess宿舍学生所学专业等于StuProfesschar(20)专业RClass学生所在班级编号等于StuClasschar(8)班级DorNo宿舍楼编号int宿舍楼号DorPhNo宿舍楼管处char(12)DorAdminist宿舍楼楼管员信息等于WorNochar(10)楼管员DorSex宿舍楼性别分类char(2)男〔女〕宿舍WorNo楼管编号char(8)编号WorName楼管姓名char(8)姓名WorType工作类型char(8)工作类型WorWage楼管工资Int月工资WorSex楼管性别char(2)性别WorPhNo楼管联系方式char(12)WorTime楼管工作时间char(30)工作时间AIOStu要求物品出入学生等于StuNochar(8)学生AIOArtical出入物品信息char(20)物品名AIOPrin出入物品审查人等于WorNochar(10)负责人AIODate出入物品日期datetime日期AIONo物品出入序号Int序号

3.5系统界面3.5.1进入界面3.5.2单个查询宿舍楼信息对话框3.5.3查询单个学生信息4、调试分析:4.1调试过程中所遇到的问题及解决方法;〔1〕前台与数据库连接问题:在编写前期,由于数据库未连接上,创立数据库并插入数据后,不能在前台界面上显示,问题很严重;解决方法:找到windows系统下的“数据源〔ODBC〕”,创立新数据源,创立到SQLServer数据源,并连接所创立的数据库room,之后并可进行数据连接。同时增加语句Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); con=DriverManager.getConnection("jdbc:odbc:sun","",""); 〔2〕数据无法在界面上显示:在建立初步界面之后,虽然数据库连接正常,但是无法将数据库内的数据输送的屏幕上; 解决方法:增加类中的方法,定义方法的类型为Vector,通过Vector将数据整合到容器内,在经过二维数组将数据输送到table界面上。〔3〕输入数据与数据库中的表的列的类型不匹配,无法输入和查找; 解决方法:在界面上相应处写上提示,提示用户该输入何种类型,何种信息。〔4〕在Java中设立监听无效:就是在界面上输入相应信息后,按“确定”无效,经检查发现在调用类时出现混淆,修改后可运行。〔5〕局部窗口无法显示,经检查,发现缺少语句setVisible(true);4.2经验与体会: 通过本次课设,让我受益匪浅,以下是几点心得及体会:〔1〕加深对数据库系统概论相关知识和SQLSERVER相关功能理解方面以前只是记书本上关于数据库系统的相关功能,但这些大局部只是处在死记的根底上,没有切身实地的感触,这次课设有让我再次对SQLSERVER2008相关功能的理解,比方:存储过程。〔2〕进一步掌握相关的SQL语句方面学生宿舍管理系统开发的过程中牵涉到相当多根本表的建立,以及存储过程的设计,这次系统开发让我对这些语句操作更熟练了。〔3〕熟悉对工程开发的大致过程方面这次系统开发,从开始的系统需求分析、概念设计、逻辑设计、物理设计,再到数据库实施、系统的测试和调试,都时自立完成,虽然只是做出的系统的框架,并没有开发出具体应用的学生宿舍管理系统,但对于工程〔系统〕开发的大致流程有了一定的了解,为以后的系统的开发打下了良好的根底。〔4〕存在的问题在系统开发的过程中也遇到了这样那样的问题,比方画E-R图,带输出变量的存储过程,具体的语句还不是很熟悉,同时对数据的保护未做到完善,比方:在查询学生根本信息时,会将所有信息全部显示出来,这样子起不到保护作用,应设置权限,同时需要用户密码登入。由于首次接触数据库,许多问题还有待探讨和学习。⒌用户使用说明: 用户登入系统后进入系统界面,之后在菜单项中选择所要进行的操作,假设是选择增加,那么可根据界面上的提示,输入相应的信息;假设是选择查询,也可输入相应的查询信息,并可在界面上显示相应的信息;假设是选择删除,可输入要删除的项,并可删除。假设结束操作并可退出系统。6.附录:packagefc;importjava.awt.*;importjava.awt.event.*;importjava.sql.*;importjava.util.Vector;importjavax.swing.*;publicclassDBconnect1{ Connectioncon; PreparedStatementsql1,sql2,sql3,sql4,sql5,sql6,sql7,sql8,sql9,sql10,sql11,sql12,sql13; ResultSetrs; publicDBconnect1(){ try{ Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); con=DriverManager.getConnection("jdbc:odbc:sun","",""); }catch(Exceptione){} } /*查找宿舍楼信息*/ Vectorselect_Dor(intDorNo){ Vectorvc=newVector(); try{ Statementst=this.con.createStatement(); ResultSetrs=st.executeQuery("select*fromDormitorywhereDorNo="+DorNo); while(rs.next()){ Strings1=rs.getString("DorNo"); vc.add(s1); Strings2=rs.getString("DorPhNo"); vc.add(s2); Strings3=rs.getString("DorAdminist"); vc.add(s3); Strings4=rs.getString("DorSex"); vc.add(s4); } }catch(SQLExceptione){ System.out.print(e); } returnvc; } /*查找楼栋管理员根本信息*/ Vectorselect_Worker(Stringw) { Vectorvc=newVector(); try{ Statementst=this.con.createStatement(); ResultSetrs=st.executeQuery("select*fromWorkerwhereDorNo="+w+"orWorName=\'"+w+"\'"); while(rs.next()){ Strings1=rs.getString("WorNo"); vc.add(s1); Strings2=rs.getString("WorName"); vc.add(s2); Strings3=rs.getString("WorType"); vc.add(s3); Strings4=rs.getString("WorWage"); vc.add(s4); Strings5=rs.getString("WorSex"); vc.add(s5); Strings6=rs.getString("WorPhNo"); vc.add(s6); Strings7=rs.getString("WorTime"); vc.add(s7); Strings8=rs.getString("DorNo"); vc.add(s8); } }catch(SQLExceptione){ System.out.print(e); } returnvc; } /*##修改宿舍楼信息*/ Vectorupdate_Dor(Stringa) { Vectorvc=newVector(); try{ sql7=con.prepareStatement("insert"); }catch(SQLExceptione){System.out.print(e);} returnvc; } /*删除学生信息*/ Vectordelete_Student(Strings) { Vectorvc=newVector(); try{ sql12=con.prepareStatement("deletefromStudentwhereStuNo="+"'"+s+"'"); sql12.executeUpdate(); }catch(SQLExceptione){System.out.print(e);} returnvc; } packagefc;importjava.io.*;importjava.sql.*;importjava.util.Vector;importjavax.swing.*;importjavax.swing.border.MatteBorder;importjava.awt.*;importjava.awt.event.*;publicclassInsert_W_DextendsDialogimplementsWindowListener,ActionListener{ privateTextFieldt1,t2,t3,t4,t5,t6,t7,t8; privateButtonb1,b2; publicInsert_W_D(Frameowner){ super(owner); this.setTitle("增加新楼管"); this.setBounds(100,100,800,300); setLayout(newBorderLayout()); Panelp=newPanel(); //p.setLayout(newFlowLayout(FlowLayout.CENTER)); p.setLayout(newFlowLayout(FlowLayout.CENTER,20,20)); Labelm1=newLabel("楼管编号:"); p.add(m1); t1=newTextField(15); p.add(t1); m1=newLabel("楼管姓名:"); p.add(m1); t2=newTextField(15); p.add(t2); m1=newLabel("工作类型:"); p.add(m1); t3=newTextField(15); p.add(t3); m1=newLabel("月工资:"); p.add(m1); t4=newTextField(15); p.add(t4); m1=newLabel("性别:"); p.add(m1); t5=newTextField(15); p.add(t5); m1=newLabel(":"); p.add(m1); t6=newTextField(15); p.add(t6); m1=newLabel("工作时间:"); p.add(m1); t7=newTextField(15); p.add(t7); m1=newLabel("楼栋:"); p.add(m1); t8=newTextField(15); p.add(t8); add(p,BorderLayout.CENTER); Panelp2=newPanel(); p2.setLayout(newFlowLayout(FlowLayout.RIGHT)); this.b1=newButton("确定"); this.b1.addActionListener(this); this.b2=newButton("取消"); this.b2.addActionListener(this); p2.add(b1); p2.add(Box.createHorizontalStrut(20)); p2.add(b2); p2.add(Box.createHorizontalS

温馨提示

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

最新文档

评论

0/150

提交评论