程序设计综合实训.docx
- 文档编号:3808442
- 上传时间:2023-05-06
- 格式:DOCX
- 页数:57
- 大小:923.94KB
程序设计综合实训.docx
《程序设计综合实训.docx》由会员分享,可在线阅读,更多相关《程序设计综合实训.docx(57页珍藏版)》请在冰点文库上搜索。
程序设计综合实训
一、实训目的:
可视化的开发环境使设计者可直接通过图形化的交互式操作,设计并实现应用系统。
为了加深对VisualBasic程序设计语言的理解并提高使用这种开发工具来解决实际问题的能力,本课程设置了2周的课程设计。
通过课程设计,为学生提供了既动手又动脑,自学,查资料,并且能够独立实践的机会,同时也使我们通过该教学环节与手段,把所学的软件开发工具及相关知识加以融会贯通,使我们使用可视化开发工具的软件编程能力有一个较大的提高,使我们真正掌握面向对象程序设计的方法及面向对象的开发环境,锻炼了学生实际分析问题和解决问题的能力,提高学生适应实际、实践编程的能力,为今后从事实际工作打下坚实的基础。
二、功能描述:
1.系统名称
医药进销存管理系统
本系统结合医药行业的进销存制度,对药品、客户、供应商的基本信息和药品的进货订单、入库、销售订单、销售及库存盘点信息等进行管理。
2.系统所完成的功能
本系统可方便地按各种条件查询入库、销售的情况。
通过该系统可以追溯到发生过的任何一笔业务,由于有准确的结存依据,因此可以确定最合理的采购数量,还可对存量进行控制,减少积压,真正实现了企业的信息化管理。
三、概要设计:
1.需求分析
1.1.基本数据的管理
管理药品信息;管理供应商信息;管理客户信息;管理业务员信息;管理仓库。
1.2.进货管理
进货订单管理;入库管理。
1.3.销售管理
销售订单;销售管理
1.4.查询
分别按供应商、业务员、仓库查询进货情况;分别按客户、业务员、仓库查询销售情况。
2.系统功能结构
药品进销存系统基业Windows平台开发,使用MicrosoftVisualbasic6.0作为开发语言环境,以MicrosoftOfficeAccess作为数据库环境。
系统的主要功能包括基本数据、进货管理、销售管理、库存管理、查询五部分。
其中基本数据包括药品、供应商、客户、业务员、仓库等;进货管理则是在进货订单和入库单两方面;销售管理包括销售订单和销售单两个部分;库存管理是由库存调货和库存信息两部分组成;查询主要是对进货和销售以及进货进行直观的查询,其中销售查询还包括销售单查询和销售订单查询。
因此系统功能结构图见图1。
图1系统功能结构图
四、数据库设计:
在本系统中,需要保存大量的数据(包括药品信息、供应商信息、客户信息、业务员信息、仓库信息等)通过使用数据库技术,将这些数据保存到数据库中,可方便管理这些数据。
本系统包括9个实体,分别为:
药品、客户、供应商、业务员、仓库、进货订单、销售订单、进货单和销售单。
而它们又可以分为具体的内容。
如销售订单实体的E-R图见图2,入库单的实体的E-R图见图3。
图3销售订单实体E-R图
图4入库单实体E-R图
本系统以MicrosoftOfficeAccess作为数据库环境,一共创建了14张表,分别是
jxc_type(药品类别)表、jxc_CommName(药品信息)表、Jxc_cust(客户信息)表、jxc_Supp(客户信息)表、jxc_SMType(供应商信息)表、jxc_Sales(业务员信息)表、jxc_Store(仓库信息)表、jxc_orders(进货订单)表、jxc_SalersOrders(销售订单)表、jxc_IN(入库单)表、jxc_out(销售单)表、jxc_stock(库存)表、jxc_move(仓库调动信息)表、jxc_user(用户信息)表,分别写出每个所创表的表名、字段名、字段类型、长度等。
(1)xc_type(药品类别)表,用于保存药品的类别信息,该表包括5个字段,具体信息表见表1。
表1jxc_type具体信息表
字段标题
字段名称
字段类型
字段大小
大类编号
bigtype
文本
14
大类名称
bigname
文本
50
子类编号
type
文本
14
子类名称
name
文本
50
备注
memo
文本
255
(2)jxc_CommName(药品信息)表,用于保存销售药品的各项信息,该表包括11个字段,具体信息表见表2。
表2jxc_CommName具体信息表
字段标题
字段名称
字段类型
字段大小
编号
cn_id
文本
14
名称
cn_name
文本
50
卫准字
cn_code
文本
50
单位
cn_unit
文本
10
类别
cn_type
文本
14
进价
cn_inprice
数字
单精度型
分销售
cn_outprice
数字
单精度型
零售价
cn_outprice2
数字
单精度型
生产厂家
cn_factor
文本
50
登记单位
cn_date
日期/时间
短日期
备注
cn_memo
文本
255
(3)Jxc_cust(客户信息)表,用于保存客户的各项信息,该表包括14个字段,具体信息表见表3。
表3Jxc_cust具体信息表
字段标题
字段名称
字段类型
字段大小
客户编号
cus_id
文本
14
客户名称
cus_name
文本
50
地址
cus_address
文本
50
邮政编码
cus_post
文本
6
联系电话
cus_tele
文本
50
网址
cus_http
文本
50
联系人
cus_linker
文本
20
电子邮件
cus_email
文本
50
税号
cus_taxno
文本
40
银行账号
cus_bankno
文本
40
开户账号
cus_bank
文本
50
会员卡号
cus_memberID
文本
14
折扣比例
cus_discount
数字
单精度型
备注
cus_memo
文本
255
(4)jxc_Supp(供应商信息)表,用于保存供应商各项信息,该表包括12个字段,具体信息见表4。
表4jxc_Supp具体信息表
字段标题
字段名称
字段类型
字段大小
编号
sup_id
文本
14
名称
sup_name
文本
50
地址
sup_address
文本
50
邮政编码
sup_post
文本
6
电话
sup_tele
文本
50
网址
sup_http
文本
50
电子邮件
sup_email
文本
50
税号
sup_taxno
文本
50
银行账号
sup_bankno
文本
50
开户银行
sup_bank
文本
50
联系人
sup_linker
文本
255
备注
sup_memo
文本
255
(5)jxc_SMType(业务员类别)表,用于保存业务员分类,该表包括3个字段,具体信息如表5。
表5jxc_SMType具体信息表
字段标题
字段名称
字段类型
字段大小
类别编号
SMT_id
文本
14
类别名称
SMT_linker
文本
50
备注
SMT_memo
文本
255
(6)jxc_Sales(业务员信息)表,用于保存业务员的各项信息,该表包括8个字段,具体信息如表6。
表6jxc_Sales具体信息表
字段标题
字段名称
字段类型
字段大小
编号
sl_id
文本
14
姓名
sl_name
文本
50
业务员类别
sl_type
文本
20
电话
sl_tele
文本
50
地址
sl_address
文本
50
身份证号
sl_carid
文本
18
类别编号
sl_typeid
文本
14
备注
sl_memo
文本
255
(7)jxc_Store(仓库信息)表,用于保存公司的个仓库信息,该表包括3个字段,具体信息如表7。
表7jxc_Store具体信息表
字段标题
字段名称
字段类别
字段大小
编号
st_id
文本
14
仓库名称
st_name
文本
50
备注
st_memo
文本
255
(8)jxc_orders(进货订单)表,用于保存进货订单信息,该表包括11个字段,具体信息如表8。
表8jxc_orders具体信息表
字段标题
字段名称
字段类别
字段大小
订单日期
jxc_date
日期/时间
短日期
业务员
jxc_salers
文本
14
订单号
jxc_id
文本
14
供应商编号
sup_id
文本
14
药品编号
com_id
文本
14
有效期
jxc_enddate
日期/时间
短日期
数量
jxc_amount
数字
单精度型
单价
jxc_price
数字
单精度型
折扣
jxc_discount
数字
单精度型
金额
jxc_total
数字
单精度型
备注
jxc_memo
文本
255
(9)jxc_SalersOrders(销售订单)表,用于保存销售订单信息,该表包括11个字段,具体信息如表9。
表9jxc_SalersOrders具体信息表
字段标题
字段名称
字段类型
字段大小
订货日期
so_date
日期/时间
短日期
业务员
so_Salers
文本
14
订单号
so_id
文本
14
客户编号
cus_id
文本
14
药品编号
cn_id
文本
14
有效期
cn_enddate
日期/时间
短日期
数量
so_amount
数字
单精度型
单价
so_price
数字
单精度型
折扣
so_discount
数字
单精度型
金额
so_total
数字
单精度型
备注
so_memo
文本
255
(10)jxc_IN(入库单)表,用于保存药品采购入库信息,该表包括15个字段,具体信息如表10。
表10jxc_in具体信息表
字段标题
字段名称
字段类型
字段大小
订货日期
in_date
日期/时间
短日期
业务员
in_saler
文本
14
入库单号
in_id
文本
14
供应商编号
sup_id
文本
14
仓库编号
st_id
文本
14
药品编号
com_id
文本
14
有效期
com_enddate
日期/时间
短日期
数量
in_amount
数字
单精度型
单价
in_price
数字
单精度型
折扣
in_diiscount
数字
单精度型
金额
in_total
数字
单精度型
支付方式
in_cash
文本
20
是否记账
in_arr
文本
20
预付比例
in_rate
数字
单精度型
备注
in_memo
文本
255
(11)jxc_out(销售单)表,用于保存药品销售出库信息,该表包括15个字段,具体信息如表11。
表11jxc_out具体信息表
字段标题
字段名称
字段类别
字段大小
销售日期
out_date
日期/时间
短日期
业务员
out_saler
文本
14
销售单号
out_id
文本
14
客户编号
cus_id
文本
14
仓库编号
st_id
文本
14
药品编号
cn_id
文本
14
有效期
cn_enddate
日期/时间
短日期
数量
out_amount
数字
单精度型
单价
out_price
数字
单精度型
折扣
out_discount
数字
单精度型
金额
out_total
数字
单精度型
支付方式
out_cash
文本
10
是否记账
out_arr
文本
2
预付比例
out_rate
数字
单精度型
备注
out_memo
文本
255
(12)jxc_stock(库存)表,用于保存药品的库存信息,该表包括7个字段,具体信息如表12。
表12jxc_stock具体信息表
字段标题
字段名称
字段类型
字段大小
更新日期
sk_date
日期/时间
短日期
编号
sk_id
文本
14
仓库编号
st_id
文本
14
药品编号
cn_id
文本
14
有效期
cn_enddate
日期/时间
短日期
数量
sk_amount
数字
单精度型
金额
sk_total
数字
单精度型
(13)jxc_move(仓库调货信息)表,用于保存在不同仓库之间调货的信息,该表包括10个字段,具体信息如表13。
表13jxc_move具体信息表
字段标题
字段名称
字段类型
字段大小
编号
mv_id
文本
1
调仓日期
mv_date
日期/时间
短日期
业务员
mv_saler
文本
14
调出仓库编号
st_id_o
文本
14
调入仓库编号
st_id_i
文本
14
药品编号
cn_id
文本
14
有效期
cn_enddate
日期/时间
短日期
数量
mv_amount
数字
单精度型
金额
mv_total
数字
单精度型
备注
mv_memo
文本
255
jxc_user(用户信息)表,用于保存客户名和密码的基本信息,该表包括2个字段,具体信息如表14。
表14jxc_user具体信息表
字段标题
字段名称
字段类型
字段大小
用户
u_name
文本
50
密码
u_PWD
文本
50
根据上述表格信息,建立药品进销存系统数据库,通过SQL语句与Visualbasic制作的程序连接,实现系统功能。
五、详细设计:
1.制作主窗体界面
(1)打开VisualBasic6.0中文版,新建一个标准工程,向工程中添加一个MDIForm窗体,设置其名称属性为“frmMain”,标题为“医药进销存管理系统”。
在工具栏中添加部件MicrosoftWindowsCommonControls6.0,并向窗口中添“StatusBar”按钮。
设置主窗体状态栏为三个窗格。
向窗口中添加菜单栏。
菜单栏包括系统、数据基础、进货管理、库存管理、查询、帮助六大部分,和分支结构,本系统中各菜单项的标题和名称具体内容见表15。
在MDIForm窗体中添加菜单栏,逐个创建系统的菜单,菜单编辑器见图4。
图4菜单编辑器图
表15应用程序菜单
菜单
子菜单
菜单名
快捷键
系统(&S)
mnuSystem
修改密码(&M)
mnuModifyPWD
添加用户(&A)
muuAddUser
mnu1
退出(&X)
mnuExit
Ctrl+X
数据基础(&B)
mnuBase
药品类别(&T)
mnuCNType
业务员类别(&A)
mnuSalerType
mnu2
药品(&C)
mnuCommName
Ctrl+C
供应商(&S)
mnuSupp
Ctrl+S
客户(&U)
mnuCust
Ctrl+U
业务员(&E)
mnuSaler
Ctrl+E
仓库(&T)
mnuStore
Ctrl+T
进货管理(&O)
mnuIN
进货订单(&O)
mnuINorder
Ctrl+F1
入库单(&I)
mnuIN1
Ctrl+F2
销售管理(&O)
mnuOUT
销售订单(&O)
mnuOUTOrder
Ctrl+F3
销售单(&S)
mnuOUT1
Ctrl+F4
库存管理(&T)
mnuStore1
仓库调货(&M)
mnuMove
Ctrl+F5
库存信息(&Q)
mnuDetail
Ctrl+F6
查询(&Q)
mnuQuery
进货查询(&I)
mnuQueryIN
按供应商查询(&S)
mnuINSupp
按仓库查询(&T)
mnuINStore
按业务员查询(&E)
mnuINSaler
销售查询(&O)
mnuQuerOUT
按客户查询(&C)
mnuOUTCust
按仓库查询(&T)
mnuOUTStore
按业务员查询(&E)
mnuOUTSaler
帮助(&H)
mnuHelp
关于(&A)
mnuAbout
F1
(2)主窗体主要用来集成系统的菜单,并在下方显示一个状态栏,添加了菜单后的主窗体见图5。
图5主窗体图
(3)为主窗体设计好菜单后,就可为窗体的装载、卸载事件,以及各菜单编写代码。
PrivateSubmnuOUTOrders_Click()'销售订单
frmOutOrders.strSQL="SELECTso_id,so_date,so_saler,cus_id,cn_id,"&_
"cn_enddate,so_amount,so_price,so_amount,so_total,so_memo"&_
"FROMjxc_SalesOrders"'设置窗体参数
frmOutOrders.Show'显示“销售订单”窗体
EndSub
PrivateSubmnuStore_Click()'仓库
frmStore.strSQL="SELECT*FROMjxc_store"
frmStore.Show'显示“仓库”窗体
EndSub
PrivateSubmnuINOrders_Click()'进货订单
frmOrders.strSQL="SELECTod_id,od_date,od_saler,sup_id,com_id,"&_
"od_enddate,od_amount,od_price,od_discount,od_total,od_memo"&_
"FROMjxc_orders"'设置窗体参数
frmOrders.Show'显示“进货订单”窗体
EndSub
PrivateSubmnuIN1_Click()'入库单
frmIN.strSQL="SELECTin_id,in_date,in_saler,sup_id,st_id,com_id,"&_
"com_enddate,in_amount,in_price,in_discount,in_total,in_cash,"&_
"in_arr,in_rate,in_memoFROMjxc_inWHEREin_memoISNULL"
frmIN.Show'显示“入库单”窗体
EndSub
PrivateSubmnuExit_Click()'退出
UnloadMe
EndSub
PrivateSubmnuSupp_Click()'供应商
frmSupp.strSQL="SELECT*FROMjxc_supp"
frmSupp.Show'显示“供应商”窗体
EndSub
PrivateSubmnuINStore_Click()'进货-按仓库查询
frmQueryINStore.Show'显示“进货信息——按仓库查询”窗体
EndSub
PrivateSubmnuCust_Click()'客户
frmCustom.strSQL="SELECT*FROMjxc_cust"
frmCustom.Show'显示“客户”窗体
EndSub
PrivateSubmnuCommName_Click()'药品
frmCommList.strSQL="SELECT*FROMjxc_CommName"
frmCommList.Show'显示“药品”窗体
EndSub
PrivateSubmnuOUT1_Click()'销售单
frmOUT.strSQL="SELECTout_id,out_date,out_saler,cus_id,st_id,cn_id,"&_
"cn_enddate,out_amount,out_price,out_discount,out_total,"&_
"out_cash,out_arr,out_rate,out_memoFROMjxc_out"'设置窗体参数
frmOUT.Show'显示“销售单”窗体
EndSub
PrivateSubmnuSalerType_Click()'业务员类别
frmSMType.strSQL="SELECT*FROMjxc_SMType"
frmSMType.Show'显示“业务员类别”窗体
EndSub
PrivateSubmnuSaler_Click()'业务员
frmSales.strSQL="SELECT*FROMjxc_sales"
frmSales.Show'显示“业务员”窗体
EndSub
PrivateSubmnuMove_Click()'仓库调货
frmMoveStore.strSQL="SELECT*FROMjxc_move"
frmMoveStore.Show'显示“药品转仓”窗体
EndSub
2.设计模块
我负责的主要是库存管理和查询两个模块,库存管理模块包括仓库调货和仓库信息,查询模块包括进货查询和销售查询。
(1)仓库管理模块
库存管理模块包括调货和库存信息两个子模块。
其中仓库调货子模块用于在不同的仓库之间调货,即将一个仓库的药品调到另一个仓库中。
库存信息子模块用于按仓库(或按药品名称)查询库存情况。
下面分别介绍着两个子模块的制作过程。
1仓库调货子模块
首先在见图6的窗体中显示已有的仓库调货信息,单击“添加”按钮即可打开见图7所示的仓库调货窗体,在窗体中输入调货的信息即可。
图6仓库调货列表图
图7调仓库信息图
在调仓库信息窗体中,左下脚有7个文本框在运行时为隐藏状态,用来保存一些参照数据。
该窗体处理仓库信息时分两种情况,一是新增调仓信息,其操作比较简单,从转出仓库减去调用数量和金额,在增加到转入仓库即可。
编写程序代码时,在窗体代码的声名部分编写代码以strSQL作为窗体的参数,用来保存SQL语句,调用该窗体的过程通过该参数传递需要修改数据;在窗体的Load事件中编写代码先从数据库中获取业务员姓名、转出/转入仓库名称、药品名称,并添加到对应的组合框中,供用户选择。
接着再根据添加模式还是修改模式,决定窗体中的各个控件显示的内
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 程序设计 综合