html5 手机网站页面实例,网站开元棋牌怎么做app,禁止搜索引擎抓取wordpress的目录,网站手机模板源码下载学年论文#xff08;课程设计#xff09; 题目#xff1a; 信息管理系统 校园教务管理系统 摘要#xff1a;数据库技术是现代信息科学与技术的重要组成部分#xff0c;是计算机数据处理与信息管理系统的核心#xff0c;随着计算机技术的发展#xff0c;数据库技… 学年论文课程设计 题目 信息管理系统 校园教务管理系统 摘要数据库技术是现代信息科学与技术的重要组成部分是计算机数据处理与信息管理系统的核心随着计算机技术的发展数据库技术已经成为网络信息化的基础。本教务管理系统就是让教务人员从繁重的工作中解放出来使他们在使用一个软件之后能极容易的对所有教务工作进行管理。 Key words:数据库java教务管理图形化设计界面 目 录 1 功能需求.......................................1 1.1 课题介绍......................................1 1.2 工具与知识..............................1 1.3 功能任务..............................1 2 概要设计..........................2 2.1 流程图................2 3 详细设计与实验......................4 3.1 java文件定义及功能 4 3.2主界面描述4 3.2.1登陆界面4 3.2.2学生端界面4 3.2.3 教师端界面10 3.2.4 管理员界面12 4 测试结果..................24 4.1 登录界面测试......................24 4.2学生界面测试......................25 4.3教师界面测试......................28 4.4 管理员界面测试......................30 5 总结...................36 参考文献....................37 附录....................38 1 功能需求 课题介绍
在现代高科技的飞跃发展人们工作习惯的改变和电脑的普及怎样提高工作效率是人们首先考虑的问题教务管理是一个非常繁琐与复杂的一项工作对于学校而言应该运用一些本地资源提高管理力度提高工作效率。
教务管理系统是一个复杂的计算机网络信息系统满足各类高校对现在和将来对信息资源采集存储处理组织管理和利用的需求实现信息资源的集中管理和统一调度。为信息交流、教务管理提供一个便捷的电子化手段。 工具与知识
工具MySQL数据库IntelliJ IDEA 。 MySQL是一个关系型数据库管理系统关联数据库将数据库保存在不同的表中而不是把所有数据放在一个大仓库中增加了速度和灵活性。MySQL所使用的SQL语言是访问数据库的最常用标准化语言。
IDEA全称IntelliJ IDEA是 Java 语言的集成开发环境 IDEA 在业界被公认为是最好的 java 开发工具之一一旦用上了就会上瘾。尤其在智能代码助手、代码自动提示、重构、 J2EE 支持、 Ant、 JUnit、 CVS 整合、代码审查、创新的 GUI 设计等方面的功能可以说是超常的。强大的整合能力。比如 Git、 Maven、 Spring 等 .IntelliJ IDEA 主要用于支持 Java、 Scala、 Groovy 等语言的开发工 具同时具备支持目前主流的技术和框架擅长于企业应用、移动应用和 Web 应 用的开发。 知识java语言数据库管理语言 1.3功能任务 主界面 1登录 2注册 学生功能1查询并修改自己个人信息 2查询本学期课表 3选课、退课 4选课结果 教师功能1查询、修改个人信息 2查看选课情况 管理员功能1课程管理 2教师管理 学生管理 4密码重置
修改密码 2 概要设计
2.1 流程图 3 详细设计 3.1 java文件定义及功能 根据实际需要我设计了4个java文件分别是Student.javaTeacher.javaAdministrator.javaLogin_up.java。 Student.java是学生类
功能查询、修改个人信息查看课表、选课、查看老师信息、查看选课结果。 Teacher.java是教师类
功能查询、修改个人信息查看选课结果。 Adminstrator.java管理员类
功能对课程、老师、学生进行增删改重置密码、修改密码。 Login_up.java是登录和注册功能。 3.2主界面描述
3.2.1登陆界面 学生个人信息储存在数据库student中包括s_id、姓名等教师信息存储在Teacher中包括id、姓名等个人信息。 用户选择登录身份学生、教师或管理员用户名密码首先检查用户名在学生表或教师表中是否存在不存在则提示在进行数据库连接若成功则密码正确登录成功否则密码错误。
流程如右图所示 3.2.2学生端界面
在登录时用静态变量JTname存储学生的ID。个人信息通过检索数据库表student得到个人信息的修改也通过修改学生表完成。
核心代码stmt con.createStatement();rs stmt.executeQuery(select *from student where s_id jTName.getText() );while (rs.next()) {jLabel1 new JLabel( \n学号: rs.getString(s_id));jLabel2 new JLabel( \n姓名: rs.getString(s_name));jLabel3 new JLabel( \n性别: rs.getString(s_gender));jLabel4 new JLabel( \n年龄: rs.getString(s_age));jLabel5 new JLabel( \n专业: rs.getString(s_specialty));jLabel6 new JLabel( \n生源: rs.getString(s_source));} 核心代码其他字段类似
if (!j_id.getText().isEmpty()) {String str update student set s_idj_id.getText() where s_idjTName.getText();System.out.println(str);try {stmt con.createStatement();stmt.executeUpdate(str);} catch (SQLException ex) {throw new RuntimeException(ex);}} 课程表通过检索选cou_stu表,输出 满足state1sidJTname条件的信息再拿此信息去遍历course表输出所有返符合条件的信息。 核心代码
Vector rowdata new Vector();Vector titlename new Vector();//{学号,姓名,性别,年龄,专业};titlename.add(课序号);titlename.add(课程名称);titlename.add(授课老师编号);titlename.add(上课时间);titlename.add(上课地点);titlename.add(周数);titlename.add(课程类型);titlename.add(学分);String sql_1select distinct cid from cou_stu where state0 sidjTName.getText();System.out.println(sql_1);stmtcon.createStatement();rsstmt.executeQuery(sql_1);while (rs.next()) {System.out.println(rs.getString(cid));String s select *from course where c_id rs.getString(cid);System.out.println(s);stmt1 con.createStatement();ResultSet rs_1 stmt1.executeQuery(s);while (rs_1.next()) {Vector hang new Vector();hang.add(rs_1.getString(c_id));hang.add(rs_1.getString(c_name));hang.add(rs_1.getString(c_teacher));hang.add(rs_1.getString(c_time));hang.add(rs_1.getString(c_place));hang.add(rs_1.getString(c_week));hang.add(rs_1.getString(c_type));hang.add(rs_1.getString(c_credit));rowdata.add(hang);}}table1 new JTable(rowdata,titlename); 选课窗口通过遍历所有课程以表格的形式展示再窗口上。学生在文本框里输入课序号点击确认选课选课成功后子在cou_stu表中添加了学生的学号、选课的状态以及课程的编号。
核心代码退课类似 JFrame jfnew JFrame(课程库表);jf.setBounds(0,0,600,400);JTable jt1new JTable();Vector titlename new Vector();//{学号,姓名,性别,年龄,专业};titlename.add(课序号);titlename.add(课程名称);titlename.add(授课老师编号);titlename.add(上课时间);titlename.add(上课地点);titlename.add(周数);titlename.add(课程类型);titlename.add(学分);Vector rowdatanew Vector();stmtcon.createStatement();String sqlselect * from course ;rsstmt.executeQuery(sql);while (rs.next()) {Vector hang new Vector();hang.add(rs.getString(c_id));hang.add(rs.getString(c_name));hang.add(rs.getInt(c_teacher));hang.add(rs.getString(c_time));hang.add(rs.getString(c_place));hang.add(rs.getString(c_week));hang.add(rs.getString(c_type));hang.add(rs.getInt(c_credit));rowdata.add(hang);}JTable jTablenew JTable(rowdata,titlename);//两个VectorjTable.setEnabled(false);//显示但不可点击JScrollPane Scrollnew JScrollPane(jTable);jf.add(jTable.getTableHeader(),BorderLayout.NORTH);jf.getContentPane().add(Scroll,BorderLayout.CENTER);JMenuBar jMenuBarnew JMenuBar();jMenuBar.setLayout(null);JLabel jLabelnew JLabel(输入课序号);jLabel.setBounds(0,0,30,20);JTextField jTextFieldnew JTextField();jTextField.setBounds(100,0,10,30);JButton jsurenew JButton(确认选课);jsure.setBounds(160,0,20,15);jMenuBar.add(jLabel);jMenuBar.add(jTextField);jMenuBar.add(jsure);
jsure.addActionListener(new ActionListener() {int flag;Overridepublic void actionPerformed(ActionEvent e) {String sql insert into cou_stu (sid,cid) value ( jTName.getText() , jTextField.getText() );System.out.println(sql);try {flag stmt.executeUpdate(sql);} catch (SQLException ex) {JOptionPane.showConfirmDialog(null, 操作失败下次注意, 信息修改, JOptionPane.YES_NO_CANCEL_OPTION);throw new RuntimeException(ex);}if (flag ! 0) {JOptionPane.showConfirmDialog(null, 操作成功下次注意, 信息修改, JOptionPane.YES_NO_CANCEL_OPTION);}}}); 任课老师信息通过遍历cou_stu表,将符合sidJTName条件的cid输出在course表中遍历将得到的一些列教师号到Teacher表中对比以表格形式输出匹配的老师的信息
核心代码
Vector rowdatanew Vector();Vector headnew Vector();head.add(课程);head.add(教师编号);head.add(姓名);head.add(性别);head.add(电话);head.add(学院);String sqlselect distinct cid from cou_stu where sidjTName.getText();System.out.println(sql);stmtcon.createStatement();rsstmt.executeQuery(sql);while (rs.next()){String sql1select c_teacher,c_name from course where c_idrs.getString(cid);System.out.println(sql1);stmt1con.createStatement();rs1stmt1.executeQuery(sql1);while (rs1.next()){String sql2select id,name,gender,tel,college from teacher where idrs1.getString(c_teacher);System.out.println(sql2);stmt2con.createStatement();rs2stmt2.executeQuery(sql2);while (rs2.next()) {Vector hang new Vector();hang.add(rs1.getString(c_name));hang.add(rs2.getString(id));hang.add(rs2.getString(name));hang.add(rs2.getString(gender));hang.add(rs2.getString(tel));hang.add(rs2.getString(college));rowdata.add(hang);}}} 选课结果与任课老师模块查询方式类似只是少了一步查询老师的信息。
核心代码
Vector rowdatanew Vector();Vector headtitlenew Vector();headtitle.add(课序号);headtitle.add(课程名);headtitle.add(授课老师编号);headtitle.add(授课时间);headtitle.add(授课地点);headtitle.add(周次);headtitle.add(课程类型);headtitle.add(学分);String sqlselect distinct cid from cou_stu where state1 sidjTName.getText();System.out.println(sql);stmtcon.createStatement();rsstmt.executeQuery(sql);while (rs.next()){String sql1select * from course where c_idrs.getString(cid);System.out.println(sql1);stmt1con.createStatement();rs1stmt1.executeQuery(sql1);while(rs1.next()){Vector hangnew Vector();hang.add(rs1.getInt(c_id));hang.add(rs1.getString(c_name));hang.add(rs1.getString(c_teacher));hang.add(rs1.getString(c_time));hang.add(rs1.getString(c_place));hang.add(rs1.getString(c_week));hang.add(rs1.getString(c_type));hang.add(rs1.getString(c_credit));rowdata.add(hang);}}JTable jTablenew JTable(rowdata,headtitle); 3.2.3 教师端界面 个人信息查询与修改与学生相同只是在Teacher表中查询。
核心代码 String sql select *from teacher where id jTName.getText();System.out.println(sql);stmt con.createStatement();rs stmt.executeQuery(sql);while (rs.next()) {jLabel1.setText(教师编号 rs.getString(id));jLabel2.setText(姓名 rs.getString(name));jLabel3.setText(性别 rs.getString(gender));jLabel4.setText(电话 rs.getString(tel));jLabel5.setText(出生年月 rs.getString(birthday));jLabel6.setText(学历 rs.getString(degree));jLabel7.setText(职称 rs.getString(pTitle));jLabel8.setText(入职年份 rs.getString(entrytime));jLabel9.setText(学院 rs.getString(college));}jchange.addActionListener(new ActionListener() {Overridepublic void actionPerformed(ActionEvent e) {jf.setVisible(false);change_per();jf.setVisible(true);}});jflash.addActionListener(new ActionListener() {Overridepublic void actionPerformed(ActionEvent e) {try {jf.setVisible(false);perinfor();} catch (SQLException ex) {throw new RuntimeException(ex);}}});} 查看选课结果一个老师可能有多个课程所以先遍历course表查询符合这个c_idJTName的所有课程每个课程开一个窗口以表格的形式展示选择该课的学生信息方法类似学生的教师查询。
核心代码
Vector titlenew Vector();title.add(学号);title.add(姓名);title.add(性别);title.add(年龄);title.add(专业);title.add(生源);String sqlselect c_id,c_name from course where c_teacherjTName.getText();System.out.println(sql);stmtcon.createStatement();rsstmt.executeQuery(sql);while (rs.next()){String strrs.getString(c_name);//每次开一个窗口JFrame jFramenew JFrame(str);jFrame.setBounds(0,0,screenWidth,screenHeight);JMenuBar jMenuBarnew JMenuBar();JLabel jLabelnew JLabel();jMenuBar.add(jLabel);jFrame.setJMenuBar(jMenuBar);Vector rowdatanew Vector();String sql1select distinct sid from cou_stu where cidrs.getString(c_id) state1;System.out.println(sql1);stmt1con.createStatement();rs1stmt1.executeQuery(sql1);int count0;while(rs1.next()){String sql2select * from student where s_idrs1.getString(sid);System.out.println(sql2);stmt2con.createStatement();rs2stmt2.executeQuery(sql2);while (rs2.next()){count;Vector hangnew Vector();hang.add(rs2.getString(s_id));hang.add(rs2.getString(s_name));hang.add(rs2.getString(s_gender));hang.add(rs2.getString(s_age));hang.add(rs2.getString(s_specialty));hang.add(rs2.getString(s_source));rowdata.add(hang);}}jLabel.setText(本次共计count名学生选择此课);JTable jTablenew JTable(rowdata,title); 4 测试结果
4.1登录界面测试
正常测试 异常测试 4.2 学生端界面测试 异常测试 4.3 教师界面测试
正常情况 异常情况 4.4 管理员界面测试 异常测试 5 总结
刚开始接触数据库我并不理解通过网上课程的学习有了简单的理解通过这个课设我深入理解了数据库的应用和java的图形化界面设计还偶然学会了函数式编程。在我所有的程序里我用的最多的是数据库的查询、插入、删除、修改功能然后也用了大量的捕获异常处理总的来说能做出自己的系统还教会了我一种自主学习的思想在日后的学习中我会继续成长开发出更具有价值的软件。 参考文献 [1] CSDN博主「兔老大RabbitMQ」的原创文章原文链接https://blog.csdn.net/hebtu666/article/details/115613082 [2] CSDN博主「放肆青春的博客」的原创文章原文链接https://blog.csdn.net/qq_35038153/article/details/77113076?spm1001.2014.3001.5506 [3] CSDN博主「随缘。。。。」的原创文章原文链接https://blog.csdn.net/suiyuanxiangyu/article/details/108064964?spm1001.2014.3001.5506 附录