用C开发系统的一个实例.ppt

上传人:本田雅阁 文档编号:3443449 上传时间:2019-08-26 格式:PPT 页数:66 大小:798.02KB
返回 下载 相关 举报
用C开发系统的一个实例.ppt_第1页
第1页 / 共66页
用C开发系统的一个实例.ppt_第2页
第2页 / 共66页
用C开发系统的一个实例.ppt_第3页
第3页 / 共66页
用C开发系统的一个实例.ppt_第4页
第4页 / 共66页
用C开发系统的一个实例.ppt_第5页
第5页 / 共66页
点击查看更多>>
资源描述

《用C开发系统的一个实例.ppt》由会员分享,可在线阅读,更多相关《用C开发系统的一个实例.ppt(66页珍藏版)》请在三一文库上搜索。

1、用C+编程语言开发系统 一个实现例子 详讲,学校:广东药学院 学院:信息工程学院 班级:医药软件08 学生:李华鑫 日期:2010年10月份制,QQ:764796723 手机:13423604735 短号:654735,问:C+开发系统真的很难吗?真的很高深吗?,回答是: 1.说难不难,说容易不容易! 2.“天下是有难易乎?为之,则难者亦易矣;不为,则易者亦难矣。人之为学有难易乎?学之,则难者亦易矣;不学,则易者亦难矣。”,开发系统所具备的条件,C语言的基本功一定要扎实; 有关数据库的操作要熟悉;(懂SQL语言的最好不过,即使不懂SQL语言也没关系,因为创建数据库还可以通过可视化操作来进行,只

2、是效率低一点!) 要保持清醒的头脑;(脑子不要懜!) 要有耐心; 要有一种“化整为零”的思想在脑子里。,好了,开场白结束了, 下面进入正题开发系统的 步骤!,第一步:构想系统最终的效果蓝图 下面是以一个类似于图书馆管理系统,学生教师管理系统,仓库管理系统为例子的详讲。,登录界面: 登录进去的第一个主界面:,一个系统所有的功能,我们要把它“化整为零”,分为几个部分上主要功能,我们可以用菜单栏的形式来表达出来:,下面是详讲各个主功能的子功能,(一)基本信息管理,1.客户信息管理:,当我们单击“添加”按钮时,要出现一个添加信息的对话框:,当我们单击“修改”按钮时,要出现一个修改信息的对话框:,(一)

3、基本信息管理,2.仓库信息管理:,当我们单击“添加”按钮时,要出现一个添加信息的对话框:,当我们单击“修改”按钮时,要出现一个修改信息的对话框:(很清楚,这个对话框和上一个是同一个对话框),(一)基本信息管理,3.用户信息管理:,当我们单击“添加”按钮时,要出现一个添加信息的对话框:(在此要注意,我们给admin用户类型来一个标记为“1”,其他都是“普通用户”标记为“2”) 其他另外3个按钮没必要专门独立做一个框架,在此我们不搞那几个框架。,(一)基本信息管理,4.修改用户密码:,(一)基本信息管理,5.退出系统: 在这里,退出系统也没必要专门独立搞一个对话框,只需要实现把应用程序关闭就OK了

4、!,(二)产品信息管理,1.产品类别管理: “添加”“修改”左右四个按钮要弹出一样对话框:,(二)产品信息管理,2.产品信息管理:,当我们单击“添加”按钮时,要出现一个添加信息的对话框:,当我们单击“修改”按钮时,要出现一个添加信息的对话框:(与上一个对话框同一个),(三)库存操作管理,1.入库操作:,当我们单击“添加”按钮时,要出现一个添加信息的对话框:,(三)库存操作管理,2.出库操作:,当我们单击“添加”按钮时,要出现一个添加信息的对话框:,(三)库存操作管理,3.库存清点:(注意:这里只是拿来给用户看的,为了数据库的安全着想,在此使用视图view存储过程,而不是表table),(四)库

5、存警示管理,1.数量报警:(注意:这里也是用到存储过程,为了数据库的安全着想),(四)库存警示管理,2.失效报警:(注意:这里也是用到存储过程,为了数据库的安全着想),(五)统计查询管理,1.产品入库统计表:(注意:这里也是用到存储过程,为了数据库的安全着想),(五)统计查询管理,2.库存产品统计一览表:(注意:这里也是用到存储过程,为了数据库的安全着想),(六)系统数据维护,1.备份数据库; 2.恢复数据库。 (这2个功能对于开发者来讲没什么大不了,因为开发者可以直接在数据库里进行操作;但是对于不懂计算机的用户来说,数据库的备份和恢复都非常重要。因此我们要为用户提供一个简便易懂的按钮来实现数

6、据库的维护!),一个系统项目的功能蓝图就这样我们构思好了! (要说明的一点是,你可以用铅笔在图纸上自己进行粗略的勾画,要相信“好记性不如烂笔头”。在后面的n多个对话框有联系的时候,要给各个对话框进行ID标号也即是标明不同的ID号,如果你不用图纸写好标记好,你会很容易忘记究竟哪个是哪个,哪里是哪里!小项目是这样,大项目更需要这样!),我们数一下以上的对话框,总共要创建不重复的总共有23个对话框。对话框之间有很多都是有联系的,实践中发现很多的对话框的操作都是千篇一律类似的!,为了不占用蔡老师太多的宝贵时间,我决定下面详细讲解“登陆界面”的一个典型例子,其他的都是在此基础上模仿的。“放之四海而皆准”

7、“万变不离其宗”!,系统开发进入第二步,创建数据库 建表 建视图,创建数据库,打开SQL Sever 2005 连接登录,单击“新建查询” 进入SQL代码编辑区 敲好代码,选中CREATE DATABASE Stock GO 接着按下“Alt+X”或者点菜单栏左上角的“执行” !就这样一个数据库“Stock”被创建了! 创建表:在每次创表或者建立视图前先用一下已经创建的数据库Stock USE Stock GO CREATE TABLE Client (Cid int PRIMARY KEY IDENTITY, Cname varchar(50) NOT NULL, Ctype tinyint

8、, Contact varchar(30), Address varchar(50), Postcode varchar(10), Phone varchar(30), Fax varchar(30), Memo varchar(100) ) GO,为了节省时间,方便给大家数据库的创建,我已经专门把写好了数据库创建的代码放在txt记事本里,需要的同学自己来Ctrl+CCtrl+V。,值得注意点的是,为了兼容市面上的数据库,有2000、2005、2008、2010版本的,要在创建完数据库以后执行以下语句: EXEC sp_dbcmptlevel Stock,80 GO 或者 ALTER DATA

9、BASE Stock SET COMPATIBILITY_LEVEL = 80 GO (注意:“80”意思是兼容到2000版本的),系统开发进入第三步,打开C+2005,新建一个Visual C+ MFC 应用程序:,MFC(Microsoft Foundation Classes),是一个微软公司提供的类库,以C+类的形式封装了Windows的API,并且包含一个应用程序框架,以减少应用程序开发人员的工作量。其中包含的类包含大量Windows句柄封装类和很多Windows的内建控件和组件的封装类。,一.先搞好前面的23个对话框架,视图其他窗口资源视图 在右端的树形结构目录看到这样画面: 右击

10、对话框“Dialog”添加好前面的23个对话框,登陆界面的框架的创建,点开“工具箱”,在空白对话框上添加编辑框 以及静态说明 和按钮 添加完以后最终效果图: 其中密码编辑框中出现6个圆点,是可以在编辑框的右击选择属性,在属性窗口中选择password类型的,很自然就会出现6个圆点了!同学们,编程是不是超级简单呢?我是要让大家知道原来C+编程还可以这样玩的!因为这是组件“COM” Component Objects Model 组件对象模型,简称COM,其他22个对话框也相类似这样创建出来,这一点希望大家找一些C+组件COM的使用方法,这里不做详细讲解,时间有限! 再创建2个对话框: 我们把“登

11、陆界面”添加一个类“LoginDlg”,“用户管理”添加一个类“UserManDlg”,“编辑用户信息”添加一个类“UserEditDlg”,添加问以后会相应地出现.h头文件和.cpp文件,头文件拿来声明变量、函数.cpp用来实现功能!,完成了以后会出现以下一堆头文件和实现文件:,好,下面正式进入代码编辑区域,注意放长眼镜,睁大眼睛看好这中心一环节!(大家都知道.h文件一般是拿来声明、初始化用的,真正实现功能的是在.cpp文件,下面的我讲述的就是.cpp文件,在.ccp文件中用到的变量我已经在.h文件里声明过了,所以大家看到了“无中生有”的变量不要惊讶,我都已经声明过了!),我们回到“登陆界面

12、”那个框架: void CLoginDlg:OnOK() /将对话框中编辑框的数据读取到成员变量中 UpdateData(TRUE); /检查数据有效性 if (m_UserName = “) MessageBox(“请输入用户名,否则出错!“); return; if (m_Pwd = “) MessageBox(“请输入密码“); return; /定义CUsers对象,用于从表Users中读取数据 CUsers user; user.GetData(m_UserName); /如果读取的数据与用户输入数据不同,则返回 if (user.GetPwd() != m_Pwd) Message

13、Box(“用户信息不正确,无法登录!“); return; /关闭对话框 CDialog:OnOK(); ,我们看看一下“登陆界面”所用到的头文件 就知道我们使用到Users里面的一些函数, 里面有很多构造好的函数提供别的文件调用。 int CUsers:HaveName(CString cUserName) /连接数据库 ADOConn m_AdoConn; m_AdoConn.OnInitADOConn(); /设置SELECT语句 _bstr_t vSQL; vSQL = “SELECT * FROM Users WHERE UserName=“ + cUserName + “; /执行

14、SELECT语句 _RecordsetPtr m_pRecordset; m_pRecordset = m_AdoConn.GetRecordSet(vSQL); if (m_pRecordset-adoEOF) return -1; else return 1; /断开与数据库的连接 m_AdoConn.ExitConnect(); ,什么叫做ADO?,微软公司的ADO (ActiveX Data Objects) 是一个用于存取数据源的COM组件。它提供了编程语言和统一数据访问方式OLE DB(Object Linking and Embedding),对象连接与嵌入,简称OLE技术的一个

15、中间层。允许开发人员编写访问数据的代码而不用关心数据库是如何实现的,而只用关心到数据库的连接。访问数据库的时候,关于SQL的知识不是必要的,但是特定数据库支持的SQL命令仍可以通过ADO中的命令对象来执行。,C:Program FilesCommon FilesSystemadomsado15.dll,什么是_bstr_t?,_bstr_t类封装BSTR有趣的地方就是它的封装方式有点类似于智能指针,又有点像COM管理生存期的方式。_bstr_t将两者结合起来并具体体现在构造函数、赋值函数和析构函数中。 _variant_t(变体,不同的)和_bstr_t这两个类分别封装并管理VARIANT和B

16、STR这两种数据类型,VARIANT和BSTR这两种类型是COM中使用的数据类型。为了C+中的变量应用到ADO编程中,只能进行数据类型的转换。 通过_variant_t和_bstr_t这两个类,就可以方便的把C+类型变量转换成COM中的变量了。其他类型转换成_bstr_t可以直接赋值。 ,CUsers:CUsers() UserName = “; Pwd = “; User_type = 0; CUsers:CUsers() CString CUsers:GetUserName() return UserName; void CUsers:SetUserName(CString cUserNa

17、me) UserName = cUserName; CString CUsers:GetPwd() return Pwd; void CUsers:SetPwd(CString cPwd) Pwd = cPwd; int CUsers:GetUser_type() return User_type; void CUsers:SetUser_type(int iUser_type) User_type = iUser_type; ,为数据库插入数据,void CUsers:sql_insert() /连接数据库 ADOConn m_AdoConn; m_AdoConn.OnInitADOConn

18、(); /设置INSERT语句 CString strType; strType.Format(“%d“, User_type); _bstr_t vSQL; vSQL = “INSERT INTO Users VALUES(“ + UserName + “,“ + Pwd + “,“ + strType + “)“; /执行INSERT语句 m_AdoConn.ExecuteSQL(vSQL); /断开与数据库的连接 m_AdoConn.ExitConnect(); ,更新数据库里面的表,void CUsers:sql_updatePwd(CString cUserName) /连接数据库

19、ADOConn m_AdoConn; m_AdoConn.OnInitADOConn(); /设置UPDATE语句 CString strType; strType.Format(“%d“, User_type);(注意这里,我是设置了权限的) _bstr_t vSQL; vSQL = “UPDATE Users SET Pwd=“ + Pwd + “ WHERE UserName=“ + cUserName + “; /执行UPDATE语句 m_AdoConn.ExecuteSQL(vSQL); /断开与数据库的连接 m_AdoConn.ExitConnect(); ,删除数据库表里的数据,

20、void CUsers:sql_delete(CString cUserName) /连接数据库 ADOConn m_AdoConn; m_AdoConn.OnInitADOConn(); /设置DELETE语句 _bstr_t vSQL; vSQL = “DELETE FROM Users WHERE UserName=“ + cUserName + “; /执行DELETE语句 m_AdoConn.ExecuteSQL(vSQL); /断开与数据库的连接 m_AdoConn.ExitConnect(); ,从数据库表里获取信息,void CUsers:GetData(CString cUs

21、erName) /连接数据库 ADOConn m_AdoConn; m_AdoConn.OnInitADOConn(); /设置SELECT语句 _bstr_t vSQL; vSQL = “SELECT * FROM Users WHERE UserName=“ + cUserName + “; /执行SELETE语句 _RecordsetPtr m_pRecordset; m_pRecordset = m_AdoConn.GetRecordSet(vSQL); /返回各列的值 if (m_pRecordset-adoEOF) CUsers(); else UserName = cUserNa

22、me; Pwd = (LPCTSTR)(_bstr_t)m_pRecordset-GetCollect(“Pwd“); User_type = atoi(LPCTSTR)(_bstr_t)m_pRecordset-GetCollect(“User_type“); /断开与数据库的连接 m_AdoConn.ExitConnect(); ,看一下“编辑用户信息”框架,void CUserEditDlg:OnOK() UpdateData(TRUE); CUsers usr; usr.SetUserName(m_UserName); usr.SetPwd(“888888“); usr.SetUser

23、_type(m_UserType.GetCurSel()+1); if (usr.HaveName(m_UserName) = 1) /如果存在当前用户 MessageBox(“当前用户已存在,请选择其他用户名“); return; /插入用户记录 usr.sql_insert(); CDialog:OnOK(); BOOL CUserEditDlg:OnInitDialog() CDialog:OnInitDialog(); / TODO: Add extra initialization here m_UserType.SetCurSel(iUserType - 1); if (curUs

24、er.GetUserName() != “Admin“) GetDlgItem(IDC_USERTYPE_COMBO)-EnableWindow(FALSE); return TRUE; ,看一下“用户管理”框架,void CUserManDlg:OnAddButton() CUserEditDlg dlg; dlg.iUserType = 2; if (dlg.DoModal() = IDOK) m_adodc.Refresh(); void CUserManDlg:OnModiButton() if (m_datalist.GetText() = “) MessageBox(“请选择用户“

25、); return; if (curUser.GetUserName() != “Admin“ ,(续上),void CUserManDlg:OnDelButton() if (m_datalist.GetText() = “) MessageBox(“请选择用户“); return; if (curUser.GetUserName() != “Admin“ ,回眸一看,不知不觉地我们就已经实现了3个界面的功能; 一个是登陆界面的实现功能; 一个是用户编辑界面实现的功能; 再一个是用户管理的实现功能。 再一次回问道:C+开发系统真的有这么难吗? 再一次回答说:很容易!,剩下的20个界面的功能实

26、现,剩下的20个界面功能的实现都和上面的三个相类似,都是千篇一律的。懂一个典型的例子,后面的都很容易上手! 要把它做出来,注意要有耐心,要用时间来砸出来的,用心血呕出来的,用智慧总结出来的! 我能,相信大家一定也能,也许更强! 能够熟练地做到这一点,你已经是半个软件设计师了!还愁以后找工作没人要吗?不!,系统开发第四步,用户界面美工,其目的之一是能吸引用户的眼球,最终达到一种良好的人机交互的目的。 利用flash和PS这两个工具对一些动画和图像进行一个艺术性的美化,然后添加到用户界面上去。,系统开发第五步,软件的测试与调试。 花一定的时间进行各种各样的调试和测试,把所有有可能发生的情况都要考虑

27、进去,并且进行全面的测试。 检查一下刚开发出来的东西有没有什么异常,再做进一步的修改和完善。,系统开发第六步,项目开发的价值核算。 成本=每人单位时间内的薪水开发的人数开发所需时间 卖价=成本+利润 本例系统的开发成本以及卖价估算: 成本=50012=1000(元) 卖价=1000+200=1200(元),(续上),显然,我们知道开发的时间越长成本费用越高。(此例我省略了市场需求分析这块) 回想一下,我们管理信息系统这门课周二上理论课大多时间都在讲市场需求分析这一块(也就是所谓的“吹水”)用的时间最长,但是其含金量是最高的!周五的实验课就是为了实现周二理论分析。 不过,如果实验这一块没做好,那

28、上面的一大堆理论都成为空话、废话,没有实现所要的结果。,小结,C+开发系统,基本功一定要扎实!站得住才能稳得住! C+里用得最多的一个语句,我有必要跟大家说一下,是xx.DoModel()和UpdateData(TRUE);UpdateData(FALSE);前者用于从该窗口跳到其他窗口,后者是把在界面编辑框里输入的数据传输到内存里或者从内存里读取数据显示到界面编辑框中。也不一定只是编辑框,也可以是其他的COM组件的使用!,学好C+的一些建议,准备好四本书和一个教学视频 谭浩强的C语言面向对象设计 严蔚敏的C语言-数据结构与算法分析 XXXXX的C语言函数库 XXXXX的C语言开发平台的使用 孙鑫的VC+ 专辑 视频教育,对大家的期待,花上一年的时间,搞好C语言,其他语言都是和C相类似的! 希望你能“剩者为王”,脱颖而出,出类拔萃,Where there is a will,there is a way! 有志者,事竟成! Bye!Thank you! 谢谢欣赏,再见!,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1