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