商城小程序源码完整版下载及其平台系统构建教程

246 阅读4分钟

  本文采用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);
}

  输出:

1.png

  让我们假设,某人需要购买2台红米手机、1台HP笔记本电脑和一门Java课程。

  视频输出:

2.gif

  演示:

  第1步:首先,构造一个map(比如map 项),它存储产品及其成本。构造另一个映射(比如map selected_items),它用于推送已选项及其数量。然后将total_amount(存储总量)初始化为0。使用标志并初始化为0。如果客户给出了错误的输入,那么标志将更改为1,并通过打印商品及其价格直接退出,然后打印总数。

3.png

  第二步:询问细节例如——客户的名字。在我们的代码中,customerDetails()函数就是为此目的而构造的。Toupper()用于将字符串中的所有字符转换为大写。

4.png

  步骤3:向用户显示菜单。为此创建了showMenu()函数。

  第四步:询问用户是否想要继续。这里使用了do-while循环,该循环一直持续到标志变为1。当标志变为1时,它直接打印账单。

  如果是,他需要进入Y / Y然后要求用户从菜单中输入相应的数字。如果输入了错误的数字,则标志更改为1。

  如果输入有效,则显示所选类型的产品。要求用户输入相应的号码。如果它无效,则标志更改为1。

  由于产品很多,所以使用了一个开关案例,其中参数是用户输入的编号(项目对应的编号)。

  现在各自的案例都被执行了。首先,询问数量,然后询问用户是否确定输入的数量。如果他不确定(或)如果数量不是整数,那么他将被再次询问,直到两个条件都满足。

  如果他确定所选产品的数量,那么该产品及其数量将被推入selected_items映射。

  这个过程一直持续到标志变为1。

  否则,他可以输入除Y/ Y以外的任何字母。然后标志变为1。

  下面是一些屏幕截图,显示当用户进行特定选择时,屏幕会是什么样子

  如果选择手机:下图显示的是手机菜单:

6.png