<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
本文範例為大家分享了C++實現智慧櫃管理系統的具體程式碼,供大家參考,具體內容如下
#define _CRT_SECURE_NO_DEPRECATE #include <iostream> #include <stdlib.h> #include <fstream> #include <cstdlib> #include <ctime> #include <string> 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 << " 櫃號"<<list1[i]<<"已開啟"; cout << endl; cout << "______________________________________________________________"; cout << endl; system("pause"); system("cls"); return l; } } system("cls"); return -1; } //快遞員取件 Node* dnode(Node* head,int n) { Node *p0; p0 = head; while (p0->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); }
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支援it145.com。
相關文章
<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
综合看Anker超能充系列的性价比很高,并且与不仅和iPhone12/苹果<em>Mac</em>Book很配,而且适合多设备充电需求的日常使用或差旅场景,不管是安卓还是Switch同样也能用得上它,希望这次分享能给准备购入充电器的小伙伴们有所
2021-06-01 09:31:42
除了L4WUDU与吴亦凡已经多次共事,成为了明面上的厂牌成员,吴亦凡还曾带领20XXCLUB全队参加2020年的一场音乐节,这也是20XXCLUB首次全员合照,王嗣尧Turbo、陈彦希Regi、<em>Mac</em> Ova Seas、林渝植等人全部出场。然而让
2021-06-01 09:31:34
目前应用IPFS的机构:1 谷歌<em>浏览器</em>支持IPFS分布式协议 2 万维网 (历史档案博物馆)数据库 3 火狐<em>浏览器</em>支持 IPFS分布式协议 4 EOS 等数字货币数据存储 5 美国国会图书馆,历史资料永久保存在 IPFS 6 加
2021-06-01 09:31:24
开拓者的车机是兼容苹果和<em>安卓</em>,虽然我不怎么用,但确实兼顾了我家人的很多需求:副驾的门板还配有解锁开关,有的时候老婆开车,下车的时候偶尔会忘记解锁,我在副驾驶可以自己开门:第二排设计很好,不仅配置了一个很大的
2021-06-01 09:30:48
不仅是<em>安卓</em>手机,苹果手机的降价力度也是前所未有了,iPhone12也“跳水价”了,发布价是6799元,如今已经跌至5308元,降价幅度超过1400元,最新定价确认了。iPhone12是苹果首款5G手机,同时也是全球首款5nm芯片的智能机,它
2021-06-01 09:30:45