Project:Cainiao_Estation

This commit is contained in:
e2hang
2025-08-11 00:20:16 +08:00
parent 5e70ee5bb3
commit 240cf86644
15 changed files with 841 additions and 0 deletions

View File

@@ -0,0 +1 @@
#pragma once

View 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;
}

View 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);
};

View 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>");
}

View 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();
};

View File

@@ -0,0 +1 @@
#pragma once

217
Cai_Niao_E_Station/main.cpp Normal file
View 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;
}

View 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;
}

View 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);
};

View 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;
}

View 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
View 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
View 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);
};

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1 @@
#pragma once