本文采用C++和PHP实现商城小程序源码交互式购物和各平台兼容,该系统源码提供以下功能:
1、用户将能够购买商品,如笔记本电脑、计算机课程等。
2、用户将能够添购物车。
3、用户将能够减少数量或删除商品。
4、用户将能够打印账单。
完整源码及演示:xcxyms.top
源码设计思路:
首先,菜单会显示给顾客。选择之后,所有的产品及其价格都会显示出来。然后客户选择产品并选择数量(产品数量)。这个过程将一直持续到购物完成。每当客户完成购物时,就会显示商品、数量、成本,最后是要支付的总金额。
下面是上述功能的实现:
// that illustrates Online shopping
#include <bits/stdc++.h>
#include <cstring>
#include <iostream>
#include <map>
using namespace std;
char c1, confirm_quantity;
float quantity;
int selectedNum;
double total_amount = 0;
int flag = 0;
// Stores items with their corresponding
// price
map<string, double> items = {
{ "Samsung", 15000 },
{ "Redmi", 12000 },
{ "Apple", 100000 },
{ "Macbook", 250000 },
{ "HP", 40000 },
{ "Lenovo", 35000 },
{ "C", 1000 },
{ "C++", 3000 },
{ "Java", 4000 },
{ "Python", 3500 }
};
// Stores the selected items with
// their quantity
map<string, int> selected_items;
// Function to print the bill after shopping
// is completed prints the items, quantity,
// their cost along with total amount
void printBill(map<string, double> items,
map<string, int> selected_items,
float total_amount)
{
cout << "Item "
<< "Quantity "
<< "Cost\n";
for (auto j = selected_items.begin();
j != selected_items.end(); j++) {
cout << j->first << " ";
cout << j->second << " ";
cout << (selected_items[j->first])
* (items[j->first])
<< endl;
}
cout << "-----------------------"
<< "-------------\n";
cout << "Total amount: "
<< total_amount << endl;
cout << "-----------------------"
<< "-------------\n";
cout << "*****THANK YOU && HAPPY"
<< " ONLINE SHOPPING*****";
}
// Function to ask the basic details of
// any customer
void customerDetails()
{
cout << "Enter your name: ";
string customer_name;
getline(cin, customer_name);
cout << "WELCOME ";
for (int i = 0;
i < customer_name.length();
i++) {
cout << char(toupper(
customer_name[i]));
}
cout << "\n";
}
// showMenu() is to print the
// menu to the user
void showMenu()
{
cout << "Menu\n";
cout << "= = = = = = = = "
<< " = = = = = \n";
cout << "1.Mobile\n2.laptop\n3"
<< ".Computer courses\n";
cout << "= = = = = = = = "
<< " = = = = = \n";
}
// Function to display the mobile products
void showMobileMenu()
{
cout << "- - - - - - - - - - -"
<< " - -\nItem Cost\n";
cout << "1.Samsung Rs.15, 000/-\n";
cout << "2.Redmi Rs.12, 000/-\n";
cout << "3.Apple Rs.1, 00, 000/-\n";
cout << "- - - - - - - - - - - - -\n";
}
// Function to display Laptop products
void showLaptopMenu()
{
cout << "- - - - - - - - - - -"
<< " - -\nItem Cost\n";
cout << "1.Macbook Rs.2, 00, 000/-\n";
cout << "2.HP Rs.40, 000/-\n";
cout << "3.Lenovo Rs.35, 000/-\n";
cout << "- - - - - - - - - - - - -\n";
}
// if the user selects computer courses,
// then courses list will be displayed
void showComputerCourseMenu()
{
cout << "- - - - - - - - - - "
<< " - -\nItem Cost\n";
cout << "1.C Rs.1, 000/-\n";
cout << "2.C++ Rs.3, 000/-\n";
cout << "3.Java Rs.4, 000/-\n";
cout << "4.Python Rs.3, 500/-\n";
cout << "- - - - - - - - - - - - -\n";
}
// Function to display the mobile category
void selectedMobile()
{
cout << "Do you wish to conti"
<< "nue?(for yes" + "press (Y/y ), "
<< " if no press other letter ): ";
cin >> c1;
if (c1 == 'Y' || c1 == 'y') {
cout << "Enter respective number: ";
cin >> selectedNum;
if (selectedNum == 1
|| selectedNum == 2
|| selectedNum == 3) {
// Selected Samsung
if (selectedNum == 1) {
cout << "selected Samsung\n";
do {
cout << "Quantity: ";
cin >> quantity;
cout << "You have selected Samsung - "
<< quantity << endl;
cout << "Are you sure?"
<< "(for yes press (Y/y ), "
<< " if no press other letter): ";
cin >> confirm_quantity;
} while ((confirm_quantity != 'y'
&& confirm_quantity != 'Y')
|| (quantity < 0)
|| (ceil(quantity) != floor(quantity)));
if (confirm_quantity == 'y'
|| confirm_quantity == 'Y') {
total_amount += quantity
* items["Samsung"];
selected_items["Samsung"] = quantity;
cout << "amount = "
<< total_amount << endl;
}
}
// Selected Redmi
if (selectedNum == 2) {
cout << "selected Redmi\n";
do {
cout << "Quantity: ";
cin >> quantity;
cout << "You have selec"
<< "ted Redmi - "
<< quantity << endl;
cout << "Are you sure?(f"
<< "or yes press (Y/y ), "
<< " if no press other letter ): ";
cin >> confirm_quantity;
} while ((confirm_quantity != 'y'
&& confirm_quantity != 'Y')
|| (quantity < 0)
|| (ceil(quantity)
!= floor(quantity)));
if (confirm_quantity == 'y'
|| confirm_quantity == 'Y') {
total_amount += quantity
* items["Redmi"];
selected_items["Redmi"] = quantity;
cout << "amount = "
<< total_amount << endl;
}
}
// Selected Apple
if (selectedNum == 3) {
cout << "You have selected Apple\n";
do {
cout << "Quantity: ";
cin >> quantity;
cout << "You have selected"
<< " Apple - "
<< quantity
<< endl;
cout << "Are you sure?"
<< "(for yes press (Y/y )"
<< ", if no press other letter ): ";
cin >> confirm_quantity;
} while ((confirm_quantity != 'y'
&& confirm_quantity != 'Y')
|| (quantity < 0)
|| (ceil(quantity)
!= floor(quantity)));
if (confirm_quantity == 'y'
|| confirm_quantity == 'Y') {
total_amount += quantity
* items["Apple"];
selected_items["Apple"] = quantity;
cout << "amount = "
<< total_amount
<< endl;
}
}
}
else {
flag = 1;
}
}
else {
flag = 1;
}
}
// If Laptop category is selected
void selectedLaptop()
{
cout << "Do you wish to continue?"
<< "(for yes press (Y/y ), "
<< "if no press other letter): ";
cin >> c1;
if (c1 == 'Y' || c1 == 'y') {
cout << "Enter respective number: ";
cin >> selectedNum;
if (selectedNum == 1
|| selectedNum == 2
|| selectedNum == 3) {
// selected Macbook
if (selectedNum == 1) {
cout << "selected Macbook\n";
do {
cout << "Quantity: ";
cin >> quantity;
cout << "You have selected"
<< " Macbook - "
<< quantity << endl;
cout << "Are you sure?"
<< "(for yes press (Y/y ), "
<< " if no press other letter ): ";
cin >> confirm_quantity;
} while ((confirm_quantity != 'y'
&& confirm_quantity != 'Y')
|| (quantity < 0)
|| (ceil(quantity)
!= floor(quantity)));
if (confirm_quantity == 'y'
|| confirm_quantity == 'Y') {
total_amount += quantity
* items["Macbook"];
selected_items["Macbook"] = quantity;
cout << "amount = "
<< total_amount
<< endl;
}
}
// selected HP
if (selectedNum == 2) {
cout << "selected HP\n";
do {
cout << "Quantity: ";
cin >> quantity;
cout << "You have selected"
<< " HP - "
<< quantity << endl;
cout << "Are you sure?"
<< "(for yes press (Y/y ), "
<< " if no press other letter ): ";
cin >> confirm_quantity;
} while ((confirm_quantity
!= 'y'
&& confirm_quantity != 'Y')
|| (quantity < 0)
|| (ceil(quantity)
!= floor(quantity)));
if (confirm_quantity == 'y'
|| confirm_quantity == 'Y') {
total_amount += quantity
* items["HP"];
selected_items["HP"] = quantity;
cout << "amount = "
<< total_amount
<< endl;
}
}
// selected Lenovo
if (selectedNum == 3) {
cout << "selected Lenovo\n";
do {
cout << "Quantity: ";
cin >> quantity;
cout << "You have selected"
" Lenovo - "
<< quantity << endl;
cout << "Are you sure?"
<< "(for yes press (Y/y ), "
<< "if no press other letter ): ";
cin >> confirm_quantity;
} while ((confirm_quantity != 'y'
&& confirm_quantity != 'Y')
|| (quantity < 0)
|| (ceil(quantity)
!= floor(quantity)));
if (confirm_quantity == 'y'
|| confirm_quantity == 'Y') {
total_amount += quantity
* items["Lenovo"];
selected_items["Lenovo"] = quantity;
cout << "amount = "
<< total_amount
<< endl;
}
}
}
else {
flag = 1;
}
}
else {
flag = 1;
}
}
// If computer course
// category is selected
void selectedCourses()
{
cout << "Do you wish to continue?"
<< "(for yes press (Y/y ), "
<< " if no press other letter ): ";
cin >> c1;
if (c1 == 'Y' || c1 == 'y') {
cout << "Enter the respective number: ";
cin >> selectedNum;
if (selectedNum == 1
|| selectedNum == 2
|| selectedNum == 3
|| selectedNum == 4) {
// selected C
if (selectedNum == 1) {
cout << "selected C Language"
<< " course\n";
total_amount += items["C"];
selected_items["C"]++;
cout << "amount = "
<< total_amount
<< endl;
}
// selected C++
if (selectedNum == 2) {
cout << "selected C++ Language course\n";
total_amount += items["C++"];
selected_items["C++"]++;
cout << "amount = " << total_amount << endl;
}
// selected Java
if (selectedNum == 3) {
cout << "selected Java Language course\n";
total_amount += items["Java"];
selected_items["Java"]++;
cout << "amount = " << total_amount << endl;
}
// selected python
if (selectedNum == 4) {
cout << "selected Python"
<< " Language course\n";
total_amount += items["Python"];
selected_items["Python"]++;
cout << "amount = "
<< total_amount
<< endl;
}
}
else {
flag = 1;
}
}
else {
flag = 1;
}
}
// Driver code
int main()
{
// function call
customerDetails();
do {
showMenu();
cout << "Do you wish to continue?"
<< "(for yes press (Y/y ), "
<< " if no press other letter ): ";
char c;
cin >> c;
if (c == 'Y' || c == 'y') {
cout << "Enter respective number: ";
int num;
cin >> num;
if (num == 1 || num == 2
|| num == 3) {
switch (num) {
case 1:
// For Mobile
showMobileMenu();
selectedMobile();
break;
case 2:
// For Laptop
showLaptopMenu();
selectedLaptop();
break;
case 3:
// For computer course
showComputerCourseMenu();
selectedCourses();
break;
}
}
else {
flag = 1;
}
}
else {
flag = 1;
}
} while (flag == 0);
// print bill
printBill(items, selected_items,
total_amount);
}
输出:
让我们假设,某人需要购买2台红米手机、1台HP笔记本电脑和一门Java课程。
视频输出:
演示:
第1步:首先,构造一个map(比如map 项),它存储产品及其成本。构造另一个映射(比如map selected_items),它用于推送已选项及其数量。然后将total_amount(存储总量)初始化为0。使用标志并初始化为0。如果客户给出了错误的输入,那么标志将更改为1,并通过打印商品及其价格直接退出,然后打印总数。
第二步:询问细节例如——客户的名字。在我们的代码中,customerDetails()函数就是为此目的而构造的。Toupper()用于将字符串中的所有字符转换为大写。
步骤3:向用户显示菜单。为此创建了showMenu()函数。
第四步:询问用户是否想要继续。这里使用了do-while循环,该循环一直持续到标志变为1。当标志变为1时,它直接打印账单。
如果是,他需要进入Y / Y然后要求用户从菜单中输入相应的数字。如果输入了错误的数字,则标志更改为1。
如果输入有效,则显示所选类型的产品。要求用户输入相应的号码。如果它无效,则标志更改为1。
由于产品很多,所以使用了一个开关案例,其中参数是用户输入的编号(项目对应的编号)。
现在各自的案例都被执行了。首先,询问数量,然后询问用户是否确定输入的数量。如果他不确定(或)如果数量不是整数,那么他将被再次询问,直到两个条件都满足。
如果他确定所选产品的数量,那么该产品及其数量将被推入selected_items映射。
这个过程一直持续到标志变为1。
否则,他可以输入除Y/ Y以外的任何字母。然后标志变为1。
下面是一些屏幕截图,显示当用户进行特定选择时,屏幕会是什么样子
如果选择手机:下图显示的是手机菜单: