JAVA课程设计论文学生成绩管理系统.doc

上传人:sccc 文档编号:4844372 上传时间:2023-05-19 格式:DOC 页数:18 大小:178.03KB
返回 下载 相关 举报
JAVA课程设计论文学生成绩管理系统.doc_第1页
第1页 / 共18页
JAVA课程设计论文学生成绩管理系统.doc_第2页
第2页 / 共18页
JAVA课程设计论文学生成绩管理系统.doc_第3页
第3页 / 共18页
JAVA课程设计论文学生成绩管理系统.doc_第4页
第4页 / 共18页
JAVA课程设计论文学生成绩管理系统.doc_第5页
第5页 / 共18页
点击查看更多>>
资源描述

《JAVA课程设计论文学生成绩管理系统.doc》由会员分享,可在线阅读,更多相关《JAVA课程设计论文学生成绩管理系统.doc(18页珍藏版)》请在三一办公上搜索。

1、目 录1 需求分析.21.1 系统功能要求分析.21.2 其它要求分析31.3 数据库需求分析32概要结构设计32.1系统功能结构设计32.2 概要结构设计43 详细设计及实现.53.1 用户登陆界面.53.2 管理员界.73.3 用户界面.93.4 添加模块123.5 删除模块153.5.1 代码实现:154设计总结.175 参考文献 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .181 需求分析1.1系统功能要求分析:(1)具有新用户注册功能。(2)具有注册用

2、户登录功能。(3)具有学生成绩的录入功能,要求只录入各科成绩,自动计算每个学生的总成绩。(4)具有数据查询功能,可以实现查询全部信息和按条件执行查询。(5)具有按条件删除数据功能。具体功能的详细描述如下1.1.1 选择学生基本维护菜单命令,即可进入 学生基本维护功能窗体,在其中输入学生的相关信息,如果需要添加或修改学生信息,则单击相应的按纽,输入新信息后单击添加就可以了。需要删除一条信息,则只要选择这条信息再点击 删除。在搜索条件中输入相关的条件,单击 查询就可查找信息。1.1.2 选择学生信息查询菜单命令,即可进入学生信息查询功能窗体,在其中的下拉列表中选择你要看的信息,则在下面的表格中显示

3、你要的信息。1.1.3 选择成绩管理 添加成绩菜单命令,即可进入 添加成绩功能窗体,此功能权限只有管理员和教师。1.1.4 选择成绩管理 输入成绩菜单命令,即可进入 输入成绩功能窗体,此功能权限只有管理员和教师。 1.1.5 选择成绩管理 修改成绩 界面,此功能规管理员所有。 1.1.6 选择成绩管理 查询成绩界面此界面对学生也是可见的,它的权限规所有用户所有。1.1.7 选择登陆 重新登陆 则会返回登陆界面,为用户提供方便。1.1.8 选择退出将退出整个系统。1.2其它要求分析:(1)只能使用Java语言,采用面向对象方法进行设计,要求源程序要有适当的注释,使程序容易阅读。(2)程序必须与数

4、据库进行通信。(3)系统必须是图形用户界面的形式并连接数据库。(4)学生可根据自身情况酌情增加新功能(视情况可另外加分)。(5)独立完成课程设计,并完成课程设计报告,报告应记录设计的过程,尤其是分析/设计/实现过程中的决策。1.3 数据库需求分析在系统中功能模块主要牵涉到的信息包括:是学生信息(Student)、课程信息(Course)、成绩表(SC).学生信息:包含学号(STNO)、姓名(SNAME)、年龄(SAGE)、性别(SSEX)、系别(SDEPT)课程信息:包括课程编号(Cno)、课程名称(Cname)、先行课(Cpno)成绩表;学号(STNO)、课程号(Cno)、成绩(Grade)

5、2概要结构设计2.1系统功能结构设计根据需求分析阶段得到的功能需求,管理员、学生和教师用户通过输入口令号和密码进下该系统后,可以进行一些学生基础信息查询(学生信息查询、班级信息查询、课程信息查询)、学生信息维护、成绩管理(成绩查询、计算平均分)重新登陆系统、退出。 模块功能大概可以分为如下4个方面:这几个模块学生基础维护、成绩管理、登陆、退出。其中基础维护还要包括学生信息维护、班级信息维护、课程信息维护。成绩管理包括成绩查询、添加成绩、成绩输入等。综上所述,得到客户端功能模块图如下2.1所示。2.2 概要结构用户登陆登陆管理员登陆增加信息查询信息查询信息删除信息E-R 图:开课系别 名称成绩姓

6、名先行课课名课程选课学号系别年龄学生含有装订线长 春 大 学 课程设计纸3详细设计及实现3.1用户登陆模块3.1.1 代码实现package com.mkx;import java.awt.*;import java.awt.event.*;import javax.swing.*;public class Login extends JFrame TextField f1;TextField f2;/文本域JButton b1;JButton b2;JButton b3; String power; /表示权限Login() Container cp=getContentPane(); cp

7、.setLayout(new GridLayout(4,1); Label l1=new Label(用户名);/设置标签名 Label l2=new Label(密 码); Panel p1=new Panel();/添加面板 Panel p2=new Panel(); Panel p3=new Panel(); f1=new TextField(10); f2=new TextField(10); f2.setEchoChar(*); b1=new JButton(登录); b2=new JButton(重置); b3=new JButton(退出); p1.add(l1); p1.add

8、(f1); p2.add(l2); p2.add(f2); p3.add(b1); p3.add(b2); p3.add(b3); cp.add(p1); cp.add(p2); cp.add(p3); b1.addActionListener(new Enter(); b2.addActionListener(new ReWrite(); b3.addActionListener(new Close();public static void main(String args) Login log=new Login(); log.setTitle(系统登录); log.setBounds(2

9、00, 200, 300, 300); log.setBackground(Color.blue); log.setVisible(true);class Enter implements ActionListener /对登陆具体进行处理 public void actionPerformed(ActionEvent e) if(f1.getText().equals(1100)&(f2.getText().equals(mkx) JOptionPane.showMessageDialog(null, 登录成功!用户权限是管理员); power=管理员; XueSheng frame1 =

10、new XueSheng(); frame1.setVisible(true); else if(f1.getText().equals(abc)&(f2.getText().equals(123456) JOptionPane.showMessageDialog(null, 登录成功!用户权限是学生); power=学生; Find f2 = new Find(); f2.setVisible(true); else JOptionPane.showMessageDialog(null, 登录失败,请重新登录!); class ReWrite implements ActionListene

11、r public void actionPerformed(ActionEvent e) f1.setText(); f2.setText(); f1.requestFocus(); class Close implements ActionListenerpublic void actionPerformed(ActionEvent e) if(e.getSource()=b3) System.exit(0) ; 3.2 管理员界面3.2.1 代码实现:package com.mkx;import java.awt.*;import java.awt.event.*;import javax

12、.swing.*;import javax.swing.JFrame;public class XueSheng extends JFrame implements ActionListener JButton cx, zj, tc, sc;XueSheng() setBounds(100, 100, 600, 600);JPanel panel2 = new JPanel(); /创建新面板setContentPane(panel2);panel2.setLayout(null); /设计布局为空JLabel label1 = new JLabel(欢迎进入学生信息管理界面); /创建标签l

13、abel1.setFont(new Font(BOLD, Font.BOLD, 28); /设计字体颜色大小panel2.add(label1);label1.setBounds(50, 20, 400, 100);cx = new JButton(查询);panel2.add(cx);cx.setBounds(50, 200, 80, 50);zj = new JButton(增加);panel2.add(zj);ianzj.setBounds(150, 200, 80, 50);sc = new JButton(删除);panel2.add(sc);sc.setBounds(250, 20

14、0, 80, 50);tc = new JButton(退出);panel2.add(tc);tc.setBounds(350, 200, 80, 50);cx.addActionListener(this);/添加监听zj.addActionListener(this);sc.addActionListener(this);tc.addActionListener(this);setVisible(true);public void actionPerformed(ActionEvent e) /对监听具体处理方法if (e.getSource() = cx) Find f = new Fi

15、nd(); if(e.getSource()=zj) AddFI f = new AddFI(); if(e.getSource()=sc) Delet d = new Delet(); if(e.getSource()=tc)shutDown();private void shutDown()this.dispose();3.3 用户界面3.3.1 代码实现:package com.mkx;import java.awt.*;import java.awt.event.*;import java.sql.Connection;import java.sql.DriverManager;imp

16、ort java.sql.PreparedStatement;import java.sql.ResultSet;import java.sql.SQLException;import javax.swing.*;public class Find extends JFrame implements ActionListener JTextField t1;String STNO, r1, r2, r3, r4, r5, r6;JButton b1, b2;XueSheng xue;Find() super(查询学生信息);Container c1 = this.getContentPane(

17、);/获得默认面板setBackground(new Color(215, 215, 215);c1.setLayout(new GridLayout(3, 2);JPanel pp = new JPanel();JLabel label0 = new JLabel(请输入你的学号);label0.setForeground(Color.blue);pp.add(label0);JPanel p1 = new JPanel();t1 = new JTextField(10);p1.add(new Label();p1.add(t1);c1.add(p1);JPanel p2 = new JPa

18、nel();b1 = new JButton(查询);b2 = new JButton(退出);b1.addActionListener(this);b2.addActionListener(this);p2.add(b1);p2.add(b2);c1.add(p2);this.setVisible(true);this.setBounds(200, 200, 400, 300);public void actionPerformed(ActionEvent e) try if (e.getSource() = b1) try STNO = t1.getText();Class.forName

19、(com.microsoft.sqlserver.jdbc.SQLServerDriver).newInstance();String url = jdbc:sqlserver:/localhost:1433; /数据库所在地址 DatabaseName=ss;String userName = sa; / 默认用户名String userPwd = sa;Connection cn = DriverManager.getConnection(url, userName,userPwd);String str = select Student.SNAME,Student.SAGE,Studen

20、t.SSEX,Student.STNO,Course.Cname,SC.Grade from Student,Course ,SC where Student.STNO = SC.STNO and SC.Cno = Course.Cno and Student.STNO =+STNO+;PreparedStatement ps = cn.prepareStatement(str);/创建结果处理类ResultSet rs = ps.executeQuery();System.out.println(STNO= + STNO);if (rs.next() r1 = rs.getString(ST

21、NO);r2 = rs.getString(SNAME);r3 = rs.getString(SAGE);r4 = rs.getString(SSEX);r5 = rs.getString(Cname);r6 = rs.getString(Grade); else JOptionPane.showMessageDialog(null, 你输入的学号有误);cn.close(); catch (SQLException g) System.out.println(Error + g.getErrorCode();System.out.println(Merrage= + g.getMessage

22、(); catch (Exception f) f.printStackTrace();File f = new File();this.dispose();if (e.getSource() = b2) t1.setText();t1.repaint(); catch (NumberFormatException ex) JOptionPane.showMessageDialog(null, 数据转换错误);class File extends JFrame implements ActionListener JTextField tt1, t2, t3, t4, t5, t6;JButto

23、n b3;File() super(查询学生信息);Container c2 = this.getContentPane();setBackground(new Color(215, 215, 215);c2.setLayout(new GridLayout(3, 1);tt1 = new JTextField(r1);t2 = new JTextField(r2);t3 = new JTextField(r3);t4 = new JTextField(r4);t5 = new JTextField(r5);t6 = new JTextField(r6);tt1.setEditable(fal

24、se);t2.setEditable(false);t3.setEditable(false);t4.setEditable(false);t5.setEditable(false);t6.setEditable(false);JPanel pp1 = new JPanel();JLabel label2 = new JLabel(学号为 + STNO + 学生的信息);pp1.add(label2);label2.setFont(new Font(BOLD, Font.BOLD, 28);c2.add(pp1);JPanel pp2 = new JPanel(new GridLayout(6

25、, 2);pp2.add(new JLabel(学号, SwingConstants.CENTER);tt1.setText(STNO);pp2.add(tt1);pp2.add(new JLabel(姓名, SwingConstants.CENTER);pp2.add(t2);pp2.add(new JLabel(年龄, SwingConstants.CENTER);pp2.add(t3);pp2.add(new JLabel(性别, SwingConstants.CENTER);pp2.add(t4);pp2.add(new JLabel(课程, SwingConstants.CENTER

26、);pp2.add(t5);pp2.add(new JLabel(成绩, SwingConstants.CENTER);pp2.add(t6);c2.add(pp2);JPanel pp3 = new JPanel();b3 = new JButton(返回);b3.addActionListener(this);pp3.add(b3);c2.add(pp3);this.setBounds(200, 200, 600, 400);setVisible(true);public void actionPerformed(ActionEvent f) if (f.getSource() = b3)

27、 this.dispose();3.4 添加模块3.4.1 添加模块代码实现:package com.mkx;import java.awt.*;import java.awt.event.*;import javax.swing.*;import java.sql.*;public class AddFI extends JFrame implements ActionListener JTextField STNOText, SNAMEText, SAGEText, SSEXText, SDEPTText;JButton b1, b2, b3;String STNO, SNAME, SAG

28、E, SSEX, SDEPT;public AddFI() Container c = this.getContentPane(); /获得默认面板c.setLayout(new GridLayout(3, 1);JPanel center = new JPanel(new GridLayout(5, 2);JPanel low = new JPanel(new FlowLayout();JLabel label1 = new JLabel(添加学生信息, SwingConstants.CENTER);label1.setFont(new Font(TRUE, Font.TRUETYPE_FO

29、NT, 20);c.add(label1);STNOText = new JTextField(30);SNAMEText = new JTextField(30);SSEXText = new JTextField(30);SAGEText = new JTextField(30);SDEPTText = new JTextField(30);center.add(new JLabel(学号, SwingConstants.CENTER);center.add(STNOText);center.add(new JLabel(姓名, SwingConstants.CENTER);center.

30、add(SNAMEText);center.add(new JLabel(性别, SwingConstants.CENTER);center.add(SSEXText);center.add(new JLabel(年龄, SwingConstants.CENTER);center.add(SAGEText);center.add(new JLabel(系别, SwingConstants.CENTER);center.add(SDEPTText);c.add(center);b1 = new JButton(添加);b2 = new JButton(清除);b3 = new JButton(退

31、出);low.add(b1);low.add(b2);low.add(b3);c.add(low);/ 为按钮添加jiantingb1.addActionListener(this);b2.addActionListener(this);b3.addActionListener(this);this.setBounds(200, 200, 600, 400);this.setVisible(true);this.setTitle(添加学生信息);public void actionPerformed(ActionEvent e) if (e.getSource() = b1) addFI();

32、if (e.getSource() = b2) clearForm();if (e.getSource() = b3) shutdown();private void addFI() STNO = STNOText.getText();SNAME = SNAMEText.getText();SSEX = SSEXText.getText();SAGE = SAGEText.getText();SDEPT = SDEPTText.getText();if (STNO.length() = 0 | SNAME.length() = 0 | SAGE.length() = 0| SDEPT.leng

33、th() = 0 | SSEX.length() = 0)JOptionPane.showMessageDialog(this, 请添加完全信息);else try Class.forName(com.microsoft.sqlserver.jdbc.SQLServerDriver).newInstance();String url = jdbc:sqlserver:/localhost:1433; DatabaseName=ss;String userName = sa; / 默认用户名String userPwd = sa;Connection cn = DriverManager.get

34、Connection(url, userName,userPwd);String str = INSERT INTO Student VALUES(?,?,?,?,?);PreparedStatement ps = cn.prepareStatement(str);ps.setString(1, STNO);ps.setString(2, SNAME);ps.setString(3, SSEX);ps.setString(4, SAGE);ps.setString(5, SDEPT);ps.executeUpdate();cn.close();JOptionPane.showMessageDi

35、alog(this, 添加成功);clearForm(); catch (SQLException e) System.out.println(ECode + e.getErrorCode();System.out.println(E M= + e.getMessage(); catch (Exception e) e.printStackTrace();private void clearForm() STNOText.setText();SNAMEText.setText();SAGEText.setText();SSEXText.setText();SDEPTText.setText()

36、;private void shutdown() this.dispose();3.5 删除模块3.5.1 代码实现:package com.mkx;import java.awt.*;import java.awt.event.*;import java.sql.Connection;import java.sql.DriverManager;import java.sql.PreparedStatement;import java.sql.SQLException;import javax.swing.*;public class Delet extends JFrame implemen

37、ts ActionListenerJButton yes;JButton cancle;JTextField text1;String STNO;Delet()Container c = this.getContentPane();c.setLayout(new GridLayout(3, 1);c.setFont(new Font(true,Font.TRUETYPE_FONT,13);JPanel p1 = new JPanel();JPanel p2 = new JPanel();JLabel label1 = new JLabel(删除学生信息,SwingConstants.CENTE

38、R);label1.setFont(new Font(true,Font.TRUETYPE_FONT,13);label1.setForeground(Color.blue);c.add(label1);JLabel label2 = new JLabel(请输入学号); text1 = new JTextField(10);p1.add(label2);p1.add(text1);c.add(p1); yes = new JButton(确定); cancle = new JButton(退出);p2.add(yes);p2.add(cancle);c.add(p2);yes.addActionListener(this);cancle.addActionListener(this);this.setTitle(删除学生信息);this.setBounds(200,200,400,300);this.setVisible(true); public void actionPerformed(ActionEvent e)if(e.getSource()=yes)

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 建筑/施工/环境 > 农业报告


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号