《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:// ...
随机推荐
- JPA常用注解
JPA全称Java Persistence API.JPA通过JDK 5.0注解或XML描述对象-关系表的映射关系,并将运行期的实体对象持久化到数据库中. JPA由EJB 3.0软件专家 ...
- Typescript 解构 、展开
什么是解构.展开? 展开与解构作用相反,简单来说: 解构:解构赋值允许你使用数组或对象字面量的语法,将数组和对象的属性付给各种变量. 展开:允许你讲一个数组展开为另一个数组,或一个对象展开为另一个对象 ...
- nopCommerce 3.9 大波浪系列 之 微信公众平台登录插件
一.简介 插件源码下载:点击下载 微信公众平台网站授权帮助地址:https://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp142114084 ...
- <Mastering KVM Virtualization>:第一章 了解Linux虚拟化
本章为读者提供了Linux虚拟化中流行技术的深刻见解,以及相较于其他同类技术的优势特点.本书共有14章,囊括了KVM虚拟化中的各个方面,从KVM的内部构造开始,并包括了诸如软件定义网络(SDN),性能 ...
- LGTB与序列 状压dp
考试一看我就想到了状压dp.当时没有想到素数,以为每一位只有0~9这些数,就开始压了.后来发现是小于30,然后改到了15,发现数据一点不给面子,一个小点得数都没有,完美爆零.. 考虑到bi最多变成58 ...
- eclipse中配置spring环境
初识Spring框架 1.简单使用 eclipse中配置Spring环境,如果是初学的话,只需要在eclipse中引入几个jar包就可以用了, 在普通java project项目目录下,建一个lib文 ...
- OSX 监听系统网络设置
由于日常开发的需求,我们需要监听OSX一些系统设置的变化,达到软件程序设置的同步,这时我们可以通过以下函数监听系统设置的改变: #include <SystemConfiguration/Sys ...
- iOS - Block底层解析
Block是iOS开发中一种比较特殊的数据结构,它可以保存一段代码,在合适的地方再调用,具有语法简介.回调方便.编程思路清晰.执行效率高等优点,受到众多猿猿的喜爱.但是Block在使用过程中,如果对B ...
- linux 简易启动脚本
#/bin/bash pid=`ps -ef | grep 'testDemo' | grep -v grep |awk '{print $2}'` in start) nohup java -j t ...
- GC选择之CMS 并发标记清除
CMS收集器 Concurrent Markup Sweep 并发标记清除 使用了标记-清除算法 与标记-压缩相比,并发阶段会降低吞吐量 算法作用在老年代以及永久区(新生代使用ParNew) -XX: ...