收藏 分销(赏)

某高校学生学籍管理系统设计与开发.doc

上传人:鼓*** 文档编号:9623101 上传时间:2025-04-01 格式:DOC 页数:34 大小:250KB 下载积分:8 金币
下载 相关 举报
某高校学生学籍管理系统设计与开发.doc_第1页
第1页 / 共34页
某高校学生学籍管理系统设计与开发.doc_第2页
第2页 / 共34页


点击查看更多>>
资源描述
湖南商学院学年论文 某高校学生学籍管理系统设计与开发 1.引言 1.1项目来源:采用计算机化管理系统能提高操作员的操作效率,降低出错的可能性,而且计算机可以自己自动完成一些常用的统计功能,能够极大地节省时间,其经济效益和社会效益是很明显的。 1.2.任务目标:本系统是对一个学校的学生学籍进行管理,它主要包括各种信息的录入,修改,删除等操作,并能对各种信息的查询生成各种图来形象显示结果 1.3应用价值:此系统便于管理人员一目了然地掌握学生的学籍情况。 2.项目规划 2.1项目资源: 2.1.1.硬件要求:P41.0或更高。 内存:128MB或更高。 硬盘空间:20MB。 2.1.2.软件环境 操作系统:windows2000/windowsNT/windowsXP。 数据库:access 2003; 开发工具:eclipse; 分辨率:1024像素*768像素; 2.2.项目进程: 2.2.1.任务描述: 2.2.1.1学籍信息管理:对学生学籍的基本信息进行管理。 2.2.1.2查询:按姓名、学号或班级查询学生的学籍信息。 2.2.1.4.统计:对学生基本信息进行统计。 2.2.2.进度安排: 进度 完成任务所需时间 系统设计总体策划 2周 系统资料搜集和整理 1周 软件模块、接口设计、数据库定义 1周 数据库设计 1周 软件代码设计 2周 软件代码测试 1周 系统确认及验收 1周 2.3项目可行性评估 2.3.1技术可行性:本系统采用eclipse+access构架而成,eclipse是一个相当著名的开源Java IDE,由IBM公司开源。Eclipse主要以其开放性、极为高效的GUI、先进的代码编辑器等著称,其项目包括许多各种各样的子项目组,包括 Eclipse插件、功能部件等。任何人都能够轻易的将自己的软件做成Eclipse的插件,而且这些插件只需简单的复制到Eclipse的插件文件夹下就可以被集成。主要采用SWT界面库,支持多种本机界面风格。eclipse是当今java最好的开发平台,它能自动生成很多代码,大大提高了代码的输入效率,因此,能很好的缩短系统开发所需时间,以更好的降低系统开发成本,而access为microsoft公司生产的数据库产品,有较好的稳定性和兼容性,它是桌面型数据库,操作灵活、转移方便、运行环境简单,对于小型网站的数据库处理能力效果很不错。它提供了表、查询、窗体、报表、页、宏、模块7种用来建立数据库系统的对象;提供了多种向导、生成器、模板,把数据存储、数据查询、界面设计、报表生成等操作规范化;为建立功能完善的数据库管理系统提供了方便,也使得普通用户不必编写代码,就可以完成大部分数据管理的任务。这两种技术都属于当今流行技术,两者的组合将更能使系统的功能发挥出来。 2.3.2计划可行性:此系统所需时间不是很多,步骤相对于一些别的大型系统来说,是比较简单的,因此,强度也不是很大,按照预计的进度的话,在两个月左右内应该能很顺利的完成任务。 2.3.3应用可行性:本系统适用于windows操作系统,windows操作系统为当今社会最流行的操作系统,主要优点为人机交互性好,而本系统对应于此操作系统而设计开发,也将能很好地做到这一点。另外,本系统采用的是java和ACCESS技术。这两种技术都能很好地在windows操作系统上运行,因此此系统能很好的应用于学校的学生学籍的管理,能做到方便,高效的管理好学生的学籍信息。 3.系统需求分析 3.1 业务需求 3.1.1业务组织:高校学生学籍管理中心 3.1.2业务定义:管理高校的学生学籍信息。 3.2 功能需求 3.2.1功能组成:本系统是对学生的学籍信息进行管理,主要包括添加、修改和删除学生的基本信息,对基本信息进行查询、排序及统计等操作,从而实现学生管理的自动化与计算机化。 启动系统 选择用户(管理员) 输入口令 查验 显示主菜单 选择项 系统设置 更改口令 学生学籍操作 数据统计 退出 输入数据 确认 输入口令 检查口令 确认 选择 录入 修改 删除 退出 输入要求 统计结果显示 学号 输入要求 存入 确认 确认 操作 继续 继续 3.2.2功能定义:系统管理是便于以后系统升级;对学生学籍信息的操作在信息管理模块中完成,包括录入、修改、删除等操作;查询和统计分别在各自的模块中。 流程图设计(系统管理员): 学生学籍管理系统主模块 系统管理 信息管理 查询 统计 帮助 信息管理模块 录入 修改 删除 退出 数据库操纵模块 信息查询模块 按学号查询 按姓名查询 按班级查询 数据库操纵模块 数据统计模块 按学号范围统计 按性别统计 按班级统计 按出生年月统计 数据库操纵模块 3.2.3模块定义: 主模块: 输入:操作系统传递的各种信息以及用户输入的各种数据。 输出:系统启动界面显示。 系统登录模块: 输入:选择用户并输入口令。 输出:确认后显示主菜单。 系统设置模块: 输入:数据并确认 输出:弹出对话框显示设置成功与否 修改口令模块: 输入:两次新口令并确认 输出:口令修改成功与否 学生学籍操作模块: 1).录入模块 : 输入:学号等信息 输出:确认并提示录入成功与否。 2).修改模块: 输入:需要修改的信息 输出:确认并提示修改成功与否。 3).删除模块: 输入:需要删除的信息。 输出:确认并提示删除成功与否。 数据查询模块: 输入:选择查询方式并确认 输出:显示查询结果 数据统计模块: 输入:选择需要统计的数据并确认 输出:显示统计结果 3.3 数据需求 3.3.1静态数据定义如下表所示: 名称 字段名称 数据类型 主键 非空 标识 ID 自动编号 Yes Yes 学号 Num 数字 No Yes 姓名 Name 文本 No Yes 性别 Sex 文本 No Yes 民族 Ehtnic 文本 No No 班级 Class 文本 No No 生日 Birthday 文本 No No 籍贯 Home 文本 No No 3.3.2数据ER图: 学生基本信息 标识 学号 姓名 性别 民族 班级 生日 籍贯 学生基本信息ER图 学生学籍管理 录入 修改 删除 学生学籍管理ER图 数据查询 学号 姓名 班级 数据查询ER图 统计 学号 姓名 班级 出生年月 统计ER图 3.4 其他需求:界面友好,易于操作,数据传输快速高效。 4.系统结构设计 4.1系统总体框架如图所示: 学生学籍管理系统 信息管理 查询 统计 数据操作 信息综合管理 添加信息 修改信息 删除信息 按查询条件查询 人员统计 4.2软件结构设计 4.2.1主要划分为三个模块: 1).信息管理模块:对学生学籍的基本信息进行综合管理,可以添加、修改及删除基本信息。 2).查询模块:查询学生的基本学籍信息。 3).统计模块:根据不同特征对学生的情况进行统计。 4.2.2用户 本系统的用户可分为三类,系统管理员、教师、学生。 1).系统管理员:可以添加学生档案资料、修改学生档案资料、查询学生档案资料。 2).教师:可以查询学生学生的档案资料,并可以查看系统开放给老师看的信息。 3).学生:可以查询自身档案的开放信息,例如姓名、出生年月、政治面貌等,但是不可以查询自身档案的不开放信息。 4.2.3 接口设计: 1).用户接口: 按windows应用软件操作界面的规范来设计,使用以对话框为主的用户界面,便于用户操作。 1.主对话框:由五个功能按钮组成: 系统管理、信息管理、查询、统计、帮助。 2.信息管理添加对话框: 学号编辑框:用于输入学生学号; 姓名编辑框:用于输入学生姓名; 性别编辑框:用于输入学生性别; 民族编辑框:用于输入学生所属民族; 所在班级编辑框:用于输入学生所在班级; 出生日期编辑框:用于输入学生出生日期; 籍贯编辑框:用于输入学生的籍贯信息; 保存按钮:用于将在上面所述的编辑框内输入信息后将此学生信息存入数据库。 取消按钮:用于取消此次输入; 退出按钮:用于退出录入对话框; 3. 信息管理修改信息对话框: 学号编辑框:用于输入学生学号; 姓名编辑框:用于输入学生姓名; 性别编辑框:用于输入学生性别; 民族编辑框:用于输入学生所属民族; 所在班级编辑框:用于输入学生所在班级; 出生日期编辑框:用于输入学生出生日期; 籍贯编辑框:用于输入学生的籍贯信息; 查询按钮:用于查询输入的学生信息,以修改其中的信息; 退出按钮:用于退出信息修改对话框; 4.信息管理删除信息对话框: 学号编辑框:用于输入学生学号; 姓名编辑框:用于输入学生姓名; 性别编辑框:用于输入学生性别; 民族编辑框:用于输入学生所属民族; 所在班级编辑框:用于输入学生所在班级; 出生日期编辑框:用于输入学生出生日期; 籍贯编辑框:用于输入学生的籍贯信息; 查询按钮:用于查询输入的学生信息,以便于管理员确认其信息以决定是否删除此学生信息。 退出按钮:用于退出删除信息对话框; 5.查询对话框: 请选择查询方式:用于选择查询方式,有按姓名、按学号、按班级三种方式。选择后,就会出现相应的对话框。 按姓名查询编辑框:用于输入想要查询的学生姓名; 按学号查询编辑框:用于输入想要查询的学生学号; 按班级查询编辑框:用于输入想要查询的学生班级; 确定按钮:查询信息的人员确认输入无误后点确认可获取查询结果; 取消按钮:用于取消此次查询 6.统计对话框: 请选择统计选项:用于选择需要统计的数据,有按学号、按性别、按班级、按出生年月四种方式,选择后,将会出现相应的对话框。 按性别统计编辑框:可选择男或女,用于查询学生的性别数据; 按班级统计编辑框:用于查询每个班的数据; 按出生年月统计编辑框:用于查询学生的年龄段分布情况; 确定按钮:统计人员确认输入无误后点确认可获取统计结果; 取消按钮:用于取消此次统计; 2).软件接口: 使用access的驱动程序。 4.3数据结构: 4.3.1:数据库与程序的联系: 1).主模块:连接数据库 2).信息管理模块: 信息录入模块:读入学号、姓名、性别、民族、所在班级、出生日期、籍贯等信息。 信息修改模块:读入对应的输入信息,显示学生信息; 信息删除模块:读入对应的输入信息,显示学生信息。 3).查询模块: 对应于各种查询方式输出对应的学生信息。 4).统计模块: 对应于各种统计方式输出对应的学生统计信息。 5).系统操作模块: 系统操作权限查验模块:读入帐号,口令,输出相应的信息。 学籍信息操作模块:增加,修改,删除图书表中的信息。 数据查询模块:制定查询条件,输出相应的信息。 数据统计模块:指定统计条件,输出相应的信息。 数据备份模块:复制学生学籍信息表,系统操作员记录表。 数据恢复模块:读取学生学籍信息表,系统操作员记录表。 5.系统详细设计: 5.1:功能模块详细设计: 5.1.1:定义对象: //定义内容面板 Jpnel contentPane; //定义布局格式 XYLayout xYLayout1=new XYLayout(); //定义菜单栏 JMenuBar mainMenu =new JMenuBar(); //定义系统管理菜单及其菜单项 JMenu menuSystem=new JMenuItem(); JmenuItem itemExit=new JmenuItem(); //定义信息管理菜单及其菜单项 JMenu menuInfo=new JMenu(); JMenuItem itemShow=new JMenuItem(); JMenuItem itemAdd=new JMenuItem(); JMenuItem itemEdit=new JMenuItem(); JmenuItem itemDelete=new JMenuItem(); //定义查询菜单及其菜单项 JMenu menuSearchAll=new JMenu(); //人员查询菜单是查询下的一个二级菜单 JMenu menuSearch=new JMenu(); JMenuItem itemSearchByName=new JMenuItem(); JMenuItem itemSearchByNum=new JMenuItem(); JMenuItem itemSearchByClass=new JMenuItem(); JMenuItem itemSearchGrade=new JMenuItem(); //定义统计菜单及其菜单项 JMenu menuSum=new JMenu(); JMenuItem itemSumPeople=new JMenuItem(); JMenuItem itemSumGrade=new JMenuItem(); //定义帮助菜单及其菜单项 JMenu menuHelp=new JMenu(); JMenuItem itemAbout=new JMenuItem(); ResultSet rs; String sql=new String(); Database DB=new Database(); public static stuInfo SIFall=new stuInfo(); public static editStuInfo editInfo=new editStuInfo(); public static delStuInfo delInfo=new delStuInfo(); public static gradeInfo graInfo=new gradeInfo(); //设定contentPane为窗体默认面板 contentPane=(JPanel)this.getContentPane(); //设定contentPane布局为xYLayout1 contentPane.setLayout(xYLayout1); //设定窗体大小 this.setSize(new Dimension(400,300)); //设置窗体的名称 this.setTitle("学生学籍管理系统"); menuSystem.setText("系统管理"); menuInfo.sttText("信息管理"); menuSearchAll.setText("查询"); menuSum.setText("查询人员"); menuHelp.setText("帮助"); itemShow.setText("信息综合管理"); itemAdd.setText("添加信息"); itemEdit.setText("修改信息"); itemDelete.setText("删除信息"); itemExit.setText("退出"); itemSearchByName.setText("按姓名"); itemSearchByNum.setText("按学号"); itemSearchByClass.setText("按班级"); itemSumPeople.setText(""); itemAbout.setText(""); //设置主窗体的菜单栏为mainMenu this.setJmenuBar(mainMenu); //窗体关闭按钮的响应动作 protected void processWindowEvent(WindowEvent e){ super.processWindowEvent(e); if(e.getID()==Windowevent.WINDOW_CLOSING){ System.exit(0); } } //退出应用程序 void itemExit_actionPerformed(ActionEvent e){ System.exit(0); } //人员信息综合管理 void itemShow_actionPerformed(ActionEvent e){ SIFall.setLocation(200,160); SIFall.pack(); SIFall.show(); SIFall.setNull(); SIFall.setAvled(false); SIFall.setButton(true,false,false,false,false); } //添加人员信息 void itemAdd_actionPerformed(ActionEvent e){ addStuInfo dlg=new addStuInfo(); Dimension dlgSize=dlg.getPreferredSize(); Dimension frmSize=getSize(); Point loc=getLocation(); dlg.setLocation((frmSize.width-dlgSize.width)/2+loc.x,(frmSize.height-dlgSize.height)/2+loc.y); dlg.pack(); dlg.show(); dlg.setExeType("addnew"); } //修改人员信息 void itemEdit_actionPerformed(ActionEvent e){ Dimension dlgSize=editInfo.getPreferredSize(); Dimension frmSize=getSize(); Point loc=getLocation(); editInfo.setLocation((frmSize.width-dlgSize.width)/2+loc.x,(frmSize.height-dlgSize.height)/2+loc.y); editInfo.pack(); editInfo.show(); } //删除人员信息 void itemDelete_actionPerformed(ActionEvent e){ Dimension dlgSize=delInfo.getPreferredSize(); Dimension frmSize=getSize(); Point loc=getLocation(); delInfo.setLocation((frmSize.width-dlgSize.width)/2+loc.x,(frmSize.height-dlgSize.height)/2+loc.y); delInfo.pack(); delInfo.show(); } //显示按姓名查询 void itemSearchByName_actionPerformed(ActionEvent e){ class searchByName extends search{ public searchByName(){ jRByName.setVisible(false); jRByNum.setVisible(false); jRByClass.setVisible(false); xYLayout1,setHeight(110); } } searchByName byName=new searchByName(); Dimension dlgSize=byName.getPreferredSize(); Dimension rrmSize=getSize(); Point loc=getLocation(); byName.setLocation((frmSize.width-dlgSize.width)/2+loc.x,(frmSize.height-dlgSize.height)/2+loc.y); byName.pack(); byName.setLabelText("请输入要查询人员的名字:"); byName.setType("Name"); byName.show(); } //显示按学号查询 void itemSearchByNum_actionPerformed(ActionEvent e){ class searchByNum extends search{ public searchByNum(){ jRByName.setVisible(false); jRByNum.setVisible(false); jRByClass.setVisible(false); xYLayout1.setHeight(110); } } searchByNum byNum=new searchByNum(); Dimension dlgSize=byNum.getPreferredSize(); Dimension frmSize=getSize(); Point loc=getLocation(); byNum.setLocation((frmSize.width-dlgSize.width)/2+loc.x,(frmSize.height-dlgSize.height)/2+loc.y); byNum.pack(); byNum.setLabelText("请输入要查询人员的学号"); byNum.setTyppe("Num"); byNum.show(); } //显示按班级查询 void itemSearchByClass_actionPerformed(ActionEvent e){ class searchByClass extends search{ public searchByClass(){ jRByName.setVisible(false); jRByNum.setVisible(false); jRByClass.setVisible(false); xYLayout1.setHeight(110); } } searchByClass byClass=new searchByClass(); Dimension dlgSize=byClass.getPreferredSize(); Dimension frmSize=getSize(); Point loc=getLocation(); byClass.setLocation((frmSize.width-dlgSize.width)/2+loc.x,(frmSize.height-dlgSize.height)/2+loc.y); byClass.pack(); byClass.setLabelText("请输入要查询人员的班级:"); byClass.setType("Class"); byClass.show(); } //人员统计 void itemSumPeople_actionPerformed(ActionEvent e){ sumPeople people=new sumPeople(); Dimension dlgSize=people.getPreferredSize(); Dimension frmSize=getSize(); Point loc=getLocation(); people.setLocation((frmSize.width-dlgSize.width)/2+loc.x,(frmSize.height-dlgSize.height)/2+loc.y); people.pack(); people.show(); } 5.1.2:信息管理模块详细设计: 5.1.2.1综合模块 //定义窗体中所用到的对象 JPanel jPanel1=new JPanel(); XYLayout xYLayout1=new XYLayout(); XYLayout xYLayout1=new XYLayout(); JLabel jLabel1=new JLable(); JLabel jLabel2=new JLable(); JLabel jLabel3=new JLable(); JLabel jLabel4=new JLable(); JLabel jLabel5=new JLable(); JLabel jLabel6=new JLable(); JLabel jLabel7=new JLable(); JTextField jTNum=new JTextField();//输入学号 JTextField jTName=new JTextField();//输入姓名 JTextField jTSex=new JTextField();//输入性别 JTextField jTHome=new JTextField();//输入籍贯 JTextField jTBirth=new JTextField();//输入生日 JTextField jTEthnic=new JTextField();//输入民族 JTextField jTClass=new JTextField();//输入班级 JButton jBAdd=new JButton();//添加 JButton jBModify=new JButton();//修改 JButton jBDelete=new JButton();//删除 JButton jBCancel=new JButton();//取消 JButton jBSave=new JButton();//保存 JButton jBExit=new JButton();//退出 JButton jBSearch=new JButton();//查询 JButton jBSum=new JButton();//人员统计 String extType=new String();//标识操作类型 Database DB=new Database();//连接数据库 ResultSet rs; //返回结果 String sql=new String();//SQL语句 //初始化时设置文本框不可编辑 setAbled(false); //初始化时除添加按钮外,其他操作信息的按钮均不可用 setButton(true,false,false,false,false); //设置文本框是否可编辑 void setAbled(boolean logic){ jTNum.setEnabled(logic); jTEthnic.setEnabled(logic); jTName.setEnabled(logic); jTClass.setEnabled(logic); jTSex.setEnabled(logic); jTBirth.setEnabled(logic); jTHome.setEnabled(logic); } //设置按钮的状态 void setButton(boolean add,boolean xiugai,boolean del,boolean save,boolean cancel){ jBAdd.setEnabled(add); jBModify.setEnabled(xiugai); jBDelete.setEnabled(del); jBSave.setEnabled(save); jBCancel.setEnabled(cancel); } //将文本框清空 void setNulll(){ jTNum.setText(null); jTEthnic.setText(null); jTName.setText(null); jTClass.setText(null); jTSex.setText(null); jTBirth.setText(null); jTHome.setText(null); } //设置操作类型 void setExtType(String type){ extType=type; } //新增人员基本信息 void jBAdd_actionPerformed(ActionEvent e){ setExtType("addnew"); setNull(); this.setAbled(true); this.setButton(false,false,false,true,true); } //修改当前人员信息 void jBModify_actionPerformed(ActionEvent e){ setExeType("edit"); setAbled(true); setButton(false,false,false,true,true); } //删除当前人员信息 void jBDelete_actionPerformed(ActionEvent e){ String sql; sql="delete from stuTable where Num="+Integer.parseInt(jTNum.getText()); if(DB.executeSql(sql)){ JOptionPane.showMessageDialog(null,"成功删除信息!"); } else{ JOptionPane.showMessageDialog(null,"删除信息失败!"); } } //保存信息 void jBSave_actionPerformed(ActionEvent e){ //判断操作类型,若是新增,则插入信息,若是编辑,则更新信息 if(exeType=="addnew"){ //检查新增的学号在数据库中是否已经存在 sql="select Num from stuTable where Num="+Integer.parseInt(jTNum.getText()); rs=DB.getResult(sql); try{ //从数据库中查询当前学号,若不为空,说明此学号已存在 if(rs.first()){ JOptionPane.showMessageDialog(null,"学号不能重复!"); setNull(); } else{ //若不重复,生成SQL语句 sql="insert into stuTable(Num,Name,Sex,Ethnic,Class,Birthday,Home)values("; sql=sql+""+Integer.parseInt(jTNum.getText())+","; sql=sql+"'"+jTName.getText()+"',"; sql=sql+"'"+jTSex.getText()+"',"; sql=sql+"'"+jTEthnic.getText()+"',"; sql=sql+"'"+jTClass.getText()+"',"; sql=sql+""+Integer.parseInt(jTBirth.getText())+","; sql=sql+"'"+jTHome.getText()+"'"; sql=sql+")"; if(DB.executeSql(sql)){ setAbled(false); JOptionPane.showMessageDialog(null,"成功添加信息!"); setButton(true,true,true,false,false); } else{ JOptionPane.showMessageDialog(null,"添加信息失败!"); } } } catch(SQLException ex){ JOptionPane.showMessageDialog(null,"添加信息失败!"); } } //如果操作类型为编辑,则执行更新操作 else if(extType=="edit"){ sql="update stuTable SET Name='"+jTName.getText().toString(); sql=sql+"Sex='"+jTSex.getText().toString()+"',"; sql=sql+"Ethnic='"+jTEthnic.getText().toString()+"',"; sql=sql+"Class='"+jTClass.getText().toString()+"',"; sql=sql+"Birthday="+Integer.parseInt(jTbirth.getText())+","; sql=sql+"Home='"+jTHome.getText().toString()+"'"; sql=sql+"where Num="+Integer.parseInt(jTNum.getText())+""; if(DB.exe
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 考试专区 > 中考

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服