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