图书信息管理系统 JAVA课程设计.docx

上传人:b****1 文档编号:3331696 上传时间:2023-05-05 格式:DOCX 页数:14 大小:40.29KB
下载 相关 举报
图书信息管理系统 JAVA课程设计.docx_第1页
第1页 / 共14页
图书信息管理系统 JAVA课程设计.docx_第2页
第2页 / 共14页
图书信息管理系统 JAVA课程设计.docx_第3页
第3页 / 共14页
图书信息管理系统 JAVA课程设计.docx_第4页
第4页 / 共14页
图书信息管理系统 JAVA课程设计.docx_第5页
第5页 / 共14页
图书信息管理系统 JAVA课程设计.docx_第6页
第6页 / 共14页
图书信息管理系统 JAVA课程设计.docx_第7页
第7页 / 共14页
图书信息管理系统 JAVA课程设计.docx_第8页
第8页 / 共14页
图书信息管理系统 JAVA课程设计.docx_第9页
第9页 / 共14页
图书信息管理系统 JAVA课程设计.docx_第10页
第10页 / 共14页
图书信息管理系统 JAVA课程设计.docx_第11页
第11页 / 共14页
图书信息管理系统 JAVA课程设计.docx_第12页
第12页 / 共14页
图书信息管理系统 JAVA课程设计.docx_第13页
第13页 / 共14页
图书信息管理系统 JAVA课程设计.docx_第14页
第14页 / 共14页
亲,该文档总共14页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

图书信息管理系统 JAVA课程设计.docx

《图书信息管理系统 JAVA课程设计.docx》由会员分享,可在线阅读,更多相关《图书信息管理系统 JAVA课程设计.docx(14页珍藏版)》请在冰点文库上搜索。

图书信息管理系统 JAVA课程设计.docx

图书信息管理系统JAVA课程设计

 

软件学院

课程设计报告书

 

课程名称Java面向对象程序设计

设计题目图书信息管理系统

专业班级

学号

姓名

指导教师

 

2011年6月

1设计时间

第16周(2011年6月6日-2011年6月10日)

2设计目的

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

3设计任务

在指导教师同意的情况下,学生根据所给的题目,也可自行选择题目设计。

基本要求:

•设计工作量为完成一个中小型规模的软件和1份软件设计报告书

•设计必须根据进度计划按期完成

4设计内容

4.1需求分析

4.1.1问题描述

设计一个图书信息管理程序

4.1.2基本要求

要求如下:

(1)使用图形用户界面

(2)图书信息包括:

书ISBN号、书名、作者、出版时间、出版社,其余可自行丰富。

(3)用数据库建立1或2个图书信息表。

(不限使用哪种数据库)

(4)能连接数据库并实现查询、增、删、改等功能。

4.2总体设计

4.2.1访问数据库

1配置ODBC数据源

2加载JDBC驱动程序Class.forName(“DriverName”);其中,DriverName是要加载的JDBC驱动程序名称,该名称可以根据数据库供应商提供的JDBC驱动程序的种类来确定。

3创建数据库的连接创建于指定数据库的连接,需要使用DriverManager类的getConnection()方法。

如果成功与数据库建立了连接,则返加一个Connection对象。

否则Java应用程序将会抛出一个SQLException异常。

使用该方法的语法格式如下所示:

Connectioncon=DriverManager.getConnection(URL,user,password);其中,参数URL是一个字符串,它表示要连接的数据库,即数据库的具体位置。

JDBCURL的语法和结构如下:

Jdbc:

<子协议名>:

<子名称>其中jdbc作为协议是固定不变的,<子协议名>是使用的驱动程序名称,子名称可以根据子协议的改变而变化。

4.2.2程序模块

importjava.sql.*;

publicclassDatabaseextendsFrame

{TextAreataInfo=newTextArea();

Database()

{super("数据库连接");

setSize(200,150);

this.getContentPane().add(taInfo);

}

publicvoidconnecion()

{try{Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");}

catch(ClassNotFoundExceptionex){taInfo.setText(ex.getMessage());

System.exit(-1);}

try{StringURL="jdbc:

odbc:

管理";

Connectioncon=DriverManager.getConnection(URL);

if(!

con.isClosed()){taInfo.setText("数据库连接成功");}

else{taInfo.setText("数据库连接失败");}

con.close();

}

catch(SQLExceptionex){taInfo.setText(ex.getMessage());}

}

4.3详细设计

4.3.1添加控制面板

contentPane=(JPanel)this.getContentPane();

contentPane.setLayout(null);

panel1=newPanel();//创建一个面板

//panel1.setBackground(BLACK);

panel1.setBounds(0,0,380,160);

panel1.setLayout(null);

panel1.setEnabled(false);

contentPane.add(panel1);//添加面板

4.3.2添加标签

L1=newLabel("ISBM:

");

L1.setBounds(20,40,50,25);

panel1.add(L1);

L2=newLabel("bookname:

");

L2.setBounds(20,70,50,25);

panel1.add(L2);

L3=newLabel("auther:

");

L3.setBounds(20,100,50,25);

panel1.add(L3);

L4=newLabel("price:

");

L4.setBounds(20,130,50,25);

panel1.add(L4);

T1=newTextField();

T1.setBounds(70,40,300,25);

T1.addActionListener(newActionListener()

{

publicvoidactionPerformed(ActionEvente){

T1_actionPerformed(e);

}

});

panel1.add(T1);

T2=newTextField();

T2.setBounds(70,70,300,25);

T2.addActionListener(newmyActionListener());

panel1.add(T2);

T3=newTextField();

T3.setBounds(70,100,300,25);

T3.addActionListener(newmyActionListener());

panel1.add(T3);

T4=newTextField();

T4.setBounds(70,130,300,25);

T4.addActionListener(newmyActionListener());

panel1.add(T4);

4.3.3添加按钮

B1=newButton("第一条");

B1.setBounds(newRectangle(30,180,65,20));

B1.addMouseListener(newMouseAdapter()

{

publicvoidmouseClicked(MouseEvente)

{

B1_mouseClicked(e);

}

});

contentPane.add(B1);

B2=newButton("上一条");

B2.setBounds(newRectangle(100,180,65,20));

B2.addMouseListener(newMouseAdapter()

{

publicvoidmouseClicked(MouseEvente)

{

B2_mouseClicked(e);

}

});

contentPane.add(B2);

B3=newButton("下一条");

B3.setBounds(newRectangle(170,180,65,20));

B3.addMouseListener(newMouseAdapter()

{

publicvoidmouseClicked(MouseEvente)

{

B3_mouseClicked(e);

}

});

contentPane.add(B3);

B4=newButton("最末条");

B4.setBounds(newRectangle(240,180,65,20));

B4.addMouseListener(newMouseAdapter()

{

publicvoidmouseClicked(MouseEvente)

{

B4_mouseClicked(e);

}

});

contentPane.add(B4);

B5=newButton("新增");

B5.setBounds(newRectangle(30,210,65,20));

B5.addMouseListener(newMouseAdapter()

{

publicvoidmouseClicked(MouseEvente)

{

B5_mouseClicked(e);

}

});

contentPane.add(B5);

B6=newButton("修改");

B6.setBounds(100,210,65,20);

B6.setEnabled(false);//因为这些功能暂时没有写。

contentPane.add(B6);

B7=newButton("删除");

B7.setBounds(170,210,65,20);

B7.setEnabled(false);

contentPane.add(B7);

B8=newButton("查询");

B8.setBounds(240,210,65,20);

B8.setEnabled(false);

contentPane.add(B8);

B9=newButton("确定");

B9.setBounds(310,180,65,20);

B9.addMouseListener(newMouseAdapter()

{

publicvoidmouseClicked(MouseEvente)

{

B9_mouseClicked(e);

}

});

contentPane.add(B9);

B10=newButton("离开");

B10.setBounds(310,210,65,20);

B10.addMouseListener(newMouseAdapter()

{

publicvoidmouseClicked(MouseEvente)

{

B10_mouseClicked(e);

}

});

contentPane.add(B10);

this.setBounds(200,100,415,280);

this.setTitle("新增");

this.addWindowListener(newWindowAdapter()

{

publicvoidwindowClosing(WindowEvente)

{

System.exit(0);

}

});

this.setVisible(true);

4.3.4加载JDBCdriver、连接数据库、送SELECT语句、返回结果集

try

{

Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");//加载数据库驱动程序;

ConnObj=DriverManager.getConnection("jdbc:

odbc:

myBook");//连接ODBC设置的myBook数据源;

SQLStatement=ConnObj.createStatement(

ResultSet.TYPE_SCROLL_INSENSITIVE,

ResultSet.CONCUR_READ_ONLY);

//其后由此Statement对象执行SQL指令时,返回的会是可卷动且制度的ResultSet对象

RS=SQLStatement.executeQuery("SELECT*FROMBookData");

//执行SELECT语句,会返回一个结果集

//查询myBook数据源的BOOKDATA数据表全部字段的记录

//必须先向下移到第一条;next(),因为一开始是指到第一条之前;

if(RS.next())

{

//RS内至少有一条记录才会返回true,有一条记录才能读取这条记录个字段的数据;

T1.setText(RS.getString("ISBN"));

T2.setText(RS.getString("BookName"));

T3.setText(RS.getString("Author"));

T4.setText(String.valueOf(RS.getInt("Price")));

//前三个字段都是文字,最后一个是长整数;

}

else

JOptionPane.showMessageDialog(this,"myBook数据库内无任何数据");

}catch(Exceptionecp)

{

JOptionPane.showMessageDialog(this,ecp.getMessage());

}

}//publicj03160301()end

4.3.5检验

protectedvoidT1_actionPerformed(ActionEvente){

//新增时先检验该条是否已经存在

if(T1.getText().trim().equals(""))

return;

StringnewISBN=T1.getText().trim();

if(newISBN.length()>13)

{

JOptionPane.showMessageDialog(T1,"ISBN字段最大长度为13");

return;

}

try

{

RS=SQLStatement.executeQuery(

"SELECT*FROMBookDataWHEREISBN='"+newISBN+"'");

if(RS.next())

{

T1.setText(RS.getString("ISBN"));

T2.setText(RS.getString("BookName"));

T3.setText(RS.getString("Author"));

T4.setText(String.valueOf(RS.getInt("Price")));

JOptionPane.showMessageDialog(T1,"此笔数据已存在");

}

else{//不得再更改新的一条ISBN

panel1.setEnabled(true);

T1.setText(newISBN);

T1.setEditable(true);

T2.setEnabled(true);

T3.setEnabled(true);

T4.setEnabled(true);

B9.setEnabled(true);

T2.requestFocus();

}

}catch(SQLExceptiono){System.out.println(o.getMessage());}

}

4.3.6按钮

voidB1_mouseClicked(MouseEvente)

{

try

{

RS.first();//movetothefirstitem

T1.setText(RS.getString("ISBN"));

T2.setText(RS.getString("BookName"));

T3.setText(RS.getString("Author"));

T4.setText(String.valueOf(RS.getInt("Price")));

}catch(SQLExceptionecp){}

}//B1_mouseClicked(MouseEvente)end;

4.3.7控制画面操作过程

panel1.setEnabled(true);

T1.setEnabled(true);

T2.setEnabled(true);

T3.setEnabled(true);

T4.setEnabled(true);

B1.setEnabled(true);

B2.setEnabled(true);

B3.setEnabled(true);

B4.setEnabled(true);

B5.setEnabled(true);

B9.setEnabled(false);

B10.setEnabled(false);

 

4.4测试

5总结与展望

经过了一周的课程设计,现在终于有了一点的心得,原本以为我对java还是比较的了解的,所以一向以为java的课程设计应该不会觉得很难,可是事实并不是我所想的那样,如果老师不给我们框架的话,我想就算给我两个月的时间我也不可能做的出来.

通过对java的课程设计,我了解并发现了很多调试程序的方法,而且懂得了如何处理错误的方法。

对java语言以及java的使用得到了进一步的提高。

针对书本知识得到了进一步的巩固,具体化就是加深了我对java数据库连接的理解等。

对程序的深层理解,清楚程序中每一步的功能,在程序的运行中是十分重要的。

在今后的学习中我要注意这方面,使得我的编程能力能有进一步的提高。

在这个过程中,我要综合考虑系统功能,分析如何使得系统结构清晰、合理、简单和易于调试,如何使得抽象数据类型的实现尽可能做到数据封装,如何让基本操作的规格说明尽可能明确具体。

我深知详细设计的结果是对数据结构和基本操作作出进一步的求精。

本次的课程设计,我了解到做什么事情都要坚持到底,在做本次课程设计的时候我也曾遇到过大大小小的各种困难,但是,不管是什么困难我都挺过来了,我的不放弃精神,终于让我获得了丰富的成果。

在本次的课程设计中,为了写出程序,我查阅了大量的资料,了解到了更多额外的知识,使我的阅历更加丰富,经验值也不断的增长了。

不仅对我的学习提供了帮助,而且在意志力方面也得到了锻炼。

这次实践让我深刻的感受到,软件开发是集体智慧的结晶,要想做出一个好的程序,一定要有团队精神。

其次,无论干什么都要亲自去实践,积累经验,理论和实践相结合,才能成功。

参考文献

[1]Java程序设计实践教程/刘万军等编著.——北京:

清华大学出版社,2006.9ISBN7-302-13465-0

 

成绩评定

成绩教师签字

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

当前位置:首页 > IT计算机 > 电脑基础知识

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2