商城小程序是基于微信、抖音和头条等第三方平台为基础构建的社区电商购物系统。在本文中我们将讨论小程序商场源码的架构思路和基本方法。

源码及演示:xcxyms.top

商城小程序源码所要提供的功能

1、用户可以下单并购买商品。

2、用户将能够添加购物车。

3、用户便捷的支付系统。

4、用户可以查看订单状态和历史记录。

设计思路:

首先,将向客户显示菜单。选择后,所有产品及其价格将显示出来。然后客户将选择产品并选择数量(产品数量)。这个过程一直持续到购物完成。每当顾客完成他的购物的数量和单价后,最后要支付的总额显示出来。

以下是上述功能的实现:

// C++ program to implement the program
// 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台Redmi手机、1台HP笔记本电脑和一门Java课程。

演示:

第一步:首先,一张地图(say map<string, long double> items)是构造的,它存储产品及其成本。构建另一个映射(say map<string, long double>selected_items ),它用于按数量推送所选项目。然后将total_amount(存储总金额)初始化为0。使用标志并初始化为0。如果客户输入错误,则标志变为1,并通过打印项目及其价格直接退出,然后打印总金额。

第二步:询问详细信息,例如客户的姓名。在我们的准则中customerDetails() 函数就是为此目的而构造的。toupper()用于将字符串中的所有字符转换为大写。

第三步:向用户显示菜单。showMenu() 函数是为此目的而创建的。

第四步:询问用户是否愿意继续。在这里do while循环被使用,这个循环将继续,直到标志变为1。每当标志变为1时,它直接打印账单。

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

如果输入有效,则显示所选类型的产品。请用户输入相应的数字。如果无效,则标志将更改为1。

更多推荐

商城小程序源码|开源小程序商城完整源码附视频搭建教程