轿车销售系统.docx
《轿车销售系统.docx》由会员分享,可在线阅读,更多相关《轿车销售系统.docx(20页珍藏版)》请在冰豆网上搜索。
![轿车销售系统.docx](https://file1.bdocx.com/fileroot1/2022-12/8/cf7eeb12-9f7b-4ff5-8ea0-bd0e0757b12b/cf7eeb12-9f7b-4ff5-8ea0-bd0e0757b12b1.gif)
轿车销售系统
前言
计算机在二十一世纪成为人们常用的现代工具,每一个有文化的人都应当了解计算机,学会使用计算机来处理面临的事务。
程序设计是软件工作人员的基本功能,但前提必须有较为完善的数据库系统来实现数据的各种操作。
数据库研究跨越于计算机应用、系统软件和理论三个领域,其中应用促进新系统的研制开发,新系统带来新的理论研究,而理论研究又对前两个领域起着指导作用。
数据库系统的出现是计算机应用的一个里程牌,它使得计算机应用从以科学计算为主转向以数据处理为主,并从而使计算机得以在各行各业乃至家庭普遍使用。
在它之前的文件系统虽然也能处理持久数据,但是文件系统不提供对任意部分数据的快速访问,而这对数据量不断增大的应用来说是至关重要的。
对任意部分数据的快速访问由系统软件(数据库管理系统)来完成,而提供给用户的是简单易用的数据库语言。
由于对数据库的操作都由数据库管理系统完成,所以数据库就可以独立于具体的应用程序而存在,从而数据库又可以为多个用户所共享。
因此,数据的独立性和共享性是数据库系统的重要特征。
数据库系统的出现使得普通用户能够方便地将日常数据存入计算机并在需要的时候快速访问它们,从而使计算机走出科研机构进入各行各业、进人家庭。
本文档详细叙述了基于VisualC++6.0环境下的用ODBC与SQLSERVER相连的轿车销售信息管理系统的设计过程以及程序源代码。
本文档从概要设计,详细设计,参考源程序代码以及显示程序运行的截屏等方面详尽的介绍了软件开发过程。
此次轿车销售信息管理系统的开发目的是使我们用面向对象的方式来思考和解决问题的能力,提高数据库的应用能力。
本文档的安排如下:
第一章主要介绍了数据库系统以及SQLSERVER操作环境。
第二章主要的介绍说明了轿车销售信息管理系统的编程思想和详细设计。
第三章主要对轿车销售信息管理系统进行调试,运行程序并截图,显示运行界面和结果。
第四章主要介绍了软件开发过程中遇到的一些问题,对该软件进行的一个总结。
程序在设计的过程中遇到的问题已及时更正,但由于编者的能力和水平有限,字符统计软件和文档中不免会出现一些不期待的错误,望文档读者能够理解和体谅,并欢迎提醒和纠正,在此表示感谢以及敬意。
1课程设计概述
数据库系统功能概述
数据库系统(databasesystems),是由数据库及其管理软件组成的系统。
它是为适应数据处理的需要而发展起来的一种较为理想的数据处理的核心机构。
它是一个实际可运行的存储、维护和应用系统提供数据的软件系统,是存储介质、处理对象和管理系统的集合体。
数据库系统的主要特点有:
(1)能够保证数据的独立性。
数据和程序相互独立有利于加快软件开发速度,节省开发费用。
(2)冗余数据少,数据共享程度高。
(3)系统的用户接口简单,用户容易掌握,使用方便。
(4)能够确保系统运行可靠,出现故障时能迅速排除;能够保护数据不受非受权者访问或破坏;能够防止错误数据的产生,一旦产生也能及时发现。
(5)有重新组织数据的能力,能改变数据的存储结构或数据存储位置,以适应用户操作特性的变化,改善由于频繁插入、删除操作造成的数据组织零乱和时空性能变坏的状况。
(6)具有可修改性和可扩充性。
(7)能够充分描述数据间的内在联系。
这些新特性可以更好地利用VisualC++开发工具进行Windows应用程序开发。
数据库运行环境——SQLSERVER
图1-1SQL2000运行环境
2总体设计
轿车销售信息管理系统总体设计思想
轿车销售信息管理系统的功能为提供轿车信息,员工信息,客户信息,轿车销售信息,按条件查询,并将销售报表打印输出。
轿车销售信息管理系统的功能模块有:
(1)提供成员登录及顾客查看轿车界面,输入用户名及密码进入成员系统。
(2)提供菜单界面,方便用户对程序个功能进行选择,选择要实现的功能按
(3)按条件查询库存轿车信息及客户购买信息,并将销售报表打印输出。
(4)接受用户输入的客户信息完成注册,并且可以对员工信息进行添加删除修改等操作,根据轿车的类型及颜色查询轿车信息。
程序分为多个小模块,通过调用实现各种功能,增强了程序的可建设性。
总体设计流程图
图2-1 总体设计流程
3轿车销售系统详细设计
数据库
数据库的建立
此次课程设计主要需要用到数据库,因此,需要对数据库的建立要有一定的了解。
利用SQLserver建立数据库。
建立了图书馆管理系统数据库,来提供一些信息。
完成如新建表及视图、关系等基本操作
图3-1数据库
存储过程
存储过程(StoredProcedure)是一组为了完成特定功能的SQL语句集,经编译后存储在数据库中。
用户通过指定存储过程的名字并给出参数(如果该存储过程带有参数)来执行它。
存储过程是数据库中的一个重要对象,任何一个设计良好的数据库应用程序都应该用到存储过程。
图3-2存储过程
存储过程的代码:
存储过程s:
createprocs
nochar(4)
as
delete
fromMemeberinformation
whereno=mebnum
GO
存储过程CarStoreinfoinsert
CREATEPROCEDURECarStoreinfoinsert
AS
insert
intoStoreinformation(carnum,amount)
selectBuyinformation.carnum,buyamou
fromBuyinformation,Storeinformation
whereStoreinformation.carnumnotin
(selectcarnum
fromcarinformation)
GO
在C++中的调用代码:
CDatabasedb;
db.Open(_T("SellCar"));
db.ExecuteSQL("execs'"+m_num+"'");//调用存储过程并传递参数
db.Close();
触发器
触发器(trigger)是个特殊的存储过程,它的执行不是由程序调用,也不是手工启动,而是由事件来触发,比如当对一个表进行操作(insert,delete,update)时就会激活它执行。
触发器经常用于加强数据的完整性约束和业务规则等。
图3-3触发器
创建数据源
此次课程设计用ODBC语言将数据库与C++连接,在连接之前应创建数据源。
在控制面板上打开管理工具,可以找到数据源(ODBC),添加数据源,可以创建不同类型的数据库,此次设计用到了SQLServer,便选择其,打开SQLServer中的服务管理器可找到服务器的名称,将默认数据库改为自己的数据库。
点下一步直至完成。
图3-4创建数据源
C++中MFC应用程序编程
Crecordset类的插入
CRecordset类代表一个记录集.该类是MFC的ODBC类中最重要、功能最强大的类。
一般需要用ClassWizard创建一个CRecordset的派生类.
CRecordset类的插入过程:
图3-5新建记录集类
图3-6数据库连接方式及数据源
此程序用ODBC连接数据库,选择SellCar为数据源,记录集类型为动态集。
动态集提供了数据的动态视.当用户修改或删除了记录集中的记录时,会在动态集中反映出来:
当滚动到修改过的记录时对其所作的修改会立即反映到动态集中,当记录被删除时,MFC代码会跳过记录集中的删除部分.对于其它用户添加的记录,直到调用Requery时,才会在动态集中反映出来。
本身应用程序对记录的修改、添加和删除会反映在动态集中。
当数据必须是动态的时侯,使用动态集是最适合的
图3-7选择数据库中的表
ClassWizard可以为派生的记录集类创建一批数据成员,这些数据成员与记录的各字段相对应,被称为字段数据成员或域数据成员。
如图:
图3-8字段数据成员
修改、添加和显示记录
1.显示记录集
用CRecordset类将数据库中的数据在C++中显示出来
Ccustomm;//Ccustom是一个与表Memeberinformation相连的记录集类
m.Open();
intn=0;
while(!
m.IsEOF())
{
CStrings;
m_List.InsertItem(n,m.m_mebnum);
m_List.SetItemText(n,1,m.m_name);
m_List.SetItemText(n,2,m.m_sex);
s.Format("%d",m.m_age);
m_List.SetItemText(n,3,s);
m_List.SetItemText(n,4,m.m_address);
m_List.SetItemText(n,5,m.m_edulevel);
m.MoveNext();
n++;
}
m.Close();
2.修改记录集
要修改当前记录,应该按下列步骤进行:
调用Edit成员函数.调用该函数后就进入了编辑模式,程序可以修改域数据成员.不能在一个空的记录集中调用Edit,否则会产生异常.Edit函数会把当前域数据成员的内容保存在一个缓冲区中,调用Move(AFX_MOVE_REFRESH)或Move(0)可退出编辑模式(AFX_MOVE_REFRESH的值为0),同时该函数会从缓冲区中恢复域数据成员.
设置域数据成员的新值;调用Update完成编辑.Update把变化后的记录写入数据源并结束编辑模式.
修改记录的代码如下:
Ccustomg;
g.m_strFilter.Format("mebnum='%s'",m_num);
g.Open();
g.Edit();
if(m_na!
=_T(""))
{
g.m_mebnum=m_num;
g.m_name=m_na;
g.m_sex=m_sex;
g.m_age=m_age;
g.m_address=m_add;
g.m_edulevel=m_edu;
g.Update();
UpdateData(FALSE);
g.Requery();
g.Close();
MessageBox("Modifyok");
}
3.添加记录
要向记录集中添加新的记录的步骤与修改类似,添加记录的代码:
Ccustomn;
n.Open();
n.AddNew();
if(m_na!
=_T(""))
{
n.m_mebnum=m_num;
n.m_name=m_na;
n.m_sex=m_sex;
n.m_age=m_age;
n.m_address=m_add;
n.m_edulevel=m_edu;
n.Update();//更新数据表
n.Requery();//更新记录集
n.Close();
}
4程序测试
登录界面
图4-1 登录界面
如上图所示,该程序为用户提供登录界面,用户可以对程序的各种功能进行选择,方便用户使用。
单击要选择的按钮进行操作。
菜单界面
图4-2 员工菜单界面
图4-3顾客查看车信息
CustormersbuyCars界面
图4-4CustormersbuyCars界面
AddNewCustomer界面
图4-5AddNewCustomer界面
Memberinformation界面
图4-6Memberinformation界面
AddUser界面
图4-7AddUser界面
inputCar界面
图4-8inputCar界面
5课程设计总结
为了提高我们的实践能力,让我们学以致用,能灵活运用所学的知识进行再创造,学校特安排我们进行为期二周的数据库课程设计实习,并安排了指导老师帮助辅导,让我们在规X化、严谨化、实用化上面有了很大进展。
在此次字符统计程序开发过程中,有很多东西值得我们思考并总结。
开发过程大体可分为以下几个步骤:
(1)思考总体设计方案:
总体结构和模块外部设计,功能分配。
思考要实现整个程序大体需要的几个模块和其中用到的SQL语言基本操作符、语句等。
(2)画出总体设计方案流程图:
用流程图的形式展现你的基本编程思想。
(3)流程图具体化:
即将流程图中的几大模块的具体实现思考清楚,可以用流程图的形式展现.并想好实现的关键代码。
(4)编辑程序代码:
这是一个至关重要复杂而且需要反复修改的环节,在此环节中你将发现总体设计和模块思想会存在很多问题,需不断改进.如何实现各函数功能,达到预期效果也将是一项繁复的工作。
(5)代码的调试:
在VisualC++6.0环境下输入代码并进行调试和正确运行。
在调试过程中会遇到很多需要精化的地方,需要十足的耐心与细心,不断改进完善程序。
(6)最后修饰:
程序可以正确运行之后,再不影响程序功能的情况下,运用各种辅助性符号,使界面更加美观漂亮,操作更人性化.增强程序的新意与可行性。
总之,在通过真正动手之后,我们在数据库的设计和有关它与c++结合的操作方面都获益匪浅,但离真正的数据库设计实施还有相当大的距离和差距。
但是,必须指出的是我们在此次课程设计中,的的确确学到了不少东西。
同时,我认为在进行软件设计的过程中,必须考虑到很多综合的因素,必须加以自己的创新,只有这样才能让自己设计的东西得到认可。
通过这次课程设计,使我们更加熟悉的掌握了数据库系统的运用。
帮助我们熟悉了更多数据库的功能,提高了我们的动手能力,学到了许多解决实际问题的宝贵经验.同时也挖掘出了我们潜在的能力,使我们对自己更有自信,对编程也更有兴趣。
我相信,只要努力、勤奋、坚持不懈,就没有什么做不到的事,不能还没开始就退缩,要勇于拼搏,敢于创新。
致 谢
为了提高我们的实践能力,让我们学以致用,能灵活运用所学的知识进行再创造,学校特安排我们进行为期二周的VisualC++课程设计实习,并安排了指导老师帮助辅导,让我们在规X化、严谨化、实用化上面有了很大进展。
课程设计开始时老师说的独立思考和团体合作相结合的思想对我的触动很大,让我感受到了一个编程人员所应该具有的那种能吃苦,能战斗,不为艰险,勇往直前的精神,让我更加坚信自己所走的道路。
再次感谢老师的耐心辅导和谆谆教诲,感谢学校给我们提供的提高自己的机会。
参考文献
[1]马安鹏.VisualC++程序设计导学。
:
清华大学,2002
[2]电子书籍.VisualC++技术内幕(第四版).网址:
.5xsoft.
[3]BeckZaratian.MicrosoftVisualVisualC++6.0程序员指南.希望图书创作室译.:
希望电脑公司出品,1998
[4]RichardC.Leinecker,TomArcher.VisualC++6宝典.X艳,X谦译.:
电子工业,1999
[5]李强,贾云霞.VisualC++项目开发实践.:
中国铁道,2004
[6]X莉,董渊,X瑞丰.C++语言程序设计.2003.
[7]H.M.Deitel,P.J.Deitel.SmallC++HowtoProgram.2006.