学籍管理系统详细设计方案_第1页
学籍管理系统详细设计方案_第2页
学籍管理系统详细设计方案_第3页
学籍管理系统详细设计方案_第4页
学籍管理系统详细设计方案_第5页
已阅读5页,还剩6页未读 继续免费阅读

下载本文档

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

文档简介

...wd......wd......wd...编号003版本1.0详细设计说明书工程名称学生成绩管理系统工程负责人组员2013年6月10日学籍管理系统详细设计说明书目录学籍管理系统详细设计说明书11引言21.1编写目的21.2背景21.3参考资料21.4术语定义及说明22设计概述32.1任务和目标32.1.1需求概述32.1.2运行环境概述32.1.3条件与限制32.1.4详细设计方法和工具43系统详细需求分析43.1详细需求分析43.2详细系统运行环境及限制条件分析接口需求分析44总体方案确认54.1系统总体构造确认54.2系统详细界面划分75系统详细设计75.1系统构造设计及子系统划分75.2系统功能模块详细设计75.3系统界面详细设计12引言编写目的 依据学生成绩管理系统的需求分析和总体设计详细说明学生管理系统各个层次中的每个程序和数据库系统的设计考虑,为后期程序员编码提供依据。其中重点说明学生管理系统各个模块的执行流程和数据库系统的详细设计。背景系统名称:学生信息管理系统由于学校的规模不断扩大,使得人工管理学生成绩变得越来越低效,故开发此系统提高工作效率。该系统是基于C/S构架的桌面客户端软件,使用对象为学生和教师,学生用来查询个人成绩,教师通过软件录入各个学生的信息参考资料[1]张海藩.软件工程导论第五版.清华大学出版社.2008术语定义及说明成绩管理:对学生的基本信息、课程选择、成绩的录入、修改、删除、查询等一系列的操作。JREJavaRuntimeEnvironment设计概述任务和目标需求概述业务需求:学生使用各自的账号密码登入查询成绩,教师使用管理员权限可以录入和修改信息。学生:输入:学生账号,密码,身份 输出:学生的个人信息界面教师:输入:管理员账号,密码,身份输出:管理系统界面主要功能:能够实现管理员和学生对成绩的管理,即完成一些基本的功能,查询,删除,添加,修改等,也要实现成绩的统计,并且能对用户指定的任意课程名,按成绩升序或降序排列学生数据并显示排序结果,同时也要实现权限的管理性能需求:a.响应时间:少于3秒b.更新处理时间:少于2秒c.数据的转换和传送时间少于5秒说明对该软件的灵活性的要求,即当需求发生某些变化时,该软件对这些变化的适应能力,a.操作方式上的变化:更人性化b.运行环境的变化:在windowsXP或以上的版本都能运行运行环境概述操作系统:windows7数据库系统:文本文档软件环境:JRE配置要求:需将JRE路径配置到系统环境变量中条件与限制由于系统较小,且在Windows7系统下开发,故在Windows环境下运行没有什么限制。学生的一些私人信息必须要保护好。该系统要受资金、寿命、社会等系列因素的制约和限制。界面风格上受到Java特有风格的限制详细设计方法和工具设计方法:数据流程图工具:rationalrose系统详细需求分析详细需求分析功能需求分析:信息维护:实现学生信息维护,包括增加学生信息,删除学生信息,修改学生信息信息查询:实现按姓名查询,按学号查询成绩统计:输入任意一个课程名和一个分数段,统计在此分数段的学生情况排序:用户指定的任意课程名,按成绩升序或降序排列学生数据并显示排序结果〔使用表格的形式显示排序后的输出结果〕性能需求分析:(1)数据准确度:所有在相应域中包含查询关键字的记录都应被查到同时保证准确率(2)时间特性:响应在一秒以内适应性:满足运行环境在允许操作系统之间的安全转换灵活性:在需求发生变化时,本系统的对这些变化的适应能力相对而言是比较强的,包括操作方式上的变化;运行环境的变化系统运行环境和限制条件分析:(1)硬件奔腾处理器以上的均可,操作系统XP以上均可(2)安装了JRE的都可以,JRE基本都可以安装接口需求分析硬件接口:支持一般的PII获更高档微机,笔记本电脑软件接口:在这里主要考虑软件与操作系统的接口,可运行于多种操作系统之上。考虑到文档处理的需要有可能可以包括与较常用的办公软件的接口总体方案确认系统总体构造确认系统组成确认:成绩管理系统成绩管理系统取得数据输出结果计算成绩系统构造确认:学生表字段名字段名数据类型主键姓名学号YStringString课程表字段名字段名数据类型主键学分课程名YStringdouble成绩表字段名字段名数据类型主键课程名学号YStringString字段名数据类型主键YString成绩intY每个数据项都可以直接通过相关文件更新。查询时,也可以直观的在页面输入查询条件,就可得到结果系统工作流程确认:输入、管理学籍数据管理员输入、管理学籍数据管理员数据库数据库IIn/out业务逻辑业务逻辑读取学籍数据用户读取学籍数据用户业务流程系统详细界面划分系统界面主要由前台登陆界面和后台功能界面组成,登陆界面负责确认信息,功能界面负责主要功能的实现登陆界面:包括简单的信息录入,确认功能界面:包括信息维护,信息查询,成绩统计,排序功能选项,同时提供退出和注销功能界面的功能都通过后台数据库的交互来实现各自的功能,其中使用数据库提供的接口来实现查询,删除功能系统详细设计系统构造设计及子系统划分系统构造设计:前端:登陆模块功能模块后端:数据库模块子系统划分:前端功能模块划分:信息维护,信息查询,成绩统计,排序,排名系统后端数据库模块划分:查找,删除,更新,插入,排序系统功能模块详细设计模块名称:查找(由于模块较多(详见代码),仅举一例)输入:学生姓名处理:publicstaticString[][]queryBySname(Stringsname)throwsIOException{ RandomAccessFilerf=readFile(STable);longpos;int[]where={0}; String[]who={sname};ArrayListres=newArrayList(); pos=check(STable,0,where,who);while(pos>=0){ rf.seek(pos); Stringline=myReadLine(rf); String[]atbs=line.split(","); String[][]eles=queryBySnum(atbs[1]);for(inti=0;i<eles.length;i++)res.add(eles[i]); pos=check(STable,rf.getFilePointer(),where,who); } rf.close();returncastToStringArray(res); }算法描述:按照姓名查询目标学生的所有信息输出:姓名,学号,课程名,成绩//模块名称:删除输入:学号处理:publicstaticintdeleteStudent(Stringnum)throwsIOException{if(num.indexOf(',')>=0)return-2; RandomAccessFilerf=readFile(STable);int[]iarr1={0}; String[]sarr1={num};longtmppos; RandomAccessFiletmprf=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}; String[]values={num};longpos=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();return0; }算法描述:按学号删除学生表中的一行输出: 操作成功0学号不存在-3数据不能包含逗号-2//模块名称:更新输入:姓名,学号处理:publicstaticintupdateStudent(Stringname,Stringnum)throwsIOException{if(name.indexOf(',')>=0||num.indexOf(',')>=0)return-2; RandomAccessFilerf=readFile(STable);int[]cols={1}; String[]values={num};longpos=check(STable,0,cols,values);if(pos>=0){ rf.seek(pos);myReadLine(rf);update(STable,pos,rf.getFilePointer(), name+","+num+System.getProperty("line.separator")); }else{ rf.close();return-3; } rf.close();return0; }算法描述:按学号更新学生表中的一行输出:操作成功0学号不存在-3数据不能包含逗号-2 //模块名称:插入输入:姓名,学号处理:publicstaticintinsertStudent(Stringname,Stringnum)throwsIOException{if(name.indexOf(',')>=0||num.indexOf(',')>=0)return-2; RandomAccessFilerf=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();return0; }算法描述:往学生表中插入一行信息输出:操作成功0学号已存在-1数据不能包含逗号-2模块名称:排序输入:学生成绩表处理:publicstaticString[][]quickSortCourse(Stringcname)throwsIOException{ String[][]res=queryCourseWithLimit(cname,0,100);myPartition(res,0,res.length-1);returnres; }//快排函数privatestaticvoidmyPartition(String[][]data,intlow,inthigh){//枢纽元,一般以第一个元素为基准进展划分inti=low;intj=high;if(low<high){//从数组两端交替地向中间扫描 String[]pivotKey=data[low];//进展扫描的指针i,j;i从左边开场,j从右边开场while(i<j){while(i<j &&Integer.parseInt(data[j][3])>=Integer .parseInt(pivotKey[3])){ j--; }//endwhileif(i<j){//比枢纽元素小的移动到左边 data[i]=data[j]; i++; }//endifwhile(i<j &&Integer.parseInt(data[i][3])<=Integer .parseInt(pivotKey[3])){ i++; }//endwhileif(i<j){//比枢纽元素大的移动到右边 data[j]=data[i]; j--; }//endif }//endwhile//枢纽元素移动到正确位置 data[i]=pivotKey;//前半个子表递归排序myPartition(data,low,i-1);//后半个子表递归排序myPartition(data,i+1,high); }//endif }算法描述:按照课程名查询目标课程的所有成绩信息并按升序用快速排序算法排序, 每条记录包含四个属性,分别为姓名、学号、课程名、成绩输出:无输出系统界面详细设计模块名称:登陆输入:用户名,密码,权限处理:booleancorrect(Strings1,Strings2,Strings3){try{ FileReaderin=newFileReader(s3+".txt"); Stringstr="";intc;while((c=in.read())!=-1) str+=(char)c; String[]s=str.split("");for(inti=0;i<s.length;i=i+2){if(s[i].equals(s1)&&s[i+1].equals(s2)){ in.close();returntrue; } } in.close();returnfalse; }catch(Exceptione){ }returntrue; }//publicvoidactionPerformed(ActionEvente){if(((JButton)e.getSource()).getText().equals("登录")){if(name.getText().isEmpty()||password.getText().isEmpty()) JOptionPane.showMessageDialog(jf,"请输入信息!");elseif(!correct(name.getText(),password.getText(),(String)jcb.getSelectedItem())){name.setText("");password.setText(""); JOptionPane.showMessageDialog(jf,"用户名或密码错误!"); }else{jf.dispose(); Strings=null;if(jcb.getSelectedItem().equals("学生")) s=name.getText(); ManagerSystemm=newManagerSystem(s)

温馨提示

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

评论

0/150

提交评论