第十小组软件工程课程设计报告.doc_第1页
第十小组软件工程课程设计报告.doc_第2页
第十小组软件工程课程设计报告.doc_第3页
第十小组软件工程课程设计报告.doc_第4页
第十小组软件工程课程设计报告.doc_第5页
免费预览已结束,剩余65页可下载查看

下载本文档

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

文档简介

淮南师范学院 计算机与信息工程系软件工程课程设计高校宿舍管理系统项目软件工程报告专业班级:计算机科学与技术 07(3) 项目组号:第十组组 长:赵娟组 员:陈敏敏、范敏、彭传玲指导老师:孙淮宁 2011年6月2日高校宿舍管理系统项目软件工程分工安排1、需求分析 负责人:赵娟 参与人:赵娟2、软件设计 负责人:赵娟 参与人:范敏3、编码工作 负责人:赵娟 参与人:陈敏敏4、测试工作 负责人:赵娟 参与人:彭传玲高校宿舍管理系统项目软件需求分析报告负 责 人:赵娟参 与 人:赵娟、陈敏敏、范敏、彭传玲功能模型:赵娟数据模型:赵娟行为模型:赵娟数据词典:赵娟审 核 人:赵娟 一、需求分析:随着学校规模的扩大,学生人数急剧增长,宿舍需要管理的信息也快速增长,建立一个宿舍管理系统便可以使宿舍管理员的管理工作系统化、规范化、自动化,大大提高管理效率。该系统是由管理员通过系统管理学生信息,能根据学生学号、寝室号等来查询学生的其他相关信息,新生入住能录入新生的住宿信息,能查询房间信息如入住人数、人员、费用等或遇学生毕业退学等原因能删除其住宿信息。而且要实现用户对其个人信息进行查询、修改密码操作。(一)功能需求该系统要实现的是高校宿舍管理系统,在设计该系统时,尽可能的贴近学生,便于用户操作。系统在实现上应该具备如下功能:系统要求用户必须输入正确的用户名和密码才能进入系统,此用户只针对于管理员。系统应该提供学生住宿信息的录入。系统应提供查询功能,以方便用户对学生及宿舍员工基本信息的查询及宿舍信息的查询。系统还应具有添加、修改、删除学生基本信息的功能。系统还具有对用户密码修改功能。(二)性能需求 高校宿舍管理系统中管理权力上应进行如下控制,具体思想如 : 1要想对该学生宿舍管理系统进行操作就应当具有某些操作权限,没有权限的用户将不能通过任何渠道来登录该系统,查看该系统的任何信息和数据,以确保系统的严密性和安全性。 2在查询的时候就是每个学生都可以查询,同时也看到每个寝室的情况,只是在这样的情况下所查询的权限不一样,管理员是可以对数据库进行增删改等等功能。(三)可行性分析系统可行性包括以下三方面:经济可行性:该系统对操作环境要求不大,系统的开发不需要很强的经济支持,就其功能和给宿舍管理带来的方便来说,是完全可行的。技术可行性:本系统运用Microsoft SQL数据库与Java程序语言设计,开发者只需要掌握java语言、SQL语句的应用以及ODBC的连接方法即可实现此软件的开发,所以,技术方面也是可行的。法律的可行性:本系统涉及的用户信息只对管理员和用户本人开放,用户只能对个人信息进行查询、修改密码等操作,所以不涉及侵权问题方案的选择:此系统操作简单、直观、界面友好、适合于用户的使用。而且程序的成本较低,只需少数开发人员,因此,选择了此种方案。功能模型:数据模型:行为模型:数据词典:文件:文件名称:student 简述:用来存放学生的基本信息。文件组成:Stu_Id+ Stu_Name + Stu_Sex + Dor_Id + Stu_Enr + Stu_Birth + Stu_Study + Stu_Class + Stu_Polit + Stu_Tel 文件组织:顺序文件,按主键Stu_Id升序排列。文件名称:employee 简述:用来存放宿舍管理员工的基本信息。文件组成:Emp_Id + Emp_Name + Emp_Age + Emp_Sex + Emp_Job+ Emp_Add + Emp_Tel文件组织:顺序文件,按主键Emp_Id升序排列。文件名称:dorm 简述:用来存放宿舍的基本信息。文件组成:Dor_Id + Dor_Sex + Dor_Num + Dor_Fact + Dor_Price + Dor_Tel 文件组织:顺序文件,按主键Dor_Id升序排列。文件名称:login 简述:用来存放用户的登陆信息。文件组成: UserId + UserName +Passwords+ Userpower文件组织:顺序文件,按主键UserId升序排列。高校宿舍管理系统项目软件结构设计报告负 责 人:赵娟参 与 人:陈敏敏、范敏、彭传玲总体结构:范敏内部结构:范敏数据结构:范敏界 面:范敏审 核 人:赵娟2011年6月27日1、 总体结构设计结构设计定义了软件的整体结构,由软件部件、外部可见的属性和它们之间的关系组成,它的本质是对所做功能进行分解的方法。在总体结构设计中,我们可以把整个系统看成是一个大的功能模块,通过分解将其分成若干个小的模块,每个小的模块又对其进一步分解,直到每一个模块不能再分解为止。高校宿舍管理可以划分成三个模块:用户登陆模块、高校宿舍管理中心、作业输出。其中,用户登陆模块又可以分成用户登陆和身份验证两个子模块,高校宿舍管理中心又可以分成查询用户、登记用户、删除用户、查询宿舍信息、调换宿舍和修改密码等,作业输出模块用于输出用户查询的相关信息。其总体结构图如下所示: 总体结构(一) 总体结构(二) 总体结构(三)二、局部结构设计本系统主要分为三大模块:登陆模块、管理员登陆模块、学生登陆模块和员工登陆模块。首先用户输入自己的用户名和密码,并选择自己的用户权限,如果验证通过则进入高校宿舍管理系统,否则提示出错信息。它的局部结构图如下:1、管理员登陆模块本模块实现四大功能:更改用户、查询、修改密码和退出。1.1 更改用户 此模块是管理员用来管理宿舍的模块,管理员可以对学生和员工的信息进行添加、删除、修改等操作。如果有新生入学我们可以用添加功能添加学生信息,如果学生毕业了,我们就用删除功能将其信息删除。1.2 查询在管理员登陆的主界面中,首先单击查询按钮,然后输入学生的姓名和学号,单击查询按钮即可查询学生的相关信息,也可以使用清空按钮清空学生的相关信息,单击退出按钮,则退出系统。1.3 修改密码在管理员登陆的主界面中,选择“修改密码”菜单下的“修改密码”,输入用户名、旧密码和要修改的新密码,然后再一次输入新密码,确定两次输入的新密码是否相同,若相同,则修改密码成功;若不同,则弹出对话框,提示两次密码输入不一致,无法修改,可返回重新输入。1.4 退出在系统主界面中,选择退出,即可退出本系统。或者直接点击“退出系统”的按钮,也可退出本系统。其局部结构图如下: 2、学生登陆模块本模块实现二大功能:查询和修改密码。2.1 查询在学生登陆界面,学生输入自己的用户名和密码可以查看自己的相关信息,如学号、入学日期、出生日期、政治面貌、所在班级和联系方式等。2.2 修改密码在学生登陆的主界面中,选择修改密码,输入用户名、旧密码和要修改的新密码,然后再一次输入新密码,确定两次输入的新密码是否相同,若相同,则修改密码成功;若不同,则弹出对话框,提示两次密码输入不一致,无法修改,可返回重新输入。其局部结构图如下:3、 员工登陆模块同上面一样,员工也是实现查询和修改密码两个功能。3.1 查询在员工登陆界面,员工输入自己的用户名和密码可以查看自己的相关信息,如年龄、性别、职位、家庭住址、联系方式等。3.2 修改密码在员工登陆的主界面中,选择修改密码,输入用户名、旧密码和要修改的新密码,然后再一次输入新密码,确定两次输入的新密码是否相同,若相同,则修改密码成功;若不同,则弹出对话框,提示两次密码输入不一致,无法修改,可返回重新输入。其局部结构图如下:3、 接口设计软件接口使用JAVA软件进行操作。硬件接口(用户与计算机之间的交互)1)鼠标。2)键盘。3)USB移动数据存储器。内部接口设计模块间接口采用数据耦合方式,通过函数传送数据,交换信息。运行环境规定设备硬件要求:CPU PII以上PC服务器,内存256MB以上,硬盘256MB以上。 支持软件操作系统:Winxp/vista/win7/2000/2003/NT 等能安装JAVA的软件。4、 界面设计1.1 登陆窗体模块(1)窗体模块 登陆窗体 在工程中添加一个窗体,用来作为系统登陆窗体。其中包括系统单用户名、密码和用户权限。用户输入用户名和用户密码如果两者均检验通过即可进入高校宿舍管理系统。其界面设计如下:(2) 管理员登陆窗体模块管理员可以通过输入自己的用户名和密码进入高校宿舍管理系统对学生的基本信息进行管理。(3) 学生登陆窗体模块学生可以通过输入自己的用户名和密码进入高校宿舍管理系统对自己的信息进行查询等操作。(4) 添加与删除学生信息管理员可以在管理系统对的学生的信息进行添加与删除等操作。(5) 修改密码管理员、学生和员工都可以通过此功能进行密码修改。(6) 查询学生信息能过此功能可以进行学生信息的查询,或清空学生的信息,如果完成所要的查询可以直接按退出按钮退出系统。(7) 查询员工信息可以通过输入员工号进行员工的相关信息的查询,也可以通过清空按钮清空查询的信息,按退出则退出系统。高校宿舍管理系统项目软件编码工作报告负 责 人:赵娟参 与 人:陈敏敏、范敏、彭传玲主控模块:陈敏敏子控模块:陈敏敏原子模块:陈敏敏审 核 人:赵娟 2011年6月27日主控模块:总登录界面代码:import java.awt.*;import java.awt.event.*;import java.sql.*;import javax.swing.*;class gxssgl extends Frame implements ActionListener private Choice chc=new Choice(); private TextField userid; private TextField passwords; private Button button1; private Button button2; private Label lab1; private Label lab2; private Label lab3; private Label message; public gxssgl() super(用户登陆); BorderLayout border=new BorderLayout(); /this.setLayout(border); this.setLayout(null); this.setSize(300,400); this.setBackground(Color.red); chc.add(管理员); chc.add(学生); chc.add(员工); chc.setBounds(120,200,120,20); userid=new TextField(20); userid.setBounds(120,100,120,20); passwords=new TextField(20); passwords.setBounds(120,150,120,20); passwords.setEchoChar(*); lab1=new Label(用户号); lab1.setBounds(60,100,60,20); lab2=new Label(用户密码); lab2.setBounds(60,150,60,20); lab3=new Label(用户权限); lab3.setBounds(60,200,60,20); message= new Label(); message.setBounds(60,50,120,20); button1=new Button (确定); button1.setBounds(100,250,50,20); button2=new Button (取消); button2.setBounds(180,250,50,20); button1.addActionListener(this); button2.addActionListener(this); this.add(lab1); this.add(userid); this.add(lab2); this.add(passwords); this.add(lab3); this.add(chc,BorderLayout.NORTH); this.add(message); this.add(button1); this.add(button2); this.setVisible(true); this.addWindowListener(new WindowAdapter() public void windowClosing(WindowEvent e) System.exit(0); ); this.show(); public void actionPerformed(ActionEvent e) if(e.getSource()=button1) if(userid.getText().length()=0) message.setText(请输入用户名!); else if(passwords.getText().length()=0) message.setText(请输入密码!); else String userpower=chc.getSelectedItem(); if(userpower.equals(管理员) try String url=jdbc:odbc:高校宿舍管理; Class.forName(sun.jdbc.odbc.JdbcOdbcDriver); String sql=SELECT * FROM LoginIn where UserId=+userid.getText()+ and Passwords=+passwords.getText()+and UserPower=+chc.getSelectedItem()+; Connection con=DriverManager.getConnection(url,sa,123456); Statement stm=con.createStatement(); ResultSet rs=stm.executeQuery(sql); if(rs.next() new glylocate(); else message.setText(用户名或密码错误!); rs.close(); stm.close(); con.close(); catch(Exception err) err.printStackTrace(); else if(userpower.equals(学生) try String url=jdbc:odbc:高校宿舍管理; Class.forName(sun.jdbc.odbc.JdbcOdbcDriver); String sql=SELECT * FROM LoginIn where UserId=+userid.getText()+ and Passwords=+passwords.getText()+and UserPower=+chc.getSelectedItem()+; Connection con=DriverManager.getConnection(url,sa,123456); Statement stm=con.createStatement(); ResultSet rs=stm.executeQuery(sql); if(rs.next() new xshlocate(); else message.setText(用户名或密码错误!); rs.close(); stm.close(); con.close(); catch(Exception err) err.printStackTrace(); else if(userpower.equals(员工) try String url=jdbc:odbc:高校宿舍管理; Class.forName(sun.jdbc.odbc.JdbcOdbcDriver); String sql=SELECT * FROM LoginIn where UserId=+userid.getText()+ and Passwords=+passwords.getText()+and UserPower=+chc.getSelectedItem()+; Connection con=DriverManager.getConnection(url,sa,123456); Statement stm=con.createStatement(); ResultSet rs=stm.executeQuery(sql); if(rs.next() new ygonglocate(); else message.setText(用户名或密码错误!); rs.close(); stm.close(); con.close(); catch(Exception err) err.printStackTrace(); else message.setText(请选择权限!); else if(e.getSource()=button2) this.dispose();/关闭此窗口 public static void main(String args) gxssgl my=new gxssgl(); 子控模块:1.管理员界面代码:class glylocate extends Frame implements ActionListener private Label lab=new Label(高校宿舍管理系统,Label.CENTER); private MenuBar mb=new MenuBar(); private Menu menu1=new Menu(更改用户); private Menu menu2=new Menu(查询); private Menu menu3=new Menu(修改密码); private Menu menu4=new Menu(退出); private MenuItem mi1=new MenuItem(更改学生); private MenuItem mi2=new MenuItem(更改员工); private MenuItem mi7=new MenuItem(添加与删除学生); private MenuItem mi8=new MenuItem(添加与删除员工); private MenuItem mi3=new MenuItem(学生); private MenuItem mi4=new MenuItem(员工); private MenuItem mi9=new MenuItem(所有用户); private MenuItem mi10=new MenuItem(宿舍); private MenuItem mi5=new MenuItem(密码修改); private MenuItem mi6=new MenuItem(退出系统); public glylocate() super(管理员登陆); this.setBackground(Color.BLUE); mb.add(menu1); mb.add(menu2); mb.add(menu3); mb.add(menu4); menu1.add(mi1); menu1.add(mi2); menu1.add(mi7); menu1.add(mi8); menu2.add(mi3); menu2.add(mi4); menu2.add(mi10); menu2.add(mi9); menu3.add(mi5); menu4.add(mi6); mi1.addActionListener(this); mi2.addActionListener(this); mi3.addActionListener(this); mi4.addActionListener(this); mi5.addActionListener(this); mi6.addActionListener(this); mi7.addActionListener(this); mi8.addActionListener(this); mi9.addActionListener(this); mi10.addActionListener(this); lab.setFont(new Font(DIALOG,Font.PLAIN,24); this.add(lab); this.setSize(400,300); this.setMenuBar(mb); this.setVisible(true); this.addWindowListener(new WindowAdapter() public void windowClosing(WindowEvent e) System.exit(0); ); this.show(); public void actionPerformed(ActionEvent e) MenuItem mi=(MenuItem) e.getSource(); if(mi=mi1) new genggxsh(); else if(mi=mi2) new genggygong(); else if(mi=mi3) new chaxunxsh(); else if(mi=mi4) new chaxunygong(); else if(mi=mi5) new gaimi(); else if(mi=mi7) new tjyshchxsh(); else if(mi=mi9) new glychaxunyh(); else if(mi=mi8) new tjyshchygong(); else if(mi=mi10) new chaxunDorm(); else if(mi=mi6) this.dispose(); 2.学生登陆界面代码:class xshlocate extends Frame implements ActionListener private Label lab=new Label(高校宿舍管理系统,Label.CENTER); private MenuBar mb=new MenuBar(); private Menu menu1=new Menu(查询); private Menu menu2=new Menu(修改密码); private Menu menu3=new Menu(退出); private MenuItem mi1=new MenuItem(查询); private MenuItem mi2=new MenuItem(密码修改); private MenuItem mi3=new MenuItem(退出系统); public xshlocate() super(学生登陆); this.setBackground(Color.BLUE); mb.add(menu1); mb.add(menu2); mb.add(menu3); menu1.add(mi1); menu2.add(mi2); menu3.add(mi3); mi1.addActionListener(this); mi2.addActionListener(this); mi3.addActionListener(this); lab.setFont(new Font(DIALOG,Font.PLAIN,24); this.add(lab); this.setSize(400,300); this.setMenuBar(mb); this.setVisible(true); this.addWindowListener(new WindowAdapter() public void windowClosing(WindowEvent e) System.exit(0); ); this.show(); public void actionPerformed(ActionEvent e) MenuItem mi=(MenuItem) e.getSource(); if(mi=mi1) new chaxunxsh(); else if(mi=mi2) new gaimi(); else if(mi=mi3) this.dispose(); 3.员工登录界面代码:class ygonglocate extends Frame implements ActionListener private Label lab=new Label(高校宿舍管理系统,Label.CENTER); private MenuBar mb=new MenuBar(); private Menu menu1=new Menu(查询); private Menu menu2=new Menu(修改密码); private Menu menu3=new Menu(退出); private MenuItem mi1=new MenuItem(查询); private MenuItem mi2=new MenuItem(密码修改); private MenuItem mi3=new MenuItem(退出系统); public ygonglocate() super(员工登陆); this.setBackground(Color.BLUE); mb.add(menu1); mb.add(menu2); mb.add(menu3); menu1.add(mi1); menu2.add(mi2); menu3.add(mi3); mi1.addActionListener(this); mi2.addActionListener(this); mi3.addActionListener(this); lab.setFont(new Font(DIALOG,Font.PLAIN,24); this.add(lab); this.setSize(400,300); this.setMenuBar(mb); this.setVisible(true); this.addWindowListener(new WindowAdapter() public void windowClosing(WindowEvent e) System.exit(0); ); this.show(); public void actionPerformed(ActionEvent e) MenuItem mi=(MenuItem) e.getSource(); if(mi=mi1) new chaxunygong(); else if(mi=mi2) new gaimi(); else if(mi=mi3) this.dispose(); 原子模块:1.查询学生信息代码:class chaxunxsh extends Frame implements ActionListener private TextField textfield1;private TextField textfield2;private TextField textfield3;private TextField textfield4;private TextField textfield5;private TextField textfield6;private TextField textfield7;private TextField textfield8;private TextField textfield9;private TextField textfield10;private Label label1;private Label label2;private Label label3;private Label label4; private Label label5;private Label label6;private Label label7;private Label label8;private Label label9;private Label label10; private Label GreetingMsg; private Button button1; private Button button2; private Button button3; public chaxunxsh() super(查询学生信息); this.setLayout(null); this.setBackground(Color.cyan); this.setSize(700,500); label1=new Label(学号); label1.setBounds(60,100,60,20); textfield1=new TextField(20); textfield1.setBounds(120,100,120,20); label2=new Label(姓名); label2.setBounds(60,150,60,20); textfield2=new TextField(20); textfield2.setBounds(120,150,120,20); label3=new Label(性别); label3.setBounds(60,200,60,20); textfield3=new TextField(20); textfield3.setBounds(120,200,120,20); label4=new Label(宿舍号); label4.setBounds(60,250,60,20); textfield4=new TextField(20); textfield4.setBounds(120,250,120,20); label5=new Label(入学日期); label5.setBounds(60,300,60,20); textfield5=new TextField(20); textfield5.setBounds(120,300,120,20); label6=new Label(出生日期); label6.setBounds(300,100,60,20); textfield6=new TextField(20); textfield6.setBounds(360,100,120,20); label7=new Label(所学专业); label7.setBounds(300,150,60,20); textfield7=new TextField(20); textfield7.setBounds(360,150,120,20); label8=new Label(所在班级); label8.setBounds(300,200,60,20); textfield8=new TextField(20); textfield8.

温馨提示

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

评论

0/150

提交评论