基于JAVA的学生成绩管理系统源代码 - 图文
更新时间:2024-01-16 21:46:01 阅读量: 教育文库 文档下载
Java程序设计 1 Java程序设计
系 专 业 班 级 学 号 姓 名 题 目 任课教师
08级嵌入式系统实验班 26号 赵黎明 学生成绩管理系统 彭洁
Java程序设计 2 一、课程设计要求:
1、用到书上(课本或实验册)上的至少三个实例; 2、用到至少两种布局和至少四种组件; 3、用到对话框;
4、用到对数据库的查询、删除、添加和修改; 5、最好用到输入输出流; 6、具有一定的实际意义。
二、用到的实例及实际意义:
2.1 程序所用到的实例:
1、《Java2使用教程》第10章例题10.12 P282; 2、《Java2使用教程》第11章例题11.8 P323; 3、《Java2使用教程》第15章所有例题均有使用作参考 P391-411; 4、在其他参考书和网上也有用到相关程序和代码,并有所参考和借鉴。
2.2程序的实际意义:
本《学生成绩管理系统》具有对学生成绩进行管理的功能。并于数据库相连接,能够对
学生的成绩、姓名、出生日期进行查询、添加和删除等,简捷方便,容易使用。
Java程序设计 3 三、程序代码及运行效果:
3.1.1 主类代码:
/*主类代码*/
import javax.swing.*; import java.awt.*;
import java.awt.event.*;
class MyPanel extends JPanel{
Image img=Toolkit.getDefaultToolkit().getImage(\ public void paint(Graphics g){ g.drawImage(img,0,0,this); } }
public class MainForm extends JFrame implements ActionListener {
JMenu mSystem=new JMenu(\系统\
JMenuItem mExit=new JMenuItem(\退出\ JMenu mOperate=new JMenu(\数据操作\ JMenuItem mAdd=new JMenuItem(\添加\ JMenuItem mDel=new JMenuItem(\删除\ JMenuItem mModify=new JMenuItem(\修改\ JMenu mQuery=new JMenu(\查询\
JMenuItem mName=new JMenuItem(\按姓名查询\ JMenuItem mScore=new JMenuItem(\按成绩查询\ JMenu mHelp=new JMenu(\帮助\
JMenuItem mAbout=new JMenuItem(\软件信息\ JMenuBar mBar=new JMenuBar(); MainForm() {
super(\学生成绩管理系统\ setSize(875,583); mSystem.add(mExit); mOperate.add(mAdd); mOperate.add(mDel); mOperate.add(mModify); mQuery.add(mName); mQuery.add(mScore); mHelp.add(mAbout); mBar.add(mSystem); mBar.add(mOperate); mBar.add(mQuery); mBar.add(mHelp); setJMenuBar(mBar);
mExit.addActionListener(this); mAdd.addActionListener(this); mDel.addActionListener(this);
Java程序设计 4 mModify.addActionListener(this); mName.addActionListener(this); mScore.addActionListener(this); mAbout.addActionListener(this); setContentPane(new MyPanel()); setVisible(true); }
public void actionPerformed(ActionEvent ae){ if(ae.getSource()==mExit) System.exit(0);
else if(ae.getSource()==mAbout)
JOptionPane.showMessageDialog(this,\学生成绩管理系统\\n\\n应用科学学院\\n\\n2011年4月\软件信息\ else if(ae.getSource()==mAdd)
new AddForm().setVisible(true); else if(ae.getSource()==mDel)
new DeleteForm().setVisible(true); else if(ae.getSource()==mModify) new ModifyForm().setVisible(true); else if(ae.getSource()==mName)
new NameQueryForm().setVisible(true); else if(ae.getSource()==mScore)
new ScoreQueryForm().setVisible(true); }
public static void main(String[] args) { new MainForm(); } }
3.1.2 运行效果:
Java程序设计 5 3.2.1 修改数据:
/*修改数据*/
import javax.swing.*; import java.awt.*;
import java.awt.event.*; import java.sql.*;
public class ModifyForm extends JFrame implements ActionListener {
JLabel labName=new JLabel(\姓名:\ JLabel labDate=new JLabel(\出生日期:\ JLabel labScore=new JLabel(\成绩:\ JTextField txtName=new JTextField(20); JTextField txtDate=new JTextField(18); JTextField txtScore=new JTextField(20); JButton btnModify=new JButton(\修改\ JButton btnCancel=new JButton(\取消\ JButton btnQuery=new JButton(\查询\ JPanel pan=new JPanel(); JPanel pan1=new JPanel(); JPanel pan2=new JPanel(); JPanel pan3=new JPanel(); JPanel pan4=new JPanel(); Connection con; Statement sql; ResultSet rs; ModifyForm() {
super(\修改数据\ setSize(400,300); pan1.add(labName); pan1.add(txtName); pan2.add(labDate); pan2.add(txtDate); pan3.add(labScore); pan3.add(txtScore); pan4.add(btnQuery); pan4.add(btnModify); pan4.add(btnCancel);
pan.setLayout(new GridLayout(3,1)); pan.add(pan1); pan.add(pan2); pan.add(pan3);
getContentPane().add(pan,\ getContentPane().add(pan4,\
Java程序设计 6 btnQuery.addActionListener(this); btnModify.addActionListener(this); btnCancel.addActionListener(this); btnModify.setEnabled(false); txtDate.setEditable(false); txtScore.setEditable(false); setVisible(true);
txtName.requestFocus(); }
public void actionPerformed(ActionEvent ae){ if(ae.getSource()==btnCancel){ dispose();
} else if(ae.getSource()==btnQuery){ try{
Class.forName(\ catch(ClassNotFoundException e){ }
try{con=DriverManager.getConnection(\ sql=con.createStatement();
rs=sql.executeQuery(\成绩表 where 姓名='\ if(rs.next()){
txtName.setText(rs.getString(\姓名\
txtScore.setText(new Integer(rs.getInt(\成绩\
txtDate.setText(rs.getDate(\出生日期\ btnModify.setEnabled(true); txtDate.setEditable(true); txtScore.setEditable(true); }else{
System.out.println(\不存在该记录! \ btnModify.setEnabled(false); txtName.setText(\ txtScore.setText(\ txtDate.setText(\
txtDate.setEditable(false); txtScore.setEditable(false); }
}catch(SQLException e){ }
}else if(ae.getSource()==btnModify){ try{
System.out.println(\成绩表 set 出生日期='\成绩=\姓名
Java程序设计 ='\
sql.executeUpdate(\成绩表 set 出生日期='\成绩=\姓名='\
System.out.println(\记录修改完毕!\ btnModify.setEnabled(false); txtName.setText(\ txtScore.setText(\ txtDate.setText(\
txtDate.setEditable(false); txtScore.setEditable(false); con.close();
}catch(SQLException e){ } } }
public static void main(String[] args) { new ModifyForm(); } }
7 3.2.2 运行效果:
Java程序设计 8 3.3.1 删除数据:
/*删除数据*/
import javax.swing.*; import java.awt.*;
import java.awt.event.*; import java.sql.*;
public class DeleteForm extends JFrame implements ActionListener {
JLabel labName=new JLabel(\姓名:\ JLabel labDate=new JLabel(\出生日期:\ JLabel labScore=new JLabel(\成绩:\ JTextField txtName=new JTextField(20); JTextField txtDate=new JTextField(18); JTextField txtScore=new JTextField(20); JButton btnDelete=new JButton(\删除\ JButton btnCancel=new JButton(\取消\ JButton btnQuery=new JButton(\查询\ JPanel pan=new JPanel(); JPanel pan1=new JPanel(); JPanel pan2=new JPanel(); JPanel pan3=new JPanel(); JPanel pan4=new JPanel(); Connection con; Statement sql; ResultSet rs; DeleteForm() {
super(\删除数据\ setSize(400,300); pan1.add(labName); pan1.add(txtName); pan2.add(labDate); pan2.add(txtDate); pan3.add(labScore); pan3.add(txtScore); pan4.add(btnQuery); pan4.add(btnDelete); pan4.add(btnCancel);
pan.setLayout(new GridLayout(3,1)); pan.add(pan1); pan.add(pan2); pan.add(pan3);
getContentPane().add(pan,\ getContentPane().add(pan4,\ btnQuery.addActionListener(this); btnDelete.addActionListener(this);
Java程序设计 btnCancel.addActionListener(this);
btnDelete.setEnabled(false);//取消删除按钮的功能 txtDate.setEditable(false); txtScore.setEditable(false); setVisible(true);
txtName.requestFocus(); }
public void actionPerformed(ActionEvent ae) {
if(ae.getSource()==btnCancel) {
dispose(); }
else if(ae.getSource()==btnQuery){ //实现查询功能 try {
Class.forName(\ catch(ClassNotFoundException e){ }
try{con=DriverManager.getConnection(\ sql=con.createStatement();
rs=sql.executeQuery(\* from 成绩表 where ='\ if(rs.next()) {
txtName.setText(rs.getString(\姓名\ txtScore.setText(new Integer(rs.getInt(\成\
txtDate.setText(rs.getDate(\出生日期\ btnDelete.setEnabled(true);//使删除按钮功能实现 txtDate.setEditable(true); txtScore.setEditable(true); }else{
System.out.println(\不存在该记录!\ btnDelete.setEnabled(false); txtName.setText(\ txtScore.setText(\ txtDate.setText(\
txtDate.setEditable(false); txtScore.setEditable(false); }
}catch(SQLException e){ } }
else if(ae.getSource()==btnDelete) //实现删除功能
9 姓名绩Java程序设计 10 {
try {
System.out.println(\ 成绩表 set 出生日期='\成绩=\where 姓名='\
sql.executeUpdate(\FROM 成绩表 where 姓名='\
System.out.println(\记录删除完毕!\ btnDelete.setEnabled(false); txtName.setText(\ txtScore.setText(\ txtDate.setText(\
txtDate.setEditable(false); txtScore.setEditable(false); con.close(); }
catch(SQLException e){ } } }
public static void main(String[] args) {
new DeleteForm(); } }
3.3.2 运行效果:
Java程序设计 11 3.4.1 添加数据:
/*添加数据*/
import javax.swing.*; import java.awt.*;
import java.awt.event.*; import java.sql.*;
public class AddForm extends JFrame implements ActionListener {
JLabel labName=new JLabel(\姓名:\ JLabel labDate=new JLabel(\出生日期:\ JLabel labScore=new JLabel(\成绩:\ JTextField txtName=new JTextField(20); JTextField txtDate=new JTextField(18); JTextField txtScore=new JTextField(20); JButton btnAdd=new JButton(\添加\ JButton btnCancel=new JButton(\取消\ JPanel pan=new JPanel(); JPanel pan1=new JPanel(); JPanel pan2=new JPanel(); JPanel pan3=new JPanel(); JPanel pan4=new JPanel(); Connection con; Statement sql; ResultSet rs; AddForm() {
super(\添加数据\ setSize(400,300); pan1.add(labName); pan1.add(txtName); pan2.add(labDate); pan2.add(txtDate); pan3.add(labScore); pan3.add(txtScore); pan4.add(btnAdd); pan4.add(btnCancel);
pan.setLayout(new GridLayout(3,1)); pan.add(pan1); pan.add(pan2); pan.add(pan3);
getContentPane().add(pan,\ getContentPane().add(pan4,\ btnAdd.addActionListener(this); btnCancel.addActionListener(this);
Java程序设计 btnAdd.setEnabled(true); txtDate.setEditable(true); txtScore.setEditable(true); setVisible(true);
txtName.requestFocus(); }
public void actionPerformed(ActionEvent ae) {
String recode,insert1,出生日期,姓名; int 成绩;
if(ae.getSource()==btnCancel) {
this.dispose(); }
else if(ae.getSource()==btnAdd) {
try {
Class.forName(\ catch(ClassNotFoundException e){ }
try{con=DriverManager.getConnection(\ sql=con.createStatement(); 姓名=txtName.getText(); 出生日期=txtDate.getText();
成绩=Integer.parseInt(txtScore.getText());
recode=\姓名+\出生日期+\成绩+\
insert1=\成绩表 VALUES \ sql.executeUpdate(insert1);
System.out.println(\记录添加完毕!\ btnAdd.setEnabled(false); txtName.setText(\ txtScore.setText(\ txtDate.setText(\ con.close(); }
catch(SQLException e){ } } }
public static void main(String[] args) {
12
Java程序设计 }
new AddForm(); }
13 3.4.2 运行效果:
3.5.1 按姓名查询数据:
/*按姓名查询数据*/ import javax.swing.*; import java.awt.*;
import java.awt.event.*; import java.sql.*;
public class NameQueryForm extends JFrame implements ActionListener {
JLabel labName=new JLabel(\姓名:\ JLabel labDate=new JLabel(\出生日期:\ JLabel labScore=new JLabel(\成绩:\ JTextField txtName=new JTextField(20); JTextField txtDate=new JTextField(18); JTextField txtScore=new JTextField(20); JButton btnCancel=new JButton(\取消\ JButton btnQuery=new JButton(\查询\ JPanel pan=new JPanel(); JPanel pan1=new JPanel(); JPanel pan2=new JPanel(); JPanel pan3=new JPanel(); JPanel pan4=new JPanel(); Connection con; Statement sql; ResultSet rs;
Java程序设计 14 NameQueryForm() {
super(\按姓名查询\ setSize(400,300); pan1.add(labName); pan1.add(txtName); pan2.add(labDate); pan2.add(txtDate); pan3.add(labScore); pan3.add(txtScore); pan4.add(btnQuery); pan4.add(btnCancel);
pan.setLayout(new GridLayout(3,1)); pan.add(pan1); pan.add(pan2); pan.add(pan3);
getContentPane().add(pan,\ getContentPane().add(pan4,\ btnQuery.addActionListener(this); btnCancel.addActionListener(this); txtDate.setEditable(false); txtScore.setEditable(false); setVisible(true);
txtName.requestFocus(); }
public void actionPerformed(ActionEvent ae){ if(ae.getSource()==btnCancel){ dispose();
} else if(ae.getSource()==btnQuery){ try{
Class.forName(\ catch(ClassNotFoundException e){ }
try{con=DriverManager.getConnection(\ sql=con.createStatement();
rs=sql.executeQuery(\成绩表 where 姓名='\ if(rs.next()){
txtName.setText(rs.getString(\姓名\
txtScore.setText(new Integer(rs.getInt(\成绩\
txtDate.setText(rs.getDate(\出生日期\ }else{
System.out.println(\不存在该记录! \
Java程序设计 txtName.setText(\ txtScore.setText(\ txtDate.setText(\ txtName.requestFocus(); }
}catch(SQLException e){ } } }
public static void main(String[] args) { new NameQueryForm(); } }
15 3.5.2 运行效果:
3.6.1 按成绩查询数据:
/*按成绩查询数据*/ import javax.swing.*; import java.awt.*;
import java.awt.event.*; import java.sql.*;
import javax.swing.table.DefaultTableModel; import javax.swing.table.JTableHeader;
public class ScoreQueryForm extends JFrame implements ActionListener {
JLabel labScore=new JLabel(\请输入成绩:\ JTextField txtScore=new JTextField(10); JButton btnQuery=new JButton(\查询\ JPanel pan1=new JPanel();
Java程序设计 16 JPanel pan2=new JPanel();
String []str={\姓名\出生日期\成绩\ Object[][] data=new Object[10][3]; JTable table=new JTable(data,str);
JTableHeader head=table.getTableHeader();
JScrollPane jsp=new JScrollPane(table); //滚动 Connection con; Statement sql; ResultSet rs; ScoreQueryForm() {
super(\按成绩查询\ setSize(400,300); pan1.add(labScore); pan1.add(txtScore);
pan1.add(btnQuery); //以上3条在第一个面板加入内容 getContentPane().add(pan1,\//把面板1放到窗口顶部 pan2.setLayout(new BorderLayout());
pan2.add(head,\ //将表头放在面板2的顶部 pan2.add(jsp,\ //表格放在pan2中间
getContentPane().add(pan2,\把面板2整体加入到主窗口中 btnQuery.addActionListener(this); //增加查询按钮的监视器 setVisible(true); }
public void actionPerformed(ActionEvent ae){ if(ae.getSource()==btnQuery){ int i,j,row; try{
Class.forName(\ catch(ClassNotFoundException e){ }
try{ con=DriverManager.getConnection(\ sql=con.createStatement();
rs=sql.executeQuery(\成绩表 where 成绩=\寻找相同成绩的行数 rs.next(); //去掉头 row=rs.getInt(\ rs.close();
data=new Object[row][3];
rs=sql.executeQuery(\成绩表 where 成绩=\ i=0;j=0;
while(rs.next()){
data[i][j++]=rs.getString(\姓名\
Java程序设计 17 data[i][j++]=rs.getDate(\出生日期\
data[i][j]=new Integer(rs.getInt(\成绩\将数据库中查询到的信息保存到data中
i++;j=0; }
pan2.removeAll();
getContentPane().remove(pan2); table=new JTable(data,str);
pan2.setLayout(new BorderLayout()); head=table.getTableHeader(); jsp=new JScrollPane(table); pan2.add(head,\ pan2.add(jsp,\
getContentPane().add(pan2,\ this.validate(); con.close();
}catch(SQLException e){ } } }
public static void main(String[] args) { new ScoreQueryForm(); } }
3.6.2 运行效果:
Java程序设计 18 四、总结:
通过本次课程设计,不仅让我更深入的了解JAVA这门学科,更使自己有了继续探索的兴趣。
对我来说,在之前的学习过程中没有能够很好的掌握JAVA语言的学习,在很多地方还有生疏和遗漏,并且在此次课程设计过程中也遇到困难不能自己独立解决。但是,通过这次程序设计,除了增加了自己的编程能力,提高了我对JAVA的应用能力,同时我也深感“认真严谨”这个词的重要性,一点点小的马虎,便会导致整个程序不能正常运行。在今后的学习中,我将继续保持严谨的学习态度。与此同时,在同学的帮助下,让我体会到了相互学习的重要性,而更让人难以忘怀的是在热烈讨论问题时,那激情横溢的场面。总之,此次课程设计让我获益匪浅。
正在阅读:
中国巧克力产业专项调研与投资决策分析报告(2015-2020)09-06
小型车或为中国品牌轿车的突破口07-08
第十三章补充习题及参考答案05-07
燃气工程施工组织设计05-21
外研初中英语单词表(全)09-06
高考物理复习之各知识点汇总06-23
阅读作文600字06-28
慈母情深作文400字07-16
- exercise2
- 铅锌矿详查地质设计 - 图文
- 厨余垃圾、餐厨垃圾堆肥系统设计方案
- 陈明珠开题报告
- 化工原理精选例题
- 政府形象宣传册营销案例
- 小学一至三年级语文阅读专项练习题
- 2014.民诉 期末考试 复习题
- 巅峰智业 - 做好顶层设计对建设城市的重要意义
- (三起)冀教版三年级英语上册Unit4 Lesson24练习题及答案
- 2017年实心轮胎现状及发展趋势分析(目录)
- 基于GIS的农用地定级技术研究定稿
- 2017-2022年中国医疗保健市场调查与市场前景预测报告(目录) - 图文
- 作业
- OFDM技术仿真(MATLAB代码) - 图文
- Android工程师笔试题及答案
- 生命密码联合密码
- 空间地上权若干法律问题探究
- 江苏学业水平测试《机械基础》模拟试题
- 选课走班实施方案
- 源代码
- 管理系统
- 基于
- 成绩
- 图文
- 学生
- JAVA
- 三种沉砂池的优缺点 设计与选择
- 201802批次网上考试大学英语(1)A卷及参考答案
- 我国公路运输存在的问题及对策研究
- 新GRE逻辑阅读23题
- 资本成本习题答案Doc2
- 2018幼儿园生活老师工作总结模板学习
- 社会礼仪2判断题
- 北仑区学校体育资源向社会开放统计表doc
- JAVA面向对象程序设计教案 - 图文
- 中医病历书写基本规范实施细则
- 对称分量法
- GL312型断路器防跳研究及其接线
- 标准日本语 文法总结1
- 《现代化教学手段在小学语文教学中的应用研究》结题报告
- labview经典练习题附答案 - 图文
- 中国医科大学2015年7月考试《精神科护理学》考查课试题标准 答案
- MIPS单周期CPU实验报告 - 图文
- wifidog移植及认证服务器搭建
- 关于公布《呼和浩特铁路局营业线施工安全管理及天窗修实施细则》的通知 呼铁办〔2007〕168号
- 高举旗帜 紧扣中心 认真履职 在服务大局中实现政协工作新作为