基于MFC和c++的销售管理系统,课程设计,实训

基于MFC和c++的销售管理系统,课程设计,实训,第1张

 这是一个基于MFC的windows窗体应用主要功能有

  1. 登录功能,输入正确的用户名和密码进入系统。
  2. 个人信息查看功能,显示个人信息(身份、用户名)、修改自己的密码
  3. 销售管理功能,能够购买商品(有判断如果数量为负的情况),并且购买的数据会在订单信息中显示,并且库存会同步到文件当中。
  4. 库存信息展示功能,能够以列表的方式展示所有商品的库存信息。
  5. 搜索功能,根据商品名称进行搜索,支持模糊搜索
  6. 添加库存的功能,可以在左侧添加已有的商品的库存,右边是添加新的商品,有价格和个数的输入合法性检测。
  7. 删除库存的功能,选择要删除的商品输入要删除的数量(有合法性检测,库存和正负)可以在本页实时看到该商品的库存量。
  8. 开始菜单功能,点击有退出按钮,点击退出系统。
  9. 菜单,菜单按钮,可以选择当前的功能。
  10. 帮助,主要是关于,显示个人信息的。
  11. 窗口的标题,左标题显示项目名称,右标题显示当前系统的时间。

这其中主要的难点就在于搜索,MFC入门其实不是很难,可以说是比较容易。

 

 

void CAddDlg::OnInitialUpdate()
{
	CFormView::OnInitialUpdate();

	// TODO: 在此添加专用代码和/或调用基类
	//读取文件,获取商品名,给组合框添加字符串
	CInfoFile file;
	file.ReadDocline(); //读取商品信息
	for (list::iterator it = file.ls.begin(); it != file.ls.end(); it++)
	{
		m_combo.AddString((CString)it->name.c_str());
	}

	file.ls.clear(); //清空list的内容

	//将第一个商品名设为默认选中项
	m_combo.SetCurSel(0);
	//显示该商品的信息
	OnCbnSelchangeCombo1();

}


void CAddDlg::OnCbnSelchangeCombo1()
{
	// TODO: 在此添加控件通知处理程序代码
	int index = m_combo.GetCurSel();
	CString name;
	m_combo.GetLBText(index, name);
	//根据商品名称获取到该商品的价格和库存,并显示到控件当中
	CInfoFile file;
	//把商品读到file对象中
	file.ReadDocline();
	for (list::iterator it = file.ls.begin(); it != file.ls.end(); it++)
	{
		if (CString(it->name.c_str()) == name)
		{
			m_price1 = it->price;
			//同步到控件上
			UpdateData(FALSE);
		}
	}
}

库存展示功能源码:

// CInfoDlg.cpp: 实现文件
//

#include "pch.h"
#include "销售管理system.h"
#include "CInfoDlg.h"
#include "InfoFile.h"
// CInfoDlg

IMPLEMENT_DYNCREATE(CInfoDlg, CFormView)

CInfoDlg::CInfoDlg()
	: CFormView(DIALOG_INFO)
	, m_sinfo(_T(""))
{

}

CInfoDlg::~CInfoDlg()
{
}

void CInfoDlg::DoDataExchange(CDataExchange* pDX)
{
	CFormView::DoDataExchange(pDX);
	DDX_Control(pDX, IDC_LIST2, m_list);
	DDX_Text(pDX, IDC_EDIT1, m_sinfo);
	DDX_Control(pDX, IDC_CHECK1, m_sm);
}

BEGIN_MESSAGE_MAP(CInfoDlg, CFormView)
	ON_NOTIFY(LVN_ITEMCHANGED, IDC_LIST2, &CInfoDlg::OnLvnItemchangedList2)
	ON_BN_CLICKED(IDC_BUTTON1, &CInfoDlg::OnBnClickedButton1)
END_MESSAGE_MAP()


// CInfoDlg 诊断

#ifdef _DEBUG
void CInfoDlg::AssertValid() const
{
	CFormView::AssertValid();
}

#ifndef _WIN32_WCE
void CInfoDlg::Dump(CDumpContext& dc) const
{
	CFormView::Dump(dc);
}
#endif
#endif //_DEBUG


// CInfoDlg 消息处理程序


void CInfoDlg::OnLvnItemchangedList2(NMHDR* pNMHDR, LRESULT* pResult)
{
	LPNMLISTVIEW pNMLV = reinterpret_cast(pNMHDR);
	// TODO: 在此添加控件通知处理程序代码
	*pResult = 0;
}


void CInfoDlg::OnInitialUpdate()
{
	CFormView::OnInitialUpdate();

	// TODO: 在此添加专用代码和/或调用基类
	// 设置扩展风格
	//LVS_EX_FULLROWSELECT选中整行,LVS_EX_GRIDLINES网格
	m_list.SetExtendedStyle(m_list.GetExtendedStyle() | LVS_EX_FULLROWSELECT | LVS_EX_GRIDLINES);

	// 初始化表头
	CString field[] = { _T("商品ID"), _T("商品名称"), _T("商品价格"), _T("库存数量") };
	for (int i = 0; i < sizeof(field) / sizeof(field[0]); ++i)
	{
		m_list.InsertColumn(i, field[i], LVCFMT_CENTER, 90);
	}

	//需要包含#include "InfoFile.h"
	CInfoFile file;
	file.ReadDocline(); //读取商品信息

	//添加数据
	int i = 0;
	CString str;
	for (list::iterator it = file.ls.begin(); it != file.ls.end(); it++)
	{
		str.Format(_T("%d"), it->id);
		m_list.InsertItem(i, str);
		int column = 1;
		m_list.SetItemText(i, column++, (CString)it->name.c_str());
		str.Format(_T("%.2lf"), it->price);
		m_list.SetItemText(i, column++, str);
		str.Format(_T("%d"), it->num);
		m_list.SetItemText(i, column++, str);
		i++;
	}

}


void CInfoDlg::OnBnClickedButton1()
{
	// TODO: 在此添加控件通知处理程序代码
	UpdateData(TRUE);
	CInfoFile file;
	file.ReadDocline(); //读取商品信息
	CString name;
	string sinfo;
	sinfo = (CStringA)m_sinfo;
	CButton* pBtn = (CButton*)GetDlgItem(IDC_CHECK1);
	BOOL state = pBtn->GetCheck();
	if (state == FALSE)
	{
		for (list::iterator it = file.ls.begin(); it != file.ls.end(); it++)
		{
			if (m_sinfo == CString(it->name.c_str()))
			{
				name = CString(it->name.c_str());
				CString str;
				string s;
				s = "商品:" + it->name + "\r\n" + "单价:" + to_string(it->price) + "\r\n" + "库存:" + to_string(it->num);
				str = (CString)(s.c_str());
				MessageBox(str, _T("查询结果"));
				break;

			}
		}
		if (m_sinfo != name)
		{
			MessageBox(_T("没有查到该商品!\r\n(´・ω・)ノ(._.`)"), _T("查询结果"));
		}
	}
	else if (state == TRUE)
	{
		int n = 1;
		CString str;
		string s;
		int f = 0;

		for (list::iterator it = file.ls.begin(); it != file.ls.end(); it++)
		{
			int a = it->name.find(sinfo);
			if (a != -1)
			{

				name = CString(it->name.c_str());
				s += "商品:" + it->name + "\r\n" + "单价:" + to_string(it->price) + "\r\n" + "库存:" + to_string(it->num) + "\r\n";

				if (n == 10)
				{
					str = (CString)(s.c_str());
					UINT nRet = MessageBox(str, _T("查询结果"), MB_OKCANCEL);
					if (nRet == IDOK)
					{
						n = 1;
						s.clear();
					}
					else if (nRet == IDCANCEL)
					{
						f = 1;
						break;
					}

				}
				n++;

			}
		}
		if (n != 1 && f != 1)
		{
			str = (CString)(s.c_str());
			UINT nRet = MessageBox(str, _T("查询结果"));
		}
	}

}

详见以下链接 

(6条消息) 基于MFC的销售管理系统,c++实训,课程设计,大作业-C++文档类资源-CSDN文库https://download.csdn.net/download/Cadn81192/85604724?spm=1001.2014.3001.5503

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/langs/1353633.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-06-14
下一篇2022-06-14

发表评论

登录后才能评论

评论列表(0条)

    保存