千家信息网

C++如何实现智能柜管理系统

发表于:2025-02-01 作者:千家信息网编辑
千家信息网最后更新 2025年02月01日,小编给大家分享一下C++如何实现智能柜管理系统,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!具体内容如下#define _
千家信息网最后更新 2025年02月01日C++如何实现智能柜管理系统

小编给大家分享一下C++如何实现智能柜管理系统,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!

具体内容如下

#define _CRT_SECURE_NO_DEPRECATE#include #include #include #include #include #include using namespace std;struct Node{    int pcode;    int num;    string pnum;    time_t tnum;    Node *next;    Node *prev;};//取件成功+剩余提示void rreaction(int l) {    cout << "______________________________________________________________";    cout << endl;    cout << endl;    cout << "                        取件成功!!!";    cout << endl;    cout << "______________________________________________________________";    cout << endl;    system("pause");    system("cls");    if (l != 0) {        cout << "______________________________________________________________";        cout << endl;        cout << endl;        cout << "              当前手机号还有"<< l <<"件未取!!!";        cout << endl;        cout << "______________________________________________________________";        cout << endl;        system("pause");        system("cls");    }}//取件码错误void freaction() {    cout << "______________________________________________________________";    cout << endl;    cout << endl;    cout << "                        取件码错误!!!";    cout << endl;    cout << "______________________________________________________________";    cout << endl;    system("pause");    system("cls");}//取件系统int pcode() {    int j = 0;    int l = 0;    int list1[25];    int list2[25];    string list3[25];    int list4[25];    ifstream file1("num.txt");    ifstream file2("tnum.txt");    ifstream file3("pnum.txt");    ifstream file4("pcode.txt");    while (file1.peek() != EOF) {        file1 >> list1[j];        file2 >> list2[j];        file3 >> list3[j];        file4 >> list4[j++];    }        file1.close();    file2.close();    file3.close();    file4.close();    int pcode;    cout << "______________________________________________________________";    cout << endl;    cout << endl;    cout << "                        取件码:"; cin >> pcode;    cout << endl;    cout << "______________________________________________________________";        for (int i = 0; i < j-1; i++) {        if (list4[i] == pcode) {             ofstream file1;            file1.open("num.txt");            ofstream file2;            file2.open("tnum.txt");            ofstream file3;            file3.open("pnum.txt");            ofstream file4;            file4.open("pcode.txt");            for (int k = 0; k < j-1; k++) {                if (k == i)continue;                else {                    if (list3[i] == list3[k])l = l + 1;                    file1 << list1[k] << endl;                    file2 << list2[k] << endl;                    file3 << list3[k] << endl;                    file4 << list4[k] << endl;                }            }                        file1.close();            file2.close();            file3.close();            file4.close();            system("cls");             cout << "______________________________________________________________";            cout << endl;            cout << endl;            cout << "                        柜号"<prev != NULL) {        if (p0->num == n) {            if (p0 == head) {                head = head->prev;                delete p0;                return head;            }            else {                p0->prev->next = p0->next;                p0->next->prev = p0->prev;                delete p0;                return head;            }        }        p0 = p0->prev;        if (p0->prev == NULL)        {                cout << "______________________________________________________________";            cout << endl;            cout << endl;            cout << "                       柜号" << n << "为空!!!";            cout << endl;            cout << "______________________________________________________________";            cout << endl;            system("pause");            system("cls");            return head;        }    }    return head;}//柜子界面int ginformation(Node* head) {    Node *p0;    p0 = head;    int j = 1;    int n;    int m[26] = { 0 };    while (p0->prev != NULL) {        m[p0->num] = 1;        p0 = p0->prev;    }    cout << "_________________________________________________________________________________________________________________________" << endl;    cout << "|           1           |           2           |           3           |           4           |           5           |" << endl;    cout << "|         "; if (m[j] == 0) { j++; cout << " ---  "; }    else { j++; cout << "已存放"; } cout << "        |         "; if (m[j] == 0) { j++; cout << " ---  "; }    else { j++; cout << "已存放"; } cout << "        |         "; if (m[j] == 0) { j++; cout << " ---  "; }    else { j++; cout << "已存放"; } cout << "        |         "; if (m[j] == 0) { j++; cout << " ---  "; }    else { j++; cout << "已存放"; } cout << "        |         "; if (m[j] == 0) { j++; cout << " ---  "; }    else { j++; cout << "已存放"; } cout << "        |" << endl;    cout << "|_______________________|_______________________|_______________________|_______________________|_______________________|" << endl;    cout << "|           6           |           7           |           8           |           9           |           10          |" << endl;    cout << "|         "; if (m[j] == 0) { j++; cout << " ---  "; }    else { j++; cout << "已存放"; } cout << "        |         "; if (m[j] == 0) { j++; cout << " ---  "; }    else { j++; cout << "已存放"; } cout << "        |         "; if (m[j] == 0) { j++; cout << " ---  "; }    else { j++; cout << "已存放"; } cout << "        |         "; if (m[j] == 0) { j++; cout << " ---  "; }    else { j++; cout << "已存放"; } cout << "        |         "; if (m[j] == 0) { j++; cout << " ---  "; }    else { j++; cout << "已存放"; } cout << "        |" << endl;    cout << "|_______________________|_______________________|_______________________|_______________________|_______________________|" << endl;    cout << "|           11          |           12          |           13          |           14          |           15          |" << endl;    cout << "|                       |                       |                       |                       |                       |" << endl;    cout << "|         "; if (m[j] == 0) { j++; cout << " ---  "; }    else { j++; cout << "已存放"; } cout << "        |         "; if (m[j] == 0) { j++; cout << " ---  "; }    else { j++; cout << "已存放"; } cout << "        |         "; if (m[j] == 0) { j++; cout << " ---  "; }    else { j++; cout << "已存放"; } cout << "        |         "; if (m[j] == 0) { j++; cout << " ---  "; }    else { j++; cout << "已存放"; } cout << "        |         "; if (m[j] == 0) { j++; cout << " ---  "; }    else { j++; cout << "已存放"; } cout << "        |" << endl;    cout << "|                       |                       |                       |                       |                       |" << endl;    cout << "|_______________________|_______________________|_______________________|_______________________|_______________________|" << endl;    cout << "|           16          |           17          |           18          |           19          |           20          |" << endl;    cout << "|                       |                       |                       |                       |                       |" << endl;    cout << "|         "; if (m[j] == 0) { j++; cout << " ---  "; }    else { j++; cout << "已存放"; } cout << "        |         "; if (m[j] == 0) { j++; cout << " ---  "; }    else { j++; cout << "已存放"; } cout << "        |         "; if (m[j] == 0) { j++; cout << " ---  "; }    else { j++; cout << "已存放"; } cout << "        |         "; if (m[j] == 0) { j++; cout << " ---  "; }    else { j++; cout << "已存放"; } cout << "        |         "; if (m[j] == 0) { j++; cout << " ---  "; }    else { j++; cout << "已存放"; } cout << "        |" << endl;    cout << "|                       |                       |                       |                       |                       |" << endl;    cout << "|_______________________|_______________________|_______________________|_______________________|_______________________|" << endl;    cout << "|           21          |           22          |           23          |           24          |           25          |" << endl;    cout << "|                       |                       |                       |                       |                       |" << endl;    cout << "|                       |                       |                       |                       |                       |" << endl;    cout << "|         "; if (m[j] == 0) { j++; cout << " ---  "; }    else { j++; cout << "已存放"; } cout << "        |         "; if (m[j] == 0) { j++; cout << " ---  "; }    else { j++; cout << "已存放"; } cout << "        |         "; if (m[j] == 0) { j++; cout << " ---  "; }    else { j++; cout << "已存放"; } cout << "        |         "; if (m[j] == 0) { j++; cout << " ---  "; }    else { j++; cout << "已存放"; } cout << "        |         "; if (m[j] == 0) { j++; cout << " ---  "; }    else { j++; cout << "已存放"; } cout << "        |" << endl;    cout << "|                       |                       |                       |                       |                       |" << endl;    cout << "|                       |                       |                       |                       |                       |" << endl;    cout << "|_______________________|_______________________|_______________________|_______________________|_______________________|" << endl;    cout << endl << "                                          输入要取出的智能柜的编号(输入'0'返回):";    cin >> n;    switch (n) {    case 1:    case 2:    case 3:    case 4:    case 5:    case 6:    case 7:    case 8:    case 9:    case 10:    case 11:    case 12:    case 13:    case 14:    case 15:    case 16:    case 17:    case 18:    case 19:    case 20:    case 21:    case 22:    case 23:    case 24:    case 25:        system("cls");        return n;    case 0:        system("cls");        return n;    default:        system("cls");        return -1;    }}//初始化Node* init(){    Node *head;    head = new Node;    head->next = NULL;    head->prev = NULL;    return head;}Node* autoinput(Node* head) {    int j = 0;    int list1[25];    int list2[25];    string list3[25];    int list4[25];    ifstream file1("num.txt");    ifstream file2("tnum.txt");    ifstream file3("pnum.txt");    ifstream file4("pcode.txt");    while (file1.peek() != EOF) {            file1 >> list1[j];                    file2 >> list2[j];                                    file3 >> list3[j];                    file4 >> list4[j++];    }    file1.close();    file2.close();    file3.close();    file4.close();    for (int i = 0; i < j-1; i++) {        Node *p0, *p1;        p0 = head;        p1 = new Node;        p1->num = list1[i];        p1->tnum = list2[i];        p1->pnum = list3[i];        p1->pcode = list4[i];            p1->prev = p0;        p0->next = p1;        p1->next = NULL;        head = p1;    }    return head;}//柜满警告void serror(Node* head) {    system("cls");    cout << "____________________________________________________________________________________";    cout << endl;    cout << endl;    cout << "                        无可用的柜子!!!";    cout << endl;    cout << "____________________________________________________________________________________";    cout << endl;    system("pause");    system("cls");}//派送快递int sedelivery(Node* head) {    int list[25];    int i = 0;    int k = 0;    Node *p0,*p1,*p2;    p0 = head;    p2 = head;    p1 = new Node;    while (p2->prev != NULL) {        list[i] = p2->num;        p2 = p2->prev;        i++;    }    string size,pnum;    unsigned seed;    time_t now = time(0);    seed = time(0);    srand(seed);    cout << "____________________________________________________________________________________";    cout << endl;    cout << endl;    cout << "                        包裹大小(small | medium | large):"; cin >> size;    cout << endl;    cout << endl;    cout << "                        手机号码:"; cin >> pnum;    cout << endl;    cout << "____________________________________________________________________________________";    cout << endl;    if (pnum.length() != 11) {        cout << "                        请输入正确的手机号码!!!";        cout << endl;        system("pause");        system("cls");        return -1;    }    else p1->pnum = pnum;    if (size == "small") {        int j = 1;        for (; j <= 10; j++) {            for (; k <= i; k++) {                if (k == i) {                    p1->num = j;                    break;                }                if (j == list[k]) {                    k = 0;                    break;                }            }            if (k != 0)break;        }if (j == 11)return 0;    }    else if (size == "medium") {        int j = 11;        for (; j <= 20; j++) {            for (; k <= i; k++) {                if (k == i) {                    p1->num = j;                    break;                }                if (j == list[k]) {                    k = 0;                    break;                }            }            if (k != 0)break;        }if (j == 21)return 0;    }    else if (size == "large") {        int j = 21;        for (; j <= 25; j++) {            for (; k <= i; k++) {                if (k == i) {                    p1->num = j;                    break;                }                if (j == list[k]) {                    k = 0;                    break;                }            }            if (k != 0)break;        }if (j == 26)return 0;    }    else {        cout << "                        请输入正确的包裹大小!!!";        cout << endl;        system("pause");        system("cls");        return -1;    }    p1->tnum = now;    p1->pcode = rand();    p1->prev = p0;    p0->next = p1;    p1->next = NULL;    head = p1;    cout << "                             派送成功!!!";    cout << endl;    cout << "                           包裹将投放到" << p1->num << "号柜";    cout << endl;    system("pause");    system("cls");    return 1;}//超时快递int iexpress(Node* head) {    int n;    unsigned seed;    time_t now = time(0);    seed = time(0);    srand(seed);    Node *p0,*p1;    p0 = head;    while (p0->prev->prev != NULL)p0 = p0->prev;    p1 = p0;    while (p0 != NULL) {        if (p0->tnum+86400 <= now) {            char* dt = ctime(&p0->tnum);            cout << "____________________________________________________________________________________";            cout << endl;            cout << endl;            cout << "                        柜号:" << p0->num << endl;            cout << "                        时间:" << dt << endl;            cout << "                        手机号码:" << p0->pnum;            cout << endl;            cout << "____________________________________________________________________________________";            cout << endl;        }        else break;        p0 = p0->next;    }    cout << endl << "                     输入要重放的智能柜的编号(输入'0'返回):";    cin >> n;    if (n == 0);    else {        while (p1 != NULL) {            if (p1->tnum + 86400 <= now) {                if (p1->num == n) {                    if (p1 == head) {                        p1->tnum = now;                        p1->pcode = rand();                        cout << endl << "                        操作成功!!!";                        cout << endl;                        cout << endl;                        system("pause");                        system("cls");                        return 1;                    }                    else {                        p1->prev->next = p1->next;                        p1->next->prev = p1->prev;                        p1->tnum = now;                        p1->pcode = rand();                        p1->prev = head;                        head->next = p1;                        p1->next = NULL;                        cout << endl << "                        操作成功!!!";                        cout << endl;                        cout << endl;                        system("pause");                        system("cls");                        return 2;                    }                }            }            else {                cout << endl << "                        操作失败!!!";                cout << endl;                cout << endl;                system("pause");                system("cls");                return 1;            }            p1 = p1->next;        }    }    system("cls");    return 1;}//文件输出void iinformation(Node* head) {    int j = 0;    Node *p0;    p0 = head;    int list1[25];    int list2[25];    string list3[25];    int list4[25];    while (p0->prev != NULL) {        list1[j] = p0->num;        list2[j] = p0->tnum;        list3[j] = p0->pnum;        list4[j++] = p0->pcode;        p0 = p0->prev;    }    ofstream file1;    file1.open("num.txt");    ofstream file2;    file2.open("tnum.txt");    ofstream file3;    file3.open("pnum.txt");    ofstream file4;    file4.open("pcode.txt");    for (j = j - 1; j >= 0;) {        file1 << list1[j] << endl;        file2 << list2[j] << endl;        file3 << list3[j] << endl;        file4 << list4[j--] << endl;    }    file1.close();    file2.close();    file3.close();    file4.close();}//快递员系统界面int initialization(Node* head) {    int n;    cout << "____________________________________________________________________________________" << endl;    cout << "|                                                                                  |" << endl;    cout << "|                                  智能柜管理系统                                  |" << endl;    cout << "|                                                                                  |" << endl;    cout << "|                                    1.取出快递                                    |" << endl;    cout << "|                                                                                  |" << endl;    cout << "|                                    2.放置快递                                    |" << endl;    cout << "|                                                                                  |" << endl;    cout << "|                                    3.查询超时快递                                |" << endl;    cout << "|                                                                                  |" << endl;    cout << "|                                    0.注销                                        |" << endl;    cout << "|                                                                                  |" << endl;    cout << "|__________________________________________________________________________________|" << endl;    cout << endl << "                             输入对应数字进入相应功能:";    cin >> n;    switch (n) {    case 1:        system("cls");        return 1;    case 2:        system("cls");        return 2;    case 3:        system("cls");        return 3;    case 0:        system("cls");        return 0;    default:        system("cls");        return -1;    }}//登录错误提示void lerror() {    cout << "____________________________________________________________________________________";    cout << endl;    cout << endl;    cout << "                        账号或密码错误!!!";    cout << endl;    cout << endl;    cout << "____________________________________________________________________________________";    cout << endl;    system("pause");    system("cls");}//登录系统int lsystem() {    int j = 0;    int anumber;    int password;    int list1[10];    int list2[10];    ifstream file1("anumber.txt");    while (!file1.eof())        file1 >> list1[j++];        file1.close();    j = 0;    ifstream file2("password.txt");    while (!file2.eof())        file2 >> list2[j++];    file2.close();    cout << "____________________________________________________________________________________";    cout << endl;    cout << endl;    cout << "                        账号:"; cin >> anumber;    cout << endl;    cout << endl;    cout << "                        密码:"; cin >> password;    cout << endl;    cout << "____________________________________________________________________________________";    for (int i = 0;i < j; i++) {        if (list1[i] == anumber && list2[i] == password) {            system("cls");            return 1;        }        else {            system("cls");            return -1;        }    }    return -1;}//系统界面int linterface() {    int n;    cout << "____________________________________________________________________________________" << endl;    cout << "|                                                                                  |" << endl;    cout << "|                                  智能柜管理系统                                  |" << endl;    cout << "|                                                                                  |" << endl;    cout << "|                                    1.取快递                                      |" << endl;    cout << "|                                                                                  |" << endl;    cout << "|                                    2.快递员登录                                  |" << endl;    cout << "|                                                                                  |" << endl;    cout << "|                                    0.退出                                        |" << endl;    cout << "|                                                                                  |" << endl;    cout << "|__________________________________________________________________________________|" << endl;    cout << endl << "                            输入对应数字进入相应功能:";    cin >> n;    switch (n) {    case 1:        system("cls");        return 1;    case 2:        system("cls");        return 2;    case 0:        exit(1);    default:        system("cls");        return -1;    }}/*    n为系统界面返回值                    1为取件系统        2为快递员登录系统界面    -1为循环    m为取件系统返回值                    -1为取件失败    其他为取件成功    j为登录系统返回值                    1为登陆成功        -1为登录失败    k为快递员系统界面返回值                1为柜子界面        2为派送快递                3为超时快递            0为注销    l为柜子界面返回值                    0为返回            -1为循环                其他为快递员取件    p为派送快递返回值                    0为柜满            1为成功                    -1为返回    o为超时快递返回值                    1为成功            2为失败*/int main() {    int n,m,j,k,l,p,o;    do {        n = linterface();        if (n == 1) {            m = pcode();            if (m == -1) {                freaction();                n = -1;            }            else {                rreaction(m);                n = -1;            }        }        else if (n == 2) {            j = lsystem();            if (j == 1) {                Node *head;                head = init();                head = autoinput(head);                do {                    k = initialization(head);                    if (k == 1) {                        do {                            l = ginformation(head);                            if (l > 0) {                                head = dnode(head, l);                                l = -1;                            }                            else if (l == 0) {                                k = -1;                                break;                            }                        } while (l == -1);                    }                    else if (k == 2) {                        p = sedelivery(head);                        if (p == 0) {                            serror(head);                            k = -1;                        }                        else if (p == 1) {                            head = head->next;                            k = -1;                        }                        else if (p == -1) {                            k = -1;                        }                    }                    else if (k == 3) {                        o = iexpress(head);                        if(o == 2)head = head->next;                        k = -1;                    }                    else if (k == 0){                        iinformation(head);                        n = -1;                        break;                    }                    else {                        k = -1;                    }                } while (k == -1);            }            else {                lerror();                n = -1;            }        }    } while (n == -1);}

以上是"C++如何实现智能柜管理系统"这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注行业资讯频道!

0