int menu_select() //菜单实现 { char *m[14]={ "1.追加城市记录", "2.删除城市记录", "3.修改城市记录", "4.保存城市信息,写入磁盘文件", "5.从磁盘文件读取城市信息", "6.显示全部城市信息", "7.输入飞机信息", "8.显示飞机信息", "9.判断起飞时是否可以刹车", "10.显示距当前飞机在雷达扫描半径内所有城市信息", "11.清空城市列表", "0.退出处理" }; int i,choice; do{ system("cls"); //清屏 cin.clear(); //清除出错状态 cin.sync(); //清除输入缓冲区 for(i=0;m[i];i++) cout<<m[i]<<endl; cout<<"Input 1-11,0:"; cin>>choice; }while(choice<0||choice>11); return(choice); }
时间: 2024-01-15 07:38:14 浏览: 62
好的,这是一个菜单实现函数,接下来我会为您绘制其流程图。
![menu_select函数流程图](https://i.imgur.com/8Bf6M1o.png)
以上是 menu_select() 函数的流程图,其具体流程如下:
1. 定义字符串数组 m 存储菜单选项;
2. 定义整型变量 i 和 choice,其中 choice 存储用户选择的菜单项;
3. 进入 do-while 循环;
4. 调用 system 函数清屏,显示菜单选项;
5. 调用 cin 函数清除出错状态和输入缓冲区;
6. 提示用户输入菜单选项,读取用户输入的 choice;
7. 如果 choice 不在 0-11 范围内,回到步骤 4,重新显示菜单选项,等待用户输入;
8. 如果 choice 在 0-11 范围内,退出循环并返回 choice。
相关问题
#include"udp_socket.h" int udp_client(char *sendData, char *recvData,int recvBuffLen,int port,char *ip){ int cclient ; //创建udp socket /*******Begin 1 ****/ /******End 1 ******/ if(cclient == -1) { … } close(cclient); return 0; }补全代码
#include "udp_socket.h"
int udp_client(char *sendData, char *recvData, int recvBuffLen, int port, char *ip) {
int cclient ; //创建udp socket
struct sockaddr_in server_addr;
/*******Begin 1 ****/
cclient = socket(AF_INET, SOCK_DGRAM, 0); //创建UDP socket
if(cclient == -1) {
perror("socket error");
return -1;
}
bzero(&server_addr,sizeof(server_addr));
server_addr.sin_family = AF_INET;
server_addr.sin_port = htons(port);
server_addr.sin_addr.s_addr = inet_addr(ip);
/******End 1 ******/
sendto(cclient, sendData, strlen(sendData),0,(struct sockaddr *)&server_addr,sizeof(server_addr));
socklen_t len = sizeof(server_addr);
int n = recvfrom(cclient, recvData, recvBuffLen, 0, (struct sockaddr *)&server_addr, &len);
if(n < 0) {
perror("recvfrom error");
return -1;
}
close(cclient);
return 0;
}
int menu_select()//菜单实现 { char *m[13]=//根据菜单项设计指针数组长度 { "1. 增加城市信息", "2. 删除城市信息", "3. 修改城市信息", "4. 保存城市信息至文件", "5. 从文件读取城市信息", "6. 显示所有城市信息", "7. 设置飞机信息", "8. 显示飞机信息", "9. 判断起飞飞机是否可以刹车", "10. 查询飞机雷达半径内所有城市信息", "11.删除飞机信息", "0. 退出" }; int i,choice; do { system("cls");//清屏 for (i = 0; m[i]; i++) cout<<m[i]<<endl; cout << "Input 0-11:"; cin >> choice; } while (choice < 0 || choice>11); return (choice); }无法显示菜单,是什么原因
根据您提供的代码,这段代码应该是一个菜单实现的函数。其中使用了一个指针数组 `m` 来保存菜单项的字符串,然后通过循环输出菜单项。但是,您的代码存在一些问题:
1. 数组 `m` 的长度为 13,但是只有 12 个菜单项,因此最后一个菜单项的字符串应该为 `"0. 退出"` 而不是 `""`。
2. 在循环输出菜单项时,应该使用 `m[i]` 来获取菜单项字符串,而不是 `m[i]` 后面加上 `endl`,否则会在每个菜单项之间输出一个空行。
因此,您可以尝试修改您的代码如下:
```c++
int menu_select() {
char *m[13] = {
"1. 增加城市信息",
"2. 删除城市信息",
"3. 修改城市信息",
"4. 保存城市信息至文件",
"5. 从文件读取城市信息",
"6. 显示所有城市信息",
"7. 设置飞机信息",
"8. 显示飞机信息",
"9. 判断起飞飞机是否可以刹车",
"10. 查询飞机雷达半径内所有城市信息",
"11. 删除飞机信息",
"0. 退出"
};
int i, choice;
do {
system("cls");//清屏
for (i = 0; i < 12; i++) {
cout << m[i] << endl;
}
cout << "Input 0-11:";
cin >> choice;
} while (choice < 0 || choice > 11);
return choice;
}
```
这样就可以正常显示菜单了。
相关推荐
![docx](https://img-home.csdnimg.cn/images/20210720083331.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![application/x-rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)