学籍管理系统详细设计方案

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
}
rf.close();
returncastToStringArray(res);
}
算法描述:按照姓名查询目标学生的所有信息
输出: 姓名,学号,课程名,成绩
//
模块名称:删除
输入:学号
处理:
publicstaticintdeleteStudent(String num)throwsIOException {
}else{
rf.close();
return-3;
}
rf.close();
return0;
}
算法描述:按学号更新学生表中的一行
输出:
操作成功 0
学号不存在 -3
数据不能包含逗号 -2
//
模块名称:插入
输入:姓名,学号
处理:
publicstaticintinsertStudent(String name, String num)
myPartition(res, 0, res.length-1);
returnres;
}
//快排函数
privatestaticvoidmyPartition(String[][] data,intlow,inthigh) {
// 枢纽元,一般以第一个元素为基准进行划分
inti = low;
intj = high;
if(check(STable, 0, cols, values) < 0) {
insert(STable, rf.length(),
name +","+ num + System.getProperty("line.separator"));
}else{
rf.close();
return-1;
}
rf.close();
if(low < high) {
// 从数组两端交替地向中间扫描
String[] pivotKey = data[low];
// 进行扫描的指针i,j;i从左边开始,j从右边开始
while(i < j) {
while(i < j
&& Integer.parseInt(data[j][3]) >= Integer
}else{
rf.close();
return-3;
}
rf.close();
return0;
}
算法描述:按学号删除学生表中的一行
输出:
操作成功 0
学号不存在 -3
数据不能包含逗号 -2
//
模块名称: 更新
输入:姓名,学号
处理:
publicstaticintupdateStudent(String name, String num)
JOptionPane.showMessageDialog(jf,"请输入信息!");
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"));
.parseInt(pivotKey[3])) {
j--;
}// end while
if(i < j) {
// 比枢纽元素小的移动到左边
data[i] = data[j];
i++;
}// end if
while(i < j
&& Integer.parseInt(data[i][3]) <= Integer
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);
后端数据库模块划分:查找,删除,更新,插入,排序
5.2
模块名称:查找(由于模块较多(详见代码),仅举一例)
输入:学生姓名
处理:
publicstaticString[][]queryBySname(String sname)throwsIOException {
RandomAccessFile rf =readFile(STable);
4
4.1
系统组成确认:
系统结构确认:
学生表
课程表
成绩表
每个数据项都可以直接通过相关文件更新。查询时,也可以直观的在页面输入查询条件,就可得到结果
系统工作流程确认:
业务流程
4.2
系统界面主要由前台登陆界面和后台功能界面组成,登陆界面负责确认信息,功能界面负责主要功能的实现
登陆界面:
包括简单的信息录入,确认
longpos;
int[] where = { 0 };
String[] who = { sname };
ArrayListres =newArrayList();
pos =check(STable, 0, where, who);
while(pos >= 0) {
rf.seek(pos);
String line =myReadLine(rf);
.parseInt(pivotKey[3])) {
i源自文库+;
}// end while
if(i < j) {
// 比枢纽元素大的移动到右边
data[j] = data[i];
j--;
}// end if
}// end while
// 枢纽元素移动到正确位置
data[i] = pivotKey;
// 前半个子表递归排序
myPartition(data, low, i - 1);
// 后半个子表递归排序
myPartition(data, i + 1, high);
}// end if
}
算法描述:按照课程名查询目标课程的所有成绩信息并按升序用快速排序算法排序,
每条记录包含四个属性,分别为姓名、学号、课程名、成绩
输出:无输出
3)该系统要受资金、寿命、社会等系列因素的制约和限制。
4)界面风格上受到Java特有风格的限制
2.1.4
设计方法:数据流程图
工具:rational rose
3
3.1
功能需求分析:
(1)
(2)
(3)
(4)
性能需求分析:
(1)数据精确度:所有在相应域中包含查询关键字的记录都应被查到同时保证准确率
(2)时间特性:响应在一秒以内
(3)
(4)
系统运行环境和限制条件分析:
(1)硬件奔腾处理器以上的均可,操作系统XP以上均可
(2)安装了JRE的都可以,JRE基本都可以安装
3.2
硬件接口: 支持一般的P II获更高档微机,笔记本电脑
软件接口:在这里主要考虑软件与操作系统的接口,可运行于多种操作系统之上。考虑到文档处理的需要有可能可以包括与较常用的办公软件的接口
编号003
版本1.0
详细设计说明书
项目名称学生成绩管理系统
项目负责人
组员
2013年6月10日
学籍管理系统详细设计说明书
1
1.1
依据
其中重点说明学生管理系统各个模块的执行流程和数据库系统的详细设计。
1.2
由于学校的规模不断扩大,使得人工管理学生成绩变得越来越低效,故开发此系统提高工作效率。该系统是基于C/S构架的桌面客户端软件,使用对象为学生和教师,学生用来查询个人成绩,教师通过软件录入各个学生的信息
5.3
模块名称:登陆
输入:用户名,密码,权限
处理:
booleancorrect(String s1,String s2,String s3){
try{
FileReader in =newFileReader(s3+".txt");
String str ="";
intc;
while((c = in.read())!=-1)
throwsIOException {
if(name.indexOf(',') >= 0 || num.indexOf(',') >= 0)
return-2;
RandomAccessFile rf =readFile(STable);
int[] cols = { 1 };
String[] values = { num };
return0;
}
算法描述:往学生表中插入一行信息
输出:
操作成功 0
学号已存在 -1
数据不能包含逗号 -2
模块名称:排序
输入:学生成绩表
处理:
publicstaticString[][]quickSortCourse(String cname)throwsIOException {
String[][] res =queryCourseWithLimit(cname, 0, 100);
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();
if(num.indexOf(',') >= 0)
return-2;
RandomAccessFile rf =readFile(STable);
int[] iarr1 = { 0 };
String[] sarr1 = { num };
longtmppos;
RandomAccessFile tmprf =readFile(SCTable);
throwsIOException {
if(name.indexOf(',') >= 0 || num.indexOf(',') >= 0)
return-2;
RandomAccessFile rf =readFile(STable);
int[] cols = { 1 };
String[] values = { num };
returnfalse;
}catch(Exception e){
}
returntrue;
}
//publicvoidactionPerformed(ActionEvent e){
if(((JButton)e.getSource()).getText().equals("登录")){
if(name.getText().isEmpty()||password.getText().isEmpty())
学生:
输入:学生账号,密码,身份
教师:
输入:管理员账号,密码,身份
输出:管理系统界面
主要功能:
性能需求:
a. 响应时间:少于3秒
b. 更新处理时间:少于2秒
c. 数据的转换和传送时间少于5秒
说明对该软件的灵活性的要求,即当需求发生某些变化时,该软件对这些变化的适应能力,
a. 操作方式上的变化:更人性化
}
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());
b. 运行环境的变化:在windowsXP或以上的版本都能运行
2.1.2
操作系统:windows 7
数据库系统:文本文档
软件环境:JRE
配置要求:需将JRE路径配置到系统环境变量中
2.1.3
1)由于系统较小,且在Windows7系统下开发,故在Windows环境下运行没有什么限制。
2)学生的一些私人信息必须要保护好。
功能界面:
包括信息维护,信息查询,成绩统计,排序功能选项,同时提供退出和注销功能
界面的功能都通过后台数据库的交互来实现各自的功能,其中使用数据库提供的接口来实现查询,删除功能
5
5.1
系统结构设计:
前端:
登陆模块
功能模块
后端:
数据库模块
子系统划分:
前端功能模块划分:
信息维护,信息查询,成绩统计,排序,排名系统
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);
1.3
[1]张海藩.软件工程导论第五版.清华大学出版社.2008
1.4
成绩管理:对学生的基本信息、课程选择、成绩的录入、修改、删除、查询等一系列的操作。
JRE Java Runtime Environment
2
2.1
2.1.1
业务需求:学生使用各自的账号密码登入查询成绩,老师使用管理员权限可以录入和修改信息。
相关文档
最新文档