基于MFC的销售管理系统(图文详细,VS2019)

1.创建项目

 

然后完成

2.配置项目

        2.1 预处理器宏添加

        为了防止MFC中调用一些常见的C/C++库报错,在属性的预处理器定义中添_CRT_SECURE_NO_WARINGS

        2.2 图标配置

找到项目源文件所在位置,在res文件夹中添加两个icon图片,我这边是网上随便荡了两张下来

 图片加到文件夹后还没结束,需要再添加到资源文件中,点击下图所示位置

 右键icon文件夹添加资源,然后导入刚刚加到res文件夹的两张图片,后就可以在资源视图中看到所添加的文件

 

 ran然后右键添加的icon进入属性,修改ID(ID很重要,后面在程序中调用都是依靠ID来的,最好改成可懂的名称

        2.3 设置标题

标题设置比较简单,直接在MainFrm.cpp文件中添加该代码,在SaleSystemDoc.cpp文件中添加该代码,功能见注释,这里输入ICON的ID会有红色波浪线警告,不用管

int CMainFrame::OnCreate(LPCREATESTRUCT lpCreateStruct)
{
	if (CFrameWnd::OnCreate(lpCreateStruct) == -1)
		return -1;

	if (!m_wndStatusBar.Create(this))
	{
		TRACE0("未能创建状态栏\n");
		return -1;      // 未能创建
	}
	m_wndStatusBar.SetIndicators(indicators, sizeof(indicators)/sizeof(UINT));

	//设置图标
	SetClassLong(m_hWnd, GCL_HICON, (LONG)AfxGetApp()->LoadIconW(IDI_ICON_WIN));
	//设置标题 右侧标题
	SetTitle(TEXT("2022-8-24"));
	//设置窗口大小
	MoveWindow(0, 0, 800, 500);
	//设置居中显示
	CenterWindow();

	测试infoFIle
	//CInfoFile file;
	//CString name;
	//CString pwd;
	//file.ReadLogin(name, pwd);
	//MessageBox(name);


	return 0;
}

 

       运行可出现下图

 3.InfoFile类的引入

InfoFile.cpp和InfoFile.h的源码转自:

(86条消息) VS2019 MFC的InfoFile.cpp和InfoFile.h文件内容_小张同学的编码日常的博客-CSDN博客_infofile

在项目源文件中分别创建InfoFile.cpp、InfoFile.h、login.ini、stock.txt,在login.ini文件中输入一行用户名、一行密码,我懒所以写了11.

为了防止报错,在InfoFile.h顶行添加#pragma warning(disable:4996)

关于InfoFile.cpp和InfoFile.h的代码大家可以自己看看,都是C++基础文件读取。

 上面的准备工作完成后打开MainFrm.cpp文件,将InfoFile.h头文件包含进去,测试InfoFile.cpp和InfoFile.h的代码,在Oncreate函数中添加以下代码,MessageBox函数是弹出消息提示框,运行后弹出“1”表示成功,其他的info类中的函数也可以自己测一下。

 4.登录窗口的实现

        4.1ui设计

在资源试图的Dialog中右键插入dialog,根据下面第二张图上的标识打开dialog属性及修改窗口名称,在属性栏中下拉到杂项的ID中修改ID为DIALOG_LOGIN(我这里是已经建立好了的所以信息比较完整,可以忽略,按操作来就行)

 

ui上面的设计,点击最左边有个治疗脊椎病的竖排列三个字“工具箱”,右键添加的那些工具可以打开属性栏,改一下显示的名称,原本生成的确定和取消两个按钮可直接删除

选择相应的框在上面可以进行对齐,

密码的text需要在属性设置中,将密码一项改成True

右键灰色的dialog,添加类,这样创建出来的类就和这个窗口关联起来

 

 为了保证登录窗口在主窗口前出现,需要在salesystem.cpp中找到主窗口的创建代码,然后将登录窗口的代码放在它之前,如下图注释,这里记得包含刚刚创建CloginDlg.h头文件,

运行后如下图

 

 接下来实现登录功能:

打开资源视图中的登录dialog,右键text添加变量,参数设置如下下图,同理设置密码的text

 

 双击登录进入登录按钮的代码,输入以下代码,代码自己理解,很简单的

 

 

 然后运行程序,尝试输入错误的账号密码,不输入账号密码,输入正确的账号密码试试。

设置取消按钮:一样双击取消按钮进入代码输入exit(0)即可;

到这里存在两个bug:1.在登录界面就算不输入或者输错账号密码,只要点击回车键它都会顺利出现主窗口,这不合理;2.点击右上角的“X”也一样会出现主窗口

修改方法:

1.按下图操作后会跳转到Clogin.cpp,然后如下下图进行代码修改

2.几乎和1类似的操作,具体看下图 

 

5.静态窗口拆分

首先得先创建两个类CselectView和CDisplayView,分别用来控制下图中被隔开的两个窗口 

首先是创建CselectView类。操作见图

 

 

 创建好以后vs2019会报错,需要添加一个头文件,我没去查为什么,如果有哪个大佬知道可以告诉我

 对于创建CDisplayView类,如果使用和上面一样的方法就会报错:CDisplayView类缺少构造函数。所以这个类用其他的办法创建,见图

 记得把属性中的样式改成child,因为这个窗口其实是依附在主窗口的

然后再右键添加类,见图

 接下来通过CSpliterWnd类来拆分窗口

首先创建一个拆分窗口的对象

 重写框架类CmainFrame的OnCreateClient函数,然后进行拆分方法,具体修改见图,记得包含两个新建类的头文件

 

 然后可以运行看看是否已经拆分

7.树视图功能接下来要做的是左边窗口的树视图功能,在CSelectView的类中进行操作,

 首先在selectview的头文件中加入两个控件,

然后重新初始化左边的窗口

 输入如下代码

 可以运行看看左边窗口是否出现这些控件

之后就是实现点击控件实现窗口调转,做一个selectChange事件,看图

 然后可以运行测试以下点击相应的树控件可弹出相应的消息框

 

8.个人信息页面实现

先插入一个dialog,参考前面的。右键属性修改ID,边框和样式,然后进行界面布局成和下图的一样,然后根据下图3将身份和用户名两项改成只读,密码改成密码形式(上面有)

 

 添加用户信息的类,如下两图

 

 

 然后在新建的类中添加对话框里的变量,如下面几图

 

 

 

 

 

9.自定义消息以及界面挂载

在CMainFrm的框架中定义消息宏,因为整个点击左边显示右边是发生在整体的窗口中

首先在MainFrm.h文件中添加代码如下

在MainFrm.cpp文件中有BEGIN_MESSAGE_MAP和END_MESSAGE_MAP两个宏(消息映射机制),可以在这两个宏之间添加自定义消息入口,与自定义消息处理函数绑定

接下来是进行OnMyChange函数的声明和定义

OnMyChange函数声明

 OnMyChange函数定义

右键函数名快速重构

重构后先放着,因为这里面是要实现,左边窗口点击树控件后发送一个消息,这个函数会接受这个消息,根据接受的消息来显示窗口

 所以接下来得实现发送消息的步骤,添加如下代码,可看注释,如果看不懂建议查一下

 然后在OnMyChange中接受消息并在右窗口响应,之后可以运行一下看看是不是在右边窗口弹出“成功”

 之后就是挂载界面,这一段据说是很通用的,只要以后要把界面挂载就可以拿这一段代码实现

 10 个人信息功能完善

重写初始化函数

添加代码如下

 

 结果

 接下来实现点击确定完成密码修改

双击

 输入以下代码然后运行测试一下

 

 取消按钮的实现,双击进入

 11销售窗口

与前面建立个人信息的dialog差不多,ID为DIALOG_SALE,边框为NONE,样式为child

 

 

右键dialog添加类,这里我敲错单词了,懒得改

 添加变量

 商品名称

单价

 库存

个数

 

订单信息

 然后把库存和单价改成只读

 界面挂载,在onchange函数中添加

 初始化窗口

 在下拉框中显示商品

 切换下拉框的商品触发转换的事件

 

做到这有其他的事情,暂时没办法继续做下去,想看后面的内容可自行去b站上找黑马那一版

12

13

为了稳固本学期所学的?C++面向程序设计?以及?数据库原理?的学习。提高和加强学 生的计算机应用及软件开发能力,使学生具备初级程序员的根本素质;培养学生独立分 析问题、解决问题、查阅资料以及自学能力,以适应信息管理行业日新月异的开展形势 ;本次课程设计为一个?学生信息管理系统?。该系统通过ODBC模式连接了SQL2005数据库 ,数据库包含了: 一.学生的根本信息表 〔学号、姓名、姓名、性别、年龄、所学专业、 〕 二.选修课程信息表 〔课程号、课程名、 学分 〕 三. 选课信息表 〔学号、 课程号、 成绩 〕 该系统还对这三个表都具有【增】、【删】、【查】、【改】的功能,同时还设计 它们之间的关系,如学生与课程关系和学生的成绩等,同时还要对一些数据进行查询, 如通过课程号查询学生成绩的集合。 八.心得体会 1〕过这次课程设计,初步掌握MFC程序设计,对消息的机制有了较为深刻的认识, 对MFC中的应用结构类,菜单类,窗口,对话框有了理解。 2〕也了解了数据库的有关知识,学会了一些常用的数据库查询语句,对数据库的功能和 作用也有了一定的认识。 3〕合理的规划和设计界面也是十分重要的,一个好的程序也需要便捷的操作和美观的界 面,人性化设计是需要考虑进取的。 4〕了解了ODBC数据库访问技术,ODBC提供了一组标准应用程序接口,可以使用SOL语句 实现对数据库的管理系统的访问。 一、设计思路: 本程序运用了MFC ODBC应用程序设计与SQL数据库,利用VC++中提供的MFC ODBC 开放数据库连接组件进行数据库的访问,利用了记录集(RECORDSET类)进行信息的添加( ADD ( ) ),删除 (DEL ( )),修改 (UPDATE( )), 查询〔select〔〕〕功能,并且对用户登陆的权限进行检验,并且具有错误提示功能。 二、设计说明与调试分析 A 根据设计要求分析数据的结构: 数据项列表 "名称 "注释 "数据类型 "主要的 "所在表" "Sname "姓名 "nchar(4 ) "not " " " " " "null " " "Ssex "性别 "nchar(3) "null " " "Sage "年龄 "tinyint "null " " "Sprof "专业 "nchar〔20 "null " " " " "〕 " " " "Stel " "char〔11〕"null " " "Kid "课程号 "char〔3〕 "主键 "kc " "Kname "课程名 "nchar(20) "not " " " " " "null " " "Kscore "课程学分 "tnyint "not " " " " " "null " " "Sid "学号 "Char(6) "主键 "s_kc " "Kid "课程号 "char(3) "主键 " " "grade "选修成绩 "tinyint "not " " " " " "null " " B 建立表 根据设计要求分析数据的结构,利用SQL 2005创立一个数据库,数据库命名为:【wami】, 创立3张表:xs表,kc表,xs_kc表,,如下列图: C 在表里面填好初始化数据 三.ODBC的配置源程序说明&附加SQL Server 2005数据库 配置ODBC 运行本实例需要配置用户DSN,在ODBC数据源管理器中配置用户DSN连接指定的SQL Server数据库。关键操作步骤如下: 〔1〕单击"开始〞按钮,选择"程序〞 "管理工具〞 "数据源〔ODBC〕〞命令,翻开"OD BC数据源管理器〞对话框,翻开"用户DSN〞选项卡。 〔2〕单击"添加〞按钮,翻开"创立新数据源〞对话框,选择安装数据源的驱动程序,这 里选择"SQL Server〞。 〔3〕单击"完成〞按钮,翻开"创立到SQL Server的新数据源〞对话框,在"名称〞文本框中设置数据源名称为"wangming〞〔即程 序里面的DSN〕,在"描述〞文本框设置数据源描述为"配置SQL Server数据库DSN〞,在"效劳器〞下拉列表框中选择连接的数据库所在效劳器为"自己的 计算机名〔例如我的是:WIN-PHT03USEDJ9\SQLEXPRESS〕〞。 〔4〕单击"下一步〞按钮,选择"使用网络登录ID的Windows NT验证〞单项选择框,其他默认〔5〕单击"下一步〞按钮,选择"更改默认的数据库为〞 复选框,并在其下拉列表框中选择连接的数据库名称,这里选择"student〞【数据库的 名字】,单击"下一步〞按钮。 〔6〕单击"完成〞按钮,翻开"ODBC Microsoft SQL Server安装〞对话框,显示新创立的ODBC数据源配置信息。 〔7〕单击"测试数据源〞按钮测试数据库连接是否成功,如果测试成功,单击"确定〞按
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

师父祭天法力无边

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值