用C++开发系统的一个实例课件

PPT
  • 阅读 45 次
  • 下载 0 次
  • 页数 66 页
  • 大小 888.539 KB
  • 2022-11-24 上传
  • 收藏
  • 违规举报
  • © 版权认领
下载文档30.00 元 加入VIP免费下载
此文档由【小橙橙】提供上传,收益归文档提供者,本网站只提供存储服务。若此文档侵犯了您的版权,欢迎进行违规举报版权认领
用C++开发系统的一个实例课件
可在后台配置第一页与第二页中间广告代码
用C++开发系统的一个实例课件
可在后台配置第二页与第三页中间广告代码
用C++开发系统的一个实例课件
可在后台配置第三页与第四页中间广告代码
用C++开发系统的一个实例课件
用C++开发系统的一个实例课件
还剩10页未读,继续阅读
【这是免费文档,您可以免费阅读】
/ 66
  • 收藏
  • 违规举报
  • © 版权认领
下载文档30.00 元 加入VIP免费下载
文本内容

【文档说明】用C++开发系统的一个实例课件.ppt,共(66)页,888.539 KB,由小橙橙上传

转载请保留链接:https://www.ichengzhen.cn/view-44722.html

以下为本文档部分文字说明:

用C++编程语言开发系统一个实现例子详讲问:C++开发系统真的很难吗?真的很高深吗?回答是:1.说难不难,说容易不容易!2.“天下是有难易乎?为之,则难者亦易矣;不为,则易者亦难矣。人之为学有难易乎?学之,则难者亦易矣;不学,则易者亦难矣。”

开发系统所具备的条件•C语言的基本功一定要扎实;•有关数据库的操作要熟悉;(懂SQL语言的最好不过,即使不懂SQL语言也没关系,因为创建数据库还可以通过可视化操作来进行,只是效率低一点!)•要保持清醒的头脑;(脑子不要懜!)•

要有耐心;•要有一种“化整为零”的思想在脑子里。好了,开场白结束了,下面进入正题—开发系统的步骤!第一步:构想系统最终的效果蓝图下面是以一个类似于图书馆管理系统,学生教师管理系统,仓库管理系统为例子的详讲。•登录界面:•登录进去的第一个主界面:•一个系统所有的功能,我们

要把它“化整为零”,分为几个部分上主要功能,我们可以用菜单栏的形式来表达出来:下面是详讲各个主功能的子功能......(一)基本信息管理•1.客户信息管理:•①当我们单击“添加”按钮时,要出现一个添加信息的对话框

:•②当我们单击“修改”按钮时,要出现一个修改信息的对话框:(一)基本信息管理•2.仓库信息管理:•①当我们单击“添加”按钮时,要出现一个添加信息的对话框:•②当我们单击“修改”按钮时,要出现一个修改信息的对话框:

(很清楚,这个对话框和上一个是同一个对话框)(一)基本信息管理•3.用户信息管理:•①当我们单击“添加”按钮时,要出现一个添加信息的对话框:(在此要注意,我们给admin用户类型来一个标记为“1”,其他都是“普通用户”标记为“2”)•②其他另外3个按钮没必要专门独立做一个框

架,在此我们不搞那几个框架。(一)基本信息管理•4.修改用户密码:(一)基本信息管理•5.退出系统:在这里,退出系统也没必要专门独立搞一个对话框,只需要实现把应用程序关闭就OK了!(二)产品信息管理•1.产品

类别管理:•①“添加”“修改”左右四个按钮要弹出一样对话框:(二)产品信息管理•2.产品信息管理:•①当我们单击“添加”按钮时,要出现一个添加信息的对话框:•②当我们单击“修改”按钮时,要出现一个添加信息的对话框:(与上一

个对话框同一个)(三)库存操作管理•1.入库操作:•①当我们单击“添加”按钮时,要出现一个添加信息的对话框:(三)库存操作管理•2.出库操作:•①当我们单击“添加”按钮时,要出现一个添加信息的对话框:(三)库存操作管

理•3.库存清点:(注意:这里只是拿来给用户看的,为了数据库的安全着想,在此使用视图view‘存储过程’,而不是表table)(四)库存警示管理•1.数量报警:(注意:这里也是用到存储过程,为了数据库的安全着想)(四)库存

警示管理•2.失效报警:(注意:这里也是用到存储过程,为了数据库的安全着想)(五)统计查询管理•1.产品入库统计表:(注意:这里也是用到存储过程,为了数据库的安全着想)(五)统计查询管理•2.库存产品统计一览表:(注意:这里也是用到存储过程,为了数据库的安全着

想)(六)系统数据维护•1.备份数据库;•2.恢复数据库。(这2个功能对于开发者来讲没什么大不了,因为开发者可以直接在数据库里进行操作;但是对于不懂计算机的用户来说,数据库的备份和恢复都非常重要。因此我们要为用户提供一个简便易懂的按钮来实现数据库的维护!)一个

系统项目的功能蓝图就这样我们构思好了!(要说明的一点是,你可以用铅笔在图纸上自己进行粗略的勾画,要相信“好记性不如烂笔头”。在后面的n多个对话框有联系的时候,要给各个对话框进行ID标号也即是标明不同的ID号,如果你不用图纸写好标

记好,你会很容易忘记究竟哪个是哪个,哪里是哪里!小项目是这样,大项目更需要这样!)我们数一下以上的对话框,总共要创建不重复的总共有23个对话框。对话框之间有很多都是有联系的,实践中发现很多的对话框的操作都是千篇一律类似的!为了不占用蔡老

师太多的宝贵时间,我决定下面详细讲解“登陆界面”的一个典型例子,其他的都是在此基础上模仿的。“放之四海而皆准”“万变不离其宗”!系统开发进入第二步•创建数据库•建表•建视图创建数据库•打开SQLSever2005•连接登录•单击“新建查询”进入SQL代码编辑区•敲好代码,选中CREA

TEDATABASEStockGO接着按下“Alt+X”或者点菜单栏左上角的“执行”!就这样一个数据库“Stock”被创建了!•创建表:①在每次创表或者建立视图前先用一下已经创建的数据库StockUSE

StockGO②•CREATETABLEClient•(CidintPRIMARYKEYIDENTITY,•Cnamevarchar(50)NOTNULL,•Ctypetinyint,•Contactvarchar(30),•Addressvarchar(50),•Postcodevarchar(

10),•Phonevarchar(30),•Faxvarchar(30),•Memovarchar(100)•)•GO为了节省时间,方便给大家数据库的创建,我已经专门把写好了数据库创建的代码放在txt记事

本里,需要的同学自己来Ctrl+C→Ctrl+V。•值得注意点的是,为了兼容市面上的数据库,有2000、2005、2008、2010版本的,要在创建完数据库以后执行以下语句:•EXECsp_dbcmptlevelStock,80•GO或者•ALTERDATABASES

tockSETCOMPATIBILITY_LEVEL=80•GO(注意:“80”意思是兼容到2000版本的)系统开发进入第三步•打开C++2005,新建一个VisualC++MFC应用程序:MFC(Micr

osoftFoundationClasses),是一个微软公司提供的类库,以C++类的形式封装了Windows的API,并且包含一个应用程序框架,以减少应用程序开发人员的工作量。其中包含的类包含大量Windows句柄封装类和很多Windows的内建控件和组件的封装类。一.先搞好前

面的23个对话框架•视图→其他窗口→资源视图•在右端的树形结构目录看到这样画面:•右击对话框“Dialog”添加好前面的23个对话框登陆界面的框架的创建•点开“工具箱”,在空白对话框上添加编辑框以及静态说明和按钮•添加完以后最终效果图:•其中密码编辑框中出

现6个圆点,是可以在编辑框的右击选择属性,在属性窗口中选择password类型的,很自然就会出现6个圆点了!同学们,编程是不是超级简单呢?我是要让大家知道原来C++编程还可以这样玩的!因为这是组件“COM”Com

ponentObjectsModel组件对象模型,简称COM•其他22个对话框也相类似这样创建出来,这一点希望大家找一些C++组件COM的使用方法,这里不做详细讲解,时间有限!•再创建2个对话框:•我们把“登陆界面”添加一

个类“LoginDlg”,“用户管理”添加一个类“UserManDlg”,“编辑用户信息”添加一个类“UserEditDlg”,添加问以后会相应地出现.h头文件和.cpp文件,头文件拿来声明变量、函数.cpp用来实现功能!完成了以后会出现以

下一堆头文件和实现文件:好,下面正式进入代码编辑区域,注意放长眼镜,睁大眼睛看好这中心一环节!(大家都知道.h文件一般是拿来声明、初始化用的,真正实现功能的是在.cpp文件,下面的我讲述的就是.cpp文件,在.ccp文件中用到的变量我已经在.h文件里

声明过了,所以大家看到了“无中生有”的变量不要惊讶,我都已经声明过了!)•我们回到“登陆界面”那个框架:•voidCLoginDlg::OnOK()•{•//将对话框中编辑框的数据读取到成员变量中•UpdateDat

a(TRUE);•//检查数据有效性•if(m_UserName=="")•{•MessageBox("请输入用户名,否则出错!");•return;•}•if(m_Pwd=="")•{•MessageBox("请输入密码")

;•return;•}•//定义CUsers对象,用于从表Users中读取数据•CUsersuser;•user.GetData(m_UserName);•//如果读取的数据与用户输入数据不同,则返回•if(user.GetPwd()!

=m_Pwd)•{•MessageBox("用户信息不正确,无法登录!");•return;•}•//关闭对话框•CDialog::OnOK();•}•我们看看一下“登陆界面”所用到的头文件就知道我们使用到Users里面的一些函数,里面有很

多构造好的函数提供别的文件调用。intCUsers::HaveName(CStringcUserName){//连接数据库ADOConnm_AdoConn;m_AdoConn.OnInitADOConn();//设置SELE

CT语句_bstr_tvSQL;vSQL="SELECT*FROMUsersWHEREUserName='"+cUserName+"'";//执行SELECT语句_RecordsetPtrm_pRecordset;m_pRecordset=m_AdoConn.GetRecordSet(vSQ

L);if(m_pRecordset->adoEOF)return-1;elsereturn1;//断开与数据库的连接m_AdoConn.ExitConnect();}什么叫做ADO?•微软公司的ADO(Ac

tiveXDataObjects)是一个用于存取数据源的COM组件。它提供了编程语言和统一数据访问方式OLEDB(ObjectLinkingandEmbedding),对象连接与嵌入,简称OLE技术的一个中间层。允许开发

人员编写访问数据的代码而不用关心数据库是如何实现的,而只用关心到数据库的连接。访问数据库的时候,关于SQL的知识不是必要的,但是特定数据库支持的SQL命令仍可以通过ADO中的命令对象来执行。←C:\ProgramFil

es\CommonFiles\System\ado\msado15.dll什么是_bstr_t?•_bstr_t类封装BSTR有趣的地方就是它的封装方式有点类似于智能指针,又有点像COM管理生存期的方式。_bstr_t将两者结合起来并具体体现在构造函数、赋值函数和析构函数中。•_varia

nt_t(变体,不同的)和_bstr_t这两个类分别封装并管理VARIANT和BSTR这两种数据类型,VARIANT和BSTR这两种类型是COM中使用的数据类型。为了C++中的变量应用到ADO编程中,只能进行数据类型的转换。•通过_variant_t和_bstr_t这两个

类,就可以方便的把C++类型变量转换成COM中的变量了。其他类型转换成_bstr_t可以直接赋值。←•CUsers::CUsers()•{•UserName="";•Pwd="";•User_type=0;•}•CUsers::~CUsers()•{•}•CStringCUsers::

GetUserName()•{•returnUserName;•}•voidCUsers::SetUserName(CStringcUserName)•{•UserName=cUserName;•}•CStringCUsers::GetPwd()•{•retu

rnPwd;•}•voidCUsers::SetPwd(CStringcPwd)•{•Pwd=cPwd;•}•intCUsers::GetUser_type()•{•returnUser_type;•}•voidCUsers::SetUser_type(intiUser_ty

pe)•{•User_type=iUser_type;•}←为数据库插入数据•voidCUsers::sql_insert()•{•//连接数据库•ADOConnm_AdoConn;•m_AdoConn.OnInitADOConn();•//设置INSERT语

句•CStringstrType;•strType.Format("%d",User_type);•_bstr_tvSQL;•vSQL="INSERTINTOUsersVALUES('"+UserName+"','"+Pwd+"',"•+strType+")";•//执行INSERT语句•m_A

doConn.ExecuteSQL(vSQL);•//断开与数据库的连接•m_AdoConn.ExitConnect();•}更新数据库里面的表•voidCUsers::sql_updatePwd(CStringcU

serName)•{•//连接数据库•ADOConnm_AdoConn;•m_AdoConn.OnInitADOConn();•//设置UPDATE语句•CStringstrType;•strType.Format("%

d",User_type);(注意这里,我是设置了权限的)•_bstr_tvSQL;•vSQL="UPDATEUsersSETPwd='"+Pwd+"'WHEREUserName='"+cUserName+"'

";•//执行UPDATE语句•m_AdoConn.ExecuteSQL(vSQL);•//断开与数据库的连接•m_AdoConn.ExitConnect();•}删除数据库表里的数据•voidCUsers::sql_delete(CStr

ingcUserName)•{•//连接数据库•ADOConnm_AdoConn;•m_AdoConn.OnInitADOConn();•//设置DELETE语句•_bstr_tvSQL;•vSQL="DELETEFROMUsersWHEREUserName='

"+cUserName+"'";•//执行DELETE语句•m_AdoConn.ExecuteSQL(vSQL);•//断开与数据库的连接•m_AdoConn.ExitConnect();•}从数据库表里获取信息•voidCUsers::GetData(CStringcUserName)

•{•//连接数据库•ADOConnm_AdoConn;•m_AdoConn.OnInitADOConn();•//设置SELECT语句•_bstr_tvSQL;•vSQL="SELECT*FROMUsersWHEREUserName='"+cUserName+

"'";•//执行SELETE语句•_RecordsetPtrm_pRecordset;•m_pRecordset=m_AdoConn.GetRecordSet(vSQL);•//返回各列的值•if(m_pRecordset->adoEOF)•CUsers();•else•{•UserNam

e=cUserName;•Pwd=(LPCTSTR)(_bstr_t)m_pRecordset->GetCollect("Pwd");•User_type=atoi((LPCTSTR)(_bstr_t)m_pRecordset->GetCollect("User_type"));•}•//断开与数

据库的连接•m_AdoConn.ExitConnect();•}看一下“编辑用户信息”框架•voidCUserEditDlg::OnOK()•{•UpdateData(TRUE);•CUsersusr;•usr.SetU

serName(m_UserName);•usr.SetPwd("888888");•usr.SetUser_type(m_UserType.GetCurSel()+1);••if(usr.HaveName(m

_UserName)==1)//如果存在当前用户•{•MessageBox("当前用户已存在,请选择其他用户名");•return;•}•//插入用户记录•usr.sql_insert();•CDialog::OnOK();•}•BOOLCUserEditDlg::OnInitDial

og()•{•CDialog::OnInitDialog();••//TODO:Addextrainitializationhere•m_UserType.SetCurSel(iUserType-1);••if(curUser.GetUserName()!="Ad

min")•GetDlgItem(IDC_USERTYPE_COMBO)->EnableWindow(FALSE);••returnTRUE;••}看一下“用户管理”框架•voidCUserManDlg::OnAddButton()•{••CUserEditDlgdlg

;•dlg.iUserType=2;•if(dlg.DoModal()==IDOK)•m_adodc.Refresh();••}•voidCUserManDlg::OnModiButton()•{••if(m_datalist.GetText()=="")•{•M

essageBox("请选择用户");•return;•}•if(curUser.GetUserName()!="Admin"&&curUser.GetUserName()!=m_datalist.GetText()•&&m_datalist.GetBoundTex

t()=="1")•{//除Admin外,其他管理员只能修改普通用户信息•MessageBox("只能对普通用户进行密码复位");•return;•}•if(MessageBox("是否对当前用户进行密码

复位","请确认",MB_YESNO)==IDYES)•{•CUsersusr;•usr.SetPwd("888888");//设置默认密码•usr.sql_updatePwd(m_datalist.GetText());•Me

ssageBox("密码已经复位");•}•}(续上)•voidCUserManDlg::OnDelButton()•{•if(m_datalist.GetText()=="")•{•MessageBox("请

选择用户");•return;•}•if(curUser.GetUserName()!="Admin"&&m_datalist.GetBoundText()=="1")•{//除Admin外,其他管理员只能删除普通用户•Mes

sageBox("只能删除普通用户");•return;•}•if(m_datalist.GetText()=="Admin")•{•MessageBox("不能删除Admin用户");•return;•}•if(MessageBox("是否删除当前用户","请确认",MB_YESNO)==

IDYES)•{•CUsersusr;•usr.sql_delete(m_datalist.GetText());•m_adodc.Refresh();•}••}回眸一看•不知不觉地我们就已经实现了3个界面的功能;•

一个是登陆界面的实现功能;•一个是用户编辑界面实现的功能;•再一个是用户管理的实现功能。•再一次回问道:C++开发系统真的有这么难吗?•再一次回答说:很容易!剩下的20个界面的功能实现•剩下的20个界面功能的实现都和上面的三个相类似,

都是千篇一律的。懂一个典型的例子,后面的都很容易上手!•要把它做出来,注意要有耐心,要用时间来砸出来的,用心血呕出来的,用智慧总结出来的!•我能,相信大家一定也能,也许更强!•能够熟练地做到这一点,你已经是半个软件设计师了!还愁以后找工作没人要吗?不!系统开发第

四步•用户界面美工,其目的之一是能吸引用户的眼球,最终达到一种良好的人机交互的目的。•利用flash和PS这两个工具对一些动画和图像进行一个艺术性的美化,然后添加到用户界面上去。系统开发第五步•软件的测试

与调试。•花一定的时间进行各种各样的调试和测试,把所有有可能发生的情况都要考虑进去,并且进行全面的测试。•检查一下刚开发出来的东西有没有什么异常,再做进一步的修改和完善。系统开发第六步•项目开发的价值核算。•成本=每人单位时间内的薪水×开发的人数×开发所需时间•卖价=

成本+利润•本例系统的开发成本以及卖价估算:成本=500×1×2=1000(元)卖价=1000+200=1200(元)(续上)•显然,我们知道开发的时间越长成本费用越高。(此例我省略了市场需求分析这块)•回想一下,我们《管理信息系统》这门课周二

上理论课大多时间都在讲市场需求分析这一块(也就是所谓的“吹水”)用的时间最长,但是其含金量是最高的!周五的实验课就是为了实现周二理论分析。•不过,如果实验这一块没做好,那上面的一大堆理论都成为空话、废话,没有实现所要的结果。小结•C++开发系统,基本功一

定要扎实!站得住才能稳得住!•C++里用得最多的一个语句,我有必要跟大家说一下,是xx.DoModel()和UpdateData(TRUE);UpdateData(FALSE);前者用于从该窗口跳到其他窗口,后者是把在界面编辑框里输入的数据传输到内存里或者从内存里读取数

据显示到界面编辑框中。也不一定只是编辑框,也可以是其他的COM组件的使用!学好C++的一些建议•准备好四本书和一个教学视频•谭浩强的《C语言面向对象设计》•严蔚敏的《C语言-数据结构与算法分析》•XXXX

X的《C语言函数库》•XXXXX的《C语言开发平台的使用》•孙鑫的VC++专辑视频教育对大家的期待•花上一年的时间,搞好C语言,其他语言都是和C相类似的!•希望你能“剩者为王”,脱颖而出,出类拔萃Wherethereisawill,thereisaway!有志者,事竟成!Bye!Thankyou

!谢谢欣赏,再见!

小橙橙
小橙橙
文档分享,欢迎浏览!
  • 文档 25747
  • 被下载 7
  • 被收藏 0
相关资源
广告代码123
若发现您的权益受到侵害,请立即联系客服,我们会尽快为您处理。侵权客服QQ:395972555 (支持时间:9:00-21:00) 公众号
Powered by 太赞文库
×
确认删除?