教材管理系统及其源代码.docx
《教材管理系统及其源代码.docx》由会员分享,可在线阅读,更多相关《教材管理系统及其源代码.docx(33页珍藏版)》请在冰点文库上搜索。
教材管理系统及其源代码
1需求分析
本软件是教材管理系统,主要完成管理员对教材的管理,如信息录入,查询等,功能如下所示;软件设计的目的是方便管理员对教材信息的管理,便于学校等机构使用。
完成教材管理系统的设计与实现,主要包括以下基本内容:
1〕教材信息的录入;
2〕教材信息的查询;
3〕教材的入库和出库;
4〕教材库存查询;
5〕各项统计工作及打印;
6〕完成程序的最终调试,必须能正常运行。
2总体设计
教材入库部分通过输入教材详细信息将教材入库,教材出库部分通过教材号删除其信息,教材查询通过其教材号查询,教材该来输出全部教材详细信息。
数据库设计
本软件设计一个表,名为Book.
表book
字段名称
数据类型
教材名
文本
教材号
文本〔主键〕
价格
文本
作者
文本
出版社
文本
入库时间
文本
3.详细设计
1)登陆界面设计
mportjava.awt.event.*;
importjavax.swing.*;
importjava.awt.*;
importjava.awt.Container;
importjava.util.*;
importjava.sql.*;
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(255,153,255));
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);
}
}
);
}
publicvoidactionPerformed(ActionEvente)
{Stringcmd=e.getActionCommand();
if(cmd.equals("确定")){
newBook(t1.getText());
}
elseif(cmd.equals("取消")){
f.dispose();
}
}
publicstaticvoidmain(Stringargs[]){
Logina=newLogin();
}
}
2)主界面设计,显示软件主要功能,即教材入库出库查询等功能。
Book.java
import.*;
importjava.sql.*;
importjava.awt.*;
importjava.awt.event.*;
importjava.io.*;
importjava.util.*;
importjavax.swing.*;
importjavax.swing.border.*;importjava.util.*;
classBookextendsJFrameimplementsActionListener
{JButtonQueryScore=newJButton("教材查询");
JButtonQueryXuefen=newJButton("教材入库");
JButtonjiangfa=newJButton("教材删除");
JButtonxuanke=newJButton("教材概览");
JButtongaiMima=newJButton("打印");
JMenuBarmb=newJMenuBar();//菜单栏
JPaneljp=newJPanel();//用来填放子模块
Containercp=getContentPane();
Stringusername;
Book(){}
Book(Stringusername)
{this.username=username;
mb.add(QueryScore);
mb.add(QueryXuefen);
mb.add(jiangfa);
mb.add(xuanke);
mb.add(gaiMima);
cp.add(mb,"North");
//设置边框
jp.setBorder(BorderFactory.createTitledBorder(BorderFactory
.createLineBorder(Color.blue,2),null,
TitledBorder.CENTER,TitledBorder.TOP));
jp.setLayout(newBorderLayout());
JLabellabel1=newJLabel(newImageIcon("4.jpg"));
jp.add(label1);
/*JLabelJL=newJLabel("欢送登陆",SwingConstants.CENTER);
jp.add(JL,"North");*/
JLabellabel2=newJLabel(newImageIcon("2.jpg"));
//jp.add(label2,"South");
JScrollPanescrollpane=newJScrollPane(jp);
cp.add(scrollpane);
setTitle("欢送登陆");
Toolkitkit=Toolkit.getDefaultToolkit();
Dimensionscreen=kit.getScreenSize();
intx=screen.width;/*取得显示器窗口的宽度*/
inty=screen.height;/*取得显示器窗口的高度*/
//setSize(x,y);/*让系统窗口平铺整个显示器窗口*/
setSize(600,600);
intxcenter=(x-600)/2;
intycenter=(y-600)/2;
setLocation(xcenter,ycenter);/*显示在窗口中央*/
setVisible(true);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
//注册临听器
QueryScore.addActionListener(this);
QueryXuefen.addActionListener(this);
jiangfa.addActionListener(this);
xuanke.addActionListener(this);
}
publicvoidactionPerformed(ActionEvente)
{Stringcmd=e.getActionCommand();
if(cmd.equals("教材查询"))
{newQueryBook();
}
if(cmd.equals("教材入库"))
{newBookIn();
}
if(cmd.equals("教材删除"))
{newRemoveBook();
}
if(cmd.equals("教材概览"))
{newBookBrower().showRecord();
}
}
publicstaticvoidmain(String[]args)
{newBook("");
}
}
3)教材概览模块,提供库中教材总体情况查询。
BookBrower.java
importjava.awt.event.*;
importjavax.swing.*;
importjava.awt.*;
importjava.awt.Container;
importjava.util.*;
importjava.sql.*;
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);
/*f.addWindowListener(newWindowAdapter(){
publicvoidwindowClosing(WindowEvente){
System.exit(0);
}
}
);*/
}
//------------------------------------------------
inti=0;
publicvoidshowRecord()
{try{Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
}catch(ClassNotFoundExceptione){System.out.println("加载驱动程序失败!
");}
try{Stringurl="jdbc:
odbc:
jf";//直接使用当前类目录下的数据库文件
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();
}
}
4)教材入库模块,将教材及其相关信息入库。
BookIn.java
importjava.awt.event.*;
importjavax.swing.*;
importjava.awt.*;
importjava.awt.Container;
importjava.util.*;
importjava.sql.*;
importjavax.swing.text.JTextComponent;
//extendsJFrame
classBookInimplementsActionListener
{JFramef3;
Containercp;
JPaneljp1,jp2,jp3,jp4,jp,jpanelWest;
JButtonjbt1,jbt2;//按钮:
确定、取消、
JLabellabel;//标签
JTextFieldtf1,tf2,tf3,tf4,tf5,tf6;//定义文本框
JLabellabel1,label2,label3,label4;
Stringsno;
BookIn()
{f3=newJFrame();
cp=f3.getContentPane();//初始化面板、按钮、标签、文本框
jp1=newJPanel();
jp2=newJPanel();
jp3=newJPanel();
jp4=newJPanel();
jpanelWest=newJPanel();
jp=newJPanel();
//------------------------------------------------
jbt1=newJButton("确定");
jbt2=newJButton("取消");
//------------------------------------------------
label=newJLabel("教材入库");
label.setForeground(Color.blue);
//------------------------------------------------
tf1=newJTextField(20);
tf2=newJTextField(20);
tf3=newJTextField(20);
tf4=newJTextField(20);
tf5=newJTextField(20);
tf6=newJTextField(20);
//------------------------------------------------
//布局,添加控件
jp1.add(jbt1);
jp1.add(jbt2);
sno=tf4.getText();
jp1.add(newJLabel("您好"+sno+"欢送登陆教材信息系统"));
JPaneljpanel=newJPanel();
jpanel.add(label);
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");