最新版逄治明数据库毕业课程设计报告参考Word下载.docx
《最新版逄治明数据库毕业课程设计报告参考Word下载.docx》由会员分享,可在线阅读,更多相关《最新版逄治明数据库毕业课程设计报告参考Word下载.docx(19页珍藏版)》请在冰豆网上搜索。
![最新版逄治明数据库毕业课程设计报告参考Word下载.docx](https://file1.bdocx.com/fileroot1/2022-12/12/86865f44-2406-403c-8b00-13cd06a249f7/86865f44-2406-403c-8b00-13cd06a249f71.gif)
《数据库课程设计》是软件工程专业(本科)教学大纲要求的重要实践性环节之一,是学习完《数据库原理及应用》和《Oracle数据库应用》两门课程后进行的一次数据库方面的综合练习。
其目的在于:
配合《数据库原理及应用》和《Oracle数据库应用》课程的教学,使学生能巩固和加深对数据库基础理论和基本知识的理解;
掌握使用数据库进行软件设计的基本思想和方法;
提高学生运用数据库理论解决实际问题的能力;
培养学生调查研究、查阅技术文献、资料、手册以及编写技术文献的能力。
二、课程设计的内容及要求
内容:
用一种高级语言和当前流行的数据库管理系统相结合,完成一个小型管理系统的设计与开发。
所设计的小型管理系统应包含两个以上(不多于4个)的模块以及输入输出、查询、插入、删除等基本功能。
根据课程设计2周时间的安排选择适当大小的设计课题,课题的选择可以是实际问题,也可以是虚构的问题。
根据题目的基本需求,画出系统结构图,并对数据库进行详细设计,编写程序,同时写出关于本数据库管理系统的报告书。
要求:
(1)要求学生按照《数据库原理及应用》和《Oracle数据库应用》相关知识以及《数据库课程设计》教学大纲完成一个数据库设计,并撰写相应的课程设计报告。
(2)提交课程设计报告。
要求完成课程设计报告大约15页-20页,包括相应的模块设计文档、数据库设计文档、所承担模块的核心代码、测试过程分析与运行结果等。
分组进行的同学共同完成基本设计与数据库设计,但每个人至少必须独立完成一个模块设计与实现,并写入课程设计报告中。
三、课程设计时间
课程设计时间为2周(10个工作日)
四、课程设计分组
一人一组
五、课程设计的成果和形式
1.报告一篇
2.符合设计要求的数据库应用系统一个
目录
题目:
1
1.需求分析1
2数据库概要设计…………………………………………………………1
3.数据库逻辑设计…………………………………………………………3
4.数据库实施………………………………………………………………4
5.系统实现7
6.测试结果15
参考文献16
超市管理系统设计与实现
1.需求分析
随着现代软件的发展,手工分析方式已经很难满足系统数据库分析的要求,必须借助于相应的工具。
数据库需求分析是系统开发周期中的一个重要阶段。
在开发超市管理系统时,可以进行E-R图分析,然后在对表格进行分析,从而对超市的管理系统有个清晰的了解。
超市管理系统的数据主要涉及文本信息,使用Oracle9i来实现数据库的信息管理。
2.数据库概要设计
1.产品信息表
表Good主要来统计超市商品的详细信息,包括商品的ID号、名称、数量和价格表等详细信息。
相应属性如表9.1所示。
表1.1产品属性表
字段名称
数据类型
大小
默认值
可否为空
主键
ID号
自动长整型
8
无
否
是
名称
字符
15
数量
价格
整型
2.顾客属性表
表Customer主要用来统计超市各科的详细信息,包括顾客的电话、姓名、购买的商品的ID号和订单号等详细信息。
相应属性如表9.2所示
表1.2顾客属性表
数据类型
大小
默认值
可否为空
主键
电话
产品ID号
订单号
3.客户属性表
表Customer1主要用来统计超市大客户的详细信息,包括客户的电话、姓名、购买商品的ID号和订单号等详细信息。
对应得表格属性如表9.3所示
表1.3大客户属性表
4.仓库属性表
表Ware主要用来统计超市仓库信息,包括仓库的名称、ID号、存放的商品的ID号等详细信息。
对应的表格属性如表9.4所示。
表1.4仓库属性表
5.小订单属性表
表LittlePaper主要用来统计超市顾客的小型订单信息,包括订单的ID号、购买订单商品的ID号、购买的数量和总计金额等一些信息,对应的表格属性如表9.5所示。
表1.5小订单属性表
订单ID号
总计金额
6.合同订单属性表
表Paper主要用来统计超市大客户的合同订单信息,包括订单的ID号、购买的商品的ID号、购买的数量和总计金额等一些信息,对应的表格属性如图表9.6所示。
表1.6合同订单属性表
7.表Worker主要用来统计超市相应超市人员的详细信息,包括超市人员的姓名、订单的ID号、商品的ID号和员工ID号等详细信息。
表1.7超市员工信息表
3.数据库逻辑设计
①实现E-R图向关系模型的转换,特别注意实体的1:
n联系,优化数据模型。
详细说明实体、实体属性和实体之间的关系、完整性约束
②建立的关系模式必须符合第一范式。
③选择合适的支持关系模型的DBMS。
4.数据库实施
①库和表的建立
****创建顾客属性表
在数据库“liuyong”中创建“Customer”表
CREATETABLE"
HR"
."
CUSTOMER"
("
TEL"
NUMBER(8),
"
NAME"
VARCHAR2(15),
GOODID"
NUMBER(8)NOTNULL,
PAPERID"
NUMBER(8)NOTNULL);
———向表中插入数据
INSERTINTO"
"
)
VALUES('
王刚'
02100)
李明'
02101)
陈峰'
02102)
李志强'
02104)
卓名'
03201)
欧阳明'
03106)
顾洪亮'
03221)
刘江'
03115)
朱富春'
03120)
江伟'
03108)
图2.1
****建立大客户属性表
———在数据库“liuyong”中创建Customer1表
CUSTOMER1"
VARCHAR2(8)NOTNULL,
VARCHAR2(8)NOTNULL);
VALUES(‘北京鼎盛超市’,‘’,‘2003p511’)
VALUES(‘世纪电脑公司’‘’,‘2003p623’)
VALUES(‘苹果电脑公司’‘’,‘2003p635’)
VALUES(‘IBM电脑公司’‘’,‘2002p623’)
VALUES(‘惠普公司’‘’,‘2002p689’)
VALUES(‘清华同方’‘’,‘2003p201’)
VALUES(‘清华紫光’‘’,‘2003p221’)
VALUES(‘北大方正’‘’,‘2002p230’)
VALUES(‘四通集团’‘’,‘2003p213’)
VALUES(‘联想集团’‘’,‘’)
图2.2
5.系统实现
1.登陆页面的实现
importjavax.swing.*;
importjava.awt.*;
importjavax.swing.border.*;
importjava.awt.event.*;
importjava.sql.*;
publicclassdenglu
{publicstaticvoidmain(Stringargs[])
{FirstWindowwin=newFirstWindow("
超市管理系统"
);
}
}
classFirstWindowextendsJFrameimplementsActionListener
{BoxbaseBox,boxV1,boxV2;
JLabellabel,label1;
JComboBoxlist;
JButtonloginButton;
JTextFieldtext1;
JPasswordFieldtext2;
Stringcode,inputNumber1;
FirstWindow(Strings)
{super(s);
setLayout(null);
label=newJLabel("
春光超市"
newImageIcon("
仓库.png"
),JLabel.RIGHT);
add(label);
Fontf1=newFont("
宋体"
Font.BOLD,30);
label.setFont(f1);
label.setBounds();
label1=newJLabel("
账号或密码错误"
no.png"
add(label1);
label1.setVisible(false);
label1.setBounds(0);
boxV1=Box.createVerticalBox();
boxV1.add(Box.createVerticalStrut(10));
//设置垂直支撑距离
boxV1.add(newJLabel("
账号:
笑脸.png"
),JLabel.RIGHT));
boxV1.add(Box.createVerticalStrut(12));
密码:
密码.png"
boxV2=Box.createVerticalBox();
boxV2.add(Box.createVerticalStrut(13));
text1=newJTextField(12);
boxV2.add(text1);
boxV2.add(Box.createVerticalStrut(5));
text2=newJPasswordField(12);
boxV2.add(text2);
baseBox=Box.createHorizontalBox();
baseBox.add(boxV1);
baseBox.add(Box.createHorizontalStrut(10));
baseBox.add(boxV2);
add(baseBox);
baseBox.setBounds();
loginButton=newJButton("
登录"
登陆.png"
));
add(loginButton);
loginButton.addActionListener(this);
loginButton.setBounds(0);
Cursorc=Cursor.getPredefinedCursor(Cursor.HAND_CURSOR);
//设置光标形状
loginButton.setCursor(c);
setBounds(280);
setVisible(true);
setResizable(false);
validate();
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
//用窗口右上角的关闭窗口
publicvoidactionPerformed(ActionEvente)
{if(e.getSource()==loginButton)
{
Connectioncon;
Statementsql;
ResultSetrs;
try{Class.forName("
sun.jdbc.odbc.JdbcOdbcDriver"
catch(ClassNotFoundExceptione1)
{System.out.println("
+e1);
try{con=DriverManager.getConnection("
jdbc:
odbc:
B_S"
sql=con.createStatement();
Stringaccount=text1.getText(),str;
Strings=null;
inputNumber1=s.copyValueOf(text2.getPassword());
str="
select*fromADMwhereADM_NAME='
+account+"
'
andADM_MM='
+inputNumber1+"
;
rs=sql.executeQuery(str);
if(rs.next())
{setVisible(false);
SecondWindowwin=newSecondWindow("
else
{label1.setVisible(true);
label1.setText("
con.close();
catch(SQLExceptione2)
{System.out.println(e2);
}
5.2商品查询
classThirdWindow1extendsJFrameimplementsActionListener
{BoxbaseBox;
JLabellabel1,label2,label3,label4,label5,label6,label7,label8,label9;
JTabletable;
JTextFieldtext,text1,text2,text3,text4,text5,text6,text7;
JScrollPanescorllpane;
JButtonbutton1,button2,button3,button4,button5;
JPanelpanel;
publicThirdWindow1(Strings)
欢迎进入超市管理系统"
蝴蝶.gif"
label3=newJLabel("
商品编号"
label4=newJLabel("
商品名"
label5=newJLabel("
生产商"
label7=newJLabel("
供应商(号)"
label8=newJLabel("
售价"
label9=newJLabel("
当前数量"
add(label3);
add(label4);
add(label5);
add(label6);
add(label7);
add(label8);
add(label9);
label3.setBounds();
label4.setBounds();
label5.setBounds();
label6.setBounds();
label7.setBounds();
label8.setBounds();
label9.setBounds();
button1=newJButton("
查询"
button1.addActionListener(this);
list=newJComboBox();
list.addItem("
请选择"
按商品名查询"
按生产商查询"
按商品编号查询"
label2=newJLabel("
请选择查询方式"
text1=newJTextField();
text2=newJTextField();
text3=newJTextField();
text4=newJTextField();
text5=newJTextField();
text6=newJTextField();
text7=newJTextField();
add(text1);
add(text2);
add(text3);
add(text4);
add(text5);
add(text6);
add(text7);
text1.setBounds(35);
text2.setBounds(35);
text3.setBounds(35);
text4.setBounds(35);
text5.setBounds(35);
text6.setBounds(35);
text7.setBounds(35);
text=newJTextField();
baseBox.add(label2);
baseBox.add(Box.creat