数据库系统课程设计报告模板宋广鹏.docx
- 文档编号:30278696
- 上传时间:2023-08-13
- 格式:DOCX
- 页数:38
- 大小:114.09KB
数据库系统课程设计报告模板宋广鹏.docx
《数据库系统课程设计报告模板宋广鹏.docx》由会员分享,可在线阅读,更多相关《数据库系统课程设计报告模板宋广鹏.docx(38页珍藏版)》请在冰豆网上搜索。
数据库系统课程设计报告模板宋广鹏
姓名:
宋广鹏
学号:
090410214
专业:
计算机科学与技术
班级:
0904102
组号:
指导教师:
胡仕成
计算机科学与技术学院
哈尔滨工业大学
课程设计题目:
企业商品人员管理系统
1.需求分析说明书
仓库(存储仓库的基本信息)
属性(仓库号,仓库位置,备注)
供应商(供应商的基本信息)
属性(供应商号,供应商名,地区,电话)
存储(商品储存在仓库的基本信息)
属性(仓库号,商品号,数量,备注)
员工(工作员工的基本信息)
属性(员工号,姓名,性别,电话,备注)
商品(从订购商订购,卖给客户的商品)
属性(商品号,商品名,规格,基本单位(如瓶、双等),单价)
客户(订购商品的客户信息)
属性(客户号,客户名,地区,电话,帐务(如记账功能))
工资(开给员工的工资)
属性(部门号,职务号,工资,备注,人数)
帐务类型(包括记账等功能)
属性(帐务号,帐务名,帐务类型,备注)
性别(男or女)
属性(性别号,性别)
管理(员工间的关系)
属性(管理者,被管理者)
职务(员工的工作职位)
属性(职务号,职务名,职务描述)
职属(员工的所属于的部门关系、职务关系)
属性(员工号,部门号,职务号,备注)
表名(表的标题名)
属性(表名)
账单(对帐务的记录)
属性(账单类型,金额,备注)
进货订单(对商品的采购,包括提供商品的供应商,采购的数量,储存商品的仓库,采购商品的价格等)
属性(订单号,商品号,供应商号,数量,仓库号,单价)
部门(企业中的各个部门信息)
属性(部门号,部门名称,部门描述,负责人)
销售订单(对商品的出售,包括购买商品的客户信息,购买数量,存放商品的仓库名称,出售价格等)
属性(订单号,商品号,客户号,数量,仓库号,单价)
{该部分要求写出对系统的需求分析结果,包括对系统的简要介绍,系统应该包括的实体集和联系集,对每个实体集和联系集作简单的介绍,以及每个实体集和联系集所包括的属性。
如下示例}
2.E-R模型设计
{根据上面的需求分析画出系统的E-R图。
}
3.数据库设计
{将上面的E-R图转换为模式图}
{根据模式图设计每个关系模式(Oracle的数据类型)。
如下示例}
收料入库单(cpc_bill)
字段名
数据类型
字段限制或计算公式
数据项名称
备注
仓库号
archar(20)
收料单以SL开始;领料单以LL开始;限额领料单以XL开始;退料单以TL开始;后接编号为"年度"+10位顺序号
收料单号
PK
位置
varchar(20)
单据类别=SL收料单/LL领料单/XL限额领料单/TL退料单
单据类别
备注
varchar(20)
该栏只在退料单上出现
对应领料单号
Material_Code
收到物料的代码,是外购件填外购件代码,是材料填材料代码
物料代码
Material_Name
Vchar2(50)
物料名称规格型号说明
material_class
Vchar2(40)
材料规格
材料规格
Measure_Unit
Vchar2(10)
计量单位
Material_Use
Vchar2(50)
对收料入库单,该栏填写<原材料>;对领料单,该栏为领料用途;
物料用途
Ori_Use
Vchar2(50)
对收料入库单,该栏填写<外购材料>;对领料单,该栏为物料原来的用途;
物料原用途
Ticket_No
Vchar2(20)
对收料入库单,该栏为空
工票号
Prod_Code
Vchar2(20)
对收料单,如为某一产品而买,则填写;对领料单,如为某一产品而领料,则填写;
产品代码
Work_No
Vchar2(20)
对收料单,如为某一工作号而买,则填写;对领料单,如为某一工作号而领料,则填写;
工作号
Part_Code
Vchar2(20)
如为某一零件,则填写;该栏内容只在产品代码或工作号不为空时有效。
当物料/外购件是专为某个产品的某工作号的,零部件代码就填该材料所属的那个零部件;当是外购件时,零件代码与物料代码所填写内容相同。
如为产品,则该栏填写产品代码;否则,填写该记录内容所对应的零件代码。
零件代码
Part_Quan
Num(15,2)
该材料所支持的零件数量
零件数量
Sdept_Code
Vchar2(10)
经办/发料/退料部门代码
Ssubdept_Code
Vchar2(10)
经办/发料/退料具体部门代码
Sctrl_Code
Vchar2(10)
经办/发料/退料控制点代码
Rdept_Code
Vchar2(10)
收料/领料部门代码
Rsubdept_Code
Vchar2(10)
收料/领料具体部门代码
Rctrl_Code
Vchar2(10)
收料/领料控制点代码
R_Date
Date
收料/领料/退料日期
S_Worker
Vchar2(10)
经办人/发料人/退料人
R_Worker
Vchar2(10)
收料人/领料人
Project_Passer
Vchar2(10)
项目批准人
Dept_Passer
Vchar2(10)
部门批准人
Comp_Passer
Vchar2(10)
综合批准人
Plan_Quan
Num(15,2)
发货单物料数量/请领或限领数量/请退数量
Real_Quan
Num(15,2)
实入/实领/实退物料数量
Real_Price
Num(15,2)
物料实际单价
Real_Sum
Num(15,2)
物料实际总价
Plan_Price
Num(15,2)
物料计划单价
Plan_Sum
Num(15,2)
物料计划总价
Mix_Cost
Num(15,2)
对收料入库单需填写;
运杂费
Total_Money
Num(15,2)
对收料入库单需填写;
金额合计
RP_flag
Vchar2
(1)
对收料入库单,该栏确定运杂费的处理方式,如为S则以包含运杂费的金额合计进行处理;如为J则运杂费和物料实际总价单独入帐。
对领料单,该栏确定是采用物料计划总价入帐,还是采用物料实际总价入帐
S/J(实际价/计划价)标志或者是合运/分运处理标志
Bill_Worker
Vchar2(10)
单据制作员
Bill_Date
Date
单据制作日期
Bill_Checker
Vchar2(10)
单据审核员
Check_Flag
Vchar2
(1)
成本稽核标志
Account_Flag
Vchar2
(1)
入成本帐标识
Cost_Checker
Vchar2(10)
成本稽核员
Check_Date
Date
成本稽核员核帐日期
Finan_Flag
Vchar2
(1)
=0未报帐;=1已报帐。
财务报帐标识
Finan_Billno
Vchar2(20)
财务报帐单据号
BL_FLAG
Vchar
(1)
借贷标志
4.系统功能实现
{说明本系统实现的功能和相关实现的方法和代码。
如下示例}
企业帐务处理系统实现了以下功能:
稽核,入帐,过账,分摊,结转,制单,报表,查询和系统管理等。
如下图为系统实现总的功能界面(也可以用PB所开发的界面取代,各功能最好是以菜单的形式体现,一个功能对应一个菜单项,如果一个功能还可以分为更小的贡呢,则应该以级联菜单的形式体现,如下示例)。
以下分别说明各功能的实现。
4.1.创建和数据库的连接
{创建和数据库的连接是系统的各功能实现的前提,因此需要说明给功能的实现,主要是相关的代码}
数据库是用mysql在Linux下创建的,在数据库中建立了需要的表,并在程序中加入代码将数据库与程序起来。
主要代码:
创建数据库命令:
createdatabasedb_zero;
staticboolcreateConnection()
{
QSqlDatabasedb=QSqlDatabase:
:
addDatabase("QMYSQL");
db.setHostName("localhost");
db.setDatabaseName("db_zero");
db.setUserName("root");
db.setPassword("pp");
if(!
db.open()){
QMessageBox:
:
critical(0,qApp->tr("Cannotopendatabase"),
qApp->tr("Unabletoestablishadatabaseconnection."),
QMessageBox:
:
Cancel);
returnfalse;
}
returntrue;
}
4.2.采购管理
4.2.1.功能界面
{本功能所对应的实现界面}
4.2.2.关系表
{实现本功能所需要的关系表,以及创建该关系表所对应的SQL语句}
供应商:
createtable供应商(
供应商号varchar(20),
供应商名varchar(20),
地区varchar(20),
电话varchar(20),primarykey(供应商号))TYPE=InnoDB;
商品:
createtable商品(
商品号varchar(20),
商品名varchar(20),
规格varchar(20),
基本单位varchar(20),
单价decimal(5,2),primarykey(商品号))TYPE=InnoDB;
进货订单:
createtable进货订单(
订单号varchar(20),
商品号varchar(20),
供应商号varchar(20),
数量int,
仓库号varchar(20),
单价decimal(5.2),
foreign
仓库:
4.2.3.实现代码
{实现该功能所用的主要方法和代码。
一般来说,这里需要写出针对实现某个功能所用的主窗口中的每个控件(尤其是按钮控件,每个控件对应一个子功能)所写的代码,如查询子功能所使用的代码,插入子功能所使用的代码,删除子功能所使用的代码,更新子功能所使用的代码}
新增供应商:
voidDialog:
:
on_pushButton_2_clicked()
{
ui->lineEdit->clear();
ui->lineEdit_2->clear();
ui->lineEdit_3->clear();
ui->lineEdit_4->clear();
}
voidDialog:
:
on_pushButton_clicked()
{
QSqlQueryq;
q.prepare("insertinto供应商values(?
?
?
?
);");
q.addBindValue(ui->lineEdit->text());
q.addBindValue(ui->lineEdit_2->text());
q.addBindValue(ui->lineEdit_3->text());
q.addBindValue(ui->lineEdit_4->text());
//q.addBindValue(0);
q.exec();
}
供应商资料:
if(Qchoice==1)
{
model=newQSqlRelationalTableModel(this);
model->setEditStrategy(QSqlTableModel:
:
OnFieldChange);
model->setTable("供应商");
model->setHeaderData(0,Qt:
:
Horizontal,QObject:
:
tr("供应商号"));
model->setHeaderData(1,Qt:
:
Horizontal,QObject:
:
tr("供应商名"));
model->setHeaderData(2,Qt:
:
Horizontal,QObject:
:
tr("地区"));
model->setHeaderData(3,Qt:
:
Horizontal,QObject:
:
tr("电话"));
model->setHeaderData(4,Qt:
:
Horizontal,QObject:
:
tr("帐务"));
model->select();
ui->tableView->setModel(model);
采购订单:
Dialog_BuyPaper:
:
Dialog_BuyPaper(QWidget*parent):
QDialog(parent),
ui(newUi:
:
Dialog_BuyPaper)
{
ui->setupUi(this);
QStringListstrings;
QSqlQueryquery;
query.exec("select商品号from商品");
while(query.next())
{
QStringgoodname=query.value(0).toString();
strings.append(goodname);
}
QCompleter*completer=newQCompleter(strings,this);
ui->comboBox->clear();
ui->comboBox->addItems(strings);
ui->comboBox->setCompleter(completer);
///////////////////////////////////////////////////////
QStringListstrings1;
QSqlQueryquery1;
query1.exec("select供应商号from供应商");
while(query1.next())
{
QStringgyname=query1.value(0).toString();
strings1.append(gyname);
}
QCompleter*completer1=newQCompleter(strings1,this);
ui->comboBox_2->clear();
ui->comboBox_2->addItems(strings1);
ui->comboBox_2->setCompleter(completer1);
///////////////////////////////////////////////////////
QStringListstrings2;
QSqlQueryquery2;
query2.exec("select仓库号from仓库");
while(query2.next())
{
QStringdbname=query2.value(0).toString();
strings2.append(dbname);
}
QCompleter*completer2=newQCompleter(strings2,this);
ui->comboBox_3->clear();
ui->comboBox_3->addItems(strings2);
ui->comboBox_3->setCompleter(completer2);
}
Dialog_BuyPaper:
:
~Dialog_BuyPaper()
{
deleteui;
}
voidDialog_BuyPaper:
:
on_pushButton_clicked()
{
intZGood_Store=0;
QSqlQueryquery;
query.prepare("insertinto进货订单values(?
?
?
?
?
?
)");
query.addBindValue(ui->lineEdit_3->text());
query.addBindValue(ui->comboBox->currentText());
query.addBindValue(ui->comboBox_2->currentText());
query.addBindValue(ui->lineEdit->text());
query.addBindValue(ui->comboBox_3->currentText());
query.addBindValue(ui->lineEdit_2->text());
query.exec();
if(!
query.isActive())
{
QMessageBox:
:
about(this,"提示","操作失败");
ZGood_Store=1;
}
else
QMessageBox:
:
about(this,"提示","操作成功");
订单总览:
if(Qchoice==1)
{
model=newQSqlRelationalTableModel(this);
model->setEditStrategy(QSqlTableModel:
:
OnFieldChange);
model->setTable("进货订单");
model->setHeaderData(0,Qt:
:
Horizontal,QObject:
:
tr("订单号"));
model->setHeaderData(1,Qt:
:
Horizontal,QObject:
:
tr("商品号"));
model->setHeaderData(2,Qt:
:
Horizontal,QObject:
:
tr("供应商号"));
model->setHeaderData(3,Qt:
:
Horizontal,QObject:
:
tr("数量"));
model->setHeaderData(4,Qt:
:
Horizontal,QObject:
:
tr("仓库号"));
model->setHeaderData(5,Qt:
:
Horizontal,QObject:
:
tr("单价"));
model->select();
ui->tableView->setModel(model);
新增商品:
voidDialog_goods:
:
on_pushButton_2_clicked()
{
ui->glineEdit->clear();
ui->glineEdit_2->clear();
ui->glineEdit_3->clear();
ui->glineEdit_4->clear();
ui->glineEdit_5->clear();
}
voidDialog_goods:
:
on_pushButton_clicked()
{
QSqlQueryq1;
q1.prepare("insertinto商品values(?
?
?
?
?
)");
q1.addBindValue(ui->glineEdit->text());
q1.addBindValue(ui->glineEdit_2->text());
q1.addBindValue(ui->glineEdit_3->text());
q1.addBindValue(ui->glineEdit_4->text());
q1.addBindValue(ui->glineEdit_5->text());
q1.exec();
//QStrings;
if(!
q1.isActive())
{
QMessageBox:
:
about(this,"提示","操作失败");
}
else
QMessageBox:
:
about(this,"提示","操作成功");
}
商品查看:
else{
model=newQSqlRelationalTableModel(this);
model->setEditStrategy(QSqlTableModel:
:
OnFieldChange);
model->setTable("商品");
model->setHeaderData(0,Qt:
:
Horizontal,QObject:
:
tr("商品号"));
model->setHeaderData(1,Qt:
:
Horizontal,QObject:
:
tr("商品名"));
model->setHeaderData(2,Qt:
:
Horizontal,QObject:
:
tr("规格"));
model->setHeaderData(3,Qt:
:
Horizontal,QObject:
:
tr("基本单位"));
model->setHeaderData(4,Qt:
:
Horizontal,QObject:
:
tr("单价"));
model->select();
ui->tableView->setModel(model);
}
4.3.销售管理
4.3.1功能界面
4.3.2关系表
客户:
销售订单:
商品:
仓库:
4.3.3实现代码
新增客户:
voidDialog_add_consumer:
:
on_pushButton_clicked()
{
QSqlQueryquery;
query.prepare("insertinto客户values(?
?
?
?
?
)");
query.addBindValue(ui->lineEdit->text());
query.addBindValue(ui->lineEdit_2->text());
query.addBindValue(ui->lineEdit_3->text());
query.addBindValue(ui->lineEdit_4->text());
query.addBindValue(ui->lineEdit_5->text());
query.exec();
if(!
query.isActive())
{
QMessageBox:
:
about(this,"提示","操作失败");
}
else
QMessageBox:
:
about(this,"提示","操作成功");
}
客户资料:
elseif(Qchoice==2)
{
model=newQSqlRelationalTableModel(this);
mod
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据库 系统 课程设计 报告 模板 宋广鹏