Project:Cainiao_Estation
This commit is contained in:
		
							
								
								
									
										1
									
								
								Cai_Niao_E_Station/courier.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								Cai_Niao_E_Station/courier.h
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1 @@
 | 
			
		||||
#pragma once
 | 
			
		||||
							
								
								
									
										25
									
								
								Cai_Niao_E_Station/delivery_method.cpp
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										25
									
								
								Cai_Niao_E_Station/delivery_method.cpp
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,25 @@
 | 
			
		||||
#include <iostream>
 | 
			
		||||
#include <cstring>
 | 
			
		||||
#include "delivery_method.h"
 | 
			
		||||
#include "package.h"
 | 
			
		||||
#include "user.h"
 | 
			
		||||
#include "stock.h"
 | 
			
		||||
 | 
			
		||||
class Package;
 | 
			
		||||
 | 
			
		||||
Method::Method() {
 | 
			
		||||
		pkg = new Package;
 | 
			
		||||
		money = 0;
 | 
			
		||||
		danger = false;
 | 
			
		||||
}
 | 
			
		||||
	Method::Method(Package* x, double m, bool b) {
 | 
			
		||||
		pkg = x;
 | 
			
		||||
		money = m;
 | 
			
		||||
		danger = b;
 | 
			
		||||
}
 | 
			
		||||
	void Method::fee() {
 | 
			
		||||
		money = pkg->create_fee();
 | 
			
		||||
	}
 | 
			
		||||
	void Method::set_yndanger(bool flag) {
 | 
			
		||||
		danger = flag;
 | 
			
		||||
	}
 | 
			
		||||
							
								
								
									
										20
									
								
								Cai_Niao_E_Station/delivery_method.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										20
									
								
								Cai_Niao_E_Station/delivery_method.h
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,20 @@
 | 
			
		||||
#pragma once
 | 
			
		||||
#include <iostream>
 | 
			
		||||
#include "user.h"
 | 
			
		||||
#include "package.h"
 | 
			
		||||
#include "stock.h"
 | 
			
		||||
 | 
			
		||||
class Package;
 | 
			
		||||
 | 
			
		||||
class Method {
 | 
			
		||||
private:
 | 
			
		||||
	Package* pkg;
 | 
			
		||||
	double money;
 | 
			
		||||
	bool danger;
 | 
			
		||||
public:
 | 
			
		||||
	Method();
 | 
			
		||||
	Method(Package* x, double m, bool b);
 | 
			
		||||
	void fee();
 | 
			
		||||
	void set_yndanger(bool flag);
 | 
			
		||||
 | 
			
		||||
};
 | 
			
		||||
							
								
								
									
										30
									
								
								Cai_Niao_E_Station/exception.cpp
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										30
									
								
								Cai_Niao_E_Station/exception.cpp
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,30 @@
 | 
			
		||||
#include <iostream>
 | 
			
		||||
#include "exception.h"
 | 
			
		||||
 | 
			
		||||
using std::cout;
 | 
			
		||||
using std::endl;
 | 
			
		||||
 | 
			
		||||
/*
 | 
			
		||||
std::string Exception::User_Phone_Number_Error() {
 | 
			
		||||
	return "<22>绰<EFBFBD><E7BBB0><EFBFBD>벻<EFBFBD><EBB2BB>11λ<31><CEBB><EFBFBD>֣<EFBFBD><D6A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>룡";
 | 
			
		||||
}
 | 
			
		||||
std::string Exception::Package_Time_Format_Error() {
 | 
			
		||||
	return "<22><><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD>ʽ<EFBFBD><CABD><EFBFBD><EFBFBD>ȷ<EFBFBD><C8B7><EFBFBD>밴<EFBFBD><EBB0B4>2025-05-10-10-05-00<30>ĸ<EFBFBD>ʽ<EFBFBD><CABD><EFBFBD>룡";
 | 
			
		||||
}
 | 
			
		||||
std::string Exception::Stock_Used_More_Than_All_Error() {
 | 
			
		||||
	return "<22><><EFBFBD>ܿɴ洢<C9B4><E6B4A2><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʹ<EFBFBD><CAB9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƿ<EFBFBD><C7B7><EFBFBD>ȷ<EFBFBD><C8B7>";
 | 
			
		||||
}
 | 
			
		||||
*/
 | 
			
		||||
std::runtime_error Etest::User_Phone_Number_Error() {
 | 
			
		||||
	return std::runtime_error("<EFBFBD>绰<EFBFBD><EFBFBD><EFBFBD>벻<EFBFBD><EFBFBD>11λ<EFBFBD><EFBFBD><EFBFBD>֣<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>룡");
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
std::runtime_error Etest::Package_Time_Format_Error()
 | 
			
		||||
{
 | 
			
		||||
	return std::runtime_error("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʽ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȷ<EFBFBD><EFBFBD><EFBFBD>밴<EFBFBD><EFBFBD>2025-05-10-10-05-00<30>ĸ<EFBFBD>ʽ<EFBFBD><CABD><EFBFBD>룡");
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
std::runtime_error Etest::Stock_Used_More_Than_All_Error()
 | 
			
		||||
{
 | 
			
		||||
	return std::runtime_error("<EFBFBD><EFBFBD><EFBFBD>ܿɴ洢<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʹ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƿ<EFBFBD><EFBFBD><EFBFBD>ȷ<EFBFBD><EFBFBD>");
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										21
									
								
								Cai_Niao_E_Station/exception.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										21
									
								
								Cai_Niao_E_Station/exception.h
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,21 @@
 | 
			
		||||
#pragma once
 | 
			
		||||
#include <iostream>
 | 
			
		||||
#include <cstring>
 | 
			
		||||
#include <stdexcept>
 | 
			
		||||
/*
 | 
			
		||||
class Exception {
 | 
			
		||||
public:
 | 
			
		||||
	std::string User_Phone_Number_Error();
 | 
			
		||||
	std::string Package_Time_Format_Error();
 | 
			
		||||
	std::string Stock_Used_More_Than_All_Error();
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
};*/
 | 
			
		||||
 | 
			
		||||
class Etest : public std::runtime_error{
 | 
			
		||||
public:
 | 
			
		||||
	static std::runtime_error User_Phone_Number_Error();
 | 
			
		||||
	static std::runtime_error Package_Time_Format_Error();
 | 
			
		||||
	static std::runtime_error Stock_Used_More_Than_All_Error();
 | 
			
		||||
};
 | 
			
		||||
							
								
								
									
										1
									
								
								Cai_Niao_E_Station/express_comp.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								Cai_Niao_E_Station/express_comp.h
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1 @@
 | 
			
		||||
#pragma once
 | 
			
		||||
							
								
								
									
										217
									
								
								Cai_Niao_E_Station/main.cpp
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										217
									
								
								Cai_Niao_E_Station/main.cpp
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,217 @@
 | 
			
		||||
/*
 | 
			
		||||
Developed By
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
									   ...:::^^^^^^^^^:::..
 | 
			
		||||
									.::^^~~~~~~~~~~~~~~~~~^::..
 | 
			
		||||
								.:~?JYY?~^~^^^^^^^~~~~~~~~?YYJ?!:.
 | 
			
		||||
							   .:!7!!!7J5!^^^^^^^^^^^^~^!5Y7!!!7!^:.
 | 
			
		||||
							 .:^~~~~^^^^~7^^^^^^^^^^^^^^7!^~~~~~~~~:.
 | 
			
		||||
							.:~!!^::::::::^^::::::::^^^!!^::::^^^~~~^:.
 | 
			
		||||
						  .:::5GGY.        ..::::::^::YGG5.        .^^:.
 | 
			
		||||
						  .^:.7YY7:::::::....::..::^..!YY?^:^^:::....^~:.
 | 
			
		||||
						  :~~~^^^^~~^^^:::::......:::^:^^^~~~~~~~~~~~!~^.
 | 
			
		||||
						 .:~~~~~~~~~~^^:::........:::::^^^~~~~~~~~~~~!~^:
 | 
			
		||||
						 .^~~~~~~^^^^^^:::::::::::::::^^^^^~~~~~~~~~~!~^:
 | 
			
		||||
						 .^~~~~~~^^^^^^^::::::::::::^^^^^^^~~~~~~~~~~!~^:
 | 
			
		||||
						 .:~~~~~7!^^^^^^^^^^^:::^^^^^^^^^~~~~~~~7!~~!!~^.
 | 
			
		||||
						  .^~~~~!J!^^^^^^^^^^^^^^^^^^^^~~~~~~~~?J~~!!!~:.
 | 
			
		||||
						  .:^~~~~!Y?~^^~~^^^^^^^^^^^~~~~~~~~~7YJ!~!!!~^.
 | 
			
		||||
						   .:^~~~~~J5J7~~^^^^~~~~~~~~~~~~~!?YY?~~!!!~^.
 | 
			
		||||
							.:^~~~~~!?Y55J?7!!~~~~~~!77JY55Y7~~!!!~~:.
 | 
			
		||||
							  .:^~~~~~~!7JY555P5555P555Y?7!~~!!!!~^:.
 | 
			
		||||
								.:^~~!~~~~~~~!!!!!!!!~~~~~!!!!~~^:.
 | 
			
		||||
								  .::^~~!!!!!~~~~~~!!!!!!!!~~^:..
 | 
			
		||||
									 ..:^^~~~~~~!!!~~~~~^^::..
 | 
			
		||||
	                                     ....:::::::::...                    
 | 
			
		||||
 | 
			
		||||
*/
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
#include <iostream>
 | 
			
		||||
#include <cstring>
 | 
			
		||||
#include <stdexcept>
 | 
			
		||||
#include "package.h"
 | 
			
		||||
#include "user.h"
 | 
			
		||||
#include "stock.h"
 | 
			
		||||
#include "delivery_method.h"
 | 
			
		||||
#include "exception.h"
 | 
			
		||||
#define Endl std::endl 
 | 
			
		||||
//Exception E;
 | 
			
		||||
 | 
			
		||||
Package* k;
 | 
			
		||||
User* p;
 | 
			
		||||
 | 
			
		||||
std::string Crypt(std::string x, std::string y);
 | 
			
		||||
 | 
			
		||||
using std::cin;
 | 
			
		||||
using std::cout;
 | 
			
		||||
using std::endl;
 | 
			
		||||
using std::string;
 | 
			
		||||
 | 
			
		||||
extern Stock cainiao[10];
 | 
			
		||||
extern User temp;
 | 
			
		||||
extern void PRINT_LIU_YING();
 | 
			
		||||
 | 
			
		||||
int main() {
 | 
			
		||||
	//<2F><>printһ<74>£<EFBFBD><C2A3><EFBFBD><EFBFBD><EFBFBD>
 | 
			
		||||
	//PRINT_LIU_YING();
 | 
			
		||||
	//<2F><>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD>Ա<EFBFBD>б<EFBFBD>
 | 
			
		||||
	p = new User[20];
 | 
			
		||||
	p[1].reg("Zhang", "111111198301", "000011");
 | 
			
		||||
	p[2].reg("Wang", "12211198301", "000012");
 | 
			
		||||
	p[3].reg("Li", "13311198301", "000013");
 | 
			
		||||
	p[4].reg("Zhao", "14411198301", "000014");
 | 
			
		||||
	p[5].reg("Sun", "15511198301", "000015");
 | 
			
		||||
	p[6].reg("Zhou", "16611198301", "000016");
 | 
			
		||||
	p[7].reg("Xu", "17711198301", "000017");
 | 
			
		||||
	p[8].reg("Wan", "18811198301", "000018");
 | 
			
		||||
	p[9].reg("Liu", "19911198301", "000019");
 | 
			
		||||
	p[10].reg("Su", "10011198301", "000020");
 | 
			
		||||
	p[11].reg("Green", "10111198301", "000021");
 | 
			
		||||
 | 
			
		||||
	//<2F><><EFBFBD>ԣ<EFBFBD><D4A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֻ<EFBFBD><D6BB><EFBFBD><EFBFBD>Ƿ<EFBFBD>Ϊ11λ<31><CEBB><EFBFBD><EFBFBD>
 | 
			
		||||
 | 
			
		||||
	/*<2A>ɰ<EFBFBD>
 | 
			
		||||
	try {
 | 
			
		||||
		std::string test01, test02, test03;
 | 
			
		||||
		test01 = "ERROR";
 | 
			
		||||
		test02 = "98301";
 | 
			
		||||
		test03 = "000022";
 | 
			
		||||
		p[12].reg(test01, test02, test03);
 | 
			
		||||
		if (test02.size() != 11) {
 | 
			
		||||
			throw E.User_Phone_Number_Error();
 | 
			
		||||
			delete &p[12];
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
	catch (const std::string& x) {
 | 
			
		||||
		cout << x << endl;
 | 
			
		||||
	}*/
 | 
			
		||||
	//<2F>°<EFBFBD>
 | 
			
		||||
	try {
 | 
			
		||||
		std::string test01, test02, test03;
 | 
			
		||||
		test01 = "ERROR";
 | 
			
		||||
		test02 = "98301";
 | 
			
		||||
		test03 = "000022";
 | 
			
		||||
		p[12].reg(test01, test02, test03);
 | 
			
		||||
		if (test02.size() != 11) {
 | 
			
		||||
			throw Etest::User_Phone_Number_Error();
 | 
			
		||||
			delete& p[12];
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
	catch (const std::runtime_error& x) {
 | 
			
		||||
		cout << x.what() << endl;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
	k = new Package[TOTAL0];
 | 
			
		||||
	k[1] = Package("Dildo", "pid1919810", "2025-05-08-00-00-00", "2025-05-09-10-00-00", &temp, 5.4, 10.0, 10.3, false);
 | 
			
		||||
	k[2] = Package("Clothes", "10002", "2025-05-06-14-15-00", "2025-05-08-11-30-00", &p[2], 1.5, 8.0, 5.6, false);
 | 
			
		||||
	k[3] = Package("Laptop", "10003", "2025-05-05-10-00-00", "2025-05-06-09-20-00", &p[3], 3.0, 15.0, 20.2, false);
 | 
			
		||||
	k[4] = Package("Shoes", "10004", "2025-05-07-16-00-00", "2025-05-09-08-00-00", &p[4], 2.8, 9.5, 6.1, false);
 | 
			
		||||
	k[5] = Package("Snacks", "10005", "2025-05-08-09-45-00", "2025-05-09-14-00-00", &p[5], 1.2, 5.0, 3.7, false);
 | 
			
		||||
	k[6] = Package("Monitor", "10006", "2025-05-06-11-20-00", "2025-05-07-10-10-00", &p[6], 6.5, 20.0, 18.9, false);
 | 
			
		||||
	k[7] = Package("Tablet", "10007", "2025-05-07-13-50-00", "2025-05-08-17-00-00", &p[3], 1.8, 14.0, 10.5, false);
 | 
			
		||||
	k[8] = Package("Camera", "10008", "2025-05-05-07-30-00", "2025-05-06-08-00-00", &p[3], 2.6, 11.0, 9.2, false);
 | 
			
		||||
	k[9] = Package("Glasses", "10009", "2025-05-06-12-00-00", "2025-05-07-15-30-00", &p[9], 0.8, 4.0, 2.0, false);
 | 
			
		||||
	k[10] = Package("Headphones", "10010", "2025-05-08-10-00-00", "2025-05-09-13-00-00", &p[10], 1.1, 6.0, 4.4, false);
 | 
			
		||||
	k[11] = Package("Books", "10011", "2025-05-07-08-30-00", "2025-05-08-10-00-00", &p[1], 2.3, 12.5, 8.0, false);
 | 
			
		||||
	//<2F><><EFBFBD><EFBFBD><EFBFBD>û<EFBFBD>ϵͳ
 | 
			
		||||
	cout << "Display User :" << endl;
 | 
			
		||||
	temp.display();
 | 
			
		||||
	p[2].display();
 | 
			
		||||
	cout << "Alter p2" << Endl;
 | 
			
		||||
	p[2].alt_name("W..");
 | 
			
		||||
	p[2].alt_pn("110");
 | 
			
		||||
	p[2].display();
 | 
			
		||||
	cout << "<EFBFBD><EFBFBD><EFBFBD>Խ<EFBFBD><EFBFBD><EFBFBD>" << endl;
 | 
			
		||||
	cout << endl;
 | 
			
		||||
 | 
			
		||||
	//<2F><><EFBFBD><EFBFBD><D4B0><EFBFBD><EFBFBD>洢<EFBFBD><E6B4A2>վ<EFBFBD><D5BE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EEBEAF>
 | 
			
		||||
	cout << "<EFBFBD><EFBFBD><EFBFBD>⣺ Stock k1 ~ k11 to Stock0, Stock1" << Endl;
 | 
			
		||||
	cainiao[0].inStock(k[1]);
 | 
			
		||||
	cainiao[0].inStock(k[2]);
 | 
			
		||||
	cainiao[0].inStock(k[3]);
 | 
			
		||||
	cainiao[0].inStock(k[4]);
 | 
			
		||||
	cainiao[0].inStock(k[5]);
 | 
			
		||||
	cainiao[0].inStock(k[6]);
 | 
			
		||||
	cainiao[0].inStock(k[7]);
 | 
			
		||||
	cainiao[0].inStock(k[8]);
 | 
			
		||||
	cainiao[0].inStock(k[9]);
 | 
			
		||||
	cainiao[1].inStock(k[10]);
 | 
			
		||||
	cainiao[1].inStock(k[11]);
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
	cout << "<EFBFBD>Ѵ<EFBFBD><EFBFBD><EFBFBD>" << Endl;
 | 
			
		||||
	cout << "չʾ<EFBFBD><EFBFBD><EFBFBD>棺DisPlay Stock" << Endl;
 | 
			
		||||
	for (int i = 0;i < 10;i++) {
 | 
			
		||||
		cout << *(cainiao[0].Check_ProductAll() + i) << " ";
 | 
			
		||||
	}
 | 
			
		||||
	cout << Endl;
 | 
			
		||||
	for (int i = 0;i < 10;i++) {
 | 
			
		||||
		cout << *(cainiao[1].Check_ProductAll() + i) << " ";
 | 
			
		||||
	}
 | 
			
		||||
	cout << endl;
 | 
			
		||||
	cout << "<EFBFBD><EFBFBD><EFBFBD>Խ<EFBFBD><EFBFBD><EFBFBD>" << endl;
 | 
			
		||||
 | 
			
		||||
	//<2F><><EFBFBD><EFBFBD>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ķ<EFBFBD>Ӧ
 | 
			
		||||
	//k1.display();
 | 
			
		||||
	cout << "<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȡ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ķ<EFBFBD>Ӧ" << Endl;
 | 
			
		||||
	k[1].create_vc();
 | 
			
		||||
	string Code = Crypt(temp.Check_uid(), k[1].Check_pid());
 | 
			
		||||
	k[1].verifing(Code, "2025-05-10-10-00-00");
 | 
			
		||||
	k[1].display();
 | 
			
		||||
	cout << endl;
 | 
			
		||||
	cout << "չʾ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>仯" << Endl;
 | 
			
		||||
	for (int i = 0;i < 10;i++) {
 | 
			
		||||
		cout << *(cainiao[0].Check_ProductAll() + i) << " ";
 | 
			
		||||
	}
 | 
			
		||||
	cout << Endl;
 | 
			
		||||
	for (int i = 0;i < 10;i++) {
 | 
			
		||||
		cout << *(cainiao[1].Check_ProductAll() + i) << " ";
 | 
			
		||||
	}
 | 
			
		||||
	cout << Endl;
 | 
			
		||||
 | 
			
		||||
	//<2F><><EFBFBD><EFBFBD>Stock<63><6B><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>С<EFBFBD><D0A1><EFBFBD>ϼӣ<CFBC>
 | 
			
		||||
	cout << "<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Stock<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>С<EFBFBD><EFBFBD><EFBFBD>ϼӣ<EFBFBD>" << endl;
 | 
			
		||||
	cainiao[0].inStock(k[1]);
 | 
			
		||||
	for (int i = 0;i < 10;i++) {
 | 
			
		||||
		cout << *(cainiao[0].Check_ProductAll() + i) << " ";
 | 
			
		||||
	}
 | 
			
		||||
	cout << Endl;
 | 
			
		||||
	for (int i = 0;i < 10;i++) {
 | 
			
		||||
		cout << *(cainiao[1].Check_ProductAll() + i) << " ";
 | 
			
		||||
	}
 | 
			
		||||
	cout << "<EFBFBD><EFBFBD><EFBFBD>Խ<EFBFBD><EFBFBD><EFBFBD>" << endl;
 | 
			
		||||
	cout << Endl;
 | 
			
		||||
	
 | 
			
		||||
	//<2F><>ѯ<EFBFBD>û<EFBFBD><C3BB>İ<EFBFBD><C4B0><EFBFBD>
 | 
			
		||||
	cout << "<EFBFBD><EFBFBD><EFBFBD>Բ<EFBFBD>ѯ<EFBFBD>û<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>" << Endl;
 | 
			
		||||
	int dw = 3;
 | 
			
		||||
	cout << "	<09><>չʾ<D5B9>û<EFBFBD><C3BB><EFBFBD>Ϣ" << endl;
 | 
			
		||||
	p[dw].display();
 | 
			
		||||
	cout << "<EFBFBD><EFBFBD>չʾ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ" << Endl;
 | 
			
		||||
	k[3].display();
 | 
			
		||||
	cout << "<EFBFBD><EFBFBD><EFBFBD>濪ʼ<EFBFBD><EFBFBD>ѯ" << Endl;
 | 
			
		||||
	Package* pkgs = p[dw].Check_Package();
 | 
			
		||||
	for (int i = 0;i < TOTAL0 - 1;i++){
 | 
			
		||||
		if(pkgs[i].Check_pid() != "#UNDEFINED_P:P" ) 
 | 
			
		||||
			cout << pkgs[i].Check_pid() << " ";
 | 
			
		||||
 | 
			
		||||
	}
 | 
			
		||||
	cout << Endl;
 | 
			
		||||
 | 
			
		||||
	//<2F><>ѯ<EFBFBD><D1AF><EFBFBD><EFBFBD>״̬<D7B4><CCAC>ӵ<EFBFBD><D3B5><EFBFBD><EFBFBD>
 | 
			
		||||
	k[2].display();
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
	//<2F><><EFBFBD>Ը<EFBFBD><D4B8><EFBFBD>ϵͳ
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
	cout << "Test Over" << endl;
 | 
			
		||||
	return 0;
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										144
									
								
								Cai_Niao_E_Station/package.cpp
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										144
									
								
								Cai_Niao_E_Station/package.cpp
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,144 @@
 | 
			
		||||
#include <iostream>
 | 
			
		||||
#include <cstring>
 | 
			
		||||
#include "package.h"
 | 
			
		||||
#include "user.h"
 | 
			
		||||
 | 
			
		||||
extern std::string Crypt(std::string x,std::string y){
 | 
			
		||||
	std::string temp;
 | 
			
		||||
	temp = x;
 | 
			
		||||
	int t;
 | 
			
		||||
	t = (int)y[0];
 | 
			
		||||
	t /= 5;
 | 
			
		||||
	for (int i = 0;i < x.size();i++) {
 | 
			
		||||
		temp[i] += t;
 | 
			
		||||
	}
 | 
			
		||||
	return temp;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
Package::Package() {
 | 
			
		||||
	name = "#UNDEFINED_N:P";
 | 
			
		||||
	pid = "#UNDEFINED_P:P";
 | 
			
		||||
	owner = new User;
 | 
			
		||||
	jichu_time = "#UNDEINFED_JT:P";
 | 
			
		||||
	songda_time = "#UNDEINFED_SD:P";
 | 
			
		||||
	quhuo_time = "#UNDEFINED_QH:P";
 | 
			
		||||
	is_picked = false;
 | 
			
		||||
	volume = -1;
 | 
			
		||||
	mass = -1;
 | 
			
		||||
	distance = -1;
 | 
			
		||||
	stockin = NULL;
 | 
			
		||||
	stock_num = 0;
 | 
			
		||||
	is_vfast = false;
 | 
			
		||||
}
 | 
			
		||||
Package::Package(std::string n, std::string pi, std::string j, std::string s, User* o, double v, double m, double d,bool v0) {
 | 
			
		||||
	//owner = new User;
 | 
			
		||||
	name = n;
 | 
			
		||||
	pid = pi;
 | 
			
		||||
	owner = o;
 | 
			
		||||
	jichu_time = j;
 | 
			
		||||
	songda_time = s;
 | 
			
		||||
	quhuo_time = "#REQUIRD";
 | 
			
		||||
	is_picked = false;
 | 
			
		||||
	volume = v;
 | 
			
		||||
	distance = d;
 | 
			
		||||
	mass = m;
 | 
			
		||||
	is_vfast = v0;
 | 
			
		||||
	stockin = NULL;
 | 
			
		||||
	stock_num = 0;
 | 
			
		||||
}
 | 
			
		||||
//<2F><>Bug<75><67><EFBFBD>ø<EFBFBD><C3B8>ˣ<EFBFBD><CBA3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ã<EFBFBD><C3A3><EFBFBD>Stock<63><6B><EFBFBD><EFBFBD><EFBFBD><EFBFBD>inStock
 | 
			
		||||
Package& Package::stocked(Stock* x) {
 | 
			
		||||
	stockin = x;
 | 
			
		||||
	stock_num = x->Check_used();
 | 
			
		||||
	x->inStock(*this);
 | 
			
		||||
	if (pid == x->Check_Product(x->Check_used())) {
 | 
			
		||||
		cout << "Successfully Stocked" << endl;
 | 
			
		||||
	}
 | 
			
		||||
	else {
 | 
			
		||||
		cout << "Stock Error! Please Try Again" << endl;
 | 
			
		||||
	}
 | 
			
		||||
	return *this;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void Package::create_vc() {
 | 
			
		||||
	verify_code = Crypt(owner->Check_uid(), pid);
 | 
			
		||||
	cout << "Verify Code Created" << endl;
 | 
			
		||||
}
 | 
			
		||||
void Package::verifing(std::string n,std::string time) {
 | 
			
		||||
	if (verify_code == n) {
 | 
			
		||||
		quhuo_time = time;
 | 
			
		||||
		is_picked = true;
 | 
			
		||||
		stockin->outStock(*this);
 | 
			
		||||
		return;
 | 
			
		||||
	}
 | 
			
		||||
	else {
 | 
			
		||||
		cout << "Verify Code WRONG!" << endl;
 | 
			
		||||
		return;
 | 
			
		||||
	}
 | 
			
		||||
	if (stockin->Check_Product(stock_num) == "-1") {
 | 
			
		||||
		cout << "Successfully Picked!" << endl;
 | 
			
		||||
	}
 | 
			
		||||
	else {
 | 
			
		||||
		cout << "Can't Be Selected" << endl;
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
Package& Package::alter_stock_num(int n) {
 | 
			
		||||
	stock_num = n;
 | 
			
		||||
	return *this;
 | 
			
		||||
}
 | 
			
		||||
Package& Package::alter_stockin(Stock& x) {
 | 
			
		||||
	stockin = &x;
 | 
			
		||||
	return *this;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
std::string Package::Check_pid() {
 | 
			
		||||
	return pid;
 | 
			
		||||
}
 | 
			
		||||
std::string Package::Check_vc() {
 | 
			
		||||
	return verify_code;
 | 
			
		||||
}
 | 
			
		||||
int Package::Check_stock_num() {
 | 
			
		||||
	return stock_num;
 | 
			
		||||
}
 | 
			
		||||
User* Package::Check_User() {
 | 
			
		||||
	return owner;
 | 
			
		||||
}
 | 
			
		||||
double Package::create_fee() {
 | 
			
		||||
	double fee;
 | 
			
		||||
	if (!is_vfast)	fee = 5 * mass + 0.5 * volume;
 | 
			
		||||
	if (is_vfast)	fee = 1.3 * (5 * mass + 0.5 * volume);
 | 
			
		||||
	return fee;
 | 
			
		||||
}
 | 
			
		||||
Package& Package::operator=(const Package& x) {
 | 
			
		||||
	name = x.name;
 | 
			
		||||
	pid = x.pid;
 | 
			
		||||
	owner = x.owner;
 | 
			
		||||
	jichu_time = x.jichu_time;
 | 
			
		||||
	songda_time = x.songda_time;
 | 
			
		||||
	quhuo_time = x.quhuo_time;
 | 
			
		||||
	is_picked = x.is_picked;
 | 
			
		||||
	verify_code = x.verify_code;
 | 
			
		||||
	volume = x.volume;
 | 
			
		||||
	mass = x.mass;
 | 
			
		||||
	distance = x.distance;
 | 
			
		||||
	is_vfast = x.is_vfast;
 | 
			
		||||
	stockin = x.stockin;
 | 
			
		||||
	stock_num = x.stock_num;
 | 
			
		||||
	return *this;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void Package::display() {
 | 
			
		||||
	cout << "Package Name : " << name << endl;
 | 
			
		||||
	cout << "Package Pid : " << pid << endl;
 | 
			
		||||
	cout << "Package Owner : (Displayed Down)" << endl;
 | 
			
		||||
	owner->display();
 | 
			
		||||
	cout << "Package jichu_time : " << jichu_time << endl;
 | 
			
		||||
	cout << "Package songda_time : " << songda_time << endl;
 | 
			
		||||
	cout << "Package quhuo_time : " << quhuo_time << endl;
 | 
			
		||||
	cout << "Package Picked? : " << is_picked << endl;
 | 
			
		||||
	cout << "Package Mass : " << mass << endl;
 | 
			
		||||
	cout << "Package Volume : " << volume << endl;
 | 
			
		||||
	cout << "Package Distance : " << distance << endl;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										46
									
								
								Cai_Niao_E_Station/package.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										46
									
								
								Cai_Niao_E_Station/package.h
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,46 @@
 | 
			
		||||
#pragma once
 | 
			
		||||
#include <iostream>
 | 
			
		||||
#include <cstring>
 | 
			
		||||
#include "user.h"
 | 
			
		||||
#include "stock.h"
 | 
			
		||||
 | 
			
		||||
using std::cin;
 | 
			
		||||
using std::cout;
 | 
			
		||||
using std::endl;
 | 
			
		||||
using std::string;
 | 
			
		||||
 | 
			
		||||
class User;
 | 
			
		||||
class Stock;
 | 
			
		||||
 | 
			
		||||
class Package {
 | 
			
		||||
private:
 | 
			
		||||
	std::string name;
 | 
			
		||||
	std::string pid;//auto
 | 
			
		||||
	User* owner;
 | 
			
		||||
	std::string jichu_time;
 | 
			
		||||
	std::string songda_time;//time format: 2025-05-08-23-15-03(eazy to cmp and check)
 | 
			
		||||
	std::string quhuo_time;
 | 
			
		||||
	bool is_picked;
 | 
			
		||||
	std::string verify_code;
 | 
			
		||||
	double volume;
 | 
			
		||||
	double mass;
 | 
			
		||||
	double distance;
 | 
			
		||||
	bool is_vfast;
 | 
			
		||||
	Stock* stockin;
 | 
			
		||||
	int stock_num;
 | 
			
		||||
public:
 | 
			
		||||
	Package();
 | 
			
		||||
	Package(std::string n, std::string pid, std::string j, std::string s, User* o,double v , double m, double d,bool v0);
 | 
			
		||||
	void create_vc();
 | 
			
		||||
	void verifing(std::string n, std::string time);
 | 
			
		||||
	std::string Check_pid();
 | 
			
		||||
	std::string Check_vc();
 | 
			
		||||
	double create_fee();
 | 
			
		||||
	int Check_stock_num();
 | 
			
		||||
	void display();
 | 
			
		||||
	Package& stocked(Stock* x);
 | 
			
		||||
	Package& alter_stock_num(int n);
 | 
			
		||||
	Package& alter_stockin(Stock& x);
 | 
			
		||||
	User* Check_User();
 | 
			
		||||
	Package& operator=(const Package& x);
 | 
			
		||||
};
 | 
			
		||||
							
								
								
									
										97
									
								
								Cai_Niao_E_Station/stock.cpp
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										97
									
								
								Cai_Niao_E_Station/stock.cpp
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,97 @@
 | 
			
		||||
#include <iostream>
 | 
			
		||||
#include <cstring>
 | 
			
		||||
#include "stock.h"
 | 
			
		||||
#include "user.h"
 | 
			
		||||
#include "package.h"
 | 
			
		||||
 | 
			
		||||
class Package;
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
int min(int a, int b) {
 | 
			
		||||
	return a > b ? b : a;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
Stock::Stock() {
 | 
			
		||||
	all = 10;
 | 
			
		||||
	used = 0;
 | 
			
		||||
	for (int i = 0;i < 10;i++) {
 | 
			
		||||
		pid_code[i] = "-1";
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
Stock::Stock(int a, int l, int* p) {
 | 
			
		||||
	all = a;
 | 
			
		||||
	used = l;
 | 
			
		||||
	for (int i = 0;i < 10;i++) {
 | 
			
		||||
		pid_code[i] = *(p + i);
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
int Stock::Check_used() {
 | 
			
		||||
	return used;
 | 
			
		||||
}
 | 
			
		||||
Stock& Stock::inStock(Package& x) {
 | 
			
		||||
	if (used != ALL0 && all - used > (int)(all * 0.2)) {
 | 
			
		||||
		int tmp = 0;
 | 
			
		||||
		for (int i = 0;i < ALL0;i++) {
 | 
			
		||||
			if (this->pid_code[i] == "-1") {
 | 
			
		||||
				tmp = i;
 | 
			
		||||
				break;
 | 
			
		||||
			}
 | 
			
		||||
		}
 | 
			
		||||
		pid_code[tmp] = x.Check_pid();
 | 
			
		||||
		x.alter_stock_num(tmp);
 | 
			
		||||
		x.alter_stockin(*this);
 | 
			
		||||
		used++;
 | 
			
		||||
		return *this;
 | 
			
		||||
	}
 | 
			
		||||
	else if (all - used <= (int)(all * 0.2)) {
 | 
			
		||||
		int tmp = 0;
 | 
			
		||||
		for (int i = 0;i < ALL0;i++) {
 | 
			
		||||
			if (this->pid_code[i] == "-1") {
 | 
			
		||||
				tmp = i;
 | 
			
		||||
				break;
 | 
			
		||||
			}
 | 
			
		||||
		}
 | 
			
		||||
		pid_code[tmp] = x.Check_pid();
 | 
			
		||||
		x.alter_stock_num(tmp);
 | 
			
		||||
		x.alter_stockin(*this);
 | 
			
		||||
		used++;
 | 
			
		||||
		this->alert();
 | 
			
		||||
		return *this;
 | 
			
		||||
	}
 | 
			
		||||
	else {
 | 
			
		||||
		cout << "This Stock is FULL. Search for Another One" << endl;
 | 
			
		||||
		return *this;
 | 
			
		||||
	}
 | 
			
		||||
	
 | 
			
		||||
}
 | 
			
		||||
Stock& Stock::outStock(Package& x) {
 | 
			
		||||
	//<2F>ð<EFBFBD><C3B0><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȡ<EFBFBD><C8A1>
 | 
			
		||||
	int s = x.Check_stock_num();
 | 
			
		||||
	if (s >= 0 && s <= ALL0) {
 | 
			
		||||
		pid_code[s] = "-1";
 | 
			
		||||
		this->refresh();
 | 
			
		||||
	}
 | 
			
		||||
	return *this;
 | 
			
		||||
}
 | 
			
		||||
//x=pid
 | 
			
		||||
Stock& Stock::refresh() {
 | 
			
		||||
	int cnt = 0;
 | 
			
		||||
	for (int i = 0;i < ALL0;i++) {
 | 
			
		||||
		if (pid_code[i] == "-1") {
 | 
			
		||||
			cnt++;
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
	cnt = used;
 | 
			
		||||
	return *this;
 | 
			
		||||
}
 | 
			
		||||
Stock& Stock::alert() {
 | 
			
		||||
	cout << "This Stock is ALMOST FULL." << endl;
 | 
			
		||||
	return *this;
 | 
			
		||||
}
 | 
			
		||||
std::string Stock::Check_Product(int n) {
 | 
			
		||||
	return pid_code[n-1];
 | 
			
		||||
}
 | 
			
		||||
std::string* Stock::Check_ProductAll() {
 | 
			
		||||
	return pid_code;
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										33
									
								
								Cai_Niao_E_Station/stock.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										33
									
								
								Cai_Niao_E_Station/stock.h
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,33 @@
 | 
			
		||||
#pragma once
 | 
			
		||||
#include <iostream>
 | 
			
		||||
#include "user.h"
 | 
			
		||||
#include "package.h"
 | 
			
		||||
#define USED0 0
 | 
			
		||||
#define ALL0 10
 | 
			
		||||
#define TOTAL0 100
 | 
			
		||||
#define STOCK_NUM 10
 | 
			
		||||
/*Ĭ<>ϣ<EFBFBD>
 | 
			
		||||
all(<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ܷż<DCB7><C5BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>) =10
 | 
			
		||||
used = 0
 | 
			
		||||
<EFBFBD><EFBFBD><EFBFBD>ڿ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><EFBFBD>е<EFBFBD><EFBFBD><EFBFBD>
 | 
			
		||||
*/
 | 
			
		||||
 | 
			
		||||
class Package;
 | 
			
		||||
 | 
			
		||||
class Stock {
 | 
			
		||||
private:
 | 
			
		||||
	int all;
 | 
			
		||||
	int used;
 | 
			
		||||
	std::string pid_code[ALL0];
 | 
			
		||||
public:
 | 
			
		||||
	Stock();
 | 
			
		||||
	Stock(int a, int l, int* p);
 | 
			
		||||
	Stock& inStock(Package& x);//x=pid
 | 
			
		||||
	//Stock& outStock(std::string x);//x=pid
 | 
			
		||||
	Stock& refresh();
 | 
			
		||||
	Stock& alert();
 | 
			
		||||
	int Check_used();
 | 
			
		||||
	std::string Check_Product(int n);
 | 
			
		||||
	std::string* Check_ProductAll();
 | 
			
		||||
	Stock& outStock(Package& x);
 | 
			
		||||
};
 | 
			
		||||
							
								
								
									
										135
									
								
								Cai_Niao_E_Station/user.cpp
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										135
									
								
								Cai_Niao_E_Station/user.cpp
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,135 @@
 | 
			
		||||
#include <iostream>
 | 
			
		||||
#include <cstring>
 | 
			
		||||
#include "package.h"
 | 
			
		||||
#include "user.h"
 | 
			
		||||
#include "stock.h"
 | 
			
		||||
 | 
			
		||||
class Package;
 | 
			
		||||
class Stock;
 | 
			
		||||
 | 
			
		||||
extern Stock cainiao[STOCK_NUM];
 | 
			
		||||
extern Package* k;
 | 
			
		||||
 | 
			
		||||
	//Package package_num();//<2F><>Package<67><65>
 | 
			
		||||
 | 
			
		||||
	User::User() {
 | 
			
		||||
		name = "#UNDEFINED_N";
 | 
			
		||||
		phone_num = "#UNDEFINED_P";
 | 
			
		||||
		uid = "#UNDEFINED_U";
 | 
			
		||||
		jingyan = -1;
 | 
			
		||||
	}
 | 
			
		||||
	User::User(std::string n, std::string p, std::string u) {
 | 
			
		||||
		name = n;
 | 
			
		||||
		phone_num = p;
 | 
			
		||||
		uid = u;
 | 
			
		||||
		jingyan = 0;
 | 
			
		||||
	}
 | 
			
		||||
	
 | 
			
		||||
 | 
			
		||||
	User& User::reg(std::string n, std::string p, std::string u) {
 | 
			
		||||
		name = n;
 | 
			
		||||
		phone_num = p;
 | 
			
		||||
		uid = u;
 | 
			
		||||
		jingyan = 0;
 | 
			
		||||
		if (p.size() == 11)	cout << n + ", Your are registered!" << endl;
 | 
			
		||||
		else
 | 
			
		||||
		{
 | 
			
		||||
			cout << "Hello " + n + " ";
 | 
			
		||||
		}
 | 
			
		||||
		return *this;
 | 
			
		||||
	}
 | 
			
		||||
	User& User::alt_name(string n) {
 | 
			
		||||
		name = n;
 | 
			
		||||
		cout << "Name altered to " + n << endl;
 | 
			
		||||
		return *this;
 | 
			
		||||
	}
 | 
			
		||||
	User& User::alt_pn(string p) {
 | 
			
		||||
		phone_num = p;
 | 
			
		||||
		cout << "Phone Number altered to " + p << endl;
 | 
			
		||||
		return *this;
 | 
			
		||||
	}
 | 
			
		||||
	void User::del() {
 | 
			
		||||
		name = "#DELETED_" + name;
 | 
			
		||||
		phone_num = "#DELETED_" + phone_num;
 | 
			
		||||
		uid = "#DELETED_" + uid;
 | 
			
		||||
		cout << "User Deleted" << endl;
 | 
			
		||||
	}
 | 
			
		||||
	void User::display() {
 | 
			
		||||
		cout << "	Name :" + name << endl;
 | 
			
		||||
		cout << "	Phone Number: " + phone_num << endl;
 | 
			
		||||
		cout << "	uid :" + uid << endl;
 | 
			
		||||
	}
 | 
			
		||||
	std::string User::Check_uid() {
 | 
			
		||||
		return uid;
 | 
			
		||||
	}
 | 
			
		||||
	std::string User::Check_name() {
 | 
			
		||||
		return name;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	std::string User::Check_phone() {
 | 
			
		||||
		return phone_num;
 | 
			
		||||
	}
 | 
			
		||||
	User& User::operator=(const User& x) {
 | 
			
		||||
		name = x.name;
 | 
			
		||||
		phone_num = x.phone_num;
 | 
			
		||||
		uid = x.uid;
 | 
			
		||||
		jingyan = x.jingyan;
 | 
			
		||||
		return *this;
 | 
			
		||||
	}
 | 
			
		||||
	bool User::operator==(const User& x) {
 | 
			
		||||
		if (name == x.name &&
 | 
			
		||||
			phone_num == x.phone_num &&
 | 
			
		||||
			uid == x.uid &&
 | 
			
		||||
			jingyan == x.jingyan
 | 
			
		||||
			)
 | 
			
		||||
			return true;
 | 
			
		||||
		else
 | 
			
		||||
			return false;
 | 
			
		||||
	}
 | 
			
		||||
	Package* User::Check_Package() {
 | 
			
		||||
		Package *tp = new Package [TOTAL0];
 | 
			
		||||
		int cnt = 0;
 | 
			
		||||
		cout << "Chekcing Packages" << endl;
 | 
			
		||||
		for (int i = 0;i < TOTAL0; i++) {
 | 
			
		||||
			//extern k[i]<5D><><EFBFBD><EFBFBD><EFBFBD>⣬<EFBFBD><E2A3AC>ѯϵͳ<CFB5><CDB3><EFBFBD><EFBFBD>ȷ<EFBFBD><C8B7>
 | 
			
		||||
				if (*(k[i].Check_User()) == *this) {
 | 
			
		||||
					tp[cnt] = k[i];
 | 
			
		||||
					//cout << "YES" << endl;
 | 
			
		||||
					cnt++;
 | 
			
		||||
				}
 | 
			
		||||
		}
 | 
			
		||||
		if (cnt == 0) {
 | 
			
		||||
			cout << "û<EFBFBD>в<EFBFBD>ѯ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>" << endl;
 | 
			
		||||
		}
 | 
			
		||||
		return tp;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	User& User::add_exp(int s) {
 | 
			
		||||
		jingyan += s;
 | 
			
		||||
		return *this;
 | 
			
		||||
	}
 | 
			
		||||
	User& User::refresh() {
 | 
			
		||||
		if (jingyan >= 100) {
 | 
			
		||||
			VIP* temp = new VIP;
 | 
			
		||||
			temp->reg(*this);
 | 
			
		||||
			return *temp;
 | 
			
		||||
		}
 | 
			
		||||
		return *this;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
	VIP::VIP() {
 | 
			
		||||
		flag = true;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
VIP::VIP(User& x,bool f) : User(x.Check_name(), x.Check_phone(),x.Check_uid()) {
 | 
			
		||||
	flag = f;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
VIP& VIP::reg(User& x){
 | 
			
		||||
	flag = true;
 | 
			
		||||
	return *this;
 | 
			
		||||
}
 | 
			
		||||
User::~User() {
 | 
			
		||||
	//delete[] temp;
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										47
									
								
								Cai_Niao_E_Station/user.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										47
									
								
								Cai_Niao_E_Station/user.h
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,47 @@
 | 
			
		||||
#pragma once
 | 
			
		||||
#include <iostream>
 | 
			
		||||
#include <cstring>
 | 
			
		||||
#include "package.h"
 | 
			
		||||
#include "stock.h"
 | 
			
		||||
 | 
			
		||||
class Package;
 | 
			
		||||
 | 
			
		||||
class User {
 | 
			
		||||
 | 
			
		||||
private:
 | 
			
		||||
	std::string name;
 | 
			
		||||
	std::string phone_num;
 | 
			
		||||
	//<2F><><EFBFBD><EFBFBD><EFBFBD>Ȳ<EFBFBD>ʹ<EFBFBD>ã<EFBFBD><C3A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֱ<EFBFBD><D6B1>ͳ<EFBFBD>ư<EFBFBD><C6B0><EFBFBD>//<2F><>Package<67><65>
 | 
			
		||||
	std::string uid;//<2F>ⲿ<EFBFBD>洢user<65><72><EFBFBD><EFBFBD><EFBFBD><EFBFBD>user<65><72>uid<69><64><EFBFBD><EFBFBD>ֵ
 | 
			
		||||
	int jingyan;
 | 
			
		||||
public:
 | 
			
		||||
	User();
 | 
			
		||||
	User(std::string n, std::string p, std::string u);
 | 
			
		||||
	~User();
 | 
			
		||||
	User& reg(std::string n, std::string p, std::string u);
 | 
			
		||||
	User& alt_name(std::string n);
 | 
			
		||||
	User& alt_pn(std::string p);
 | 
			
		||||
	void del();
 | 
			
		||||
	std::string Check_uid();
 | 
			
		||||
	void display();
 | 
			
		||||
	std::string Check_name();
 | 
			
		||||
	std::string Check_phone();
 | 
			
		||||
	User& add_exp(int s);
 | 
			
		||||
	User& refresh();
 | 
			
		||||
	Package* Check_Package();
 | 
			
		||||
	User& operator=(const User& x);
 | 
			
		||||
	bool operator==(const User& x);
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
class VIP : public User {
 | 
			
		||||
private:
 | 
			
		||||
	//std::string name;
 | 
			
		||||
	//std::string phone_num;
 | 
			
		||||
	//std::string uid;
 | 
			
		||||
	//int jingyan;
 | 
			
		||||
	bool flag;
 | 
			
		||||
public:
 | 
			
		||||
	VIP();
 | 
			
		||||
	VIP(User& x, bool f);
 | 
			
		||||
	VIP& reg(User& x);
 | 
			
		||||
};
 | 
			
		||||
							
								
								
									
										23
									
								
								Cai_Niao_E_Station/variable.cpp
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										23
									
								
								Cai_Niao_E_Station/variable.cpp
									
									
									
									
									
										Normal file
									
								
							
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							
							
								
								
									
										1
									
								
								Cai_Niao_E_Station/variable.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								Cai_Niao_E_Station/variable.h
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1 @@
 | 
			
		||||
#pragma once
 | 
			
		||||
		Reference in New Issue
	
	Block a user