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