学生信息管理系统(李建军).doc_第1页
学生信息管理系统(李建军).doc_第2页
学生信息管理系统(李建军).doc_第3页
学生信息管理系统(李建军).doc_第4页
学生信息管理系统(李建军).doc_第5页
已阅读5页,还剩10页未读 继续免费阅读

下载本文档

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

文档简介

学生信息管理系统一 需求分析1、编写目的为了明确软件需求、安排项目规划与进度、组织软件开发与测试,撰写本文档。本文档供项目经理、设计人员、开发人员参考。2、项目背景使用计算机对学生信息进行管理,拥有手工管理所无法比拟的优点。例如:检索迅速、查找方便、可靠性高、存储量大、成本低等。这些优点能够极大地提高学生信息的效率,也是管理科学化、正规化的重要支撑。学生信息管理系统能够方便地查询和变更学生的基本数据(包括学籍数据和成绩数据),节省大量工作时间,有效地提高学生信息管理的效率。而查询信息的直观显示将有助于系统的用户一目了然地掌握学生的情况。3、开发计划a. 分阶段完成任务:第一阶段实现快速界面原型,并进行相应的补充修改以满足客户的需求;第二阶段完成界面的进一步设计求精,形成最终的设计样式;第三阶段:完成数据库的开发;第四阶段:整合管理系统并进行各项测试改正出现的各种问题。4、运行环境 开发语言:java 数据库:Hslqdb5、条件与限制 严格进行权限管理,分为学生,教师和管理员三种用户权限。登录需要对应的用户名和密码,并且密码进行了MD5加密,这样才能保证系统的安全性和可靠性。学生权限可以查看个人的信息,可以选课,查看成绩;教师可以查看个人信息,查看任课课程,成绩录入以及任课成绩的统计等;管理员可以进行人员信息的查看,增删以及修改,可以对学生的学籍进行管理,如转专业等,可以进行相关的人员统计等。6、功能需求学生信息管理系统个人信息管理课程管理成绩管理统计管理学籍管理系统管理查看个人信息修改个人信息用户口令修改增加,删除个人信息课程安排管理学生选课管理相应课程的查看管理成绩录入成绩查看学业警告学生人员统计教师人员统计成绩统计学籍异动机构管理注销系统退出系统7、性能需求主要性能要求 n 直观形象的操作界面 n 输入数据 设定及限制(格式、字符串、数值、日期、唯一数据)n 因权限控制或条件不满足时,相关命令按钮自动禁用n 添加新记录可以不离开编辑界面连续进行n 数据内容变化后要及时准确地反映在显示界面上n 提示信息n 菜单项启动所有功能n 使用稳定,操作性能好,操作方法易于掌握,系统的安全性强。安全性要求比较高二 概要设计1、总体设计 1. 图书馆管理系统数据流图用户登录用户信息管理课程管理成绩管理统计管理学籍管理查看任课安排成绩录入成绩统计查看成绩选课管理员老师学生/系统用户数据/教师数据/课程数据/成绩表数据/教师数据/学生数据/学生数据,机构数据/成绩表数据/课程数据 2、系统的E-R图管理员编号口令教师工号口令管理学生姓名学号专业学院班级课程所属学院学分课程名称课程号社查询选择安排口令成绩录入分数查询三 详细设计1、数据库设计(本系统使用数据库引擎为HSQLDB)A、学院数据表(college)结构: 名称字段名称类型主键外键非空学院名称collegenamevarcharYY学院编号collegeidintegerYB、专业数据表(major)结构: 名称字段名称类型主键外键非空专业名称majornamevarcherYY专业编号majoridintegerY学院名称collegenamevarcharYYC、 年级,班级数据表(grades)结构 名称字段名称类型主键外键非空年级gradeintegerYY学院名称collegenamevarcharYYY专业名称majornamevarcharYYY班级名称classnamevarcharYYD、教师教研室数据表(depart)结构 名称字段名称类型主键外键非空教研室名称departmentvarcharYY教研室编号departidintegerY学院名称collegenamevarcharYE、学生数据表(students)结构名称字段名称类型主键外键非空学号studentidvarcharYY姓名studentnamevarcharY性别sexvarchar民族nationvarchar生日birthdayvarchar学院名称collegenamevarcharY专业名称majornamevarcharY年级gradeinteger班级名称classnamevarchar密码passwordvarcharY省份provincevarchar城市cityvarchar地址addressvarchar备注demovarcharF、教师数据表(teachers)结构 名称字段名称类型主键外键非空工号teacheridvarcharYY姓名teachernamevarcharY性别sexvarchar民族nationvarchar生日birthdayvarchar学院名称collegenamevarcharY教研室名称departmentvarcharY职称statusvarchar省份provincevarchar城市cityvarchar地址addressvarchar密码passwordvarcharY备注demovarcharG、管理员数据表(admins)结构 名称字段名称类型主键外键非空管理员编号adminidvarcharYY管理员姓名adminnamevarcharY密码passwordvarcharYH、课程数据表(course)结构:名称字段名称类型主键外键非空课程名称coursenamevarcharYY课程编号courseidintegerY课程学分scoreintegerY学院名称collegenamevarcharYI、选课数据表(selectcourse)结构:名称字段名称类型主键外键非空课程名称coursenamevarcharYYY学号studentidvarcharYYY工号teacheridvarcharY成绩scoreintegerJ、教师任课数据表(teachcourse)结构:名称字段名称类型主键外键非空课程名称coursenamevarcharYYY工号teacheridvarcharYYYK、成绩数据表(coursescore)结构:名称字段名称类型主键外键非空学号studentidvarcharYYY课程名称coursenamevarcharYYY工号teacheridvarcharY分数scoreinteger重修courseagainvarchar 2、程序界面(GUI)的设计(部分截图)登陆界面:进入主界面:选课界面:查看成绩界面:成绩统计界面:修改个人信息界面:学籍异动和机构管理界面:人员统计界面:3、代码程序设计(主要代码)A、数据库连接代码:import java.sql.*;public class hsqldbcon private Statement stmt; private Connection theConnection; private String theDataSource; private String thePassword; private ResultSet rs; private String theUser; hsqldbcon() theDataSource=jdbc:hsqldb:file:D:mystudentschool; theUser=sa;/数据库的用户名 thePassword=; /数据库的密码 try Class.forName(org.hsqldb.jdbcDriver ); catch (ClassNotFoundException e) System.out.println(ERROR: failed to load HSQLDB JDBC driver.); try /建立数据库的连接。 theConnection=DriverManager.getConnection(theDataSource, theUser, thePassword); stmt=theConnection.createStatement(); catch (SQLException e) System.out.println(Error:+e.getMessage (); public Statement GetStatement() return stmt; public Connection GetConnection() return theConnection; public ResultSet myexcutequery(String sql) try rs=stmt.executeQuery(sql); catch (SQLException e) System.out.println(Error:+e.getMessage (); return rs; public int myexcuteupdate(String sql) try int count= stmt.executeUpdate(sql); return count; catch (SQLException e) System.out.println(Error:+e.getMessage (); return 0; B、密码加密代码:import java.security.MessageDigest;public class MyMD5 /十六进制下数字到字符的映射数组 private final static String hexDigits =0, 1, 2, 3, 4, 5, 6, 7, 8, 9, a, b, c, d, e, f; /* */* 把inputString加密 */ public static String createPassword(String inputString) return encodeByMD5(inputString); /* */* * 验证输入的密码是否正确 * param password 真正的密码(加密后的真密码) * param inputString 输入的字符串 * return 验证结果,boolean类型 */ public static boolean authenticatePassword(String password, String inputString) if(password.equals(encodeByMD5(inputString) return true; else return false; /* */* 对字符串进行MD5加密 */ private static String encodeByMD5(String originString) if (originString != null) try /创建具有指定算法名称的信息摘要 MessageDigest md = MessageDigest.getInstance(MD5); /使用指定的字节数组对摘要进行最后更新,然后完成摘要计算 byte results = md.digest(originString.getBytes(); /将得到的字节数组变成字符串返回 String resultString = byteArrayToHexString(results); return resultString.toUpperCase(); catch(Exception ex) ex.printStackTrace(); return null; /* */* * 转换字节数组为十六进制字符串 * param b 字节数组 * return 十六进制字符串 */ private static String byteArrayToHexString(byte b) StringBuffer resultSb = new StringBuffer(); for (int i = 0; i b.length; i+) resultSb.append(byteToHexString(bi); return resultSb.toString(); /* */* 将一个字节转化成十六进制形式的字符串 */ private static String byteToHexString(byte b) int n = b; if (n 0) n = 256 + n; int d1 = n / 16; int d2 = n % 16; return hexDigitsd1 + hexDigitsd2; C、时间格式的认证,正则表达式:import java.util.regex.Matcher;import java.util.regex.Pattern;public class DateRegex private String Date; DateRegex(String text) Date=text; public boolean MyDateRegex() String DatePattern = (?:(0-94-(?:(?:0?1,3-9|10-2)-(?:29|30)| + (?:0?13578|102)-31)| + (0-94-(?:0?1-9|10-2)-(?:0?1-9|1d|20-8)| + (?:(dd(?:048|2468048|1357926)| + (?:04800|246804800|135792600)-0?2-29)$; Pattern p = Ppile(DatePattern); Matcher m = p.matcher(Date); boolean b = m.matches(); return b; 四 调试分析1、调试过程以及心得这次信息系统课程设计使用的语言是java,前台工具是NetBeans,数据库是Hslqdb。虽然以前未曾学过,但是由于有了数据库系统概论的课程设计的经验,已经有Visual C+,C+ Builder的IDE的使用经验,所以本次课程设计进行得还算十分顺利。当然啦,由于能力有限,已经相关的经验欠缺,这个系统无论是从需求分析上,还是从数据库设计上,乃至GUI设计,代码编写都存在着许多不足。这是我们要继续努力的地方。五 用户使用说明1、登录程序一开始运行现进入登录界面(界面详细见GUI设计)。用户根据自己的身份来进行登录验证。登陆数据:学生 :学号05011001 密码123456 ;老师:110001 密码:123456;管理员:1000 密码123456. 2、主功能界面根据进入系统的相应角色的权限,系统会屏蔽相应的功能。一、学生角色A【信息管理】|【查看个人信息】可以查看到自己在系统上的信息B、【信息管理】|【修改密码】可以修改自己的系统的登陆密码C、【课程管理】|【学生选课】可以进行与自己相关的课程的选择以及退选等功能D、【课程管理】|【查看已选课程】可以查看自己已经选择的课程E、【成绩管理】|【查看成绩】可以查看自己所修课程的所有成绩F、【成绩管理】|【学业警告】可以查看自己所有未通过的课程二、教师角色A【信息管理】|【查看个人信息】可以查看到自己在系统上的信息B、【信息管理】|【修改密码】可以修改自己的系统的登陆密码C、【课程管理】|【查看所教课程】可以查看自己的任课课程以及选课的学生D、【成绩管理】|【成绩录入】可以给学生进行打分E、【统计】|【成绩统计】可以统计自己所教课程的及格率等信息三、管理员角色A、【信息管理】|【修改密码】可以修改自己系统的登陆密码B、【信息管理】|【修改个人信息】可以修改系统中学生,老师的相关信息C、【信息管理】|【删除个人信息】可以删除系统中学生,老师的相关信息D、【信息管理】|【增加个人信息】可以增加系统中学生,老师的相关信息F、【课程管理】|【教师任课安排】可以对教师进行

温馨提示

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

评论

0/150

提交评论