java35页课程设计.docx

上传人:b****2 文档编号:23009486 上传时间:2023-04-30 格式:DOCX 页数:39 大小:681.51KB
下载 相关 举报
java35页课程设计.docx_第1页
第1页 / 共39页
java35页课程设计.docx_第2页
第2页 / 共39页
java35页课程设计.docx_第3页
第3页 / 共39页
java35页课程设计.docx_第4页
第4页 / 共39页
java35页课程设计.docx_第5页
第5页 / 共39页
点击查看更多>>
下载资源
资源描述

java35页课程设计.docx

《java35页课程设计.docx》由会员分享,可在线阅读,更多相关《java35页课程设计.docx(39页珍藏版)》请在冰豆网上搜索。

java35页课程设计.docx

java35页课程设计

淮海工学院计算机工程学院

课程设计报告

设计名称:

面向对象课程设计

选题名称:

JDBC技术应用-图书信息管理

姓名:

学号:

专业班级:

系(院):

设计时间:

2015.3.20~2015.5.8

设计地点:

软件实验室、教室

成绩:

指导教师评语:

 

签名:

年月日

1.课程设计目的

《面向对象程序设计》是一门实践性很强的计算机专业基础课程,课程设计是学习完该课程后进行的一次较全面的综合练习。

其目的在于通过实践加深学生对面向对象程序设计的理论、方法和基础知识的理解,掌握使用Java语言进行面向对象设计的基本方法,提高运用面向对象知识分析实际问题、解决实际问题的能力。

2.课程设计任务与要求:

实验要求:

课程设计可选用NetBeans、Eclipse、JBuilder等作为开发平台以提高开发效率,尽可能熟练掌握其中一种集成开发环境。

建议采用UML建模技术进行系统的分析设计,在Visio中画出系统用例图和类图,并将UML图复制到设计报告中。

通过这次设计,要求掌握以下内容:

1)面向对象技术中的继承与多态(重载和覆盖)机制、各种修饰符的使用

2)类、包、接口的定义与使用

3)常用工具类与算法的实现(数组、向量、字符串、链表)

4)Java常用标准GUI组件及其事件处理

5)Java的异常处理机制

6)Java的数据库连接技术

7)Java的多线程技术与动画制作

8)Java的网络编程

 

实验题目:

以校园卡信息管理、学生信息管理、教师信息管理、图书信息管理、宿舍信息管理、学生会活动管理、成绩管理、教室管理等为例,使用JDBC-ODBC数据库接口,完成对后台数据库的插入、删除、修改、查询等操作。

数据库系统可采用SqlServer、Access等,要根据完成的不同功能在数据库系统中定义有关的各种信息表:

如在教师信息管理系统中要设计教师基本信息表、教师学习进修情况表、教师奖惩情况表、教师上课情况表等。

其他几个子系统中数据表的设计由同学们根据实际的需求自主完成设计。

3.课程设计说明书

3.1需求分析

利用数据库进行图书信息的管理,不仅仅能够保证准确、无误、快速输出,而且还可以利用数据库对有关信息进行查询,检索迅速、查找方便、可靠性高、存储量大、保密性好。

要求图书管理系统能够对图书查询、录入、删除、概览以及管理员的密码修改服务。

3.2概要设计

3.2.1图书管理系统的功能模块图

 

3.2.2图书信息管理流程图

 

3.2.4建立数据库

本系统采用Access建立数据表

1.存放图书信息的表。

Book表

字段名称

数据类型

图书名

文本

图书号

文本(主键)

单价

文本

作者

文本

出版社

文本

入库时间

文本

2.存放管理员信息的表。

User表

字段名称

数据类型

用户名

文本(主键)

密码

文本

3.3详细设计

3.3.1程序源代码

importjava.awt.event.*;

importjavax.swing.*;

importjava.awt.*;

importjava.awt.Container;

importjava.util.*;

importjava.sql.*;

importjavax.swing.text.JTextComponent;

import.*;

importjava.io.*;

importjavax.swing.border.*;

classLoginextendsJFrameimplementsActionListener

{Containercp=null;

JFramef=null;

JButtonj1,j2;

JTextFieldt1;

JPasswordFieldt2;

JLabeljlable1,jlable2;

Colorc;

JPaneljp1,jp2;

Login()

{

f=newJFrame("图书管理系统");

j1=newJButton("确定");j2=newJButton("取消");

cp=f.getContentPane();

jlable1=newJLabel("输入用户名");jlable2=newJLabel("请输入密码");

jp1=newJPanel();jp2=newJPanel();

t1=newJTextField(18);t2=newJPasswordField(18);

jp1.add(jlable1);jp1.add(t1);

jp1.add(jlable2);jp1.add(t2);

JLabelJL=newJLabel("欢迎登陆",SwingConstants.CENTER);

cp.add(JL,"North");

jp2.add(j1);

jp2.add(j2);

cp.add(jp1,"Center");

cp.add("South",jp2);

jp1.setBackground(newColor(147,112,219));

Toolkitkit=Toolkit.getDefaultToolkit();

Dimensionscreen=kit.getScreenSize();

intx=screen.width;//取得显示器窗口的宽度

inty=screen.height;//取得显示器窗口的高度

setSize(x,y);//让系统窗口平铺整个显示器窗口

f.setSize(300,300);

intxcenter=(x-300)/2;

intycenter=(y-300)/2;

f.setLocation(xcenter,ycenter);//显示在窗口中央

f.setVisible(true);

j1.addActionListener(this);//注册事件监听器

j2.addActionListener(this);

f.addWindowListener(newWindowAdapter(){

publicvoidwindowClosing(WindowEvente)

{

System.exit(0);

}

}

);

}

publicvoidconfirm()//验证用户和密码是否存在

{

try{

Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");

}catch(ClassNotFoundExceptione){System.out.println("加载驱动程序失败!

");}

try{

Stringurl="jdbc:

odbc:

driver={MicrosoftAccessDriver(*.mdb)};DBQ=Book.mdb";//直接使用当前类目录下的数据库文件

Connectioncon=DriverManager.getConnection(url);

Statementsql=con.createStatement();

Stringuname=t1.getText().trim();

StringMima=t2.getText().trim();

StringqueryMima="select*fromuserwhere用户名='"+uname+"'and密码='"+Mima+"'";

ResultSetrs=sql.executeQuery(queryMima);

if(rs.next())

{

newBook(uname);f.hide();con.close();

}else{

JOptionPane.showMessageDialog(null,"该用户不存在或密码错误","提示!

",JOptionPane.YES_NO_OPTION);

}

t1.setText("");t2.setText("");

}catch(SQLExceptiong)

{

System.out.println("ECode"+g.getErrorCode());

System.out.println("EM"+g.getMessage());

}

}

publicvoidactionPerformed(ActionEvente)

{

Stringcmd=e.getActionCommand();

if(cmd.equals("确定"))

{

confirm();

}

elseif(cmd.equals("取消"))

{

f.dispose();

}

}

publicstaticvoidmain(String[]arg)

{

Logina=newLogin();

}

}

classBookBrowerimplementsActionListener

{

JFramef;

Containercp;

JPaneljpS,jpanelWest;

JButtonjbt1,jbt2;//按钮,查询、取消、修改

JLabellabel,L;//标签,定义文本框

JTabletable;//用来接收数据库中返回的信息

ObjectcolumnName[]={"图书名","图书号","单价","作者","出版社","入库时间"};

Objectar[][]=newObject[80][6];

Stringsno;

Stringcount="xx";

BookBrower()

{

f=newJFrame();

cp=f.getContentPane();//初始化面板、按钮、标签、文本框

jpS=newJPanel();

jpanelWest=newJPanel();

jbt1=newJButton("确定");jbt2=newJButton("返回");

label=newJLabel("图书概览",SwingConstants.CENTER);

label.setForeground(Color.blue);

L=newJLabel("书库现在共有图书"+count+"本");

table=newJTable(ar,columnName);//ar存放表中的数据,columnname表示列名

JScrollPanescrollpane=newJScrollPane(table);

jpS.add(jbt1);jpS.add(jbt2);

JPaneljpanel=newJPanel();

jpanel.add(label);

JPanelpp4=newJPanel();

JPaneljpE=newJPanel();

cp.add(jpanel,"North");

JPaneljp=newJPanel();

jp.add(scrollpane);

JPanelp=newJPanel();//用来放两个表

p.setLayout(newBorderLayout());

p.add(L,"North");

p.add(scrollpane);

cp.add(pp4,"West");cp.add(p,"Center");cp.add(jpS,"South");cp.add(jpE,"East");

Toolkitkit=Toolkit.getDefaultToolkit();

Dimensionscreen=kit.getScreenSize();

intx=screen.width;//取得显示器窗口的宽度

inty=screen.height;//取得显示器窗口的高度

f.setSize(400,330);

intxcenter=(x-350)/2;intycenter=(y-330)/2;

f.setLocation(xcenter,ycenter);//显示在窗口中央

f.setVisible(true);

jbt1.addActionListener(this);//注册监听器

jbt2.addActionListener(this);

}

inti=0;

publicvoidshowRecord()

{

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("sun.jdbc.odbc.JdbcOdbcDriver");

}catch(ClassNotFoundExceptione){System.out.println("加载驱动程序失败!

");}

try{

Stringurl="jdbc:

odbc:

driver={MicrosoftAccessDriver(*.mdb)};DBQ=Book.mdb";//直接使用当前类目录下的数据库文件

Connectioncon=DriverManager.getConnection(url);

Strings="select*frombook";

Statementsql=con.createStatement();

ResultSetrs=sql.executeQuery(s);

while(rs.next())

{

Stringbname=rs.getString

(1);Stringbno=rs.getString

(2);

Stringprice=rs.getString(3);Stringwriter=rs.getString(4);

Stringpublish=rs.getString(5);Stringindate=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++;

}

count=""+i+"";

L.setText("书库现在共有图书"+count+"本");

f.repaint();con.close();

}catch(SQLExceptiong)

{

System.out.println("ECode"+g.getErrorCode());

System.out.println("EM"+g.getMessage());

}

}

publicvoidactionPerformed(ActionEvente)

{

Stringcmd=e.getActionCommand();

if(cmd.equals("确定"))

{

f.hide();

}

if(cmd.equals("返回"))

f.hide();

}

publicstaticvoidmain(String[]arg){

BookBrowera=newBookBrower();

a.showRecord();

}

}

classQueryBookimplementsActionListener

{

JFramef3;

Containercp;

JPaneljp1,jp2,jp3,jp4,jp,jpanelWest;

JButtonjbt1,jbt2;//按钮,确定、取消

JLabellabel;//标签:

请输入图书号

JTextFieldtf,tf1,tf2,tf3,tf4,tf5,tf6;//定义文本框

JLabellabel1,label2,label3,label4;

QueryBook()

{

f3=newJFrame();

cp=f3.getContentPane();//初始化面板、按钮、标签、文本框

jp1=newJPanel();jp2=newJPanel();

jp3=newJPanel();jp4=newJPanel();

jpanelWest=newJPanel();

jp=newJPanel();

jbt1=newJButton("确定");

jbt2=newJButton("取消");

label=newJLabel("请输入图书号:

",SwingConstants.CENTER);

label.setForeground(Color.blue);

tf=newJTextField(20);

tf1=newJTextField(20);tf2=newJTextField(20);

tf3=newJTextField(20);tf4=newJTextField(20);

tf5=newJTextField(20);tf6=newJTextField(20);//布局,添加控件

JPaneljpanel=newJPanel();

jpanel.add(label);

jpanel.add(tf);

JPanelpp4=newJPanel();

JPaneljpane4=newJPanel();

cp.add(jpanel,"North");

JPanelpp2=newJPanel(newGridLayout(6,1));

JPanelpp3=newJPanel();

pp4.setLayout(newGridLayout(6,1));

pp4.add(newJLabel("图书名",SwingConstants.CENTER));pp2.add(tf1);

pp4.add(newJLabel("图书号",SwingConstants.CENTER));pp2.add(tf2);

pp4.add(newJLabel("单价",SwingConstants.CENTER));pp2.add(tf3);

pp4.add(newJLabel("作者",SwingConstants.CENTER));pp2.add(tf4);

pp4.add(newJLabel("出版社",SwingConstants.CENTER));pp2.add(tf5);

pp4.add(newJLabel("入库时间",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");

Toolkitkit=Toolkit.getDefaultToolkit();

Dimensionscreen=kit.getScreenSize();

intx=screen.width;//取得显示器窗口的宽度*/

inty=screen.height;//取得显示器窗口的高度

f3.setSize(350,330);

intxcenter=(x-350)/2;

intycenter=(y-330)/2;

f3.setLocation(xcenter,ycenter);//显示在窗口中央*/

f3.setVisible(true);

jbt1.addActionListener(this);//注册监听器

jbt2.addActionListener(this);

}

publicvoidshowRecord()//查询图书

{

try{

Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");

}catch(ClassNotFoundExceptione){System.out.println("加载驱动程序失败!

");}

try{

Stringurl="jdbc:

odbc:

driver={MicrosoftAccessDriver(*.mdb)};DBQ=Book.mdb";//直接使用当前类目录下的数据库文件

Connectioncon=DriverManager.getConnection(url);

Statementsql;

Stringql=tf2.getText().trim();

Strings="select*frombookwhere图书号='"+ql+"'";

sql=con.createStatement();

ResultSetrs=sql.executeQuery(s);

if(rs.next())

{

Stringbname=rs.getString

(1);Stringbno=rs.getString

(2);Stringprice=rs.getString(3);

Stringwriter=rs.getString(4);Stringpublish=rs.getString(5);Stringindate=rs.getString(6);

tf1.setText(bname);tf2.setText(bno);tf3.setText(price);

tf4.setText(writer);tf5.setText(publish);tf6.setText(ind

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

当前位置:首页 > 表格模板 > 合同协议

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1