古之立大事者,不惟有超世之才,亦必有堅忍不拔之志。——蘇軾
“只有客戶發(fā)展了,才有我們的生存與發(fā)展!”這是創(chuàng)新互聯(lián)公司的服務(wù)宗旨!把網(wǎng)站當(dāng)作互聯(lián)網(wǎng)產(chǎn)品,產(chǎn)品思維更注重全局思維、需求分析和迭代思維,在網(wǎng)站建設(shè)中就是為了建設(shè)一個不僅審美在線,而且實用性極高的網(wǎng)站。創(chuàng)新互聯(lián)對成都做網(wǎng)站、成都網(wǎng)站建設(shè)、網(wǎng)站制作、網(wǎng)站開發(fā)、網(wǎng)頁設(shè)計、網(wǎng)站優(yōu)化、網(wǎng)絡(luò)推廣、探索永無止境。
---------------🍎------------🍉--------------
🐼學(xué)編程的bird的博客,邀您一起學(xué)習(xí)🦌
----------------🥕------------🥭-------------😊很高興你打開了這篇博客。
★如有疑問不解或者說有想問的地方,都可以在下方評論留言,博主看到會盡快回復(fù)的。
★當(dāng)然,期待你的點贊+關(guān)注哦!
————————————————
版權(quán)聲明:本文為博主「學(xué)編程的bird」的原創(chuàng)文章,遵循CC 4.0 BY-SA版權(quán)協(xié)議,轉(zhuǎn)載請附上原文出處鏈接及本聲明。
原文鏈接:?超市管理系統(tǒng) C++_學(xué)編程的小bird的博客-博客https://blog.csdn.net/m0_64069699/article/details/125065247?spm=1001.2014.3001.5502
超市中商品分為四類,分別是食品、化妝品、日用品和飲料。每種商品都包含商品名稱、價格、庫存量和生產(chǎn)廠家、品牌等信息。主要完成對商品的銷售、統(tǒng)計和簡單管理。本系統(tǒng)的軟件界面是使用C++編譯生成的一個系統(tǒng)操作菜單。操作菜單界面總共有七個選項可以供用戶操作選擇,分別為購買商品、添加商品、刪除商品、修改商品、查詢商品、統(tǒng)計商品、退出系統(tǒng)。菜單頁面下方有可供用戶選擇操作項目的指令,當(dāng)用戶選擇并輸入0-6中的任意數(shù)字,系統(tǒng)便會進(jìn)入相應(yīng)的功能操作。如果出現(xiàn)錯誤操作,系統(tǒng)會該處輸入錯誤請從新輸入等提示或者自動跳出回到主菜單界面。
(1)銷售功能。購買商品時,先輸入類別,然后輸入商品名稱,并在庫存中查找該商品的相關(guān)信息。如果有庫存量,輸入購買的數(shù)量,進(jìn)行相應(yīng)計算。如果庫存量不夠,給出提示信息,結(jié)束購買。
(2)商品簡單管理功能。
添加功能:主要完成商品信息的添加。
查詢功能:可按商品類別、商品名稱、生產(chǎn)廠家進(jìn)行查詢。若存在相應(yīng)信息,輸出所查詢的信息,若不存在該記錄,則提示“該記錄不存在!”。
修改功能:可根據(jù)查詢結(jié)果對相應(yīng)的記錄進(jìn)行修改。
刪除功能:主要完成商品信息的刪除。先輸入商品類別,再輸入要刪除的商品名稱,根據(jù)查詢結(jié)果刪除該物品的記錄,如果該商品不在物品庫中,則提示“該商品不存在”。
(3)統(tǒng)計功能。
輸出當(dāng)前庫存中所有商品的總數(shù)及詳細(xì)信息;可按商品的價格、庫存量、生產(chǎn)廠家進(jìn)行統(tǒng)計,輸出統(tǒng)計信息時,要按從大到小排序。
源代碼提示:
(1)?? ?類的設(shè)計關(guān)系
(2)?? ?主功能函數(shù)
#include#include#include //頭文件引入
#include#includeusing namespace std;
class Objects //大類
{
public: //公共權(quán)限
Objects()
{
}
char name[20];//名字
char kind[20];//種類
char place[10];//生產(chǎn)地
char brand[10];//品牌
float stockprice; //成本價;
float purchaseprice; //購買價;
int stockamount; //存貨數(shù)量;
int sellamount; //售貨數(shù)量;
int money; //花費;
Objects* Next;
void InputAll() //打印 名稱 種類 進(jìn)貨價 售出價 存貨數(shù)量 產(chǎn)地 品牌
{
InputName();
InputKind();
InputOther();
}
void InputKind() //打印種類
{
cout<< "\t\t請選擇種類:"; cin >>kind;
}
void InputName() //打印名稱
{
cout<< "\t\t請輸入商品的名稱:"; cin >>name;
}
void InputOther() //打印 進(jìn)貨價 售出價 存貨數(shù)量 產(chǎn)地 品牌
{
cout<< "\t\t請輸入進(jìn)貨價:"; cin >>stockprice;
cout<< "\t\t請輸入售出價:"; cin >>purchaseprice;
cout<< "\t\t請輸入存貨數(shù)量:"; cin >>stockamount;
cout<< "\t\t請輸入商品的產(chǎn)地:"; cin >>place;
cout<< "\t\t請輸入生產(chǎn)商品牌:"; cin >>brand;
money = 0;
}
void Inputstockprice() //打印進(jìn)貨價
{
cout<< "\t\t請輸入進(jìn)貨價:"; cin >>stockprice;
}
void Inputpurchaseprice() //打印售出價
{
cout<< "\t\t請輸入售出價:"; cin >>purchaseprice;
}
void Inputstockamount() //打印商品數(shù)量
{
cout<< "\t\t請輸入剩余商品數(shù)量:"; cin >>stockamount;
}
void InputPlace() //打印商品產(chǎn)地
{
cout<< "\t\t請輸入商品產(chǎn)地:"; cin >>place;
}
void Inputbrand() //打印品牌
{
cout<< "\t\t請輸入生產(chǎn)商品牌:"; cin >>brand;
}
void ReadFile(istream& in) //將東西存入文件
{
in >>name >>kind >>stockprice >>purchaseprice >>stockamount >>place >>brand ;
}
void Show2() //查詢和排序某一個商品時打印內(nèi)容
{
cout<< "商品名: "<< name<< endl<< "種類:"<< kind<< endl<< "進(jìn)貨價: "<< stockprice<< endl<< "售出價: "<< purchaseprice<< endl<< "剩余商品數(shù)量: "<<
stockamount<< endl<< "商品的產(chǎn)地: "<< place<< endl<< "生產(chǎn)商品牌: "<< brand<< endl<< endl<< endl;
}
void Show3() //購買某一個商品后打印內(nèi)容
{
cout<< "商品名: "<< name<< endl<< "種類:"<< kind<< endl<< "售出價: "<< purchaseprice<< endl<< "剩余商品數(shù)量: "<< stockamount<< endl<< "生產(chǎn)商品牌: "<<
brand<< endl<< "商品的產(chǎn)地: "<< place<< endl<< endl<< endl<< "共計花費:"<< money<< endl<< endl<< endl;
}
};
class ObjectsInformation : public Objects // ObjectsInformation類
{
public: //公共權(quán)限
ObjectsInformation(); //函數(shù)聲明
~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() //統(tǒng)計的時候打印所有商品信息
{
system("cls");
i = 0;
for (Objects* p = Head->Next; p != End; p = p->Next)
{
p->Show2();
i++;
}
cout<< "共有"<< i<< "個商品"<< "\n"<< endl;
cout<< "輸入任意字符!繼續(xù)……";
_getch();
}
void AddItem() //從鍵盤輸入商品信息
{
system("cls");
End->InputName();
showMenu(1);
End->InputKind();
End->InputOther();
End->Next = new Objects;
End = End->Next;
cout<< "添加成功!"<< endl;
Save();
cout<< "輸入任意字符!繼續(xù)……";
_getch();
}
private: //私有權(quán)限
Objects* Head, * End;
int i;
ifstream in;
ofstream out;
Objects* FindItem(char* name) //通過名稱查找商品函數(shù)
{
for (Objects* p = Head; p->Next != End; p = p->Next)
if (!strcmp(p->Next->name, name))return p;
return NULL;
}
Objects* Findkind(char* kind) //通過種類查找商品函數(shù) //匹配成功則返回上一個指針,不成功就返回空
{
for (Objects* p = Head; p->Next != End; p = p->Next)
if (!strcmp(p->Next->kind, kind))return p;
return NULL;
}
Objects* Findbrand(char* brand) // 通過品牌查找商品函數(shù)
{
for (Objects* p = Head; p->Next != End; p = p->Next)
if (!strcmp(p->Next->brand, brand))return p;
return NULL;
}
};
ObjectsInformation::ObjectsInformation() //構(gòu)造函數(shù) 用于檢查是否有庫存
{
Head = new Objects;
Head->Next = new Objects;
End = Head->Next;
in.open("supermarket.txt");
if (!in)
cout<< " "<< endl<<
" "<< endl<<
" "<< endl<<
"\t\t\t\t超市現(xiàn)在沒有任何庫存了,趕緊進(jìn)貨吧"<< 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() //析構(gòu)函數(shù) 釋放空間
{
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<< " ☆ ☆ ☆ ☆ ☆ ☆ ☆ ☆ 超 市 管 理 系 統(tǒng) ☆ ☆ ☆ ☆ ☆ ☆ ☆ ☆"<< endl;
cout<< " "<< endl; cout<< " "<< endl;
cout<< " ************* 1.增添商品 ************* "<< endl;
cout<< " "<< endl;
cout<< " ************* 2.統(tǒng)計商品 ************* "<< 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.退出系統(tǒng) ************* "<< 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.修改進(jìn)貨價 ************* \n";
cout<< " "<< endl;
cout<< " ************* 4.修改售出價 ************* \n";
cout<< " "<< endl;
cout<< " ************* 5.修改剩余量 ************* \n ";
cout<< " "<< endl;
cout<< " ************* 6.修改產(chǎn)地 ************* \n ";
cout<< " "<< endl;
cout<< " ************* 7.修改品牌 ************* \n ";
cout<< " "<< endl;
cout<< " ************* 8.修改全部信息 ************* "<< endl;
cout<< " "<< endl;
cout<< " "<< endl;
cout<< " ************* 請選擇:0-8進(jìn)行相關(guān)操作"<< endl;
break;
}
case 4:
{
system("cls");
cout<< " "<< endl;
cout<< " "<< endl;
cout<< " "<< endl;
cout<< "*************************************************************************************\n"
<< "\t 1. 按商品價排序 2. 按庫存量排序 3. 按生產(chǎn)品牌排序 "
<< "**************************************************************************************"<< 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() //查找函數(shù)
{
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<< "輸入任意字符!繼續(xù)……";
_getch();
}
else
{
cout<< "\t\t沒有找到該名稱的商品!"<< '\n'<< endl;
cout<< "輸入任意字符!繼續(xù)……";
_getch();
}
}break;
case 2: {cout<< "\t\t請輸入要查找的商品的種類:"; cin >>name;
if (p = Findkind(kind))
{
p->Next->Show2();
cout<< "輸入任意字符!繼續(xù)……";
_getch();
}
else
{
cout<< "\t\t沒有找到該種類的商品!"<< '\n'<< endl;
cout<< "輸入任意字符!繼續(xù)……";
_getch();
}
}break;
case 3: {cout<< "\t\t請輸入要查找的廠家的名稱:"; cin >>name;
if (p = Findbrand(brand))
{
p->Next->Show2();
cout<< "輸入任意字符!繼續(xù)……";
_getch();
}
else
{
cout<< "\t\t沒有找到該廠家的商品!"<< '\n'<< endl;
cout<< "輸入任意字符!繼續(xù)……";
_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<< "輸入任意字符!繼續(xù)……";
_getch();
}
else
{
cout<< "\t\t沒有找到您需要的商品!"<< endl;
cout<< "輸入任意字符!繼續(xù)……";
_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<< "輸入任意字符!繼續(xù)……";
_getch();
}
else
{
cout<< "\t\t沒有找到您需要的商品!"<< endl;
cout<< "輸入任意字符!繼續(xù)……";
_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<< "輸入任意字符!繼續(xù)……";
_getch();
}
else
{
cout<< "\t\t沒有找到您需要的商品!"<< endl;
cout<< "輸入任意字符!繼續(xù)……";
_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<< "輸入任意字符!繼續(xù)……";
_getch();
}
else
{
cout<< "\t\t沒有找到您需要的商品!"<< endl;
cout<< "輸入任意字符!繼續(xù)……";
_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<< "輸入任意字符!繼續(xù)……";
_getch();
}
else
{
cout<< "\t\t沒有找到您需要的商品!"<< endl;
cout<< "輸入任意字符!繼續(xù)……";
_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<< "輸入任意字符!繼續(xù)……";
_getch();
}
else
{
cout<< "\t\t沒有找到您需要的商品!"<< endl;
cout<< "輸入任意字符!繼續(xù)……";
_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<< "輸入任意字符!繼續(xù)……";
_getch();
}
else
{
cout<< "\t\t沒有找到您需要的商品!"<< endl;
cout<< "輸入任意字符!繼續(xù)……";
_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<< "輸入任意字符!繼續(xù)……";
_getch();
}
else
{
cout<< "\t\t沒有找到您需要的商品!"<< endl;
cout<< "輸入任意字符!繼續(xù)……";
_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<< "輸入任意字符!繼續(xù)……";
_getch();
}
else
{
cout<< "\t\t沒有找到您需要的商品!"<< endl;
cout<< "輸入任意字符!繼續(xù)……";
_getch();
}
}
void ObjectsInformation::purchase( ) //購買商品
{
system("cls");
char name[20]; int i;
Objects* p = NULL;
Objects* temp = NULL;
cout<< "\t\t請輸入要購買的商品的名稱和數(shù)量:"; 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"<< "數(shù)量: "<< i<< "\n";
cout<< "\n";
cout<< "購買后商品信息: "<< endl;
p->Next->Show3(); //打印購買后的信息
Save(); //保存信息
p->Next->money = 0;
cout<< "輸入任意字符!繼續(xù)……";
_getch();
}
else
{
cout<< "商品數(shù)量不夠,不能購買"<< endl;
cout<< "輸入任意字符!繼續(xù)……";
_getch();
purchase();
}
}
else
{
cout<< "無此種商品,不能購買"<< endl;
cout<< "輸入任意字符!繼續(xù)……";
_getch();
showMenu(2);
}
}
void ObjectsInformation::Swap(Objects* p1, Objects* p2) //交換兩個商品的數(shù)據(jù) 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() //統(tǒng)計當(dāng)前鏈表的記錄總數(shù),返回一個整數(shù)
{
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() //保存商品信息到文件函數(shù)
{
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<< " 溫馨提示:按任意鍵進(jìn)入超市后臺";
_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;
}
??????????????????????? ???????????????????? 圖1 系統(tǒng)啟始頁面
圖2 系統(tǒng)菜單頁面
圖3 系統(tǒng)添加商品頁面
圖4 系統(tǒng)購買商品頁面
圖5-6 系統(tǒng)修改商品信息頁面
圖7 系統(tǒng)刪除商品信息頁面
圖8 系統(tǒng)查詢商品信息頁面
圖9 系統(tǒng)統(tǒng)計排序商品信息頁面
過這次課程設(shè)計,加強(qiáng)了我思考和解決問題的能力。在設(shè)計同時也是對知識的渴求和對所學(xué)知識的加強(qiáng),由于課本上的知識太多,平時課間的學(xué)習(xí)并不能很好的理解和運用,所以在這次課程設(shè)計過程中,對C++語言有了更深的了解,并且對于其在軟件設(shè)計的使用有了更多的認(rèn)識。
本次的課程設(shè)計有成功之處也有不足的地方。
成功之處是:本超市管理系統(tǒng)功能齊全并且經(jīng)校驗無錯誤,而且具備一定的容錯性;功能代碼有對應(yīng)的注釋信息,以便以后維護(hù);涉及的知識點較全面,有函數(shù)、數(shù)組、指針、類與類的繼承、運算符重載、異常處理機(jī)制、文件、鏈表;涉及的算法有順序查找、模糊查找、選擇排序;有銷售信息保存機(jī)制,可以將顧客的消費記錄保存,以便以后核對和匯總;有商品的庫存判斷機(jī)制,當(dāng)商品的庫存量為空的時候,在管理員進(jìn)入系統(tǒng)的第一時刻就會提醒他補(bǔ)充存貨。
不足之處是:界面比較單調(diào),由于時間關(guān)系沒有設(shè)計出一個美觀的界面;由于沒有學(xué)習(xí)數(shù)據(jù)庫和網(wǎng)絡(luò),本系統(tǒng)僅僅只能由一臺電腦使用;由于知識缺乏,本系統(tǒng)不能連接掃描儀,以至于商品購買時,只能手動輸入;其次排序功能只能對3個貨品起作用,邏輯較為簡單;貨品較少的時候,選用直接查詢所有商品即可。
以上是我對本系統(tǒng)優(yōu)劣之處的總結(jié)。但是總的來說本系統(tǒng)還是比較成功的,對我們而言,知識上的收獲重要,精神上的豐收更加可喜。挫折是一份財富,經(jīng)歷是一份擁有。這次課程設(shè)計必將成為我們?nèi)松猛旧弦粋€非常美好的回憶!
你是否還在尋找穩(wěn)定的海外服務(wù)器提供商?創(chuàng)新互聯(lián)www.cdcxhl.cn海外機(jī)房具備T級流量清洗系統(tǒng)配攻擊溯源,準(zhǔn)確流量調(diào)度確保服務(wù)器高可用性,企業(yè)級服務(wù)器適合批量采購,新人活動首月15元起,快前往官網(wǎng)查看詳情吧
網(wǎng)頁題目:超市管理系統(tǒng)C++(課程設(shè)計)-創(chuàng)新互聯(lián)
文章網(wǎng)址:http://aaarwkj.com/article36/iepsg.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供標(biāo)簽優(yōu)化、虛擬主機(jī)、電子商務(wù)、品牌網(wǎng)站建設(shè)、云服務(wù)器、網(wǎng)站導(dǎo)航
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容