这是一个基于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<msg>::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<msg>::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"
// CInfoDlgIMPLEMENT_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<LPNMLISTVIEW>(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<msg>::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<msg>::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<msg>::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

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

  1. 基于SSM+VUE的药品销售管理系统的设计与实现

    基于SSM+VUE的药品销售管理系统 研究的背景与意义 随着互联网技术的快速发展,网络时代的到来,网络信息也将会改变当今社会.各行各业在日常企业经营管理等方面也在慢慢的向规范化和网络化趋势汇合.药店药 ...

  2. C++课程设计实训_基于多态书籍信息管理系统的设计与实现、附源码、有过程截图

    C++课程设计实训_基于多态书籍信息管理系统的设计与实现.附源码,有过程截图 书籍信息管理系统的设计与实现(基于多态) 学生姓名: 学 号: 指导老师: 所 在 系: 专 业: 班 级: C++课程设 ...

  3. 基于JavaEE的海鲜水产销售管理系统的设计

    技术:Java.JSP等 摘要: 现阶段中国对于海鲜水产的需求是十分的巨大的,在这一巨大的需求下,也催生了一个庞大的海鲜水产销售网络体系,众多的销售生产厂家应运而生.但是巨大订单的到来有衍生出一个新的 ...

  4. 课程设计任务分工说明、自评意见、自评等级、指导 教师 意见--基于java的进销存管理系统课程设计

    课程 设计 任务 分工 情况 说明 本系统分为登录模块.基础信息管理.进货管理.销售管理.库存管理.查询统计.系统管理等 7个模块. 我负责库存管理模块和查询统计模块的设计与实现,库存管理主要实现了商 ...

  5. C++课程设计实训报告

                          南阳理工学院·软件学院 课程设计报告 课程名称: C++面向对象程序设计(课程设计) 课题名称: 新生基本信息统计软件 姓    名: 学    号: 专 ...

  6. android课程设计实训目的,汽车专业实习目的与意义

    实习目的及意义 1.通过生产实习加深对汽车运用与维修专业认识,巩固专业思想,激发学习热情. 2.熟悉汽车修理环境.修理工具.为以后走上工作岗位积累一定的知识与经验. 3.开拓我们的视野,增强专业意识, ...

  7. 基于JAVAEE技术的家电销售管理系统的设计与实现

    在互联网快速发展与网民数量急剧增加的时代,对于家电行业而言,建立家电产品信息发布平台不仅可以扩企业家电产品生产企业的销售视野,通过将传统的销售方法转变为在线订单的方式来充分体现信息化在家电行业销售结构 ...

  8. 【C语言】课程设计实训——人事管理系统

    目录 题目: 总体设计 详细设计 系统实现 题目 1.需求分析 人事档案信息采用文件存储,要提供文件的输入输出操作:根据学院人事的变动情况,可添加或删除记录,因而要提供文件的添加删除操作:能根据编号和 ...

  9. 【数据结构】-大二数据结构与算法课程设计实训报告

    采花生问题 1.1 需求分析 1.1.1 题目概要 给一矩阵,按贪心思路最多能采多少花生并在规定时间内返回. 1.1.2 题目要求 给定一块花生田的大小和花生的分布,在限定时间内,小Q最多可以采到多少 ...

  10. 课程设计实训-3 英文词典

    问题及代码 做一个简单的电子词典.在文件dictionary.txt中,保存的是英汉对照的一个词典,词汇量近8000个,英文与释义间用'\t'隔开.编程序,将文件中的内容读到两个数组e[]和c[]中, ...

最新文章

  1. python的TCP编程
  2. 机器学习笔记:RMSProp,Adadelta
  3. visual stadio 添加 Extjs 智能提示!
  4. 给一名准90后程序员的指导——学好IT?无用论?
  5. 基于CDS view生成的OData服务的metadata是如何加载的
  6. CentOS7 安装Redis Cluster集群
  7. 郭卓惺:互动课堂的搭建实例及相关领域应用
  8. 一本通1586【 例 2】数字游戏
  9. 【数学建模】人口增长Leslie模型
  10. Java中解密微信加密数据工具类
  11. 高端啤酒正在失去年轻人
  12. win7删除桌面计算机图标怎么删除,Win7桌面图标箭头怎么去掉?去掉桌面图标箭头的方法...
  13. 统计学习理论(SLT)与支持向量机(SVM)
  14. Android自定义View使用总结
  15. 生物特征模板保护技术
  16. 通过js获取谷歌浏览器版本
  17. 三元运算符(三目运算符)
  18. 罗斯蒙特248温度变送器248HANANONS
  19. 欧洲共同语言参考标准英语c1,美国小学英语2年级语言知识对标欧洲共同语言参考标准CEFR...
  20. 第四范式业界首推免费智能客服服务

热门文章

  1. javaScript系列 [06]-javaScript和this
  2. 【AI科幻】地球陨落·平行世界
  3. Source Files 与 Resource Files 的区别
  4. 标签类目体系(面向业务的数据资产设计方法论)-读书笔记3
  5. oom killer java_Linux应用进程消失之谜--Java进程与OOM Killer
  6. 微信小程序赋能会员管理和会员营销互动
  7. input输入密码的时候调用纯数字键盘和加密,js弹出键盘
  8. uniapp打包之后首页白屏
  9. 微信服务器 系统发生错误,微信系统错误请重试怎么解决-解决微信提示“系统错误,请重试”的方案 - 河东软件园...
  10. Android Runtime.getRuntime().exec()