你现在的位置 :
教程
=>
软件开发
=>
C/C++
=>VC++6.0物资分配软件实例分析
文章搜索
VC++6.0物资分配软件实例分析
时间: 2003-11-17 来自:论坛
3.数据表设计和数据结构设计
3.1数据表设计
基于模块化程序设计思想,为了更好的和其它程序之间交换数据,我们把物资分配问题的有关数据用数据库的形式组织和管理起来。程序运行时,从数据库中读取数据作为输入数据,运行的结果也输出保存在数据库中。由于物资分配问题可以用下面的框图来简单示意。所以围绕申请计划、库存情况和分配方案进行数据表的设计。
首先,我们需要列出物资分配问题所涉及的所有物资清单(不失一般性,我们考虑对
种物资的分配问题)。然后把这些物资作为物资申请计划数据表和仓库储存情况数据表的属性。
物资申请计划数据表(Apply)
序号
数据元素名
列标识符
单位
数据类型
约束条件
1
计划编码
Code
整形
主码
2
申请单位名称
Name
文本
3
单位优先类别
Class
整形
外码引用
4
对物资1的申请量
NQ1
单精度实数型
5
对物资2的申请量
NQ2
单精度实数型
┄
┄
┄
┄
┄
对物资
的申请量
NQi
单精度实数型
单位优先级数据表(Power)
序号
数据元素名
列标识符
单位
数据类型
约束条件
1
单位优先类别
Class
整形
主码
2
权系数
Power
单精度实数型
仓库情况数据表数据表(Gallery)
序号
数据元素名
列标识符
单位
数据类型
约束条件
1
仓库编码
Code
整形
主码
2
仓库名称
Name
文本
3
物资1的现有存储量
SQ1
单精度实数型
4
物资2的现有存储量
SQ2
单精度实数型
┄
┄
┄
┄
┄
物资
的现有存储量
SQi
单精度实数型
物资1的最低储备量
RQ1
单精度实数型
物资2的最低储备量
RQ2
单精度实数型
┄
┄
┄
┄
┄
物资
的最低储备量
RQi
单精度实数型
物资分配结果数据表(Distribution)
序号
数据元素名
列标识符
单位
数据类型
约束条件
1
单位编码
Code
整形
主码
2
单位名称
Name
文本
3
分得物资1的数量
DQ1
单精度实数型
4
分得物资2的数量
DQ2
单精度实数型
┄
┄
┄
┄
┄
分得物资
的数量
DQi
单精度实数型
3.2数据结构设计
在程序内部,为了避免多次读写数据库,我们为申请计划信息和库存情况信息设计了结构链表。这样程序初始化时一次性把数据库中的相关信息载入程序数据结构中。对物资分配结果,我们也定义了一个结构链表。程序对各个物资的分配结果保存在这个数据结构中。在系统命令驱动下或者是程序退出时,程序会从次分配结果结构链表向物资分配结果数据表写数据,用于其它程序,或者是用于把分配结果显示给用户。
现在给出在VC++6.0中的结构定义
用于保存申请计划信息的结构链表定义:
typedef struct _Apply
{
int Code;//单位编码
CString Name;//申请单位名称
int Class;//单位优先类别
float NQ1;//对物资1的申请量
float NQ2;//对物资2的申请量
┄ ┄
float NQi;//对物资i的申请量
}Apply;
typedef CTypedPtrArray<CPtrArray, Apply *> CApplyArray;
用于保存物资库存情况的结构链表定义
typedef struct _Gallery
{
int Code;//仓库编码
CString Name;//仓库名称
float SQ1;//物资1的现有存储量
float SQ2;//物资2的现有存储量
┄ ┄
float SQi;//物资i 的现有存储量
float RQ1;//物资1的最低储备量
float RQ2;//物资2的最低储备量
┄ ┄
float RQi;//物资i的最低储备量
}Gallery;
typedef CTypedPtrArray<CPtrArray, Gallery *> CGalleryArray;
用于保存分配结果输出信息的结构链表定义
typedef struct _ Distribution
{
int Code;//单位编码
CString Name;//申请单位名称
float NQ1;//该单位分得物资1的数量
float NQ2;// 该单位分得物资2的数量
┄ ┄
float NQi;// 该单位分得物资i的数量
}Distribution;
typedef CTypedPtrArray<CPtrArray, Distribution *> CDistributionArray;
共 4 页,
1
2
3
4
相关文章
·
神话与谬误:争论C++前你应当知道什么
·
在C/C++算法设计中使用任意位宽
·
简单实用资源DLL与语言选择菜单的实
·
代码实例用托管C++监视Windows事件日
·
在托管C++中利用path对象处理Temp文件
·
C++/CLI中有效使用非托管并列缓存
·
对C++程序内存管理的精雕细琢
·
实例解析C++/CLI之静态构造函数
·
C++启蒙之C++中的类
·
C++/CLI解析之基于堆栈的对象与跟踪
标题
正文
热点排行
C++启蒙教程之教你编写
Visual C++ ADO数据
标准模板库(STL)学习
Windows GDI和GDI
用DirectSound实现增强
利用Directsound编程实
利用DirectShow开发自
用MFC ODBC操作A
用Visual C++实现排序
用Visual C++ 6实现O
一个简易网络嗅探器的实
免费的C++ IDE: Vi
VC++与Matlab混合编程
最新文章
神话与谬误:争论C++前
在C/C++算法设计中使用
简单实用资源DLL与语
代码实例用托管C++监视
在托管C++中利用path对
C++/CLI中有效使用非
对C++程序内存管理的精
实例解析C++/CLI之静
C++启蒙之C++中的类
C++/CLI解析之基于堆
C++中堆内存(heap)的概
C++中的函数重载