超市管理系统 C++(课程设计)

这篇具有很好参考价值的文章主要介绍了超市管理系统 C++(课程设计)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

欢迎光临:

古之立大事者,不惟有超世之才,亦必有坚忍不拔之志。——苏轼
---------------🍎------------🍉--------------
🐼学编程的bird的博客,邀您一起学习🦌
----------------🥕------------🥭-------------

😊很高兴你打开了这篇博客。
★如有疑问不解或者说有想问的地方,都可以在下方评论留言,博主看到会尽快回复的。
★当然,期待你的点赞+关注哦!
————————————————
版权声明:本文为CSDN博主「学编程的bird」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。

源代码下载:我用夸克网盘分享了「超市管理系统.zip」,点击链接即可保存。
链接:https://pan.quark.cn/s/089cc97aa031
提取码:UQSm
原文链接: 超市管理系统 C++_学编程的小bird的博客-CSDN博客​​​​​​


设计内容

超市中商品分为四类,分别是食品、化妆品、日用品和饮料。每种商品都包含商品名称、价格、库存量和生产厂家、品牌等信息。主要完成对商品的销售、统计和简单管理。本系统的软件界面是使用C++编译生成的一个系统操作菜单。操作菜单界面总共有七个选项可以供用户操作选择,分别为购买商品、添加商品、删除商品、修改商品、查询商品、统计商品、退出系统。菜单页面下方有可供用户选择操作项目的指令,当用户选择并输入0-6中的任意数字,系统便会进入相应的功能操作。如果出现错误操作,系统会该处输入错误请从新输入等提示或者自动跳出回到主菜单界面。


 相关功能

(1)销售功能。购买商品时,先输入类别,然后输入商品名称,并在库存中查找该商品的相关信息。如果有库存量,输入购买的数量,进行相应计算。如果库存量不够,给出提示信息,结束购买。

(2)商品简单管理功能。

添加功能:主要完成商品信息的添加。

查询功能:可按商品类别、商品名称、生产厂家进行查询。若存在相应信息,输出所查询的信息,若不存在该记录,则提示“该记录不存在!”。

修改功能:可根据查询结果对相应的记录进行修改。

删除功能:主要完成商品信息的删除。先输入商品类别,再输入要删除的商品名称,根据查询结果删除该物品的记录,如果该商品不在物品库中,则提示“该商品不存在”。

(3)统计功能。

输出当前库存中所有商品的总数及详细信息;可按商品的价格、库存量、生产厂家进行统计,输出统计信息时,要按从大到小排序。


框图

提示:
(1)    类的设计关系
 用c++数据库编写的超市管理系统,课程设计,c++,开发语言
(2)    主功能函数
 用c++数据库编写的超市管理系统,课程设计,c++,开发语言

源代码

#include <iostream>
#include <fstream>
#include <string>      //头文件引入
#include <stdio.h>
#include <conio.h>

using namespace std;

class Objects  //大类
{
public:             //公共权限
    Objects()
    {
    }
    char name[20];//名字
    char kind[20];//种类
    char place[10];//生产地
    char brand[10];//品牌
    float stockprice;  //成本价;
    float purchaseprice; //购买价;
    int stockamount;  //存货数量;
    int sellamount; //售货数量;
    int money;  //花费;
    
   
    Objects* Next;

    void InputAll()   //打印 名称 种类 进货价 售出价  存货数量  产地 品牌
    {
        InputName();
        InputKind();
        InputOther();
    }

    void InputKind()        //打印种类
    {
        cout << "\t\t请选择种类:"; cin >> kind;
    }

    void InputName()        //打印名称
    {
        cout << "\t\t请输入商品的名称:";  cin >> name;
    }

    void InputOther()       //打印  进货价 售出价  存货数量  产地 品牌
    {
        cout << "\t\t请输入进货价:"; cin >> stockprice;
        cout << "\t\t请输入售出价:"; cin >> purchaseprice;
        cout << "\t\t请输入存货数量:"; cin >> stockamount;
        cout << "\t\t请输入商品的产地:"; cin >> place;
        cout << "\t\t请输入生产商品牌:"; cin >> brand;
        money = 0;
    }

    void Inputstockprice()    //打印进货价
    {
        cout << "\t\t请输入进货价:"; cin >> stockprice;

    }
    void Inputpurchaseprice()    //打印售出价
    {
        cout << "\t\t请输入售出价:"; cin >> purchaseprice;

    }
    void Inputstockamount() //打印商品数量
    {
        cout << "\t\t请输入剩余商品数量:"; cin >> stockamount;
    }

    void InputPlace()   //打印商品产地
    {
        cout << "\t\t请输入商品产地:"; cin >> place;
    }

    void Inputbrand()       //打印品牌  
    {
        cout << "\t\t请输入生产商品牌:"; cin >> brand;
    }

    void ReadFile(istream& in)    //将东西存入文件
    {
        in >> name >> kind >> stockprice >> purchaseprice >> stockamount >> place >> brand ;
    }

    void Show2()            //查询和排序某一个商品时打印内容
    {
        cout << "商品名: " << name << endl << "种类:" << kind << endl << "进货价: " << stockprice << endl << "售出价: " << purchaseprice << endl << "剩余商品数量: " <<
            stockamount << endl << "商品的产地: " << place << endl << "生产商品牌: " << brand << endl << endl << endl;
    }
    void Show3()            //购买某一个商品后打印内容
    {
        cout << "商品名: " << name << endl << "种类:" << kind << endl << "售出价: " << purchaseprice << endl << "剩余商品数量: " << stockamount << endl << "生产商品牌: " <<
            brand << endl << "商品的产地: " << place << endl << endl << endl << "共计花费:" << money << endl << endl << endl;
    }
};
class ObjectsInformation : public Objects            // ObjectsInformation类
{
public:                                             //公共权限
    ObjectsInformation();                           //函数声明
    ~ObjectsInformation();
    void showMenu(int n);
    void Find();
    void Save();
    void ModifyItem();
    void RemoveItem();
    void Swap(Objects*, Objects*);
    void my_Sort();
    void purchase();
    int ListCount();

    void Display()                              //统计的时候打印所有商品信息
    {
        system("cls");
        i = 0;
        for (Objects* p = Head->Next; p != End; p = p->Next)
        {
            p->Show2();
            i++;
        }
        cout << "共有" << i << "个商品" << "\n" << endl;
        cout << "输入任意字符!继续……";
        _getch();
    }
    void AddItem()                      //从键盘输入商品信息
    {
        system("cls");
        End->InputName();
        showMenu(1);
        End->InputKind();
        End->InputOther();

        End->Next = new Objects;
        End = End->Next;
        cout << "添加成功!" << endl;
        Save();
        cout << "输入任意字符!继续……";
        _getch();
    }
private:                                 //私有权限
    Objects* Head, * End;
    int i;
    ifstream in;    
    ofstream out;
    Objects* FindItem(char* name)           //通过名称查找商品函数
    {
        for (Objects* p = Head; p->Next != End; p = p->Next)
            if (!strcmp(p->Next->name, name))return p;
        return NULL;
    }
    Objects* Findkind(char* kind)            //通过种类查找商品函数               //匹配成功则返回上一个指针,不成功就返回空
    {
        for (Objects* p = Head; p->Next != End; p = p->Next)
            if (!strcmp(p->Next->kind, kind))return p;
        return NULL;
    }
    Objects* Findbrand(char* brand)         // 通过品牌查找商品函数
    {
        for (Objects* p = Head; p->Next != End; p = p->Next)
            if (!strcmp(p->Next->brand, brand))return p;
        return NULL;
    }

};


ObjectsInformation::ObjectsInformation()                 //构造函数         用于检查是否有库存
{
    Head = new Objects;
    Head->Next = new Objects;
    End = Head->Next;
    in.open("supermarket.txt");
    if (!in)

        cout << "                                       " << endl <<
        "                                       " << endl <<
        "                                       " << endl <<
        "\t\t\t\t超市现在没有任何库存了,赶紧进货吧" << endl;
    else
    {
        while (!in.eof())
        {
            End->ReadFile(in);
            if (End->name[0] == '\0')break;
            End->Next = new Objects;
            End = End->Next;
        }
        in.close();
        cout << "    " << endl;
        cout << "    " << endl;
        cout << "    " << endl;
        cout << "    " << endl;
        cout << "\t\t\t\t超市里面还有一些库存,可以看看" << "\n" << endl;
    }
}
ObjectsInformation::~ObjectsInformation()                //析构函数 释放空间
{
    Save();
    for (Objects* temp; Head->Next != End;)
    {
        temp = Head->Next;
        Head->Next = Head->Next->Next;
        delete temp;
    }
    delete Head, End;
}


void ObjectsInformation::showMenu(int n)//菜单      
{
    switch (n)
    {
    case 1:
    {
        cout << "▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉\n"
            << "      1. 食品      2. 化妆品      3. 日用品      4. 饮料      \n"
            << "▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉\n" << endl;
        break; }
    case 2:
    {
        system("cls");
        cout << "                                  " << endl;
        cout << "                                  " << endl;
        cout << "                                  " << endl;
        cout << "                                  " << endl;
        cout << " ☆ ☆ ☆ ☆ ☆ ☆ ☆  ☆   超 市  管 理 系  统     ☆  ☆ ☆ ☆ ☆ ☆ ☆ ☆" << endl;
        cout << "                                  " << endl; cout << "                                  " << endl;
        cout << "           *************        1.增添商品        *************             " << endl;
        cout << "                                  " << endl;
        cout << "           *************        2.统计商品        *************            " << endl;
        cout << "                                  " << endl;
        cout << "           *************        3.查询商品        *************            " << endl;
        cout << "                                  " << endl;
        cout << "           *************        4.删除商品        *************            " << endl;
        cout << "                                  " << endl;
        cout << "           *************        5.修改商品        *************            " << endl;
        cout << "                                  " << endl;
        cout << "           *************        6.购买商品        *************            " << endl;
        cout << "                                  " << endl;
        cout << "           *************        0.退出系统        *************            " << endl;

        cout << "\t\t\n\t\t\t\t 请选择:0-6" << endl;
        break; }
    case 3:
    {
        system("cls");
        cout << "                                  " << endl;
        cout << "                                  " << endl;

        cout << "                                  " << endl;
        cout << "           *************        1.修改种类          *************            \n ";
        cout << "                                  " << endl;
        cout << "           *************        2.修改名称          *************            \n";
        cout << "                                  " << endl;
        cout << "           *************        3.修改进货价        *************            \n";
        cout << "                                  " << endl;
        cout << "           *************        4.修改售出价        *************            \n";
        cout << "                                  " << endl;
        cout << "           *************        5.修改剩余量        *************            \n ";
        cout << "                                  " << endl;
        cout << "           *************        6.修改产地          *************            \n   ";
        cout << "                                  " << endl;
        cout << "           *************        7.修改品牌          *************            \n   ";
        cout << "                                  " << endl;
        cout << "           *************        8.修改全部信息     *************             " << endl;
        cout << "                                  " << endl;
        cout << "                                  " << endl;
        cout << "            *************        请选择:0-8进行相关操作" << endl;
        break;
    }
    case 4:
    {
        system("cls");
        cout << "                                  " << endl;
        cout << "                                  " << endl;
        cout << "                                  " << endl;
        cout << "*************************************************************************************\n"
            << "\t   1. 按商品价排序            2. 按库存量排序               3. 按生产品牌排序                                   "
            << "**************************************************************************************" << endl;
        cout << "                                  " << endl;
        cout << "                                  " << endl;
        cout << "                                  " << endl;
        cout << "\t\t\n\t\t\t\t  请选择:0-3" << endl;
        break;
    }
    case 5:
    {
        system("cls");
        cout << "                                  " << endl;
        cout << "                                  " << endl;
        cout << "                                  " << endl;
        cout << "*************************************************************************************\n"
            << "\t   1. 按商品名称查询            2. 按商品种类查询               3. 按商品厂家查询                               "
            << "**************************************************************************************" << endl;
        cout << "                                  " << endl;
        cout << "                                  " << endl;
        cout << "                                  " << endl;
        cout << "\t\t\n\t\t\t\t  请选择:0-3" << endl;
    }
    }
}
void ObjectsInformation::Find()       //查找函数
{
    system("cls");
    char name[20], Id[10];
    int x;
    Objects* p = NULL;
    showMenu(5);
    cin >> x;
    switch (x)
    {
    case 1: {cout << "\t\t请输入要查找的商品的名称:"; cin >> name;
        if (p = FindItem(name))
        {
            p->Next->Show2();
            cout << "输入任意字符!继续……";
            _getch();
        }
        else
        {
            cout << "\t\t没有找到该名称的商品!" << '\n' << endl;
            cout << "输入任意字符!继续……";
            _getch();
        }
    }break;
    case 2: {cout << "\t\t请输入要查找的商品的种类:"; cin >> name;
        if (p = Findkind(kind))
        {
            p->Next->Show2();
            cout << "输入任意字符!继续……";
            _getch();
        }
        else
        {
            cout << "\t\t没有找到该种类的商品!" << '\n' << endl;
            cout << "输入任意字符!继续……";
            _getch();
        }
    }break;
    case 3: {cout << "\t\t请输入要查找的厂家的名称:"; cin >> name;
        if (p = Findbrand(brand))
        {
            p->Next->Show2();
            cout << "输入任意字符!继续……";
            _getch();
        }
        else
        {
            cout << "\t\t没有找到该厂家的商品!" << '\n' << endl;
            cout << "输入任意字符!继续……";
            _getch();
        }
    }break;

    }
}
void ObjectsInformation::ModifyItem()         //修改商品信息
{

    showMenu(3);
    int x;
    cin >> x;
    switch (x)
    {

    case 1:
    {
        char name[20];
        Objects* p = NULL;
        cout << "\t\t请输入要修改的商品的名称:"; cin >> name;
        if (p = FindItem(name))
        {
            cout << "\t\t已找到商品的信息,请输入新的信息!" << endl;
            p->Next->InputKind();
            Save();
            cout << "修改成功!" << endl;
            cout << "输入任意字符!继续……";
            _getch();
        }
        else
        {
            cout << "\t\t没有找到您需要的商品!" << endl;
            cout << "输入任意字符!继续……";
            _getch();
        }
        break;
    }
    case 2:
    {
        char name[20];
        Objects* p = NULL;
        cout << "\t\t请输入要修改的商品的名称:"; cin >> name;
        if (p = FindItem(name))
        {
            cout << "\t\t已找到商品的信息,请输入新的信息!" << endl;
            p->Next->InputName();
            Save();
            cout << "修改成功!" << endl;
            cout << "输入任意字符!继续……";
            _getch();
        }
        else
        {
            cout << "\t\t没有找到您需要的商品!" << endl;
            cout << "输入任意字符!继续……";
            _getch();
        }
        break;
    }
    case 3:
    {
        char name[20];
        Objects* p = NULL;
        cout << "\t\t请输入要修改的商品的名称:"; cin >> name;
        if (p = FindItem(name))
        {
            cout << "\t\t已找到商品的信息,请输入新的信息!" << endl;
            p->Next->Inputstockprice();
            Save();
            cout << "修改成功!" << endl;
            cout << "输入任意字符!继续……";
            _getch();
        }
        else
        {
            cout << "\t\t没有找到您需要的商品!" << endl;
            cout << "输入任意字符!继续……";
            _getch();
        }
        break;
    }
    case 4:
    {
        char name[20];
        Objects* p = NULL;
        cout << "\t\t请输入要修改的商品的名称:"; cin >> name;
        if (p = FindItem(name))
        {
            cout << "\t\t已找到商品的信息,请输入新的信息!" << endl;
            p->Next->Inputpurchaseprice();
            Save();
            cout << "修改成功!" << endl;
            cout << "输入任意字符!继续……";
            _getch();
        }
        else
        {
            cout << "\t\t没有找到您需要的商品!" << endl;
            cout << "输入任意字符!继续……";
            _getch();
        }
        break;
    }
    case 5:
    {
        char name[20];
        Objects* p = NULL;
        cout << "\t\t请输入要修改的商品的名称:"; cin >> name;
        if (p = FindItem(name))
        {
            cout << "\t\t已找到商品的信息,请输入新的信息!" << endl;
            p->Next->Inputstockamount();
            Save();
            cout << "修改成功!" << endl;
            cout << "输入任意字符!继续……";
            _getch();
        }
        else
        {
            cout << "\t\t没有找到您需要的商品!" << endl;
            cout << "输入任意字符!继续……";
            _getch();
        }
        break;
    }


    case 6:
    {
        char name[20];
        Objects* p = NULL;
        cout << "\t\t请输入要修改的商品的名称:"; cin >> name;
        if (p = FindItem(name))
        {
            cout << "\t\t已找到商品的信息,请输入新的信息!" << endl;
            p->Next->InputPlace();
            Save();
            cout << "修改成功!" << endl;
            cout << "输入任意字符!继续……";
            _getch();
        }
        else
        {
            cout << "\t\t没有找到您需要的商品!" << endl;
            cout << "输入任意字符!继续……";
            _getch();
        }
        break;
    }
    case 7:
    {
        char name[20];
        Objects* p = NULL;
        cout << "\t\t请输入要修改的商品的名称:"; cin >> name;
        if (p = FindItem(name))
        {
            cout << "\t\t已找到商品的信息,请输入新的信息!" << endl;
            p->Next->Inputbrand();
            Save();
            cout << "修改成功!" << endl;
            cout << "输入任意字符!继续……";
            _getch();
        }
        else
        {
            cout << "\t\t没有找到您需要的商品!" << endl;
            cout << "输入任意字符!继续……";
            _getch();
        }
        break;
    }
    case 8:
    {
        char name[20];
        Objects* p = NULL;
        cout << "\t\t请输入要修改的商品的名称:"; cin >> name;
        if (p = FindItem(name))
        {
            cout << "\t\t已找到商品的信息,请输入新的信息!" << endl;
            p->Next->InputAll();
            Save();
            cout << "修改成功!" << endl;
            cout << "输入任意字符!继续……";
            _getch();
        }
        else
        {
            cout << "\t\t没有找到您需要的商品!" << endl;
            cout << "输入任意字符!继续……";
            _getch();
        }
    }
    }

}
void ObjectsInformation::RemoveItem()          //删除商品信息
{
    system("cls");
    char name[20];
    Objects* p = NULL, * temp = NULL;
    
    cout << "\t\t请输入要删除的商品的名称:" << endl; cin >> name;
    if (p = FindItem(name))
    {
        temp = p->Next;
        p->Next = p->Next->Next;
        delete temp;
        cout << "\t\t删除成功!" << endl;
        Save();
        cout << "输入任意字符!继续……";
        _getch();
    }
    else
    {
        cout << "\t\t没有找到您需要的商品!" << endl;
        cout << "输入任意字符!继续……";
        _getch();
    }
}
void ObjectsInformation::purchase( )           //购买商品
{
    system("cls");
    char name[20]; int i;
    Objects* p = NULL;
    Objects* temp = NULL;

    cout << "\t\t请输入要购买的商品的名称和数量:"; cin >> name; cin >> i;

    if (p = FindItem(name))
    {
        if (p->Next->stockamount > i)
        {
            p->Next->stockamount -= i;
            p->Next->money += i * (p->Next->purchaseprice);
            cout << "商品购买成功!" << "\n";
            cout << "购买商品名称: " << name << "\t" << "数量: " << i << "\n";
            cout << "\n";
            cout << "购买后商品信息: " << endl;


            p->Next->Show3();  //打印购买后的信息

            Save();         //保存信息
            p->Next->money = 0;
            cout << "输入任意字符!继续……";
            _getch();

        }
        else
        {
            cout << "商品数量不够,不能购买" << endl;
            cout << "输入任意字符!继续……";
            _getch();
            purchase();
        }

    }
    else
    {
        cout << "无此种商品,不能购买" << endl;
        cout << "输入任意字符!继续……";
        _getch();
        showMenu(2);
    }

}
void ObjectsInformation::Swap(Objects* p1, Objects* p2)        //交换两个商品的数据  name >> kind >> stockprice >> purchaseprice >> stockamount >> place >> brand ;
{
    Objects* temp = new Objects;
    strcpy_s(temp->name, p1->name);
    strcpy_s(temp->kind, p1->kind);
    temp->stockprice = p1->stockprice;
    temp->purchaseprice = p1->purchaseprice;
    temp->stockamount = p1->stockamount;
    strcpy_s(temp->place, p1->place);
    strcpy_s(temp->brand, p1->brand);


    strcpy_s(p1->name, p2->name);
    strcpy_s(p1->kind, p2->kind);
    strcpy_s(p1->place, p2->place);
    p1->purchaseprice = p2->purchaseprice;
    p1->stockprice = p2->stockprice;
    p1->stockamount = p2->stockamount; 
    strcpy_s(p1->brand, p2->brand);


    strcpy_s(p2->name, temp->name);
    strcpy_s(p2->kind, temp->kind);
    strcpy_s(p2->place, temp->place);
    p2->purchaseprice = temp->purchaseprice;
    p2->stockprice = temp->stockprice;
    p2->stockamount = temp->stockamount;
    strcpy_s(p2->brand, temp->brand);
}
int ObjectsInformation::ListCount()       //统计当前链表的记录总数,返回一个整数
{
    if (!Head)
        return 0;
    int n = 0;
    for (Objects* p = Head->Next; p != End; p = p->Next)
    {
        n++;
    }
    return n;
}
void ObjectsInformation::my_Sort()       //排序商品
{
    showMenu(4);
    int x;
    cin >> x;
    switch (x)
    {
    case 1:
    {
        system("cls");
        cout << "\t\t排序中..." << endl;
        cout << "\n";
        Objects* p = NULL, * p1 = NULL, * k = NULL;
        int n = ObjectsInformation::ListCount();
        if (n < 2)
            return;
        for (p = Head->Next; p != End; p = p->Next)
            for (k = p->Next; k != End; k = k->Next)
            {
                if (p->stockprice > k->stockprice)
                {
                    ObjectsInformation::Swap(p, k);
                }
            }
        Display();
        out.open("supermarket.txt");
        for (Objects* q = Head->Next; q != End; q = q->Next)
            out << q->name << "\t" << q->kind << "\t" << q->stockprice << "\t" << q->purchaseprice << "\t" << q->stockamount << "\t" << q->place << "\t" << q->brand << "\t" << '\n';
        out.close();
        cout << "保存信息成功" << endl;
        cout << "排序完成!" << endl;
        _getch();
        return;
    }
    case 2:
    {
        system("cls");
        cout << "\t\t排序中..." << endl;
        cout << "\n";
        Objects* p = NULL, * p1 = NULL, * k = NULL;
        int n = ObjectsInformation::ListCount();
        if (n < 2)
            return;
        for (p = Head->Next; p != End; p = p->Next)
            for (k = p->Next; k != End; k = k->Next)
            {
                if (p->stockamount > k->stockamount)
                {
                    ObjectsInformation::Swap(p, k);
                }
            }
        Display();
        out.open("supermarket.txt");
        for (Objects* q = Head->Next; q != End; q = q->Next)
            out << q->name << "\t" << q->kind << "\t" << q->stockprice << "\t" << q->purchaseprice << "\t" << q->stockamount << "\t" << q->place << "\t" << q->brand << "\t" << '\n';
        out.close();
        cout << "保存信息成功" << endl;
        cout << "排序完成!" << endl;
        _getch();
        return;
    }
    case 3:
    {
        system("cls");
        cout << "\t\t排序中..." << endl;
        cout << "\n";
        Objects* p = NULL, * p1 = NULL, * k = NULL;
        int n = ObjectsInformation::ListCount();
        if (n < 2)
            return;
        for (p = Head->Next; p != End; p = p->Next)
            for (k = p->Next; k != End; k = k->Next)
            {
                if (p->money > k->money)
                {
                    ObjectsInformation::Swap(p, k);
                }
            }
        Display();
        out.open("supermarket.txt");
        for (Objects* q = Head->Next; q != End; q = q->Next)
            out << q->name << "\t" << q->kind << "\t" << q->stockprice << "\t" << q->purchaseprice << "\t" << q->stockamount << "\t" << q->place << "\t" << q->brand << "\t" << '\n';
        out.close();
        cout << "保存信息成功" << endl;
        cout << "排序完成!" << endl;
        _getch();
        return;
    }
    }
}
void ObjectsInformation::Save()       //保存商品信息到文件函数
{
    
    out.open("supermarket.txt");
    for (Objects* p = Head->Next; p != End; p = p->Next)
        out << p->name << "\t" << p->kind  << "\t" << p->stockprice << "\t" << p->purchaseprice << "\t" << p->stockamount << "\t" << p->place << "\t" << p->brand << "\t" << p->money << '\n';

    out.close();
    cout << "保存信息成功" << endl;
}


int main()
{
    cout << "                                  " << endl;
    cout << "                                  " << endl;
    cout << "                                  " << endl;
    cout << "                                  " << endl;
    cout << "                                  ◢ █ █ █ █ █ █ █ █ █ █ █ █ ◣" << endl;
    cout << "                               █ █ █ █ █ █ █ █ █ █ █ █ █ █ " << endl;
    cout << "                               █ █   ◥ █ █ ◤   █ █ " << endl;
    cout << "                             ◢ █ █ █    ◥ ◤    █ █ ◣" << endl;
    cout << "                             ▊ ▎ █ █ ◣         ◢ █ ▊ ▊" << endl;
    cout << "                             ▊ ▎ █ █ ◤  ●   ●  ◥ █ ▊ ▊" << endl;
    cout << "                             ▊ █ █          █ ▊ ▊" << endl;
    cout << "                             ◥ ▇ █ █  ▊      ▊ █ ▇ ◤                     嗨嗨嗨,欢迎光临老八秘制小超市" << endl;             //欢迎界面
    cout << "                               █ █ ◥▆ ▄ ▄ ▄ ▄ ▆ ◤ █ ▊               ◢▇ ▇◣" << endl;
    cout << "                            ◢ █ █◥◥▆ ▅ ▄ ▂ ▂ ▂ ▂ ▄ ▅ ▆                  ◢█" << endl;
    cout << "                            █ ╳             ╳ █            ◢◤" << endl;
    cout << "                            ◥ █ ◣   ˙     ˙ ◢ █         ◢◤  " << endl;
    cout << "                              ▊             ▊       █" << endl;
    cout << "                              ▊             ▊     ◢◤" << endl;
    cout << "                              ▊      ⊕      █ ▇ ▇ ▇ ◤ " << endl;
    cout << "                             ◢ █ ▇ ▆ ▆ ▆ ▅ ▅ ▅ ▅ ▆ ▆ ▆ ▇ █ " << endl;
    cout << "                             ▊                     ▊   " << endl;


    ObjectsInformation Grade;

    cout << "                                温馨提示:按任意键进入超市后台";
    _getch();
    int x;
    bool quit = false;
    while (!quit)
    {
        Grade.showMenu(2);
        cin >> x;
        switch (x)
        {
        case 0: {quit = true; break; }  //退回界面
        case 1: {Grade.AddItem(); break; }//添加商品
        case 2: {Grade.my_Sort(); break; }//排序商品
        case 3: {Grade.Find(); break; }//查询商品
        case 4: {Grade.RemoveItem(); break; }//删除商品
        case 5: {Grade.ModifyItem(); break; }//修改商品信息
        case 6: {Grade.purchase(); break; }//购买商品
        case 7: {Grade.Save(); break; }//保存信息
        }
    }
    return 0;
}

 系统内容展示:

用c++数据库编写的超市管理系统,课程设计,c++,开发语言

                                                        图1 系统启始页面

用c++数据库编写的超市管理系统,课程设计,c++,开发语言

图2 系统菜单页面

用c++数据库编写的超市管理系统,课程设计,c++,开发语言

图3 系统添加商品页面

用c++数据库编写的超市管理系统,课程设计,c++,开发语言

图4 系统购买商品页面

用c++数据库编写的超市管理系统,课程设计,c++,开发语言

用c++数据库编写的超市管理系统,课程设计,c++,开发语言

图5-6 系统修改商品信息页面

用c++数据库编写的超市管理系统,课程设计,c++,开发语言

图7 系统删除商品信息页面

用c++数据库编写的超市管理系统,课程设计,c++,开发语言

图8 系统查询商品信息页面

用c++数据库编写的超市管理系统,课程设计,c++,开发语言

用c++数据库编写的超市管理系统,课程设计,c++,开发语言

图9 系统统计排序商品信息页面


个人经验分享:

过这次课程设计,加强了我思考和解决问题的能力。在设计同时也是对知识的渴求和对所学知识的加强,由于课本上的知识太多,平时课间的学习并不能很好的理解和运用,所以在这次课程设计过程中,对C++语言有了更深的了解,并且对于其在软件设计的使用有了更多的认识。

本次的课程设计有成功之处也有不足的地方。

成功之处是:本超市管理系统功能齐全并且经校验无错误,而且具备一定的容错性;功能代码有对应的注释信息,以便以后维护;涉及的知识点较全面,有函数、数组、指针、类与类的继承、运算符重载、异常处理机制、文件、链表;涉及的算法有顺序查找、模糊查找、选择排序;有销售信息保存机制,可以将顾客的消费记录保存,以便以后核对和汇总;有商品的库存判断机制,当商品的库存量为空的时候,在管理员进入系统的第一时刻就会提醒他补充存货。

不足之处是:界面比较单调,由于时间关系没有设计出一个美观的界面;由于没有学习数据库和网络,本系统仅仅只能由一台电脑使用;由于知识缺乏,本系统不能连接扫描仪,以至于商品购买时,只能手动输入;其次排序功能只能对3个货品起作用,逻辑较为简单;货品较少的时候,选用直接查询所有商品即可。

以上是我对本系统优劣之处的总结。但是总的来说本系统还是比较成功的,对我们而言,知识上的收获重要,精神上的丰收更加可喜。挫折是一份财富,经历是一份拥有。这次课程设计必将成为我们人生旅途上一个非常美好的回忆!文章来源地址https://www.toymoban.com/news/detail-793495.html

到了这里,关于超市管理系统 C++(课程设计)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • C++课程设计:图书管理系统【附源码】

    课程设计目的   作为软件工程和计算机科学与技术专业的基本课程,课程设计不仅涵盖了C++语言的知识体系,又与工程的实际需要切实相关。通过课程设计的综合性训练,对开发者解决实际问题能力,编程能力,动手能力有很大的提升,更有助于样成良好的编程习惯。 图

    2024年02月07日
    浏览(40)
  • C++课程设计,题目:通讯录管理系统

              1、题目。            2、设计分析。            3、分模块分析。            4、代码实现。 一、题目。 通讯录管理系统 手机通讯录中的联系人的信息既可以存储在手机中,也可以存储在手机卡中,也可以同时存储在两个位置上(每个位置上的存储容量为10

    2024年02月11日
    浏览(46)
  • (c++课程设计)简单车辆管理系统(有五种类型的车辆)代码+报告

    关于这个课程设计 ,差点没把我头发愁没。 好了其实本质还是东拼西凑,编程能力没怎么长进,花里胡哨的东西却学了不少 (不是) 万恶的学院,虽然要求三人一组,但是却分一二三类,三个人代码还不能互相抄袭。 最后每个人都要提交代码,完成报告,答辩。 我严重怀

    2024年02月11日
    浏览(31)
  • VsCode + CMake构建项目 C/C++连接Mysql数据库 | 数据库增删改查C++封装 | 信息管理系统通用代码 ---- 课程笔记

    这个是B站Up主:程序员程子青的视频  C++封装Mysql增删改查操作_哔哩哔哩_bilibili https://www.bilibili.com/video/BV1m24y1a79o/?p=6spm_id_from=pageDrivervd_source=a934d7fc6f47698a29dac90a922ba5a3 安装mysql :mysql 下载和安装和修改MYSQL8.0 数据库存储文件的路径-CSDN博客 创建数据库和表: 参考这篇文章:w

    2024年01月19日
    浏览(50)
  • 基于Javaweb的超市管理系统毕业设计项目源码+数据库+详细设计文档

    介绍 大学校内超市管理系统,实现收银台,商品分类管理,商品库存管理,商品管理,营收统计等功能 完整代码下载地址:基于Javaweb的超市管理系统 软件架构 使用说明 项目导入eclipse 配置tomcat+jdk sql 导入 修改config 下配置文件 本系统是基于B/S架构的武汉理工大学校内超市

    2024年02月09日
    浏览(53)
  • 数据库课程设计------书店管理系统

    书店会员管理系统 具体的效果图看博客-----书店管理系统2(https://blog.csdn.net/qq_45981397/article/details/124062654?spm=1001.2014.3001.5502) 需求分析 (1).信息需求 书店的管理人员和员工可以为管理系统添加图书的购买记录和退书记录. 会员可以购买图书以及退书,工作人员对会员的姓名,

    2024年02月04日
    浏览(46)
  • 数据库课程设计-人事管理系统

    学期就要结束了,要完成一个数据库的课程设计项目,想想自己一个学期下来啥也没学到,现在突然要独立完成一个小项目,不能偷懒,记录一下吧。 代码已经放在文章末尾 ^ v ^ 完成软件下载与环境配置,成功运行老师写好的学生管理系统。  第一次实现用代码弹出具体的

    2024年02月05日
    浏览(52)
  • 跨平台C++ Qt数据库管理系统设计与实战:从理论到实践的全面解析

    在我们的日常生活中,数据无处不在。无论是我们的个人信息,还是我们的购物习惯,甚至是我们的工作记录,都可以被视为数据。这些数据的管理和处理,对于个人和企业来说,都是至关重要的。这就是数据库管理系统(Database Management System,简称DBMS)的重要性所在。 数据

    2024年02月06日
    浏览(66)
  • 数据库系统课程设计(高校成绩管理数据库系统的设计与实现)

    目录 1、需求分析 1 1.1 数据需求描述 1 1.2 系统功能需求 3 1.3 其他性能需求 4 2、概念结构设计 4 2.1 局部E-R图 4 2.2 全局E-R图 5 2.3 优化E-R图 6 3、逻辑结构设计 6 3.1 关系模式设计 6 3.2 数据类型定义 6 3.3 关系模式的优化 8 4、物理结构设计 9 4.1 聚簇设计 9 4.2 索引设计 9 4.3 分区设

    2024年02月03日
    浏览(72)
  • java课程设计(学生信息管理系统设计)+数据库

    🔍 🔎 本期带领大家一起来学习 java课程设计(学生信息管理系统设计)+数据库 的实现思路 🔍 🔎 学生信息包括:学号,姓名,年龄,性别,出生年月,地址,电话,E-mail等。试设计学生信息管理系统,使之能提供以下功能: 1、系统以菜单方式工作 2、学生信息录入功能

    2024年02月08日
    浏览(59)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包