问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

怎样用C语言编写菜单

发布网友 发布时间:2022-04-26 15:24

我来回答

2个回答

热心网友 时间:2023-10-11 17:32

对于窗口组件菜单,需要根据不同平台,通过图形编程接口,进行菜单的编制。

例程:

#include<stdio.h> 
#include<graphics.h> 
#include<conio.h> 
void main() 

char str; 
int i,k,choice=1; 
int gd=DETECT,gm; 
initgraph(&gd,&gm," "); 
setbkcolor(2); 
settextstyle(3,0,3); 
outtextxy(140,120,"A. The Mock Clock."); 
outtextxy(140,150,"B. The Digital Clock."); 
outtextxy(140,180,"C. Exit."); 
setlinestyle(0,0,3); 
rectangle(170,115,370,145); 
/*按上下键选择所需选项*/ 
for(i=1;i<=100;i++) 

str=getch(); 
if(str==72) 

--choice; 
if(choice==0)choice=3; 

if(str==80) 

++choice; 
if(choice==4)choice=1; 

if(str==13)break; /*按回车键确认*/ 
/*画图做菜单*/ 
cleardevice(); 
switch(choice) 
{ case 1: setlinestyle(0,0,3); 
rectangle(170,115,400,145); 
settextstyle(3,0,3); 
outtextxy(140,120,"A. The Mock Clock."); 
settextstyle(3,0,3); 
outtextxy(140,150,"B. The Digital Clock."); 
outtextxy(140,180,"C. Exit."); 
break; 
case 2: setlinestyle(0,0,3); 
rectangle(170,145,400,175); 
settextstyle(3,0,3); 
outtextxy(140,120,"A. The Mock Clock."); 
settextstyle(3,0,3); 
outtextxy(140,150,"B. The Digital Clock."); 
settextstyle(3,0,3); 
outtextxy(140,180,"C. Exit."); 
break; 
case 3: settextstyle(3,0,3); 
outtextxy(140,120,"A. The Mock Clock."); 
outtextxy(140,150,"B. The Digital Clock."); 
settextstyle(3,0,3); 
outtextxy(140,180,"C. Exit."); 
setlinestyle(0,0,3); 
rectangle(170,175,400,205); 
break; 


if(i>=100)exit(0);/*如果按键超过100次退出*/ 
switch(choice)/*这里引用函数,实现所要的功能*/ 

case 1: cleardevice(); 
setbkcolor(4); 
settextstyle(3,0,4); 
outtextxy(160,120,"No.1 have not built."); break; 
case 2: cleardevice(); 
setbkcolor(4); 
settextstyle(3,0,4); 
outtextxy(160,150,"No.2 have not built."); 
break; 
case 3: exit(0); 

getch(); 
closegraph(); 
}

对于命令行菜单,直接通过不断刷新输出来模拟菜单行为。

例程:

#include <stdio.h>
#include <stdlib.h> 
#include <string.h>
int n,t,k;
int m;
char s1[20],s2[20],c;
char **l;
char *num[]={"one","two","three","four","five","six","seven","eight","nine","ten"};
void menu()
{
 printf("\n\n\t\t*******************************************************\n");
 printf("\t\t**   1.查找字符串S1中S2出现的次数                    **\n");
 printf("\t\t**   2.统计字符串中大小写字母,数字出现的次数        **\n");
 printf("\t\t**   3.将数字翻译成英语                              **\n");
 printf("\t\t**   4.结束                                          **\n");
 printf("\t\t*******************************************************\n");
 printf("\t\t     您的输入:");
    fflush(stdin);
 scanf("%d",&n);
}
void check()
{
 
 char a[20],b[20];
 int j=0,k,m,l=0;
 int t=0,n=0;
 printf("请输入主字符串:\n");
 scanf("%s",a);
 k=strlen(a);
 printf("请输入子字符串:\n");
 scanf("%s",b);
 m=strlen(b);
 for(n=0;n<k;n++)
  if(a[n]==b[0])
  {
   j++; /*记录相同的字符数*/
   do
   {    
    if(a[++n]==b[++t])
    { 
     j++;
     if(j==m) 
     {
      l++;/*子字符串相同数*/
      j=0;/*判断后相同字符数归零*/
      t=-1;/*判断中if中++t;t将会归零*/
     }
    }
    else
    {
     j=0;
     t=0;
     break;/*如果不同跳出while循环让for使n+1继续判断*/
    }
   }while(a[n]!='\0');/*查找完字符数组a结束*/
  }
  printf("子字符串出现次数:\n%d\n",l);
}                                  
void cout()
{
 int n=0,t=0,k=0;
 printf("请输入一个字符串:\n");
    fflush(stdin);/*清除缓冲*/
 while((c=getchar())!='\n')
 {
  if(c>='a'&&c<='z')
   n++;
  if(c>='A'&&c<='Z')
   t++;
  if(c>='0'&&c<='9')
   k++;
 }
 printf("有大写字母:\n%d\n",t);
 printf("有小写字母:\n%d\n",n);
 printf("有数字:\n%d\n",k);
}
void number()
{
 l=num;
 printf("请输入一个数字:(0-10)\n");
    fflush(stdin);
 scanf("%d",&m);
 printf("%d对应的英文是:\n%s\n",m,*(l+m-1));
}
void main()
{
 while(1)
 {   
  system("cls");
  menu();
  switch(n)
  {
  case 1:system("cls");check();system("pause");break;
  case 2:system("cls");cout();system("pause");break;
  case 3:system("cls");number();system("pause");break;
  case 4:system("cls");break;
  default:system("cls");break; 
  }
  if(n==4) break;
 }
 printf("感谢使用\n");
}

热心网友 时间:2023-10-11 17:33


在C语言中,通常菜单有系统菜单、弹出菜单、下拉菜单等,不知道你要做哪一种。

菜单的制作,通常需要一下几个步骤:
1、定义菜单项目数据结构;
2、定义你要做的弹出菜单或下拉菜单或...的数据结构;
3、建立菜单内容;
4、加载菜单内容;
5、在某个位置上显示(包含保存原有内容以备关闭菜单后恢复覆盖的屏幕,测试菜单显示区域根据实际情况调整显示区域);
6、光标移动,菜单项目颜色变化;
7、执行选中菜单项程序;
8、关闭菜单。

如果纯粹用C语言写,写一个通用的,估计至少要上千行程序代码,以前做过,后来不再使用C语言了,放在机器上,就找不到了。要不就放上去了。
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
生产要素的需求有哪些性质 生产要素的需求有何特点? 什么是生产要素需求 微观经济学要素需求什么是条件要素需求?它和要素需求有什么不同?_百度... 养宠物的人遵守规则,是不是就能和别人平安相处呢? 企业培训学到了什么 培训感悟简短 有关培训的感悟 通过培训学到什么 培训你学到了什么 领导问培训学到什么怎么回复 C语言制作自我介绍 怎样利用C语言制作图片 C语言名片管理系统 急!c语言学生名片管理系统 C语言名片管理系统源代码 怎么在里面添加图片啊 c语言名片 急!C语言共用体实现设计个人名片,包含姓名,职业,电话 c语言共用体实现设计个人名片,包含姓名,职业,电话 用c语言编程以*做一个矩形边框的个人名片 里面含有(姓名,性别,职业....)用for的那种 用c语言制作名片格式 C语言名片的制作 小程序这么火,怎么利用小程序招生呢? 怎样做才能够让所结都葡萄即不生虫又不落 葡萄是在夏季收获吗? 葡萄种植 大棚葡萄这个因为天气热没有及时通风,葡萄叶子和正在开花的葡萄都哭死了,怎么补救,不影响明年的种植? 如何批量导出微信好友? 美人指葡萄冬芽在夏天就萌发了,原因?怎么处理? 为什么葡萄不生虫子呢 为什么我家种植的葡萄到夏季就不生长了 制作C语言流程图 怎样用C语言做一个条形码 美团上怎么订不了ktv 为什么美团上都没有KTV 大家,这两天在美团上订的KTV都不能用么 问大家个问题,为啥美团的酒店外卖都支持花呗 ,KTV怎么不行?哪个平台支持? 美团上为什么加载不出来ktv 与象有关的词成语 我订的外卖能不能送到送KTV啊? 与象有关的成语 美团信用卡尝鲜额度怎么不支持订KTV 与象共舞的中心思想 美团上ktv预定之后还需要打电话预约吗 《与象共舞》这篇课文 在美团上预订ktv,因为商家房满了,不能唱,能不能退款 求与象有关的成语(要求吉祥意义的) 与象共舞的主要内容 我在美团订了ktv包间怎么用 与象共舞的资料 美团怎么跟KTV合作