您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 管理学资料 > java学生成绩管理系统课程设计报告
1山东交通学院java语言课程设计题目学生成绩管理系统系(部):信息科学与电气工程学院专业:信息管理及信息系统班级:信管111姓名:田忠平学号:110813125指导教师:庞希雨时间:2013年4月1日至4月14日共2周指导教师(签字)系主任(签字)2013年4月1日2目录1设计目的及内容要求............12系统总体设计..................13系统详细设计..................24运行结果及分析...............175参考文献.....................223关键词:学生成绩管理系统;存储过程;数据库;java。1设计目的及内容要求1、设计目的:巩固和加深学生对高级语言程序设计课程的基本知识的理解和掌握,掌握java语言编程和程序调试的基本技能,利用java语言进行基本的软件设计,提高运用java语言解决实际问题的能力。2、内容要求实现学生成绩的管理(增、删、改、查询、持久化、成绩排序、成绩统计等功能),在文件中增加、删除、学生信息,根据学号查询、修改学生信息,统计功能求每个人的总分并按从高到低排序,通过这些操作对文件中的信息保存。2系统总体设计成功登陆系统以后,出现成绩管理界面,系统初始化,可对学生成绩进行增加、删除、查询、修改、统计,进入相应界面进行成绩管理,退出系统自动保存本次操作内容,保存信息.4简易流程图:3系统详细设计importjava.awt.*;importjava.awt.event.*;importjava.sql.*;importjava.util.Vector;importjavax.swing.*;publicclassStudentManagementextendsJFrameimplementsActionListener{Connectionconn=null;//与特定数据库连接。PreparedStatementps;//执行sql语句。ResultSetrs=null;//返回sql结果。JPaneljp1,jp2,jp3;//轻量级容器JLabeljl,jl1;//显示文本,图像。JButtonjb1,jb2,jb3,jb4,jb5,jb6;//按钮。JTablejt;//表格。JTextFieldjtf,jtf1;//单文本框。JScrollPanejsp=null;//滚条。StudentModelsm=null;//创类对象。publicStudentManagement()//构造函数。5{jp1=newJPanel();jl=newJLabel(请输入名字:);jtf=newJTextField(20);jb1=newJButton(查询);jb1.addActionListener(this);//注册监听器。查询按钮jp1.add(jl);jp1.add(jtf);jp1.add(jb1);jp2=newJPanel();jb2=newJButton(添加);jb3=newJButton(修改);jb4=newJButton(删除);jb5=newJButton(返回);jb2.addActionListener(this);//注册监听器。添加按钮jb3.addActionListener(this);//注册监听器。修改按钮jb4.addActionListener(this);//注册监听器。删除按钮jb5.addActionListener(this);//注册监听器。删除按钮jp2.add(jb2);jp2.add(jb3);jp2.add(jb4);jp2.add(jb5);jp3=newJPanel();jl1=newJLabel(请输入名字:);jtf1=newJTextField(20);jb6=newJButton(成绩查询);jb6.addActionListener(this);//注册监听器。查询按钮jp3.add(jl1);jp3.add(jtf1);jp3.add(jb6);sm=newStudentModel();jt=newJTable(sm);jsp=newJScrollPane(jt);this.add(jsp);this.add(jp1,BorderLayout.NORTH);this.add(jp3,BorderLayout.WEST);this.add(jp2,BorderLayout.SOUTH);this.setSize(800,250);this.setLocation(200,200);//窗口在屏幕中的位置。this.setVisible(true);this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//关闭进程。6}publicstaticvoidmain(String[]args){StudentManagementta=newStudentManagement();//形成一个实例。开始段。}@OverridepublicvoidactionPerformed(ActionEvente){//TODOAuto-generatedmethodstubif(e.getSource()==jb1){//jb1查询,e.getSource()按钮响应事件Stringname=this.jtf.getText().trim();//trim()-去掉头和尾的空格。Stringsql=select*fromstuViewwherestuName='+name+';if(name.trim().equals()){sm=newStudentModel();}else{sm=newStudentModel(sql);//【如何返回原窗口】;}jt.setModel(sm);//更换表格}elseif(e.getSource()==jb2){//添加StuAddDialogsad=newStuAddDialog(this,添加学生,true);//this-JFramesm=newStudentModel();//添加成功后,返回最顶层窗口jt.setModel(sm);//更换表格}elseif(e.getSource()==jb3){//修改System.out.println(修改);intrownum=this.jt.getSelectedRow();//getSelectedRow()-选中其中一行,并将行数送给rownum.if(rownum==-1){JOptionPane.showMessageDialog(this,请选择表格中的一行);//弹出小对话框,return;}newStudentUpdateDialog(this,修改对话框,true,sm,rownum);//this-JFramesm=newStudentModel();jt.setModel(sm);//重置表格}7elseif(e.getSource()==jb4){intrownum=this.jt.getSelectedRow();//getSelectedRow()-选中其中一行,并将行数送给rownum.if(rownum==-1){JOptionPane.showMessageDialog(this,请选择一行);//弹出小对话框,return;}StringstuId=(String)sm.getValueAt(rownum,1);try{Class.forName(com.microsoft.jdbc.sqlserver.SQLServerDriver);conn=DriverManager.getConnection(jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=mysql,sa,tian);ps=conn.prepareStatement(deletefromstudentwherestuName=?);ps.setString(1,stuId);ps.executeUpdate();}catch(Exceptiondd){dd.printStackTrace();}sm=newStudentModel();jt.setModel(sm);}elseif(e.getSource()==jb5){jtf.setText(null);//将查询完后返回时使但文本框中的名字消失。sm=newStudentModel();jt.setModel(sm);}elseif(e.getSource()==jb6){//trim()-去掉头和尾的空格。try{Stringurl=jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=mysql;Stringuser=sa;Stringpsword=tian;Class.forName(com.microsoft.jdbc.sqlserver.SQLServerDriver);//加载驱动8conn=DriverManager.getConnection(url,user,psword);//连接数据库Stringname=this.jtf1.getText().trim();//创建存储过程的对象CallableStatementc=conn.prepareCall({calldt_stu(?,?)});//问号将用作参数的占位//给存储过程的第一个参数设置值c.setString(1,name);//注册存储过程的第二个参数,java.sql.Types.INTEGER——注册的JDBC类型所对应的java类型。//换言之,registerOutParameter使用的是JDBC类型(因此它与数据库返回的JDBC类型匹配)c.registerOutParameter(2,java.sql.Types.INTEGER);//执行存储过程c.execute();intin=c.getInt(2);if(in==0){System.out.println(请输入你要查询的姓名:);return;}System.out.println(成绩是:+in);//getXXX方法将取回参数值conn.close();}catch(Exceptionee){ee.printStackTrace();}/*Stringsql=select*fromstuViewwherestuName='+name+';if(name.trim().equals()){sm=newStudentModel();}else{sm=newStudentModel(sql);//【如何返回原窗口】;}jt.setModel(sm);//更换表格*/}}}9importjava.sql.Connection;importjava.sql.DriverManager;importjava.sql.PreparedStatement;importjava.sql.ResultSet;importjava.util.Vector;importjavax.swing.table.AbstractTableModel;publicclassStudentModelextendsAbstractTableModel{VectorrowData,columnNames;//表格的行,列。Connectionconn=null;//与特定数据库连接。PreparedStatementps;ResultSetrs=null;publicStudentModel()//无参构造函数{this.init();//引用定义函数}//publicStudentModel(Stringsql)//有参构造函数{this.init(sql);//引用定义函数}///////////////////
本文标题:java学生成绩管理系统课程设计报告
链接地址:https://www.777doc.com/doc-1540069 .html