• 网络学院
  • IT资讯
  • 操作系统
  • 网络技术
  • 软件应用
  • 办公软件
  • 编程技术
  • 网站架设
  • 数据库类
  • 平面设计
  • 多媒体类
  • 游戏资讯
  • 教学论文
  • 认证考试
利用C++Builder6.0开发简单的车辆管理系统
  站点:
  • 首 页
  • 最新软件
  • 文章教程
  • 国内软件
  • 国外软件
  • 绿色软件
  • 源码下载
  • 字体下载
利用C++Builder6.0开发简单的车辆管理系统
软件发布 利用C++Builder6.0开发简单的车辆管理系统
网络软件 系统工具 应用软件 联络聊天 图形图像 多媒体类 行业软件 游戏娱乐 编程开发 安全相关 教育教学 数码软件 绿软下载
热门软件: QQ 瑞星 pplive e话通 木马克星 千千静听 office2000 五笔字根 Photoshop 视频分割
返回文章教程首页 >> 文章首页 >> 认证考试 >> 系统工程师 >> 利用C++Builder6.0开发简单的车辆管理系统

利用C++Builder6.0开发简单的车辆管理系统

添加时间: 2007-4-9 2:30:12  作者: 系统工程师认证参考  阅读次数:189   来源: http://www.d9soft.com

       

摘要:本文详细介绍了利用C++ Builder6.0 设计开发车辆 管理 系统的过程,涉及到了类的设计,数据库访问技术,对数据库表的操作,Access数据库的设计等 
  关键词:C++ Builder6.0开发  ADO  Access数据库
 
  C++ Builder作为一个快速的可视化开发工具,受到广大编程爱好者的喜爱。利用该工具可以快速地建立各种应用,笔者以开发一个“车辆管理系统”为例来说明如何开发一个管理系统的过程,以及相关的技术。
1 确定需求
  对于不同的管理系统有不同的需求模型,我们仅以“车辆管理系统”为例来确定需求。主要有以下系统需求:
  (1)管理功能,能够对车辆派遣单(表)等进行添加、删除、修改的操作;
  (2)  查询功能,能够对各表单的数据进行查询;
  (3)  打印功能,能够按指定的格式生成Word文件,并打印;
  (4)  统计分析功能,如统计驾驶员和车辆的行驶公里数等。
  涉及到的管理表单主要有车辆派遣单、加油情况单、车辆保养单、行驶卡管理表等。限于篇幅关系本文只讨论满足需求1和2的情况。
2 确定使用的技术
  使用C++ Builder6.0作为开发工具,使用Microsoft  Access2000作为后台数据库,根据车辆派遣单、加油情况单、车辆保养单、行驶卡管理表建立相应的数据表;访问数据库采用ADO技术等。
3 设计相应的类
  a)类TMainFrame,是主框架,是整个系统的基本界面,也是其它界面控件的容器;
  b)类TCheliangpaiqian,车辆派遣类,包括有车辆派遣表记录的插入,修改、删除、统计等方法(成员函数);
  c)数据库通用访问类TDBAccess,是一个TDataModule类的子类,它的主要功能是为访问各种表单(车辆派遣单、加油情况单、车辆保养单、行驶卡管理表等)提供统一的数据库访问接口,它封装(包含)了TADOConnection,TADOTable,ADOQuery三个ADO数据库类;
  d)其它的表单处理类,如加油情况类等;
  e)其它辅助类及界面对话框等,如查询对话框,删除确认对话框,修改查看记录对话框等。
4 数据库设计
  考虑到系统的简单易用性以及不涉及到 网络 连接的需求,使用Access作为后台数据库。打开Microsoft  Access2000,分别创建车辆派遣单(cheliangpaiqian)、加油情况单(jiayouqingkuang)、车辆保养单(cheliangbaoyang)、行驶卡管理表(xingshika)等,如下图:

图1 数据库设计
  车辆派遣表主要记录车辆派遣的情况,包括车辆型号、车牌号,到达时间地点,以及何人因何事用车等信息。以此表为例,主要包括的字段为:

  从上表可以看出,字段id为该表的主键,它唯一地标识表中的记录。字段jiashiyuanname的内容不可为空。其它表的创建与此表类同,这里不再赘述。
5 程序设计
5.1 程序的界面设计与主框架TMainFrame
  首先是程序的界面设计,界面力求简洁美观,利用C++ Builder提供的可视化控件可以很方便快速地设计出系统的界面,但由于C++ Builder提供的可视化控件样式过于单一,界面千篇一律。本系统在设计中采用了第三方的Skin控件,使系统界面更加美观,具有亲和力。在具体控件的布局与选用上,采用了人性化设计的理念。如下图:

图2 车辆管理系统
  设计完界面后,为各个按钮添加行为代码。以车辆派遣模块为例,在主框架的头文件MainframeObj.h中加入车辆派遣类TCheliangpaiqian的头文件CheliangpaiqianObj.h,如下所示:
 ……
 #include “CheliangpaiqianObj.h”;
 ……
  这样做就可以在主框架TMainFrame中使用车辆派遣类TCheliangpaiqian的方法(成员函数)。下一步双击“发布派遣单”按钮,添加如下代码:
 //定义结构变量TableBus,
 TTableBus TableBus;
 //判断驾驶员姓名是否为空
 if ((name->Text)!="")
     {
      //如果不为空,给TableBus赋值
      TableBus.yongchedanwei=yongchedanwei->Text;
      TableBus.yongcheshiyou=yongcheshiyou->Text;
      TableBus.chehao=chehao->Text;
      TableBus.chexing=chexing->Text;
      TableBus.taici=taici->Text;
      TableBus.daodadidian=daodadidian->Text;

      //调用类TCheliangpaiqian的方法Add,添加记录
      Cheliangpaiqian->Add(&TableBus);
      //打印该表格
 PrtContent(&TableBus);
     }
     else
     {
      //如果为空
     ShowMessage("驾驶员姓名不可为空!");
     }
  上面这段代码主要将所填写的车辆派遣单的相关数据写入数据库,并打印出来。其中TTableBus是记录车辆派遣单相关字段内容的一个结构,其定义如下:
 typedef struct
 {
  AnsiString yongchedanwei;
  AnsiString yongcheshiyou;
  AnsiString chexing;
  AnsiString chehao;
  ……
 }TTableBus;
  主框架类TMainFrame还有一个Activate事件处理函数:
 void __fastcall TMainFrame::FormActivate(TObject *Sender)
 {
   TTableBus* TableBus;
 ……
 //调用类TCheliangpaiqian的方法GetNum,获得当前的记录数
      n=Cheliangpaiqian->GetNum;
      if (n>0)
      {
 ……
 for (int i=0;i<n;i++)
 {
 //调用类TCheliangpaiqian的方法GetValue,获得当前记录的内容
 TableBus=Cheliangpaiqian->GetValue;
 //向当前表格控件输入要显示的数据
 bsSkinStringGrid->Cells[1][i+1]= TableBus-> yongchedanwei;
 bsSkinStringGrid->Cells[2][i+1]= TableBus-> yongcheshiyou;
 ……
 //如果没有超过记录指针下限,则下移当前记录指针
 if (i<n-1) Cheliangpaiqian->GetNext;
 //删除TableBus指针,避免内存泄露
 delete TableBus;
 }
 ……
 }
 }
  类TMainFrame还有其它几个按钮控件,主要是查看按钮、删除按钮、统计按钮、查询按钮等,在C++ Builder6.0中双击这些按钮添加处理代码,具体内容不再赘述。
5.2 车辆派遣类TCheliangpaiqian
  车辆派遣类,主要负责对车辆派遣记录进行 管理 ,对外提供管理表单的接口,主要有车辆派遣表记录的插入,修改、删除、查找、下移指针等方法(成员函数)。
  为了能方便地访问数据库,需要将数据库通用访问类TDBAccess的头文件DBAccessObj.h包含进来,在头文件CheliangpaiqianObj.h中添加如下代码:
 #include “DBAccessObj.h”
 插入函数的内容如下:
 void __fastcall TCheliangpaiqian::Add(TTableBus* TableBus)
 {
//设置ADOTable控件的TableName为cheliangpaiqian,指向要管理的车辆派遣表
 DBAccess->ADOTable->TableName="cheliangpaiqian";
 DBAccess->ADOTable->Active=true;
 //开始插入新记录
 DBAccess->ADOTable->Insert();
 //向yongchedanwei字段写入数据
DBAccess->ADOTable->FieldByName("yongchedanwei")->AsString= TableBus->yongchedanwei; 
 //向yongcheshiyou字段写入数据
     DBAccess->ADOTable->FieldByName("yongcheshiyou")->AsString= TableBus-> yongcheshiyou;
……
 //提交添加的内容,完成添加操作
 DBAccess->ADOTable->Post();
 DBAccess->ADOTable->Active=false;
 ……
 }
  上面的函数通过输入TTableBus结构的指针获取添加的各字段内容,完成向数据库中写入的操作。其它的成员函数,由于篇幅关系不再详细说明。
5.3 数据库通用访问类TDBAccess
  这里的数据库通用访问类是指为车辆派遣类、加油情况类、车辆保养类、行驶卡管理表类等功能模块提供统一通用的数据库访问接口。它封装(包含)了TADOConnection,TADOTable,ADOQuery三个ADO数据库访问类控件。

  TADOConnection,封装了ADO连接对象,可以使用这个对象来连接到数据库进行数据存储。单个TADOConnection提供的连接可以给多个TADOTable对象共享,只要设置这些对象的Connection属性即可。
  设置TADOConnection的ConnectionString属性以确保该控件指向要连接的Access数据库。通过使用C++ Builder6.0提供的数据库连接向导生成ConnectionString属性的值(连接字符串),在笔者的机器上生成的连接字符串如下(不同的机器可能不同):
 Provider=Microsoft.Jet.OLEDB.4.0;User 
 ID=Admin;Data Source=.cheguan_db.mdb;Mode=Share Deny None;Extended Properties="";Jet OLEDB:System database="";Jet OLEDB:Registry Path="";Jet OLEDB:Database Password="";Jet OLEDB:Engine Type=5;Jet OLEDB:Database Locking Mode=1;Jet OLEDB:Global Partial Bulk Ops=2;Jet OLEDB:Global Bulk Transactions=1;Jet OLEDB:New Database Password="";Jet OLEDB:Create System Database=False;Jet OLEDB:Encrypt Database=False;Jet OLEDB:Don’t Copy Locale on Compact=False;Jet OLEDB:Compact Without Replica Repair=False;Jet OLEDB:SFP=False
  以上这段字符串指出了Access数据库文件的路径以及连接的相关设置。
  TADOTable,使用该控件可以存取指定的单个表格中的数据,设置其Connection属性为ADOConnection,可以共享TADOConnection类对数据库的连接。
  ADOQuery,使用该控件可以查询指定的单个表格中的数据,设置其Connection属性为ADOConnection,可以共享TADOConnection类对数据库的连接。
6 调试与发布
  程序的所有功能调试无误后,需要从开发用的机器上打包发布到用户的机器上。对于普通的应用程序而言,只需要如下步骤就可以生成可脱离开发环境的应用程序:
  a)利用菜单ProjectOptions进入对话框,选择Package,去掉选项“Builder with runtime package”
  b)在对话框中进入Linker界面,去掉选项Use Dynamic RTL
  c)进入Compiler界面,单击Release按钮使在C++ Builder编译过程中进行优化
  d)去掉不必要的Debug选项
  e)重新编译整个工程
  C++ Builder的可视化开发环境适合快速开发高效的图形化的应用程序。本程序在C++ Builder6.0 / Windows XP系统上编译通过。

 

上下文章:

 

上一篇文章: 美国微软公司的知识管理 下一篇文章: 我眼中PCM的六个启示

相关文章:

  • 解瘳Vista系统OpenGL驱动问题整理
  • Vista系统的官方优化指南文档下载
  • 海加尔&黑暗神殿 简单易懂的魔兽世界法师攻略
  • 魔兽世界:如何更大限度的利用奥冲循环
  • 六类综合布线系统施工经验小结

相关软件:

  • 雨过天晴电脑保护系统 V1.0.060612
  • YlmF XP 系统 DIY Y1.6[1205] 绿色版
  • Windows系统服务终结者 V3.3 绿色版
  • 海啸系统间谍 1.42.080815 免杀版
  • 胜新通用条形码设计打印系统 6.09
  • 中国车牌号查询系统(ChinaCar) V1.1

 

快速导航

  • 网络学院
  • 精品汇聚
  • 字体下载
  • 教程下载
  • ASP源码
  • PHP源码
  • Net源码
  • JSP 源码

认证考试分类导航

  • 微软认证
  • 计算机等级考试
  • 软件水平考试
  • 思科认证
  • Oracle认证
  • Linux认证
  • JAVA认证
  • 网络工程师
  • 系统工程师
  • 程序员

本类经典文章推荐

  • SQLServer的安全检查
  • 系统设计师资格与水平考纲 (原高级...
  • 系统分析员备考之ISO9000系列基础...
  • 开发数据库的WEB查询
  • 在builder中向Excel传递数据
  • 用Powerbuilder开发WEB数据库
  • PowerBuilder制作IE风格的图标按钮
  • PowerBuilder编程技巧四则
  • 小议数据库主键选取策略
  • 跨数据库文献检索统一平台的实现

系统工程师阅读排行

  • 数据库原理各章节简答题总结
  • 利用C++Builder6.0开发简单的车辆...
  • 跨数据库文献检索统一平台的实现
  • 用Powerbuilder开发WEB数据库
  • 系统设计师资格与水平考纲 (原高级...
  • 项目进度的黑洞——已完成90%
  • 系统分析员备考之ISO9000系列基础...
  • 小议数据库主键选取策略
  • 数据库系统工程师全真预测试卷(一...
  • 2005年上半年数据库系统工程师上午...

认证考试阅读总排行

  • 全国计算机等级考试一级模拟试题01
  • 全国计算机等级考试一级模拟试题10
  • 全国计算机等级考试一级模拟试题08
  • MCSD简介
  • 全国计算机等级考试一级考试最新模...
  • 全国计算机等级考试一级模拟试题07
  • 全国计算机等级考试一级模拟试题02
  • 全国计算机等级考试一级模拟试题06
  • 全国计算机等级考试一级模拟试题03
  • 一级(WINDOWS)试题解析-Word篇

广告位置

字母检索 A B C D E F G H I J K L M N O P Q R S T U V W X Y Z 回到顶部

关于我们 | 版权声明 | 免责条款 | 广告联系 | 软件发布 | 下载帮助 | 下载排行 | 网站地图 | 特别鸣谢 | 友情连接

copyright; 2005-2008 D9soft.com 第九软件网 版权所有