码迷,mamicode.com
首页 > 其他好文 > 详细

xx学院学员评优评奖管理系统

时间:2017-05-28 11:47:42      阅读:2207      评论:0      收藏:0      [点我收藏+]

标签:org   sel   print   计算   zed   cat   layout   学校   span   

【勤拂拭软件,软件开发,毕业设计,程序作业,论文写作指导:q-[1215714557]  加好友请注明:勤拂拭)】

 

之前帮助一个军校学生做的一个评优评奖管理系统,该系统主要用于学校学生评优评先使用。

系统采用java开发,数据库是mysql。

下面简单讲诉一下该系统的设计:

一. 系统设计

1.1 系统目标设计

  在对现有系统和现状认真调查分析的基础上,明确了学员信息管理工作本身存在的问题和建立管理信息系统的初步要求,进一步研究确定新系统的目标如下:

  1、管理员能够实现对学员信息的添加、修改、删除、查询等操作,对干教用户的添加、修改、删除等操作。

  2、干教能够在一定的权限内对所有学员成绩的查询,平时量化成绩查询,所有干教的信息的查询等,对自己信息进行更新,登陆密码的修改。

  3、学员可以在自己的权限内对自己成绩的查询,已经课程、个人信息的查询所获荣誉查询,平时量化分数查询,登陆密码的修改等相关操作。

  4、按照管理信息系统的原理和方法,采用成熟的信息技术和手段,支持学员管理的全过程,提高教务工作效率。

  5、针对现代计算机广泛应用的情况以及数据的封闭性公安海警学院学员评优评奖管理系统基于Windows系统研制、设计和开发。

  6、考虑经费等原因,系统使用一台PC机和现有的软件以节省资金,降低成本。

1.2 系统功能分析

  本系统适用于公安xx学院以及其他同类军事院校,其功能主要分为五大类:
   1.   用户管理:用于对用户的添加,赋予不同权限及对用户的修改及查询。
   2.   课程管理:用于对个个课程的开放和修改。
   3.   成绩管理:用于对成绩的查询。
   4.   学员信息管理:添加、删除、修改学员信息。
   5.   学员平时量化成绩管理:管理学员平时量化成绩,包括体能,作风,日常表现
   6.   教师信息管理:对授课教师、课程等信息的添加、修改等。
   7.   评优评先决策: 根据学员成绩自动完成评优评先的初步决策

二、系统实现

2.1 登陆端

技术分享

 

登陆界面主要代码:

技术分享
  1 package wyf.cgq;
  2 import java.awt.*;
  3 public class Login extends JFrame implements ActionListener
  4 {
  5     private String host;
  6     //声明Connection引用、Statement对象引用与结果集引用
  7     private Connection conn;
  8     private Statement stmt;
  9     private ResultSet rs;
 10     private Image image=new ImageIcon("res/logo2.jpg").getImage();  
 11     //JPanel panel = new BackgroundPanel(image);
 12     private JPanel jp=new BackgroundPanel(image);//创建用来存放空间的容器
 13     private JLabel jl3=new JLabel("");//正在登陆提示标签
 14     //创建主机地址、端口号、用户名和密码输入框
 15     private JTextField hostport=new JTextField();
 16     private JTextField hostaddress=new JTextField();
 17     private JTextField jtf=new JTextField();
 18     private JPasswordField jpwf=new JPasswordField();
 19     private JRadioButton radioButton = new JRadioButton("普通学员",true);
 20     private JRadioButton radioButton_1 = new JRadioButton("管理人员");
 21     private JRadioButton[] jrbArray=//创建单选按钮数组
 22             {
 23                 radioButton,
 24                 radioButton_1
 25             };
 26     //创建组
 27     private ButtonGroup bg=new ButtonGroup();
 28     //创建操作按钮
 29     private JButton jb1=new JButton("登    陆");
 30     private JButton jb2=new JButton("重    置");
 31     private final JPanel panel_1 = new JPanel();
 32     private final JPanel panel_2 = new JPanel();
 33     //构造器
 34     public Login()
 35     {
 36         radioButton_1.setBackground(Color.CYAN);
 37         radioButton_1.setSize(100, 15);
 38         radioButton_1.setLocation(170, 190);
 39         radioButton.setSize(100, 15);
 40         radioButton.setLocation(60, 190);
 41         radioButton.setBackground(Color.MAGENTA); 
 42         this.addListener();
 43         initialFrame();//初始化界面
 44     }
 45     public void addListener(){
 46         this.jb1.addActionListener(this);//为登陆按钮注册监听器
 47         this.jb2.addActionListener(this);//为重置按钮注册监听器
 48         this.jtf.addActionListener(this);//为用户名文本框注册监听器
 49         this.jpwf.addActionListener(this);//为用户名密码框注册监听器
 50         jp.add(hostaddress);
 51         this.hostaddress.addActionListener(this);//为主机地址文本框注册监听器
 52         jp.add(hostport);
 53         this.hostport.addActionListener(this);//为端口号文本框注册监听器
 54     }
 55     public void initialFrame()
 56     {
 57         //设为空布局
 58         jp.setLayout(null);
 59         this.jtf.setBounds(170,100,130,25);
 60         this.jp.add(jtf);
 61         this.jpwf.setBounds(170,150,130,25);
 62         this.jpwf.setEchoChar(‘*‘);
 63         this.jp.add(jpwf);
 64         this.bg.add(jrbArray[0]);
 65         this.bg.add(jrbArray[1]);
 66         this.jrbArray[0].setBounds(40,180,100,25);
 67         this.jp.add(jrbArray[0]);
 68         this.jrbArray[1].setBounds(145,180,100,25);
 69         this.jp.add(jrbArray[1]);
 70         this.jb1.setBounds(40,280,100,30);
 71         this.jp.add(jb1);
 72         this.jb2.setBounds(184,280,100,30);
 73         this.jp.add(jb2);
 74         this.jl3.setBounds(40,245,150,25);
 75         this.jp.add(jl3);
 76         getContentPane().add(jp);
 77         this.hostport.setBounds(0,0,0,0);
 78         this.hostport.setText("3306");
 79         this.hostaddress.setBounds(0,0,0,0);
 80         //将填写姓名的文本框设为默认焦点
 81         this.hostaddress.requestFocus(true);
 82         this.hostaddress.setText("127.0.0.1");
 83         panel_2.setBackground(SystemColor.menu);
 84         panel_2.setBounds(40, 100, 100, 25);
 85         
 86         jp.add(panel_2);
 87         panel_2.setLayout(null);
 88         
 89         JLabel lblNewLabel = new JLabel("\u767B\u9646\u540D");
 90         lblNewLabel.setBounds(0, 0, 100, 25);
 91         panel_2.add(lblNewLabel);
 92         lblNewLabel.setForeground(Color.RED);
 93         lblNewLabel.setFont(new Font("华文楷体", Font.PLAIN, 24));
 94         lblNewLabel.setBackground(Color.WHITE);
 95         panel_1.setBounds(40, 150, 100, 25);
 96         
 97         jp.add(panel_1);
 98         panel_1.setLayout(null);
 99         
100         JLabel label = new JLabel("\u5BC6    \u7801");
101         label.setBounds(0, 0, 100, 25);
102         panel_1.add(label);
103         label.setForeground(Color.RED);
104         label.setFont(new Font("华文楷体", Font.PLAIN, 24));
105         label.setBackground(SystemColor.menu);
106         
107         JPanel panel = new JPanel();
108         panel.setBackground(SystemColor.activeCaption);
109         panel.setBounds(10, 10, 451, 54);
110         jp.add(panel);
111         panel.setLayout(null);
112         
113         JLabel label_1 = new JLabel("\u516C\u5B89\u6D77\u8B66\u5B66\u9662\u5B66\u5458\u8BC4\u4F18\u8BC4\u5956\u7BA1\u7406\u7CFB\u7EDF");
114         label_1.setBounds(0, 0, 451, 54);
115         panel.add(label_1);
116         label_1.setForeground(SystemColor.desktop);
117         label_1.setFont(new Font("华文楷体", Font.PLAIN, 28));
118         label_1.setBackground(Color.WHITE);
119         //设置窗口的标题、大小、位置以及可见性
120         this.setTitle("登陆");
121         Image image=new ImageIcon("ico.gif").getImage();  
122          this.setIconImage(image);
123         this.setResizable(false);
124         Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
125         int centerX=screenSize.width/2;
126         int centerY=screenSize.height/2;
127         int w=300;//本窗体宽度
128         int h=320;//本窗体高度
129         this.setBounds(centerX-w/2,centerY-h/2-100,477,400);//设置窗体出现在屏幕中央
130         this.setVisible(true);
131     }
132     //实现ActionListener接口中的方法
133     public void actionPerformed(ActionEvent e)
134     {
135         if(e.getSource()==this.jb1)
136         {//按下登陆按钮
137             this.jl3.setText("正 在 验 证 , 请 稍 候. . . . .");//设置提示信息
138             //获取用户输入的主机地址、端口号、用户名与密码
139             String hostadd=this.hostaddress.getText().trim();
140             if(hostadd.equals("")){
141                 JOptionPane.showMessageDialog(this,"请输入主机地址","错误",
142                                                   JOptionPane.ERROR_MESSAGE);
143                 jl3.setText("");return;
144             }
145             String port=this.hostport.getText();
146             if(port.equals("")){
147                 JOptionPane.showMessageDialog(this,"请输入端口号","错误",
148                                                   JOptionPane.ERROR_MESSAGE);
149                 jl3.setText("");return;
150             }
151             this.host=hostadd+":"+port;
152             String name=this.jtf.getText().trim();
153             if(name.equals("")){
154                 JOptionPane.showMessageDialog(this,"请输入用户名","错误",
155                                                JOptionPane.ERROR_MESSAGE);
156                 jl3.setText("");return;
157             }
158             String pwd=this.jpwf.getText().trim();
159             if(pwd.equals("")){
160                 JOptionPane.showMessageDialog(this,"请输入密码","错误",
161                                            JOptionPane.ERROR_MESSAGE);
162                 jl3.setText("");return;
163             }
164             int type=this.jrbArray[0].isSelected()?0:1;//获取登陆类型
165             try{   //初始化连接
166                 this.initialConnection();
167                 if(type==0){//普通学员登陆
168                     //创建sql语句并查询
169                     String sql="select * from user_stu where "+
170                     "stu_id=‘"+name+"‘ and pwd=‘"+pwd+"‘";
171                     rs=stmt.executeQuery(sql);
172                     if(rs.next()){
173                         new StuClient(name,host);//创建学员客户短窗口
174                         this.dispose();//关闭登陆窗口并释放资源
175                     }
176                     else{//弹出错误提示窗口
177                         JOptionPane.showMessageDialog(this,"用户名或密码错误","错误",
178                                                    JOptionPane.ERROR_MESSAGE);
179                         jl3.setText("");
180                     }
181                     this.closeConn();//关闭连接,语句及结果集    
182                 }
183                 else{//教师登陆
184                     //创建sql语句并查询
185                     String sql="select coll_id from user_teacher where "+
186                                  "uid=‘"+name+"‘ and pwd=‘"+pwd+"‘";
187                     rs=stmt.executeQuery(sql);
188                     if(rs.next()){
189                         String coll_id=rs.getString(1);
190                         new TeacherClient(coll_id,host);//创建教师客户端窗口
191                         this.dispose();//关闭登陆窗口并释放资源
192                     }
193                     else{//弹出错误提示窗口
194                         JOptionPane.showMessageDialog(this,"用户名或密码错误","错误",
195                                                    JOptionPane.ERROR_MESSAGE);
196                         jl3.setText("");
197                     }
198                     this.closeConn();    //关闭连接,语句及结果集
199                 }
200             }
201             catch(SQLException ea){ea.printStackTrace();}
202         }
203         else if(e.getSource()==this.jb2){//按下重置按钮,清空输入信息
204             this.jtf.setText("");
205             this.jpwf.setText("");
206         }
207         else if(e.getSource()==jtf){//当输入用户名并回车时
208             this.jpwf.requestFocus(true);
209         }
210         else if(e.getSource()==jpwf){//当输入密码并回车时    
211             this.jb1.requestFocus(true);
212         }
213         else if(e.getSource()==this.hostaddress){//当输入主机地址并回车时
214             this.hostport.requestFocus(true);
215         }
216         else if(e.getSource()==this.hostport){//当输入端口号并回车时
217             this.jtf.requestFocus(true);
218         }
219     }
220     //自定义的初始化数据库连接的方法
221     public void  initialConnection()
222     {
223         try
224         {//加载驱动,创建Connection及Statement
225             Class.forName("org.gjt.mm.mysql.Driver");
226             conn=DriverManager.getConnection("jdbc:mysql://localhost:3306/pypx?useUnicode=true&characterEncoding=utf8", "root","root");
227             stmt=conn.createStatement();
228         }
229         catch(SQLException e)
230         {
231             JOptionPane.showMessageDialog(this,"连接失败,请检查主机地址是否正确","错误",JOptionPane.ERROR_MESSAGE);
232             e.printStackTrace();
233         }
234         catch(ClassNotFoundException e)
235         {
236             e.printStackTrace();
237         }
238     }
239     //初始化的关闭数据库连接的方法
240     public void closeConn()
241     {
242         try
243         {
244             if(rs!=null)
245             {
246                 rs.close();
247             }
248             if(stmt!=null)
249             {
250                 stmt.close();
251             }
252             if(conn!=null)
253             {
254                 conn.close();
255             }
256         }
257         catch(SQLException e)
258         {
259             e.printStackTrace();
260         }
261     }
262     public static void main(String args[])
263     {
264             //创建登陆窗体对象
265             Login login=new Login();
266     }
267 }
View Code

 2.2  学员端

学员端主界面主要是方便学员查看自己的成绩,学员可以通过这个界面查看自己平时成绩,量化分数,获得荣誉等信息。界面如下:

技术分享

主要实现代码展示

技术分享
package wyf.cgq;
import java.util.*;
public class StuClient extends JFrame
{
    private String host;
    //声明标志学员学号的变量
    private String stu_id;
    //创建树的各个节点
    private DefaultMutableTreeNode dmtnRoot=new DefaultMutableTreeNode(new MyNode("操作选项","0"));
    private DefaultMutableTreeNode dmtn1=new DefaultMutableTreeNode(new MyNode("系统选项","1"));
    private DefaultMutableTreeNode dmtn2=new DefaultMutableTreeNode(new MyNode("个人基本信息","2"));
    private DefaultMutableTreeNode dmtn3=new DefaultMutableTreeNode(new MyNode("学员选课","3"));
    private DefaultMutableTreeNode dmtn4=new DefaultMutableTreeNode(new MyNode("成绩查询","4"));
    private DefaultMutableTreeNode dmtn5=new DefaultMutableTreeNode(new MyNode("平时量化","5"));
    private DefaultMutableTreeNode dmtn6=new DefaultMutableTreeNode(new MyNode("体能考核","6"));
    private DefaultMutableTreeNode dmtn7=new DefaultMutableTreeNode(new MyNode("获得荣誉","7"));
    private DefaultMutableTreeNode dmtn8=new DefaultMutableTreeNode(new MyNode("评选先进办法","8"));
    //
    private DefaultMutableTreeNode dmtn11=new DefaultMutableTreeNode(new MyNode("退出","11"));
    private DefaultMutableTreeNode dmtn13=new DefaultMutableTreeNode(new MyNode("密码修改","13"));
    //
    private DefaultMutableTreeNode dmtn31=new DefaultMutableTreeNode(new MyNode("选课","31"));
    private DefaultMutableTreeNode dmtn32=new DefaultMutableTreeNode(new MyNode("课表显示","32"));
    //
    private DefaultMutableTreeNode dmtn41=new DefaultMutableTreeNode(new MyNode("已修课程成绩","41"));
    private DefaultMutableTreeNode dmtn42=new DefaultMutableTreeNode(new MyNode("不及格课程成绩","42"));
    //评选先进子节点
    private DefaultMutableTreeNode dmtn81=new DefaultMutableTreeNode(new MyNode("优秀毕业生评选办法","81"));
    private DefaultMutableTreeNode dmtn82=new DefaultMutableTreeNode(new MyNode("优秀学员评选办法","82"));
    private DefaultMutableTreeNode dmtn83=new DefaultMutableTreeNode(new MyNode("嘉奖评选办法","83"));
    
    
    //创建根节点
    private DefaultTreeModel dtm=new DefaultTreeModel(dmtnRoot);
    //创建树状列表控件
    private JTree jtree=new JTree(dtm);
    private JScrollPane jspz=new JScrollPane(jtree);
    //创建存放个功能模块面板
    private Image image=new ImageIcon("res/bg.jpg").getImage();  
    //JPanel panel = new BackgroundPanel(image);
    private JPanel jpy=new BackgroundPanel(image);
    private JSplitPane jsp1=new JSplitPane(JSplitPane.HORIZONTAL_SPLIT,jspz,jpy);
    //声明卡片布局的引用
    private CardLayout cl;
    //生命欢迎页面
    private Welcome welcome;
    //声明个功能模块的引用
    //选课模块的引用
    private ChoseCourse chosecourse;
    //课表显示模块的引用
    private CourseTable coursetable;
    //学员成绩查询页面
    private StuGrade stugrade;
    //不及格成绩查询页面
    private StuFailGrade stufailgrade;
    //基本信息查询页面
    private StuInfo stuinfo;
    //密码更改页面
    private ChangePwd changepwd;
    //优等生说明界面
    private Yxbys yxbys;
    //优秀学员
    private Yxxy yxxy;
    //嘉奖
    private Jj jj;
    //构造器
    public StuClient(String stu_id,String host)
    {
        this.host=host;
        this.stu_id=stu_id;
        //初始化树状列表控件
        this.initialTree();
        //初始化个功能模块面板
        this.initialPane();
        //初始化主功能面板,其他面板都一卡
        //片布局的形式存在与该面板
        this.initialJpy();
        //为控件注册监听器
        this.addListener();
        //初始化窗体
        this.initialFrame();
    }
    //主面板的初始化方法
    public void initialJpy()
    {//将各功能模块以卡片布局的形式存入主面板
        jpy.setLayout(new CardLayout());
        cl=(CardLayout)jpy.getLayout();
        jpy.add(welcome,"welcome");
        welcome.setBackground(Color.red);
        jpy.add(welcome,"welcome");
        jpy.add(chosecourse,"chosecourse");
        jpy.add(coursetable,"coursetable");
        jpy.add(stugrade,"stugrade");
        jpy.add(stufailgrade,"stufailgrade");
        jpy.add(stuinfo,"stuinfo");
        jpy.add(changepwd,"changepwd");
        jpy.add(yxbys,"yxbys");
        jpy.add(yxxy,"yxxy");
        jpy.add(jj,"jj");
    }
    //初始化各功能模块的方法
    public void initialPane()
    {
        welcome=new Welcome("学员成绩管理系统");
        chosecourse=new ChoseCourse(stu_id,host);
        coursetable=new CourseTable(stu_id,host);
        stugrade=new StuGrade(stu_id,host);
        stufailgrade=new StuFailGrade(stu_id,host);
        stuinfo=new StuInfo(stu_id,host);
        changepwd=new ChangePwd(stu_id,host);
        yxbys=new Yxbys();
        yxxy=new Yxxy();
        jj=new Jj();
    }
    //初始化树状列表控件的方法
    public void initialTree()
    {
        dmtnRoot.add(dmtn1);
        dmtnRoot.add(dmtn2);
        dmtnRoot.add(dmtn3);
        dmtnRoot.add(dmtn4);
        dmtnRoot.add(dmtn5);
        dmtnRoot.add(dmtn6);
        dmtnRoot.add(dmtn7);
        dmtnRoot.add(dmtn8);
        dmtn1.add(dmtn11);
        dmtn1.add(dmtn13);
        dmtn3.add(dmtn31);
        dmtn3.add(dmtn32);
        dmtn4.add(dmtn41);
        dmtn4.add(dmtn42);
        dmtn8.add(dmtn81);
        dmtn8.add(dmtn82);
        dmtn8.add(dmtn83);
        jtree.setToggleClickCount(1);
    }
    //为树状列表控件注册鼠标事件监听器的方法
    public void addListener()
    {
        jtree.addMouseListener(
               new MouseAdapter()
               {
                     public void mouseClicked(MouseEvent e)
                     { 
                         DefaultMutableTreeNode dmtntemp=(DefaultMutableTreeNode)jtree.getLastSelectedPathComponent();
                      MyNode mynode=(MyNode)dmtntemp.getUserObject();
                      String id=mynode.getId();
                      //根据id值显示不同的卡片
                      if(id.equals("0"))
                      {
                              cl.show(jpy,"welcome");
                      }
                         else if(id.equals("11"))
                         {
                                 int i=JOptionPane.showConfirmDialog(jpy,"您确认要退出出系统吗?","询问",JOptionPane.YES_NO_OPTION,JOptionPane.QUESTION_MESSAGE);
                                 if(i==0)
                                 {
                                     System.exit(0);
                                 }
                                 
                         }
                         else if(id.equals("13"))
                         {
                                 cl.show(jpy,"changepwd");
                                 changepwd.setFocus();
                         }
                         else if(id.equals("2"))
                         {
                                 cl.show(jpy,"stuinfo");
                         }
                         else if(id.equals("31"))
                         {
                                 cl.show(jpy,"chosecourse");
                         }
                         else if(id.equals("32"))
                         {
                                 //在显示之后立即更新数据
                                 cl.show(jpy,"coursetable");
                                 coursetable.initialData();
                                 coursetable.updataview();
                         }
                         else if(id.equals("41"))
                         {
                                 cl.show(jpy,"stugrade");
                         }
                         else if(id.equals("42"))
                         {
                                 cl.show(jpy,"stufailgrade");
                         }else if(id.equals("81"))
                      {
                              cl.show(jpy,"yxbys");
                      }else if(id.equals("82")){
                           cl.show(jpy,"yxxy");
                      }else if(id.equals("83")){
                           cl.show(jpy,"jj");
                      }
                      
                  }
               }
                               );
    }    
    //初始化窗体的方法
    public void initialFrame()
    {
        this.add(jsp1);
        jsp1.setDividerLocation(200);
        jsp1.setDividerSize(4);
        //设置窗体的标题、大小及其可见性
        this.setTitle("学员自主查询客户端");
        Image image=new ImageIcon("ico.gif").getImage();  
         this.setIconImage(image);
        Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
        int centerX=screenSize.width/2;
        int centerY=screenSize.height/2;
        int w=900;//本窗体宽度
        int h=650;//本窗体高度
        this.setBounds(centerX-w/2,centerY-h/2-30,w,h);//设置窗体出现在屏幕中央
        this.setVisible(true);
        //窗体全屏
        this.setExtendedState(JFrame.MAXIMIZED_BOTH);
    }
    //自定义的初始化树节点的数据对象的类
    class MyNode
    {
        private String values;
        private String id;
        public MyNode(String values,String id)
        {
            this.values=values;
            this.id=id;
        }
        public String toString()
        {
            return this.values;
        }
        public String getId()
        {
            return this.id;
        }
    }        
}
View Code

2.3 干部端

技术分享

 

 (注:本系统为工作室成品,有全套资料,需要可联系)

勤拂拭软件出品,必属精品

软件开发,毕业设计,程序作业,请访问勤拂拭毕业设计:

勤拂拭软件

我的qq(1215714557 加好友请注明:勤拂拭)

qq群(439261058 加群请注明:勤拂拭)

xx学院学员评优评奖管理系统

标签:org   sel   print   计算   zed   cat   layout   学校   span   

原文地址:http://www.cnblogs.com/wangleiblog/p/6915288.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!