流程图void Delete(ST &T)//删除{ cout << " ************************************************" << endl; cout << " *** 根据所作操作选择以下数字序号 ***" << endl; cout << " *** 1.通过订单编号删除 ***" << endl; cout << " *** 2.通过收件人姓名删除 ***" << endl; cout << " *** 3.退出 ***" << endl; cout << " ************************************************" << endl; cout << "请选出下一步进行的操作:"; int x = 0, i = 0, y; int order_num; string name; cin >> y; switch (y) { case 1: { cout << "请输入要删除的订单的订单编号:"; cin >> order_num; for (i = 0; i < T.length; i++) { if (T.R[i].order_num == order_num) { T.R[i] = T.R[i + 1]; T.length--; } } return Delete(T); break; } case 2: { cout << "请输入要删除的订单的收件人姓名:"; cin >> name; for (i = 0; i <= T.length; i++) { if (T.R[i].name == name) { T.R[i] = T.R[i + 1]; T.length--; } } return Delete(T); break; } case 3: { return menu(T); break; } }}
时间: 2023-08-22 12:08:52 浏览: 59
这段代码是一个删除函数,根据用户选择的方式(通过订单编号或收件人姓名)来删除订单。如果选择的是通过订单编号删除,函数会要求用户输入订单编号,然后遍历订单列表,找到匹配的订单并删除;如果选择的是通过收件人姓名删除,函数会要求用户输入收件人姓名,然后遍历订单列表,找到匹配的订单并删除。最后,函数会递归调用自身,直到用户选择退出。
相关问题
画出该程序的流程图#include<iostream> #include<iomanip> #include"kids.h" #include"countingchildren.h" #include"print.h" using namespace std; Kid* pfirst = 0; Kid* pcurrent = 0; Kid* pivot = 0; void main() { int numberofboys, m; cout << "请输入参与约瑟夫的小孩人数"; cin >> numberofboys; cout << endl; cout << "请输出约瑟夫问题的间隔数:"; cin >> m; cout << endl; pfirst = new Kid; pfirst->code = 1; pfirst->pnext = pfirst; pcurrent = pfirst; for (int i = 1; i < numberofboys; i++) { pivot = pcurrent; pcurrent = new Kid; pcurrent->code = i + 1; cout << "请输入第" << i << "个小孩名字"; cin >> pcurrent->name; pivot->pnext = pcurrent; } pcurrent->pnext = pfirst; cout << setw(4) << pfirst->code;//遍历输出 pcurrent = pfirst->pnext; while (pcurrent != pfirst) { cout << setw(4) << pcurrent->code; pcurrent = pcurrent->pnext; } cout << endl; countchildren(pfirst, m); printWinner(pcurrent); } //countchildren.h void countchildren(Kid* pfirst, int m); //countchildren.cpp #include<iostream> #include<iomanip> #include"kids.h" #include"leave.h" #include"print.h" using namespace std; void countchildren(Kid* pfirst, int m) { Kid* pcurrent = 0; Kid* pivot = 0; pcurrent = pfirst; int j; while (pcurrent->pnext != pcurrent) { j = m; do { pivot = pcurrent; pcurrent = pcurrent->pnext; j--; } while (j > 1); printLoser(pcurrent); leave(pivot, pcurrent); } } //print.h #pragma once #include<iostream> #include<iomanip> #include"kids.h" #include"countingchildren.h" using namespace std; void printWinner(Kid* winner); void printLoser(Kid* loser); //print.cpp #include<iostream> #include<iomanip> #include"kids.h" #include"countingchildren.h" using namespace std; #include "print.h" void printWinner(Kid* winner) { cout << "最后胜利的人:" << endl; cout << "其编号:" << setw(4) << winner->code << endl; cout << "名字:" << winner->name << endl; } void printLoser(Kid* loser) { cout << "这轮失败的人:" << endl; cout << "其编号:" << setw(4) << loser->code << endl; cout << "名字:" << loser->name << endl; } //Leave.h #pragma once #include<iostream> #include<iomanip> #include"kids.h" #include"countingchildren.h" using namespace std; void leave(Kid* pivot, Kid* pcurrent ); //leave.cpp #include<iostream> #include<iomanip> #include"kids.h" #include"countingchildren.h" using namespace std; void leave(Kid* pivot, Kid* pcurrent) { pivot->pnext = pcurrent->pnext; delete pcurrent; pcurrent = pivot->pnext; }
抱歉,由于我是一名语言模型,无法绘制流程图。不过,我可以为您解释程序的大致流程:
1. 定义 Kid 类型的指针变量 pfirst、pcurrent、pivot 和 winner,分别表示第一个孩子、当前孩子、前一个孩子和胜利者。
2. 通过输入获取参与游戏的小孩人数和问题的间隔数。
3. 创建 Kid 类型的对象,存储每个孩子的编号和名字,将它们连接成一个环形链表,并输出链表中每个孩子的编号。
4. 调用 countchildren 函数,对孩子进行计数,每次计数到第 m 个孩子就将其删除,直到只剩下一个孩子为止。
5. 输出最后胜利的孩子的编号和名字。
其中,countchildren 函数调用了 leave 函数和 printLoser 函数,leave 函数用于删除孩子,printLoser 函数用于输出每轮被删除的孩子的编号和名字。程序还包括 printWinner 函数,用于输出最后胜利的孩子的编号和名字。
void Gmenu() { cout << endl << endl; cout << "\t\t\t ------------------------------\n"; cout << "\t\t\t| 学生成绩管理(G) |\n"; cout << "\t\t\t|------------------------------|\n"; cout << "\t\t\t| 1.显示学生信息 |\n"; cout << "\t\t\t| 2.删除学生信息 |\n"; cout << "\t\t\t| 3.增加学生信息 |\n"; cout << "\t\t\t| 4.查询学生信息 |\n"; cout << "\t\t\t| 5.修改学生信息 |\n"; cout << "\t\t\t| 6.保存学生信息 |\n"; cout << "\t\t\t| 7.显示学生课表 |\n"; cout << "\t\t\t| 0.退出登录 |\n"; cout << "\t\t\t ------------------------------\n"; cout << "\t\t\t请输入你的选择:"; int choise; cin >> choise; system("cls"); switch (choise) { case 1: PrintAll(); break; case 2: Delete(); break; case 3: Insert(); break; case 4: SearchMenu(); break; case 5: ModifyData(); break; case 6: SaveData(); break; case 7: course(); break; case 0: Deng(); break; } }帮我画出以上代码的流程图
很抱歉,作为一个语言模型AI,我无法画出流程图。但我可以为您解释代码的流程。
1. 输出菜单选项,让用户选择需要进行的操作。
2. 用户输入选择的操作。
3. 根据用户选择的操作,进入相应的操作函数,如PrintAll()、Delete()、Insert()等。
4. 执行完毕后再次回到菜单选项,等待用户进行下一步操作。
5. 如果用户选择退出登录,进入Deng()函数结束程序。