ImageVerifierCode 换一换
格式:DOCX , 页数:17 ,大小:167.20KB ,
资源ID:4584896      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/4584896.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(学籍管理系统详细设计方案和对策.docx)为本站会员(b****6)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

学籍管理系统详细设计方案和对策.docx

1、学籍管理系统详细设计方案和对策 编号 003 版本 1.0 详 细 设 计 说 明 书 项目名称 学生成绩管理系统 项目负责人 组 员 2013年 6月 10 日学籍管理系统详细设计说明书1 引言1.1 编写目的 依据学生成绩管理系统的需求分析和总体设计详细说明学生管理系统各个层次中的每个程序和数据库系统的设计考虑,为后期程序员编码提供依据。其中重点说明学生管理系统各个模块的执行流程和数据库系统的详细设计。1.2 背景 系统名称:学生信息管理系统 由于学校的规模不断扩大,使得人工管理学生成绩变得越来越低效,故开发此系统提高工作效率。该系统是基于C/S构架的桌面客户端软件,使用对象为学生和教师,

2、学生用来查询个人成绩,教师通过软件录入各个学生的信息1.3 参考资料1张海藩.软件工程导论第五版.清华大学出版社.20081.4 术语定义及说明 成绩管理:对学生的基本信息、课程选择、成绩的录入、修改、删除、查询等一系列的操作。JRE Java Runtime Environment2 设计概述2.1 任务和目标2.1.1 需求概述业务需求:学生使用各自的账号密码登入查询成绩,老师使用管理员权限可以录入和修改信息。学生: 输入:学生账号,密码,身份 输出:学生的个人信息界面教师:输入:管理员账号,密码,身份输出:管理系统界面主要功能:能够实现管理员和学生对成绩的管理,即完成一些基本的功能,查询

3、,删除,添加,修改等,也要实现成绩的统计,并且能对用户指定的任意课程名,按成绩升序或降序排列学生数据并显示排序结果,同时也要实现权限的管理性能需求: a 响应时间:少于3秒 b 更新处理时间:少于2秒 c 数据的转换和传送时间少于5秒 说明对该软件的灵活性的要求,即当需求发生某些变化时,该软件对这些变化的适应能力,a 操作方式上的变化:更人性化b 运行环境的变化:在windowsXP或以上的版本都能运行2.1.2 运行环境概述操作系统:windows 7数据库系统:文本文档软件环境:JRE配置要求:需将JRE路径配置到系统环境变量中2.1.3 条件与限制1) 由于系统较小,且在Windows7

4、系统下开发,故在Windows环境下运行没有什么限制。2) 学生的一些私人信息必须要保护好。3) 该系统要受资金、寿命、社会等系列因素的制约和限制。4) 界面风格上受到Java特有风格的限制2.1.4 详细设计方法和工具设计方法:数据流程图工具:rational rose3 系统详细需求分析3.1 详细需求分析功能需求分析:(1)信息维护:实现学生信息维护,包括增加学生信息,删除学生信息,修改学生信息(2)信息查询:实现按姓名查询,按学号查询(3)成绩统计:输入任意一个课程名和一个分数段,统计在此分数段的学生情况(4)排序:用户指定的任意课程名,按成绩升序或降序排列学生数据并显示排序结果(使用

5、表格的形式显示排序后的输出结果)性能需求分析:(1)数据精确度:所有在相应域中包含查询关键字的记录都应被查到同时保证准确率 (2)时间特性:响应在一秒以内(3)适应性:满足运行环境在允许操作系统之间的安全转换(4)灵活性:在需求发生变化时,本系统的对这些变化的适应能力相对而言是比较强的,包括操作方式上的变化;运行环境的变化系统运行环境和限制条件分析: (1)硬件奔腾处理器以上的均可,操作系统XP以上均可 (2)安装了JRE的都可以,JRE基本都可以安装3.2 接口需求分析硬件接口: 支持一般的P II获更高档微机,笔记本电脑软件接口:在这里主要考虑软件与操作系统的接口,可运行于多种操作系统之上

6、。考虑到文档处理的需要有可能可以包括与较常用的办公软件的接口4 总体方案确认4.1 系统总体结构确认系统组成确认:系统结构确认:学生表 课程表 成绩表 每个数据项都可以直接通过相关文件更新。查询时,也可以直观的在页面输入查询条件,就可得到结果系统工作流程确认: 业务流程4.2 系统详细界面划分系统界面主要由前台登陆界面和后台功能界面组成,登陆界面负责确认信息,功能界面负责主要功能的实现登陆界面:包括简单的信息录入,确认功能界面:包括信息维护,信息查询,成绩统计,排序功能选项,同时提供退出和注销功能界面的功能都通过后台数据库的交互来实现各自的功能,其中使用数据库提供的接口来实现查询,删除功能5

7、系统详细设计5.1 系统结构设计及子系统划分系统结构设计:前端: 登陆模块 功能模块后端: 数据库模块子系统划分:前端功能模块划分:信息维护,信息查询,成绩统计,排序,排名系统后端数据库模块划分:查找,删除,更新,插入,排序5.2 系统功能模块详细设计模块名称:查找(由于模块较多(详见代码),仅举一例)输入:学生姓名处理: public static String queryBySname(String sname) throws IOException RandomAccessFile rf = readFile(STable); long pos; int where = 0 ; Stri

8、ng who = sname ; ArrayList res = new ArrayList(); pos = check(STable, 0, where, who); while (pos = 0) rf.seek(pos); String line = myReadLine(rf); String atbs = line.split(,); String eles = queryBySnum(atbs1); for (int i = 0; i = 0) return -2; RandomAccessFile rf = readFile(STable); int iarr1 = 0 ; S

9、tring sarr1 = num ; long tmppos; RandomAccessFile tmprf = readFile(SCTable); tmppos = check(SCTable, 0, iarr1, sarr1); while (tmppos = 0) tmprf.seek(tmppos); myReadLine(tmprf); delete(SCTable, tmppos, tmprf.getFilePointer(); tmppos = check(SCTable, tmppos, iarr1, sarr1); tmprf.close(); int cols = 1

10、; String values = num ; long pos = check(STable, 0, cols, values); if (pos = 0) rf.seek(pos); myReadLine(rf); delete(STable, pos, rf.getFilePointer(); else rf.close(); return -3; rf.close(); return 0; 算法描述:按学号删除学生表中的一行输出: 操作成功 0学号不存在 -3数据不能包含逗号 -2/模块名称: 更新输入:姓名,学号 处理:public static int updateStudent(

11、String name, String num) throws IOException if (name.indexOf(,) = 0 | num.indexOf(,) = 0) return -2; RandomAccessFile rf = readFile(STable); int cols = 1 ; String values = num ; long pos = check(STable, 0, cols, values); if (pos = 0) rf.seek(pos); myReadLine(rf); update(STable, pos, rf.getFilePointe

12、r(), name + , + num + System.getProperty(line.separator); else rf.close(); return -3; rf.close(); return 0; 算法描述:按学号更新学生表中的一行输出:操作成功 0学号不存在 -3数据不能包含逗号 -2 /模块名称:插入输入:姓名,学号处理:public static int insertStudent(String name, String num) throws IOException if (name.indexOf(,) = 0 | num.indexOf(,) = 0) retur

13、n -2; RandomAccessFile rf = readFile(STable); int cols = 1 ; String values = num ; if (check(STable, 0, cols, values) 0) insert(STable, rf.length(), name + , + num + System.getProperty(line.separator); else rf.close(); return -1; rf.close(); return 0; 算法描述:往学生表中插入一行信息输出: 操作成功 0学号已存在 -1数据不能包含逗号 -2模块名

14、称:排序输入:学生成绩表处理:public static String quickSortCourse(String cname) throws IOException String res = queryCourseWithLimit(cname, 0, 100); myPartition(res, 0, res.length-1); return res; /快排函数 private static void myPartition(String data, int low, int high) / 枢纽元,一般以第一个元素为基准进行划分 int i = low; int j = high;

15、 if (low high) / 从数组两端交替地向中间扫描 String pivotKey = datalow; / 进行扫描的指针i,j;i从左边开始,j从右边开始 while (i j) while (i = Integer .parseInt(pivotKey3) j-; / end while if (i j) / 比枢纽元素小的移动到左边 datai = dataj; i+; / end if while (i j & Integer.parseInt(datai3) = Integer .parseInt(pivotKey3) i+; / end while if (i j) /

16、 比枢纽元素大的移动到右边 dataj = datai; j-; / end if / end while / 枢纽元素移动到正确位置 datai = pivotKey; / 前半个子表递归排序 myPartition(data, low, i - 1); / 后半个子表递归排序 myPartition(data, i + 1, high); / end if 算法描述:按照课程名查询目标课程的所有成绩信息并按升序用快速排序算法排序, 每条记录包含四个属性,分别为姓名、学号、课程名、成绩输出:无输出5.3 系统界面详细设计模块名称:登陆输入:用户名,密码,权限处理:boolean correc

17、t(String s1,String s2,String s3) try FileReader in = new FileReader(s3+.txt); String str = ; int c; while(c = in.read()!=-1) str+=(char)c; String s = str.split( ); for(int i = 0;i s.length;i = i+2) if(si.equals(s1)&si+1.equals(s2) in.close(); return true; in.close(); return false; catch(Exception e)

18、 return true; / public void actionPerformed(ActionEvent e) if(JButton)e.getSource().getText().equals(登录) if(name.getText().isEmpty()|password.getText().isEmpty() JOptionPane.showMessageDialog(jf,请输入信息!); else if(!correct(name.getText(),password.getText(),(String)jcb.getSelectedItem() name.setText();

19、 password.setText(); JOptionPane.showMessageDialog(jf,用户名或密码错误!); else jf.dispose(); String s = null; if(jcb.getSelectedItem().equals(学生) s = name.getText(); ManagerSystem m = new ManagerSystem(s); if(JButton)e.getSource().getText().equals(退出) System.exit(0); 算法描述:判断用户名密码的正确性,三个参数为用户名、密码、权限事件监听器,判断是否成功登录或者退出系统输出:退出按钮-退出 登陆按钮-正确进入系统,错误报错管理系统主界面较复杂使用流程图表示学生流程图 管理员流程图

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1