《Java程序设计》终极不改版
成绩: ____0.1______
Java程序设计
课程设计
题
目:大学生信息管理系统
学
院:
计算机与软件学院
专
业: 网络工程_____
.
学
号:范晋杰20151346023
.
金恒昱20151346024
.
鲁方伟20151346081
指导教师:
方巍_______
2016年12月23日
目
录
1. 前言.............................................
2. 需求分析..........................................
3. 概要设计..........................................
4. 详细设计..........................................
2
5. 测试............................................2
1.前言
Java语言是目前IT行业应用最多,也是最主流的开发语言之一(另一主流是.NET),其应用前景很广。Java语言本身主要用于开发桌面应用程序。与此相对应,JSP、Servlet和JavaBean等是基于Java语言开发Web应用程序的技术。本课程设计的任务就是使用Java或JSP、Servlet和JavaBean等组件开发一套桌面或Web应用程序。
我们准备开发一个全国大学生信息管理系统。系统功能包括如下:
添加学生信息
查看学生信息
修改学生信息
删除学生信息
相关技术简介:我们采用java编程技术,用到了数据库,图形化设计等。
2. 需求分析
市场需求:主要解决一个管理学生信息的问题,学生学号,班级,成绩之类的问题,旨在为各大高校提供一个开源、自由、免费的简单管理软件。这个问题要求我们提供一个管理学生信息安全的平台,避免学生信息的缺漏。人性化的图形管理界面,加上优美的背景音乐和可爱的开场动画,让管理者可以更加愉悦得对学生信息进行管理。
3.
编程环境:
JDK(Java
Development Kit)称为Java开发包或Java开发工具,是一个编写Java的Applet小程序和应用程序的程序开发环境。JDK是整个Java的核心,包括了Java运行环境(Java
Runtime
Envirnment),一些Java工具和Java的核心类库(Java
API)。不论什么Java应用服务器实质都是内置了某个版本的JDK。采用Eclipse工具,一个开放源代码的、基于Java的可扩展开发平台。
程序模块流程:
4.详细设计
类设计:
SplashWindow
开始动画
LogIn
登陆界面,输入用户名,密码等
MySound
背景音乐播放
Student
主界面各种功能
QueryStudent
学生搜索
StudentIn
录入学生
DeleteStudent
学生删除
StudentInformationBrower
学生概览
UpdatePassword
修改密码
数据库设计:
学生名 |
学号 |
Java |
数据结构 |
概率统计 |
入学时间 |
龙傲天 |
20151 |
59 |
34 |
47 |
2015 |
余笑 |
201419 |
38 |
24 |
36 |
2014 |
李四 |
201625 |
20 |
69 |
89 |
2016 |
金大牙 |
201513 |
75 |
89 |
96 |
2015 |
郑官圣 |
200615 |
59 |
89 |
79 |
2006 |
鲁方伟 |
20151346081 |
60 |
60 |
80 |
2015 |
详细代码:
//“删除学生信息”功能类代码
class
DeleteStudent
implements
ActionListener
{
JFrame f;
Container cp;
JPanel jpS,jpanelWest;
JButton
jbt1,jbt2,jbt3;//按钮,查询、取消、修改
JLabel label,L;
//标签:请输入学号
JTextField tf;
//定义文本框
JTable table;//用来接收数据库中返回的信息
Object columnName[]={"学生名","学号","Java","数据结构","概率统计","入学时间"};
Object ar[][] =new Object[80][6];
String sno;
//String count="xx";
DeleteStudent()
{
f=new
JFrame();
cp=f.getContentPane(); // 初始化面板、按钮、标签、文本框
jpS=new JPanel();
jpanelWest=new JPanel();
jbt1=new JButton("查询");
jbt2=new JButton("取消");
jbt3=new JButton("删除");
label=new JLabel("请输入要删除的学生名:",SwingConstants.CENTER);
label.setForeground(Color.blue);
table=new JTable(ar,columnName);//ar存放表中的数据,columnname表示列名
JScrollPane scrollpane = new JScrollPane(table);
tf=new JTextField(18);
jpS.add(jbt1);
jpS.add(jbt2);
jpS.add(jbt3);
JPanel jpanel=new JPanel();
jpanel.add(label);
jpanel.add(tf);
JPanel pp4=new JPanel();
JPanel jpE=new JPanel();
cp.add(jpanel,"North");
JPanel jp=new JPanel();
JPanel p=new JPanel();//用来放两个表
p.setLayout(new BorderLayout());
p.add(scrollpane);
cp.add(pp4,"West");
cp.add(p,"Center");
cp.add(jpS,"South");
cp.add(jpE,"East");
Dimension
screen=Toolkit.getDefaultToolkit().getScreenSize();
f.setSize(400,330);
f.setLocation((screen.width-350)/2,(screen.height-350)/2);
f.setVisible(true);
jbt1.addActionListener(this);//注册监听器
jbt2.addActionListener(this);
jbt3.addActionListener(this);
}
int
i=0;
public void
showRecord(String ql)
{
while(i>=0)
{
ar[i][0]="";
ar[i][1]="";
ar[i][2]="";
ar[i][3]="";
ar[i][4]="";
ar[i][5]="";
i--;
}
i=0;
try{
Class.forName("com.hxtt.sql.access.AccessDriver");
}catch(ClassNotFoundException
e){System.out.println("加载驱动程序失败!");}
try{
Connection con =
DriverManager.getConnection("jdbc:Access:/D:/Student.mdb");
Statement
sql;
String
s="select * from 表book
where 学生名='"+ql +"'";
sql=con.createStatement();
ResultSet
rs=sql.executeQuery(s);
while(rs.next())
{
String bname=rs.getString(1);
String bno=rs.getString(2);
String price=rs.getString(3);
String writer=rs.getString(4);
String publish=rs.getString(5);
String indate=rs.getString(6);
ar[i][0]=bname;
ar[i][1]=bno;
ar[i][2]=price;
ar[i][3]=writer;
ar[i][4]=publish;
ar[i][5]=indate;
i++;
}
f.repaint();
con.close();System.out.println(ar[0][1]);
}catch(SQLException g)
{
System.out.println("E
Code"+g.getErrorCode());
System.out.println("E
M"+g.getMessage());
}}
public void
deleteRecord(int index)
{
try{
Class.forName("com.hxtt.sql.access.AccessDriver");
}catch(ClassNotFoundException
e){System.out.println("加载驱动程序失败!");}
try{
Connection con =
DriverManager.getConnection("jdbc:Access:/D:/Student.mdb");
Statement sql;
String ql=(String)(ar[index][1]);
String s="delete from 表book
where 学号 ='"+ql +"'";
sql=con.createStatement();
int
del=sql.executeUpdate(s);
if(del==1)
{JOptionPane.showMessageDialog(null,"删除成功!",
"信息",
JOptionPane.YES_NO_OPTION);
}
con.close();
f.repaint();
}catch(SQLException g)
{
System.out.println("E Code"+g.getErrorCode());
System.out.println("E M"+g.getMessage());
}
}
public void actionPerformed(ActionEvent
e)
{
String remember="";
String ql="";
String
cmd=e.getActionCommand();
if(cmd.equals("查询"))
{
ql=tf.getText().trim();
remember=ql;
showRecord(ql);
}
if(cmd.equals("删除"))
{
int
index=table.getSelectedRow();
if(
index==-1)
JOptionPane.showMessageDialog(null,"请选定要删除的表格行",
"输入错误",
JOptionPane.YES_NO_OPTION);
else{
deleteRecord(index);
}
}
if(cmd.equals("取消"))
f. dispose();
}
public
static void main(String []arg){
DeleteStudent a=new DeleteStudent();
}}
package
大学生信息管理系统;
class
QueryStudent implements ActionListener
{
JFrame f3=new JFrame();
Container cp=new JPanel();
JPanel jp1=new JPanel();
JPanel jp2=new JPanel();
JPanel jp3=new JPanel();
JPanel jp4=new JPanel();
JPanel jp=new JPanel();
JPanel jpanelWest=new JPanel();;
JButton
jbt1=new JButton("确定");
JButton jbt2=new JButton("取消");//按钮,确定、取消
JLabel label;
//标签:请输入图书号
JTextField tf,tf1,tf2,tf3,tf4,tf5,tf6;
//定义文本框
JLabel label1,label2,label3,label4;
QueryStudent()
{
cp=f3.getContentPane(); // 初始化面板、按钮、标签、文本框
label=new JLabel("请输入学生学号:",SwingConstants.CENTER);
label.setForeground(Color.blue);
tf=new JTextField(20);
tf1=new JTextField(20);
tf2=new JTextField(20);
tf3=new JTextField(20);
tf4=new JTextField(20);
tf5=new JTextField(20);
tf6=new JTextField(20);
JPanel jpanel=new JPanel();
jpanel.add(label);
jpanel.add(tf);
JPanel pp4=new JPanel();
JPanel jpane4=new JPanel();
cp.add(jpanel,"North");
JPanel pp2=new JPanel(new GridLayout(6,1));
JPanel pp3=new JPanel();
pp4.setLayout(new GridLayout(6,1));
pp4.add(new JLabel("学生名",SwingConstants.CENTER));
pp2.add(tf1);
pp4.add(new JLabel("学号",SwingConstants.CENTER));
pp2.add(tf2);
pp4.add(new JLabel(";
pp2.add(tf3);
pp4.add(new JLabel("数据结构",SwingConstants.CENTER));
pp2.add(tf4);
pp4.add(new JLabel("概率统计",SwingConstants.CENTER));
pp2.add(tf5);
pp4.add(new JLabel("入学时间",SwingConstants.CENTER));
pp2.add(tf6);
pp3.add(jbt1);
pp3.add(jbt2);
cp.add(pp4,"West");
cp.add(pp2,"Center");
cp.add(pp3,"South");
cp.add(jpane4,"East");
Dimension
screen=Toolkit.getDefaultToolkit().getScreenSize();
f3.setSize(350,330);
f3.setLocation((screen.width-350)/2,(screen.height-350)/2);
f3.setVisible(true);
jbt1.addActionListener(this);//注册监听器
jbt2.addActionListener(this);
}
public
void showRecord()
{
try{
Class.forName("com.hxtt.sql.access.AccessDriver");
}catch(ClassNotFoundException
e){System.out.println("加载驱动程序失败!");}
try{
Connection con =
DriverManager.getConnection("jdbc:Access:/D:/Student.mdb");
Statement sql;
String ql=tf2.getText().trim();
String s="select * from 表book
where 学号 ='"+ql +"'";
sql=con.createStatement();
ResultSet
rs=sql.executeQuery(s);
if(rs.next())
{
String sname=rs.getString(1);
String sno=rs.getString(2);
String ;
String DataStructure=rs.getString(4);
String Statistics=rs.getString(5);
String time=rs.getString(6);
tf1.setText(sname);
tf2.setText(sno);
tf3.setText(;
tf4.setText(DataStructure);
tf5.setText(Statistics);
tf6.setText(time);
}
else
{JOptionPane.showMessageDialog(null,"您输入的学号不存在,请重新输入",
"输入错误",
JOptionPane.YES_NO_OPTION);
}
con.close();
}catch(SQLException g)
{
System.out.println("E Code"+g.getErrorCode());
System.out.println("E M"+g.getMessage());
}
tf1.setEditable(false);
tf2.setEditable(false);
tf3.setEditable(false);
tf4.setEditable(false);
tf5.setEditable(false);
tf6.setEditable(false);
}
public
void actionPerformed(ActionEvent e)
{
String
cmd=e.getActionCommand();
if(cmd.equals("确定"))
{
showRecord();
tf.setText("");
}
else
if(cmd.equals("取消"))
f3.dispose();
}
public
static void main(String []arg){
QueryStudent a=new QueryStudent();
}}
package
大学生信息管理系统;
import
java.awt.event.*;
import
javax.swing.*;
import
java.awt.*;
import
java.util.*;
import
java.sql.*;
import
javax.swing.text.JTextComponent;
class
StudentIn
implements
ActionListener
{
JFrame f3=new JFrame();
Container cp;
JPanel jp1=new JPanel();
JPanel jp2=new JPanel();
JPanel jp3=new JPanel();
JPanel jp4=new JPanel();
JPanel jp=new JPanel();
JPanel jpanelWest=new JPanel();
JButton
jbt1,jbt2;//按钮:确定、取消、
JLabel label;
//标签
JTextField tf1,tf2,tf3,tf4,tf5,tf6;
//定义文本框
JLabel label1,label2,label3,label4;
String sno;
StudentIn()
{
cp=f3.getContentPane(); // 初始化面板、按钮、标签、文本框
jbt1=new JButton("确定");
jbt2=new JButton("取消");
label=new JLabel("录入学生",SwingConstants.CENTER);
label.setForeground(Color.blue);
tf1=new
JTextField(20);
tf2=new JTextField(20);
tf3=new JTextField(20);
tf4=new JTextField(20);
tf5=new JTextField(20);
tf6=new JTextField(20);
jp1.add(jbt1);
jp1.add(jbt2);
sno=tf4.getText();
jp1.add(new JLabel("您好"+sno+"欢迎登陆学生信息系统"));
JPanel jpanel=new JPanel();
jpanel.add(label);
JPanel pp4=new JPanel();
JPanel jpane4=new JPanel();
cp.add(jpanel,"North");
JPanel pp2=new JPanel(new GridLayout(6,1));
JPanel pp3=new JPanel();
pp4.setLayout(new GridLayout(6,1));
pp4.add(new JLabel("学生名",SwingConstants.CENTER));
pp2.add(tf1);
pp4.add(new JLabel("学号",SwingConstants.CENTER));
pp2.add(tf2);
pp4.add(new JLabel(";
pp2.add(tf3);
pp4.add(new JLabel("数据结构",SwingConstants.CENTER));
pp2.add(tf4);
pp4.add(new JLabel("概率统计",SwingConstants.CENTER));
pp2.add(tf5);
pp4.add(new JLabel("入学时间",SwingConstants.CENTER));
pp2.add(tf6);
pp3.add(jbt1);
pp3.add(jbt2);
cp.add(pp4,"West");
cp.add(pp2,"Center");
cp.add(pp3,"South");
cp.add(jpane4,"East");
Dimension
screen=Toolkit.getDefaultToolkit().getScreenSize();
f3.setSize(350,330);
f3.setLocation((screen.width-350)/2,(screen.height-350)/2);
f3.setVisible(true);
jbt1.addActionListener(this);//注册监听器
jbt2.addActionListener(this);
}
public void
insertRecord()
{
if(tf1.getText().equals("")||tf2.getText().equals("")||tf3.getText().equals("")||
tf4.getText().equals("")||tf5.getText().equals("")||tf6.getText().equals(""))
{
JOptionPane.showMessageDialog(f3,"请填写学生资料");
return;
}
try{
Class.forName("com.hxtt.sql.access.AccessDriver");
}catch(ClassNotFoundException
e){System.out.println("加载驱动程序失败!");}
try{
Connection
con=DriverManager.getConnection("jdbc:Access:/D:/Student.mdb");
Statement sql;
String s="insert into 表book
values('"+tf1.getText()+"','"+tf2.getText()+"','"+
tf3.getText()+"','"+tf4.getText()+"','"+tf5.getText()+"','"+tf6.getText()+"');";
String query="select * from 表book
where 学号='"+tf2.getText()+"'";
sql=con.createStatement();
ResultSet rs=sql.executeQuery(query);//返回查询结果集
boolean moreRecords=rs.next();//判断结果集是否有数据
if(moreRecords)
{
JOptionPane.showMessageDialog(f3,"学号已经被使用,请重新输入");
con.close();
tf2.setText("");
return;
}
int insert=sql.executeUpdate(s);
if(insert==1)
{
JOptionPane.showMessageDialog(null,"学生信息录入成功!");
tf1.setText("");
tf2.setText("");
tf3.setText("");
tf4.setText("");
tf5.setText("");
tf6.setText("");
}
}catch(SQLException g)
{
System.out.println("E Code"+g.getErrorCode());
System.out.println("E M"+g.getMessage());
}
}
public void
actionPerformed(ActionEvent e)
{
String
cmd=e.getActionCommand();
if(cmd.equals("确定"))
{
insertRecord();
}
else
if(cmd.equals("取消"))
f3. dispose();
}
public static void
main(String []arg){
StudentIn a=new StudentIn();
}
}
《Java程序设计》终极不改版的更多相关文章
- 《Java程序设计》终极不改版【下】
package 大学生信息管理系统; import java.awt.event.*; import javax.swing.*; import java.awt.*; import java.uti ...
- 《Java程序设计》第2周学习总结(Markdown语法修改版)
20175105 2018-2019-2 <Java程序设计>第2周学习总结 Vim操作的一些总结 这些天通过学习,对于vim的操作有了很大的提升,下面我把vim的比较常见的操作方式做了归 ...
- 每周一书《Oracle 12 c PL(SQL)程序设计终极指南》
本周为大家送出的书是<Oracle 12 c PL(SQL)程序设计终极指南>,此书由机械工业出版社出版, 孙风栋,王澜,郭晓惠 著. 内容简介: <Oracle 12c PL/SQ ...
- 《Java程序设计》 课程教学
<Java程序设计> 课程教学 给学生 考核方式 100分构成 翻转课堂考核12次(5*12 = 60):每次考试20-30道题目,考试成绩规格化成5分(比如总分20分就除以4) 注意:不 ...
- 2016-2017-2 《Java程序设计》教学进程
2016-2017-2 <Java程序设计>教学进程 目录 考核方式 课前准备 教学进程 第00周学习任务和要求 第01周学习任务和要求 第02周学习任务和要求 第03周学习任务和要求 第 ...
- 2016-2017-2 《Java程序设计》预备作业2总结
2016-2017-2 <Java程序设计>预备作业2总结 古希腊学者普罗塔戈说过:「头脑不是一个要被填满的容器,而是一束需要被点燃的火把.」 在对计算机系的学生情况的调查中,我说: 最近 ...
- 2016-2017-2 《Java程序设计》预备作业1 总结
2016-2017-2 <Java程序设计>预备作业1 总结 预备作业01:你期望的师生关系是什么见https://edu.cnblogs.com/campus/besti/2016-20 ...
- 2016-2017-2 《Java程序设计》课程学生博客和代码托管链接
2016-2017-2 <Java程序设计>课程学生博客和代码托管链接 博客 1552 20155201 李卓雯 20155202 张 旭 20155203 杜可欣 20155204 王 ...
- 《Java程序设计与数据结构教程(第二版)》学习指导
<Java程序设计与数据结构教程(第二版)>学习指导 欢迎关注"rocedu"微信公众号(手机上长按二维码) 做中教,做中学,实践中共同进步! 原文地址:http:// ...
随机推荐
- list集合为空或为null的区别
简述 判断一个list集合是否为空,我们的惯性思维是判断list是否等于null即可,但是在Java中,list集合为空还是为null,这是两码事. 新建一个list对象,默认值是空,而非null: ...
- 读书笔记(一)—— 浅析浏览器渲染过程和html中的文件加载
在构建页面时,我们会在html中载入一个或多个css和js文件.或许大家都已经习惯了"最佳实践"中,css文件应该放在<head>标签中引入,而js文件则是放在< ...
- 配置AIX系统互信关系
解释: 信任关系指一台远程服务器的用户以相同的用户名接入到另外一台服务器,而无需提供口令. 双机之间建立信任关系后,可以使用“rcp”和“rlogin”等命令. 操作步骤: 1.以root用户登录双机 ...
- akoj-1272-字母统计
字母统计 Time Limit:1000MS Memory Limit:65536K Total Submit:72 Accepted:48 Description 现在给你一个由小写字母组成字符串 ...
- Linux Command Line(I): Beginner
考試月終於暫告一段落,終於有時間回歸Linux 的懷抱.不知怎的,在VMware Workstation 12 上登入Ubuntu後總是blue screen,明明昨天用terminal 也沒有事啊真 ...
- 再谈CVE-2017-7047 Triple_Fetch和iOS 10.3.2沙盒逃逸
作者:蒸米 ----------------- 0x00 序 Ian Beer@google发布了CVE-2017-7047Triple_Fetch的exp和writeup[1],chenliang@ ...
- Cmd Markdown 学习
[TOC] # Cmd Markdown 学习 Markdown 简明语法 1. 斜体和粗体 使用 * 和 ** 表示斜体和粗体. 2. 分级标题 在使用 = 表示一级标题,使用 - 表示二级标题.# ...
- OpenGL与CUDA互操作方式总结
一.介绍 CUDA是Nvidia推出的一个通用GPU计算平台,对于提升并行任务的效率非常有帮助.本人主管的项目中采用了OpenGL做图像渲染,但是在数据处理方面比较慢,导致帧率一直上不来.于是就尝试把 ...
- MATLAB批量读入图片
%% import pictures, and save into images{img_num} function [images, img_num, vertical_border] = impo ...
- 页面引入css用link和import的区别
假设有一个css文件a.css,文件里的内容如下: p { font-size: 18px; } 现在分别使用两种方式引入a.css: 1.使用html的link标签 <link rel=&qu ...