半年前的作品,上传只为纪念~


成绩:
____0.1______

Java程序设计

 课程设计

目:大学生信息管理系统

院: 

计算机与软件学院

业:     网络工程_____­

.           
        学

号:范晋杰20151346023

.           
 金恒昱20151346024

.           
 鲁方伟20151346081

指导教师:      

方巍
_______

                 

2016年12月23日

目 

 

 

1. 前言.............................................

2. 需求分析..........................................

3. 概要设计..........................................

4. 详细设计..........................................
2

5. 测试............................................2

6. 总结............................................6

参考文献..........................................
1
6


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程序设计》终极不改版的更多相关文章

  1. 《Java程序设计》终极不改版【下】

    package 大学生信息管理系统; import java.awt.event.*; import javax.swing.*; import java.awt.*; import java.uti ...

  2. 《Java程序设计》第2周学习总结(Markdown语法修改版)

    20175105 2018-2019-2 <Java程序设计>第2周学习总结 Vim操作的一些总结 这些天通过学习,对于vim的操作有了很大的提升,下面我把vim的比较常见的操作方式做了归 ...

  3. 每周一书《Oracle 12 c PL(SQL)程序设计终极指南》

    本周为大家送出的书是<Oracle 12 c PL(SQL)程序设计终极指南>,此书由机械工业出版社出版, 孙风栋,王澜,郭晓惠 著. 内容简介: <Oracle 12c PL/SQ ...

  4. 《Java程序设计》 课程教学

    <Java程序设计> 课程教学 给学生 考核方式 100分构成 翻转课堂考核12次(5*12 = 60):每次考试20-30道题目,考试成绩规格化成5分(比如总分20分就除以4) 注意:不 ...

  5. 2016-2017-2 《Java程序设计》教学进程

    2016-2017-2 <Java程序设计>教学进程 目录 考核方式 课前准备 教学进程 第00周学习任务和要求 第01周学习任务和要求 第02周学习任务和要求 第03周学习任务和要求 第 ...

  6. 2016-2017-2 《Java程序设计》预备作业2总结

    2016-2017-2 <Java程序设计>预备作业2总结 古希腊学者普罗塔戈说过:「头脑不是一个要被填满的容器,而是一束需要被点燃的火把.」 在对计算机系的学生情况的调查中,我说: 最近 ...

  7. 2016-2017-2 《Java程序设计》预备作业1 总结

    2016-2017-2 <Java程序设计>预备作业1 总结 预备作业01:你期望的师生关系是什么见https://edu.cnblogs.com/campus/besti/2016-20 ...

  8. 2016-2017-2 《Java程序设计》课程学生博客和代码托管链接

    2016-2017-2 <Java程序设计>课程学生博客和代码托管链接 博客 1552 20155201 李卓雯 20155202 张 旭 20155203 杜可欣 20155204 王 ...

  9. 《Java程序设计与数据结构教程(第二版)》学习指导

    <Java程序设计与数据结构教程(第二版)>学习指导 欢迎关注"rocedu"微信公众号(手机上长按二维码) 做中教,做中学,实践中共同进步! 原文地址:http:// ...

随机推荐

  1. JPA常用注解

    JPA全称Java Persistence API.JPA通过JDK 5.0注解或XML描述对象-关系表的映射关系,并将运行期的实体对象持久化到数据库中.        JPA由EJB 3.0软件专家 ...

  2. Typescript 解构 、展开

    什么是解构.展开? 展开与解构作用相反,简单来说: 解构:解构赋值允许你使用数组或对象字面量的语法,将数组和对象的属性付给各种变量. 展开:允许你讲一个数组展开为另一个数组,或一个对象展开为另一个对象 ...

  3. nopCommerce 3.9 大波浪系列 之 微信公众平台登录插件

    一.简介 插件源码下载:点击下载 微信公众平台网站授权帮助地址:https://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp142114084 ...

  4. <Mastering KVM Virtualization>:第一章 了解Linux虚拟化

    本章为读者提供了Linux虚拟化中流行技术的深刻见解,以及相较于其他同类技术的优势特点.本书共有14章,囊括了KVM虚拟化中的各个方面,从KVM的内部构造开始,并包括了诸如软件定义网络(SDN),性能 ...

  5. LGTB与序列 状压dp

    考试一看我就想到了状压dp.当时没有想到素数,以为每一位只有0~9这些数,就开始压了.后来发现是小于30,然后改到了15,发现数据一点不给面子,一个小点得数都没有,完美爆零.. 考虑到bi最多变成58 ...

  6. eclipse中配置spring环境

    初识Spring框架 1.简单使用 eclipse中配置Spring环境,如果是初学的话,只需要在eclipse中引入几个jar包就可以用了, 在普通java project项目目录下,建一个lib文 ...

  7. OSX 监听系统网络设置

    由于日常开发的需求,我们需要监听OSX一些系统设置的变化,达到软件程序设置的同步,这时我们可以通过以下函数监听系统设置的改变: #include <SystemConfiguration/Sys ...

  8. iOS - Block底层解析

    Block是iOS开发中一种比较特殊的数据结构,它可以保存一段代码,在合适的地方再调用,具有语法简介.回调方便.编程思路清晰.执行效率高等优点,受到众多猿猿的喜爱.但是Block在使用过程中,如果对B ...

  9. linux 简易启动脚本

    #/bin/bash pid=`ps -ef | grep 'testDemo' | grep -v grep |awk '{print $2}'` in start) nohup java -j t ...

  10. GC选择之CMS 并发标记清除

    CMS收集器 Concurrent Markup Sweep 并发标记清除 使用了标记-清除算法 与标记-压缩相比,并发阶段会降低吞吐量 算法作用在老年代以及永久区(新生代使用ParNew) -XX: ...