#include<iostream>
#include<stdio.h>
#include<string>
#include<mysql.h>
#define Password "******"                                                 //定义密码
using namespace std;MYSQL mysql;                                                                //定义mysql变量
MYSQL_RES* res;                                                             //查询结果集
MYSQL_ROW row;                                                              //行数据展示//01购买函数
void MyPurchase() {                                             string my_type,my_name,the_sql;                                         //初始化所需要的局部变量float my_price;char my_num;int my_number;do {                                                                  //用户选择商品类别  system("cls");cout << endl << "         1.食品   2.化妆品    3.日用品   4.饮料        " << endl;cout << endl << "             请输入序号选择购买商品的类别:";cin >> my_num;switch (my_num) {case '1':my_type = "食品";break;case '2':my_type = "化妆品";break;case '3':my_type = "日用品";break;case '4':my_type = "饮料";break;default:my_num = '0';cout << endl << "                 输入错误,请重新输入!" << endl;system("pause");                                              }} while (my_num == '0');                                               //用户输入错误则循环操作cout << endl << "             请输入您要购买的商品的名称:";            //用户输入商品名称cin >> my_name;the_sql = "select * from market.my_system where name = \'";             //编辑SQL语句the_sql += my_name;the_sql += "\' and type = \'";the_sql += my_type += "\'";mysql_query(&mysql, the_sql.c_str());                                  //向数据库传递SQL查询语句并获取查询结果res = mysql_store_result(&mysql);row = mysql_fetch_row(res);if (!row) {                                                             //若没有商品则输出提示语句结束购买cout << endl << "                     该记录不存在!" << endl;}else {                                                                 //若有商品则进行购买操作cout << endl;                                                        //输出商品信息并提示用户输入购买数量cout << "             商品名称:\t" << row[1] << endl;cout << "             商品类别:\t" << row[2] << endl;cout << "             生产厂家:\t" << row[3] << endl;cout << "             商品品牌:\t" << row[4] << endl;cout << "             商品价格:\t" << row[5] << endl;cout << "             剩余库存:\t" << row[6] << endl << endl;cout << "             请输入购买的数量:";cin >> my_number;if (my_number > stoi(string((row[6]))) || stoi(string((row[6]))) == 0) {//若库存量不足则输出提示并结束购买cout << endl << "             库存量不足!" << endl;}else {                                                             //若库存量足够则进行购买操作my_price = stof(string(row[5]));my_price *= my_number;                                         //计算消费价格cout << "             您此次购买一共花费:" << my_price << endl;cout << endl << "             购买成功,该商品售出! " << endl;the_sql = "update my_system set stock = ";                       //编辑SQL语句并传递到mysqlthe_sql += to_string(stoi(string(row[6])) - my_number);the_sql += " where name = \'";the_sql += my_name += "\'";mysql_query(&mysql, the_sql.c_str());}}system("pause");
}//02插入函数
void MyInsert(){char my_num;                                                            //初始化所需要的局部变量string value01, value02, value03, value04, value05, value06;do {                                                                   //用户选择商品类别system("cls");cout << endl << "         1.食品   2.化妆品    3.日用品   4.饮料        " << endl;cout << endl << "             请输入序号选择添加商品的类别:";          cin >> my_num;switch (my_num) {case '1':value02 = "食品";break;case '2':value02 = "化妆品";break;case '3':value02 = "日用品";break;case '4':value02 = "饮料";break;default:my_num = '0';cout << endl << "                 输入错误,请重新输入!" << endl;system("pause");                                                      }} while (my_num == '0');                                               //如果输入错误则重新进行操作cout << endl << "                    请输入商品的名称:           ";     //提示用户输入添加商品信息cin >> value01;cout << endl << "                    请输入商品的生产厂家:     ";cin >> value03;cout << endl << "                    请输入商品的品牌:          ";cin >> value04;cout << endl << "                    请输入商品的价格:          ";cin >> value05;cout << endl << "                    请输入商品的库存量:     ";cin >> value06;string the_sql = "insert into my_system values(\"0\",\"";             //编辑sql语句                       the_sql += value01 += "\",\"";the_sql += value02 += "\",\"";the_sql += value03 += "\",\"";the_sql += value04 += "\",\"";the_sql += value05 += "\",\"";the_sql += value06 += "\")";if (mysql_query(&mysql, the_sql.c_str())) {                                //执行插入语句并检查是否成功cout << mysql_error(&mysql) << endl;}else {cout << endl << "                    添加成功!" << endl << endl;}system("pause");
}                                                                           //03删除函数
void MyDelete() {char my_num;                                                           //初始化所需要的局部变量string my_type, my_name, the_sql;do {                                                                  //提示用户选择商品的类别system("cls");cout << endl << "         1.食品   2.化妆品    3.日用品   4.饮料        " << endl;cout << endl << "             请输入序号选择商品删除的类别:";cin >> my_num;                                                           switch (my_num) {case '1':my_type = "食品";break;case '2':my_type = "化妆品";break;case '3':my_type = "日用品";break;case '4':my_type = "饮料";break;default:my_num = '0';cout << endl << "                 输入错误,请重新输入!" << endl;system("pause");                      }} while (my_num == '0');                                               //输入错误则重新进行操作cout << endl << "             请输入您要删除的商品的名称:";            //用户输入删除商品的名称cin >> my_name;the_sql = "select * from market.my_system where name = \'";              //编辑SQL语句the_sql += my_name;the_sql += "\' and type = \'";the_sql += my_type += "\'";mysql_query(&mysql, the_sql.c_str());                                  //传递SQL查询语句并获取结果集res = mysql_store_result(&mysql);row = mysql_fetch_row(res);if (!row) {                                                              //如果没有查询结果则输出提示并结束删除cout << endl << "                    该记录不存在!" << endl << endl;}else {                                                                  //如果有查询结果则进行删除操作the_sql = "delete from market.my_system where name = \'";the_sql += my_name += "\'";mysql_query(&mysql, the_sql.c_str());cout << endl << "                    删除成功!" << endl << endl;}system("pause");
}//04修改函数
void MyUpdate() {char my_num;                                                           //定义所需要的局部变量string my_type,my_name,the_sql,my_value;do {                                                                    //用户选择修改的商品类别system("cls");cout << endl << "         1.食品   2.化妆品    3.日用品   4.饮料        " << endl;cout << endl << "             请输入序号选择修改商品的类别:";           cin >> my_num;switch (my_num) {case '1':my_type = "食品";break;case '2':my_type = "化妆品";break;case '3':my_type = "日用品";break;case '4':my_type = "饮料";break;default:my_num = '0';cout << endl << "                 输入错误,请重新输入!" << endl;system("pause");}} while (my_num == '0');                                             //如果输入错误则重新进行选择do {                                                                 //用户输入商品名称并选择修改项目system("cls");cout << endl << "             请输入您要修改的商品的名称:";            cin >> my_name;cout << endl << "               1.修改价格" << endl << "               2.修改库存" << endl;cout << endl << "               请选择您要修改的项目:";                //用户选择修改的项目cin >> my_num;switch (my_num) {case '1':cout << "               请输入新价格:";                         //提示用户输入价格并编辑SQL语句the_sql = "update my_system set price = ";cin >> my_value;the_sql += my_value += " where name = \"";the_sql += my_name += "\" and type = \"";the_sql += my_type += "\"";break;case '2':cout << "               请输入新库存:";                           //提示用户输入库存并编辑SQL语句              the_sql = "update my_system set stock = ";cin >> my_value;the_sql += my_value += " where name = \"";the_sql += my_name += "\" and type = \"";the_sql += my_type += "\"";break;default:my_num = '0';cout << endl << "                 输入错误,请重新输入!" << endl;system("pause");}} while (my_num == '0');mysql_query(&mysql, the_sql.c_str());                                       //执行SQL语句cout << endl << "                    修改成功!" << endl << endl;system("pause");
}//05查询函数
void MySelect() {string my_name, my_manufacturer,the_sql;                               //初始化所需要的局部变量char my_num;do {                                                                   //提示用户选择查询方式system("cls");cout << endl << "         1.按商品类别    2.按商品名称    3.按生产厂家       " << endl;cout << endl << "             请输入序号选择要查询的方式:";         cin >> my_num;switch (my_num) {case '1':cout << endl << "          1.食品   2.化妆品    3.日用品   4.饮料      " << endl;cout << endl << "                 请输入要查询的类型:";          //提示用户选择要查询的类型cin >> my_num;switch (my_num) {                                                 //按不同的类型编写不同的SQL语句并执行case '1':mysql_query(&mysql, "select * from market.my_system where type = '食品'");break;case '2':mysql_query(&mysql, "select * from market.my_system where type = '化妆品'");break;case '3':mysql_query(&mysql, "select * from market.my_system where type = '日用品'");break;case '4':mysql_query(&mysql, "select * from market.my_system where type = '饮料'");break;}break;case '2':cout << endl << "                 请输入要查询的名称:";            //提示用户输入查询的名称cin >> my_name;the_sql = "select * from market.my_system where name = '";           //编辑SQL语句并执行the_sql += my_name += "'";mysql_query(&mysql, the_sql.c_str());break;case '3':cout << endl << "                 请输入要查询的生产厂家:";cin >> my_manufacturer;the_sql = "select * from market.my_system where manufacturer = '";    //编辑SQL语句并执行the_sql += my_manufacturer += "'";mysql_query(&mysql, the_sql.c_str());break;default:my_num = '0';cout << endl << "                    输入错误,请重新输入!" << endl;system("pause");                                                      }} while (my_num == '0');                                                   //如果输入错误则重新输入res = mysql_store_result(&mysql);                                     //获取结果集if (row = mysql_fetch_row(res)) {                                       //如果有数据则分别输出cout << endl << "\t商品名称\t" << "商品类别\t" << "生产厂家\t" << "商品品牌\t" << "商品价格\t" << "商品库存\t" << endl;for (int i = 1; i <= 6; i++) {cout << "\t" << row[i];if (size(string(row[i])) < 8) {                                 //为了排版整齐,若字符长度小于8则多输出一个制表位cout << "\t";}}cout << endl;while (row = mysql_fetch_row(res)) {for (int i = 1; i <= 6; i++) {cout << "\t" << row[i];if (size(string(row[i])) < 8) {cout << "\t";}}cout << endl;}}else {                                                                  //如果没有数据则输出提示并退出查询cout << endl << "                     该记录不存在!" << endl;}cout << endl;system("pause");
}//06统计函数
void MySort() {char my_num;                                                         //初始化所需要的局部变量string the_sql;do {                                                                    //提示用户选择统计的方式并编辑SQL语句system("cls");cout << "         1.按价格统计    2.按库存统计    3.按厂家统计" << endl;cout << "                 请选择要统计的方式:";                       cin >> my_num;switch (my_num) {case '1':the_sql = "select * from my_system order by price desc";break;case '2':the_sql = "select * from my_system order by stock desc";break;case '3':the_sql = "select * from my_system order by manufacturer desc";break;default:my_num = '0';cout << endl << "                 输入错误,请重新输入!" << endl;system("pause");                                                     }} while (my_num == '0');                                               //用户输入错误则重新输入mysql_query(&mysql, the_sql.c_str());res = mysql_store_result(&mysql);                                        //获取结果集if (row = mysql_fetch_row(res)) {                                       //如果有数据则分别输出cout << endl << "\t商品名称\t" << "商品类别\t" << "生产厂家\t" << "商品品牌\t" << "商品价格\t" << "商品库存\t" << endl;for (int i = 1; i <= 6; i++) {cout << "\t" << row[i];if (size(string(row[i])) < 8) {                                 //为了排版整齐,若字符长度小于8则多输出一个制表位cout << "\t";}}cout << endl;while (row = mysql_fetch_row(res)) {for (int i = 1; i <= 6; i++) {cout << "\t" << row[i];if (size(string(row[i])) < 8) {cout << "\t";}}cout << endl;}}else {                                                                  //如果没有数据则输出提示并退出统计cout << endl << "                     该记录不存在!" << endl;}system("pause");
}//展示菜单函数
void ShowMenu() {cout << endl << endl << endl;cout << "                    &&&&&&&&&&&&&&&&&&&&********************&&&&&&&&&&&&&&&&&&&" << endl << endl;cout << "                             ---------欢迎进入超市商品管理系统---------        " << endl << endl;cout << "                            **********       1.购买商品       **********       " << endl << endl;cout << "                            **********       2.添加商品       **********       " << endl << endl;cout << "                            **********       3.删除商品       **********       " << endl << endl;cout << "                            **********       4.修改商品       **********       " << endl << endl;cout << "                            **********       5.查询商品       **********       " << endl << endl;cout << "                            **********       6.统计商品       **********       " << endl << endl;cout << "                            **********       0.退出系统       **********       " << endl << endl;cout << "                    &&&&&&&&&&&&&&&&&&&&********************&&&&&&&&&&&&&&&&&&&" << endl << endl;cout << "                                 请选择您要进行的操作项目(0-6):";
}//链接数据库函数
void MyConnect() {mysql_init(&mysql);                                                       //初始化数据库mysql_options(&mysql, MYSQL_SET_CHARSET_NAME, "gbk");                 //设置字符编码//连接数据库,并检查是否连接成功if (mysql_real_connect(&mysql, "localhost", "root", "zsql1106", "market", 3306, NULL, 0) == NULL) {   printf("错误原因: %s\n", mysql_error(&mysql));printf("连接失败!\n");exit(-1);}else {cout << endl << endl;cout << "                             ------------已连接数据库------------        " << endl << endl;}//检查是否存在数据表,如果没有则新建数据表     int cre = mysql_query(&mysql, "create table my_system(ID int primary key auto_increment,Name char(50),Type char (50),Manufacturer char(50),Brand char(50),Price float,Stock int);");                 if (cre != 0) {if (string(mysql_error(&mysql)) == "Table 'my_system' already exists") {cout << "                             ------------数据表已存在------------        " << endl << endl;}else {cout << "                               " << mysql_error(&mysql) << endl << endl;}}else {cout << "                             ------------已创建数据表------------        " << endl << endl;}system("pause");system("cls");
}//管理员系统
void Management() {char my_num;do {                                                                 //用户输入0-6选择功能system("cls");ShowMenu();cin >> my_num;switch (my_num) {case'1':MyPurchase();break;case'2':MyInsert();break;case'3':MyDelete();break;case'4':MyUpdate();break;case'5':MySelect();break;case'6':MySort();break;case'0':break;default:cout << "输入错误,请重新输入!" << endl;system("pause");}} while (my_num != '0');                                             //输入0退出系统
}//登录选择身份
void MyLogin() {char my_num;                                                            //初始化所需要的局部变量string my_password;do {system("cls");cout << endl << endl;cout << "                                 0. 路人 (退出操作系统)" << endl;cout << "                                 1. 顾客 (仅能进行购买)" << endl;cout << "                                 2. 管理员    (进行全部操作)" << endl << endl;cout << "                                 请选择您的身份:";      //用户选择身份进入系统cin >> my_num;switch (my_num) {case '1':MyPurchase();while (1) {system("cls");cout << endl << "                                 是否继续进行购买?" << endl;cout << "                                 1. 继续购买   2. 退出" << endl;cout << "                                 ";cin >> my_num;if (my_num == '1') {MyPurchase();}else if (my_num == '2') {break;}}break;case'2':cout << "                                 请输入管理员密码:";cin >> my_password;if (my_password == Password) {Management();}else {cout << endl << "                                 密码错误,请重新进行选择!" << endl;system("pause");}break;case'0':break;default:my_num = 'R';cout << endl << "                                 输入错误,请重新进行选择!" << endl;system("pause");}} while (my_num == 'R');cout << endl << "                                 欢迎下次使用本系统!" << endl;mysql_close(&mysql);                                                    //关闭数据库
}//程序主函数
int main() {    MyConnect();                                                            //链接数据库MyLogin();                                                               //进入程序系统return 0;
}
//I Love Munchie Zhou.

C++超市管理系统(MySQL)相关推荐

  1. 超市管理系统java swing+mysql报告_基于java+swing+mysql的超市管理系统

    运行环境:java jdk 1.8 IDE环境:Eclipse,Myeclipse,IDEA都可以 硬件环境:windows 7/8/10 2G内存以上(推荐4G,4G以上更好) 可以实现: 销售管理 ...

  2. java计算机毕业设计社区生活超市管理系统源程序+mysql+系统+lw文档+远程调试

    java计算机毕业设计社区生活超市管理系统源程序+mysql+系统+lw文档+远程调试 java计算机毕业设计社区生活超市管理系统源程序+mysql+系统+lw文档+远程调试 本源码技术栈: 项目架构 ...

  3. 基于Java的超市管理系统源码,数据库MySQL(附加论文13000字)

    目录 1.摘要 2.社会背景 3.系统可行性研究 4.系统的功能结构(图) 5.功能需求 6.开发环境介绍 7.系统数据流(图) 8.数据库(E-R模型) 9.功能展示 10.论文目录结构 11.源码 ...

  4. JSP+Servlet+MySql超市管理系统项目源码

    一. 开发背景 软件名称:超市管理系统(servlet+jsp) 使用对象:学习或了解过 java 基础课程,开始接触 javaWeb 的学生和软件爱好者 源码链接https://pan.baidu. ...

  5. 基于JAVA社区生活超市管理系统计算机毕业设计源码+系统+mysql数据库+lw文档+部署

    基于JAVA社区生活超市管理系统计算机毕业设计源码+系统+mysql数据库+lw文档+部署 基于JAVA社区生活超市管理系统计算机毕业设计源码+系统+mysql数据库+lw文档+部署 本源码技术栈: ...

  6. 计算机毕业设计Java超市管理系统(源码+系统+mysql数据库+lw文档

    计算机毕业设计Java超市管理系统(源码+系统+mysql数据库+lw文档 计算机毕业设计Java超市管理系统(源码+系统+mysql数据库+lw文档) 本源码技术栈: 项目架构:B/S架构 开发语言 ...

  7. Python版超市管理系统源代码,基于django+mysql

    Python版超市管理系统源代码,基于django+mysql 安装步骤 1.在mysql中创建名为demo_django_supermarket的数据库,修改config/setting.py中数据 ...

  8. mysql创建超市管理_C#+mysql实现的超市管理系统

    [实例简介] 本资源是是一套利用C#与MYSQL数据写的小型超市管理系统,可以实现基本的功能. [实例截图] [核心代码] 超市管理系统 └── 超市管理系统 ├── AYCSGJ │   ├── A ...

  9. 「超市管理系统——商品管理」 · Java Swing + MySQL JDBC开发

    项目下载:超市管理系统JavaSwing+MySQLJDBC开发_javamysql超市管理系统-互联网文档类资源-CSDN下载 1.9元付费赞助下载:超市管理系统JavaSwing+MySQLJDB ...

  10. 基于SSM+MySql+Layui的在线生鲜超市管理系统

    项目运行视频(打开观看效果更佳) 基于SSM+MySql+Layui的在线生鲜超市管理系统(附论文)-源码乐园 基于SSM+MySql+Layui的在线生鲜超市管理系统(附论文)-源码乐园_哔哩哔哩_ ...

最新文章

  1. lambda表达式(详)
  2. ubuntu 13.10 amd64安装ia32-libs
  3. JAVA国际化输出日期格式
  4. mybatis获取表名——mybatis动态调用表名和字段名#{},${}
  5. 详细认识一下CSS盒子模型
  6. css的背景图片不显示,wepback打包时,css的背景图片显示不出来,求教!
  7. pytorch—torch.tensor.scatter操作解析
  8. Codevs 1684 垃圾陷阱
  9. Codejock Xtreme MFC 图形界面控件包
  10. java下载 安卓版_java教程手机版-java宝典安卓版下载2.0 官方版-西西软件下载
  11. 百胜erp加密狗驱动_百胜分销系统ERP_DRP用户手册.pdf
  12. 小米无线网卡linux,NanoPi NEO安装小米随身WiFi
  13. 在阿帕奇服务器布置文件,Apache文件列表服务器美化 index of /
  14. echarts 迁徙图
  15. html可视化布局系统源码,一个开源可视化布局项目,在线生成纯css布局,可阅读的代码。...
  16. 家庭网络拓扑结构示意图
  17. 小学计算机走进智慧城堡教案,重庆大学出版社四年级上册信息技术教案设计.docx...
  18. 瑞芯微RK3288处理器详细信息介绍(参数,规格,应用,差异)
  19. ACL2022 PAIE: Prompting Argument Interaction for Event Argument Extraction
  20. 不在以下合法域名列表中,请参考文档:https://mp.weixin.qq.com/debug/wxadoc/dev/api/network-request.html

热门文章

  1. 长沙.NET技术社区正式成立
  2. 魔众EDM邮件营销系统 v1.1.0 页面SEO优化,系统升级调整
  3. 风清扬环保:分析乳化液破乳剂的实际应用
  4. Cpp多重继承会产生的问题
  5. linux各文件夹作用
  6. 爬虫学习01 什么是爬虫 爬虫的分类
  7. xbox360自建服务器,Xbox360自制系统GOD版的游戏怎么安装
  8. Not Adjacent Matrix、Same Differences、Arranging The Sheep
  9. 前端开发工程师需要具备哪些专业技能?
  10. html 6位数支付密码,支付宝支付密码怎么设置长密码 支付宝支付密码取消6位数字密码设置长密码的方法...