《数据库课程设计指导书.doc》由会员分享,可在线阅读,更多相关《数据库课程设计指导书.doc(20页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、大连交通大学信息工程学院数据库课程设计题 目 学生公寓管理系统 学生姓名 张晓曈 专业班级 软件工程08-3 指导教师 李孝贵 职称 助教 所在单位 电气工程系 教学部主任 李峻 完成日期 2010年12月09日附件二课程设计说明书的编写规范与写作框架目 录题目:11.需求分析12.数据库概要设计33.数据库逻辑设计44.数据库实施65.系统实现(附运行界面、主要代码)76.测试结果15参考文献16附录 全部代码1题目:学生公寓管理系统设计与实现1.需求分析 (1) 背景分析随着时代的发展,计算机技术越来越深入各行各业,为广大的用户提供了更为周到和便捷的服务。近年来,随着用户要求的不断提高及计
2、算机科学的迅速发展,特别是数据库技术的广泛应用,向用户提供的服务将越来越丰富,越来越人性化。 对于学校而言,学生宿舍管理是必不可少的组成部分。目前仍然存在有学校停留在宿舍管理部门人员手工记录数据的阶段,手工记录对于规模小的学校来说勉强可以接受;但对于学生信息量比较庞大,需要记录存档的数据比较多的高校来说,人工记录是相当麻烦的,而且当查找某条记录时,由于数据量庞大,只能依靠人工去一条一条地查找,这样不但麻烦而且浪费许多时间,工作效率比较低。采用计算机来管理宿舍和学生的信息,大大提高了查询的速度,节约了人力和物力资源,达到了预期的要求。. 经分析我们认为学生公寓管理系统的具体要求为:1. 能以学生
3、和管理员两种身份登录;2. 学生能查询所在寝室的信息;3. 管理员能查询所有寝室的信息,包括学生信息,空房信息,空床信息,寝室维修情况信息等;4. 管理员能添加、删除、修改学生及寝室信息;5. 管理员能对外来人员及不回寝的同学进行登记并查看;(2)数据流程图学生管理员查询插入修改删除登记报修卫生纪律评比违规登记登录(3)数据字典数据元素数据类型长度数据来源寝室号Varchar26公寓表位置Varchar26公寓表室长Varchar26公寓表人数Varchar22公寓表管理员号Varchar26管理员表 管理员姓名Varchar210管理员表出生日期Varchar210管理员表电话Varchar
4、220管理员表工作周期Varchar210管理员表用户号Varchar210密码表密码Varchar220密码表身份Varchar28密码表学号Varchar210寝室表学生姓名Varchar26寝室表寝室号Varchar26寝室表床号Varchar22寝室表值日Varchar210寝室表职务Varchar24寝室表寝室号Varchar26评比表成绩Varchar26评比表月份Varchar26评比表寝室号Varchar26报修表设施Varchar220报修表时间Varchar220报修表姓名Varchar26登记表身份证号Varchar220登记表性别Varchar24登记表来时Varcha
5、r220登记表走时Varchar220登记表 学号Varchar212违规登记表 姓名Varchar220违规登记表 寝室号Varchar210违规登记表 违规行为Varchar220违规登记表2.数据库概要设计本次设计需要完成一个“学生公寓管理程序”。学生公寓管理是通过查询,修改等功能使管理员对学生公寓的管理更加简单,快捷。本系统主要包括登录、查询、管理、登记等模块 本系统需要以下模块:登录: 用户通过输入正确的用户名和密码登录。登录方式可以选择,有学生模式和管理员模式两种。如果输入的账号密码不匹配,则提示用户登录错误信息。报修: 在有寝室设施坏了的时候,学生可以上报。 查询: 用户登录成功
6、后,可以查询相关的内容。学生只能查所在寝室的信息,管理员可以查所有寝室的信息。添加: 在有新同学入住时,管理员可以对学生信息进行添加。修改: 在有同学调换寝室时,管理员可以对学生信息进行修改。删除: 在有同学退宿时,管理员可以对学生信息进行删除。登记: 在有外来人员进入时或有有同学请假不回寝时,管理员可以对其相关信息进行登记。卫生评比:每月对寝室进行一次卫生检查,并进行评比。违规登记:对有违规行为的学生进行登记。退出登录: 退出用户登录。E-R图:公寓寝室管理管理员录入包含报修录入评比登记外来人员记录违规同学寝室号位置室长人数管理员号管理员姓名电话出生日期工作周期床号学生姓名学号值日职务寝室号
7、寝室号成绩月份寝室号时间设施走时来时身份证号姓名姓名性别学号寝室号违规行为1nnn1n1n1n1n3.数据库逻辑设计由E-R图转化成关系模型为:公寓(寝室号,位置,室长,人数)管理员(管理员号,管理员姓名,出生日期,电话,工作周期)寝室(寝室号,学生姓名,学号,床号,值日,职务)评比(寝室号,成绩,月份)报修(寝室号,设施,时间)登记(身份证号,姓名,性别,来时,走时) 违规(学号,姓名,寝室号,违规行为)包含(寝室号,学生姓名,学号,床号,值日,职务)录入(寝室号,学号)4. 数据库实施公寓表:名称字段名称数据类型主键非空寝室号DNO数字YesYes位置POSITION文本NoYes室长D_
8、G_NAME文本NoYes人数AMOUNT数字NoYes管理员表:名称字段名称数据类型主键非空管理员号ANO数字YesYes管理员姓名ANAME文本NoYes出生日期BIRTH数字NoYes电话TEL数字NoYes工作周期W_PERIOD文本NoYes密码表:名称字段名称数据类型主键非空用户号CNO数字YesYes密码CODE文本NoYes身份SHENFEN文本NoNo寝室表:名称字段名称数据类型主键非空学生号SNO数字YesYes学生姓名SNAME文本NoYes寝室号DNO数字YesYes床号B_NO数字NoYes值日DUTY文本NoYes职务POST文本NoYes卫生评比表:名称字段名称数
9、据类型主键非空寝室号DNO数字YesYes成绩SCORE文本NoYes月份MONTH文本YesYes报修表:名称字段名称数据类型主键非空寝室号DNO数字YesYes设施SHESHI文本NoYes时间TIME数字NoYes登记表:名称字段名称数据类型主键非空姓名xingming文本NoYes身份证号shenhao数字YesYes性别xingbie文本NoYes来时laishi文本NoYes走时zoushi文本NoYes违规表名称字段名称数据类型主键非空学号SNO数字YESYES姓名SNAME文本NOYES寝室号DNO数字YESYES行为XINGWEI备注NOYES5. 系统实现(附运行界面、主要
10、代码)(1)首先进入登录: 然后选择身份登录,这里选学生登录:选择管理员登录: 主界面的设计编码:public class Login extends Frame implements ActionListener private Panel pan; private Label l1,l2; private TextField tfname,tfpass; private Button butlogin; private Choice choice;Login(String s) super(s); this.setBounds(350,300,600,700); this.setResiz
11、able(false); pan = new Panel(); Imagecanvas canvas=new Imagecanvas(); l1 = new Label(用户名); choice=new Choice(); tfname = new TextField(10); l2 = new Label(密 码); tfpass = new TextField(10); choice.add(请选择身份); choice.add(学生); choice.add(管理员); add(choice); butlogin= new Button(登陆); butlogin.addActionLi
12、stener(this); pan.add(l1); pan.add(tfname); pan.add(l2); pan.add(tfpass); pan.add(choice); pan.add(butlogin); pan.add(canvas); this.add(pan); this.setVisible(true); public void actionPerformed(ActionEvent e) Connection con; Statement sql; ResultSet rs; try Class.forName(sun.jdbc.odbc.JdbcOdbcDriver)
13、; catch(ClassNotFoundException e1) System.out.println(+e1); trycon=DriverManager.getConnection(jdbc:odbc:sun,SYSTEM,huahua); sql=con.createStatement(); rs=sql.executeQuery(SELECT * FROM SYSTEM.CODE); while(rs.next() String cno=rs.getString(1); String code=rs.getString(2); String shenfen=rs.getString
14、(3); if(tfname.getText().equals(cno)&tfpass.getText().equals(code)&choice.getSelectedItem().equals(shenfen)&choice.getSelectedItem().equals(学生) this.setVisible(true); new NewFrame(); else if(tfname.getText().equals(cno)&tfpass.getText().equals(code)&choice.getSelectedItem().equals(shenfen)&choice.ge
15、tSelectedItem().equals(管理员) this.setVisible(true); new OldFrame(); con.close(); catch(SQLException e2) System.out.println(e2); public static void main(String args) Imagecanvas canvas=new Imagecanvas(); Login l=new Login(学生公寓欢迎您); l.add(canvas,BorderLayout.CENTER); l.setIconImage(canvas.getImage(); l
16、.addWindowListener(new WindowAdapter() public void windowClosing(WindowEvent e) System.exit(0); ); 学生登录模块的设计编码:class NewFrame extends Frame implements ActionListener Button button1,button2; Box baseBox,box1,box2; public NewFrame() button1=new Button(报 修); button1.setForeground(Color.yellow); button1
17、.setBackground(Color.magenta); button1.addActionListener(this); button2=new Button(查 询); button2.setForeground(Color.yellow); button2.setBackground(Color.blue); button2.addActionListener(this); box1=Box.createVerticalBox(); box1.add(button1); box2=Box.createVerticalBox(); box2.add(button2); baseBox=
18、Box.createHorizontalBox(); baseBox.add(box1); baseBox.add(Box.createHorizontalStrut(10); baseBox.add(box2); add(baseBox); setLayout(new FlowLayout(); this.setBounds(300,300,200,100); this.setTitle(学生操作); this.setAlwaysOnTop(true); this.setVisible(true); this.addWindowListener(new WindowAdapter() pub
19、lic void windowClosing(WindowEvent e) System.exit(0); ); 管理员登录模块的设计编码:class OldFrame extends Frame implements ActionListener private Button b2,b3,b4,b5,b6,b7,b8; Box baseBox,box1,box2; public OldFrame() b2=new Button(查 询); b2.setForeground(Color.yellow); b2.setBackground(Color.gray); b2.addActionLis
20、tener(this); b3=new Button(删 除); b3.setForeground(Color.yellow); b3.setBackground(Color.magenta); b3.addActionListener(this); b4=new Button(修 改); b4.setForeground(Color.yellow); b4.setBackground(Color.blue); b4.addActionListener(this); b5=new Button(插 入); b5.setForeground(Color.yellow); b5.setBackgr
21、ound(Color.red); b5.addActionListener(this); b6=new Button(违 规 登 记); b6.setForeground(Color.yellow); b6.setBackground(Color.blue); b6.addActionListener(this); b7=new Button(卫生纪律评比); b7.setForeground(Color.yellow); b7.setBackground(Color.red); b7.addActionListener(this); b8=new Button(登 记); b8.setFor
22、eground(Color.yellow); b8.setBackground(Color.black); b8.addActionListener(this); box1=Box.createVerticalBox(); box1.add(b2); box1.add(Box.createVerticalStrut(8); box1.add(b3); box1.add(Box.createVerticalStrut(8); box1.add(b4); box2=Box.createVerticalBox(); box2.add(b5); box2.add(Box.createVerticalS
23、trut(8); box2.add(b6); box2.add(Box.createVerticalStrut(8); box2.add(b7); box2.add(Box.createVerticalStrut(8); box2.add(b8); baseBox=Box.createHorizontalBox(); baseBox.add(box1); baseBox.add(Box.createHorizontalStrut(10); baseBox.add(box2); add(baseBox); setLayout(new FlowLayout(); this.setBounds(30
24、0,300,500,300); this.setTitle(管理员操作); this.setAlwaysOnTop(true); this.setResizable(false); this.setVisible(true); this.addWindowListener(new WindowAdapter() public void windowClosing(WindowEvent e) System.exit(0); ); 管理员进行删除操作:管理员进行插入操作:管理员进行修改学生信息:6. 测试结果当学生输入信息为50610进行查询,输出结果如下:当管理员录入寝室评比记录时,输出结果为参考文献1 耿祥义,张跃平编著.java2实用教程(第三版).清华大学出版社。2 朱辉生主编.大型数据库系统概论(oracle 9i).高等教育出版社。3 张海藩编著.软件工程导论(第五版).清华大学出版社附录 部分代码课程设计总结:指导教师评语:签名: 2010年12 月 10日