當前位置:首頁 » 編程語言 » c語言點擊動態菜單
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

c語言點擊動態菜單

發布時間: 2023-03-24 06:37:35

c語言中如何實現選項菜單的功能

#include<stdio.h>
#include<stdlib.h>

voidhello()
{
printf("helloworld ");
}

intmain()
{

intx;
while(1)
{
printf("-------------操作選項----------- ");
printf("1:返回菜單 ");
printf("2:退出程序 ");
printf("3:執行操作 ");
printf("-------------------------------- ");


printf("按數字鍵選擇要執行的操作:");
scanf("%d",&x);
printf(" ");

//輸入2跳出循環,退出程序
if(x==2)
break;

switch(x)
{
case1:break;//輸入1,跳出switch語句,進入下一次循環
case3:hello();break;
default://數字輸入錯誤,跳出siwtch語句,進入下一次循環
printf("輸入的數字不正確 ");
break;
}
}
return0;
}

說明:有3個選項,1是用返回菜單,2是用於退出程序,3是用於執行相關的操作,這里只是一個示例,所以將要執行的操作,編寫成了一個輸出hello world的函數。

② C語言編寫菜單

#include<stdio.h>
#include<string.h>
#include<stdlib.h>
//值傳遞
voidfun1(chara)
{
a='b';
}
//地址傳遞
charfun2(char*a)
{
*a='a';
return*a;
}
//動態分配數組
voidfun3(char*&a)
{
a=(char*)malloc(sizeof(char));
}
charcaidan()
{
charchoose[5];
printf(" *************************************** ");
printf("┌──────┐ ");
printf("│菜單│ ");
printf("__________________________________ ");
printf("│1,按值傳遞| ");
printf("│2,按地址傳遞| ");
printf("│3,動態數組演示| ");
printf("│4,退出| ");
printf("└────────────────┙ ");
printf("************************************** ");
do
{
printf("請輸入您的選擇(1-4):");
scanf("%s",choose);
}while(strcmp(choose,"1")&&strcmp(choose,"2")&&strcmp(choose,"3")&&strcmp(choose,"4"));
//返回選擇的菜單,注意如果輸入太長這里會異常,因為choose[5],只申請了5個位元組。
returnchoose[0];
}
voidmain()
{
//執行菜單的選擇
while(1)
{
switch(caidan())
{
case'1':
{
chara='a';
fun1(a);
//按值傳遞內容不變
break;
}
case'2':
{
charb='b';
chara=fun2(&b);
//按地址傳遞內容會變
break;
}
case'3':
{
char*p=NULL;
fun3(p);
//動態數組分配成功
break;
}
case'4':exit(0);
}
}

}

③ 怎麼用C語言編寫菜單

#include "stdio.h"
#include "stdlib.h"
#include "dos.h"
#include "windows.h"
char choice1;
void main()
{
void menue1();
printf("歡迎進入Ben的作業查詢系統!");
menue1();
}
void menue1()
{
void choicemenue1();
printf("\n請按照以下列表選擇您想要查看的章節:");
printf("\n編號\t章節\n 1\t第一章\n 2\t第二章\n");
printf("請輸入編號進行選擇:");
choicemenue1();
}
void choicemenue1()
{
choice1=getch();
switch(choice1)
{
void menuechapter1();
void menuechapter2();
void menue1();
case '1':menuechapter1();break;
case '2':menuechapter2();break;
default:printf("\n輸入錯誤!請重新選擇!\n"),menue1();
}}
void menuechapter1()
{
char choiceex;
printf("\n您選擇的是第%c章",choice1);
printf("\n現在請選擇本章節的題目。");
printf("\n請按照以下列表選擇題目:");
printf("\n編號\t題目編號\n1\t第1題\n2\t第2題\n");
printf("請選擇:");
switch(choiceex=getch())
{
void c1_1();
void c1_2();
case '1':c1_1();break;
case '2':c1_2();break;
default:
printf("\n你個白痴!這也能選錯!不讓你重選了!");
printf("\n按任意鍵以退出!");
getch();
exit(0);
}
}
void menuechapter2()
{
char choiceex;
printf("\n您選擇的是第%c章",choice1);
printf("\n現在請選擇本章節的題目。");
printf("\n請按照以下列表選擇題目:");
printf("\n編號\t題目編號\n1\t第1題\n2\t第2題\n");
printf("\n請選擇:");
switch(choiceex=getch())
{
void c2_1();
void c2_2();
case '1':c2_1();break;
case '2':c2_2();break;
default:
printf("\n你個白痴!這也能選錯!不讓你重選了!");
printf("\n按任意鍵以退出!");
getch();
exit(0);
}
}
void c1_1()
{
char howtorun;
printf("現在請選擇考察方式:");
printf("\n編號\t考察方式\n 1\t運行程序\n 2\t查看源代碼\n 3\t返回主菜單\n 4\t退出程序\n");
printf("請選擇:");
switch(howtorun=getch())
{
void runc1_1();
void menue1();
case '1':runc1_1();break;
case '2':printf("\n"),system("type \\caidan\\chapter1\\c1_1.c"),printf("\n"),getch();break;
case '3':menue1();break;
case '4':exit(0);break;
default:
printf("程序即將結束!哈哈哈……");
printf("按任意鍵以結束程序!");
getch();
exit(0);
}}
void c1_2()
{
printf("c1_2 is OK!");
}void c2_1()
{
printf("c2_1 is OK!");
}void c2_2()
{
printf("c2_2 is OK!");
}
void runc1_1()
{
int a,b,max;
printf("\nPlease input two integer numbers:");
printf("a=?,b=?\n");
scanf("%d,%d",&a,&b);
max=a>b?a:b;
printf("The max number is %d",max);
}
大概就是這樣做的。。

④ 怎樣用C語言編寫菜單

  1. 對於窗口組件菜單,需要根據不同平台,通過圖形編程介面,進行菜單的編制。

    常式:

    #include<stdio.h>
    #include<graphics.h>
    #include<conio.h>
    voidmain()
    {
    charstr;
    inti,k,choice=1;
    intgd=DETECT,gm;
    initgraph(&gd,&gm,"");
    setbkcolor(2);
    settextstyle(3,0,3);
    outtextxy(140,120,"A.TheMockClock.");
    outtextxy(140,150,"B.TheDigitalClock.");
    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)
    {case1:setlinestyle(0,0,3);
    rectangle(170,115,400,145);
    settextstyle(3,0,3);
    outtextxy(140,120,"A.TheMockClock.");
    settextstyle(3,0,3);
    outtextxy(140,150,"B.TheDigitalClock.");
    outtextxy(140,180,"C.Exit.");
    break;
    case2:setlinestyle(0,0,3);
    rectangle(170,145,400,175);
    settextstyle(3,0,3);
    outtextxy(140,120,"A.TheMockClock.");
    settextstyle(3,0,3);
    outtextxy(140,150,"B.TheDigitalClock.");
    settextstyle(3,0,3);
    outtextxy(140,180,"C.Exit.");
    break;
    case3:settextstyle(3,0,3);
    outtextxy(140,120,"A.TheMockClock.");
    outtextxy(140,150,"B.TheDigitalClock.");
    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)/*這里引用函數,實現所要的功能*/
    {
    case1:cleardevice();
    setbkcolor(4);
    settextstyle(3,0,4);
    outtextxy(160,120,"No.1havenotbuilt.");break;
    case2:cleardevice();
    setbkcolor(4);
    settextstyle(3,0,4);
    outtextxy(160,150,"No.2havenotbuilt.");
    break;
    case3:exit(0);
    }
    getch();
    closegraph();
    }
  2. 對於命令行菜單,直接通過不斷刷新輸出來模擬菜單行為。

    常式:

    #include<stdio.h>
    #include<stdlib.h>
    #include<string.h>
    intn,t,k;
    intm;
    chars1[20],s2[20],c;
    char**l;
    char*num[]={"one","two","three","four","five","six","seven","eight","nine","ten"};
    voidmenu()
    {
    printf(" ******************************************************* ");
    printf(" **1.查找字元串S1中S2出現的次數** ");
    printf(" **2.統計字元串中大小寫字母,數字出現的次數** ");
    printf(" **3.將數字翻譯成英語** ");
    printf(" **4.結束** ");
    printf(" ******************************************************* ");
    printf(" 您的輸入:");
    fflush(stdin);
    scanf("%d",&n);
    }
    voidcheck()
    {

    chara[20],b[20];
    intj=0,k,m,l=0;
    intt=0,n=0;
    printf("請輸入主字元串: ");
    scanf("%s",a);
    k=strlen(a);
    printf("請輸入子字元串: ");
    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]!='');/*查找完字元數組a結束*/
    }
    printf("子字元串出現次數: %d ",l);
    }
    voidcout()
    {
    intn=0,t=0,k=0;
    printf("請輸入一個字元串: ");
    fflush(stdin);/*清除緩沖*/
    while((c=getchar())!=' ')
    {
    if(c>='a'&&c<='z')
    n++;
    if(c>='A'&&c<='Z')
    t++;
    if(c>='0'&&c<='9')
    k++;
    }
    printf("有大寫字母: %d ",t);
    printf("有小寫字母: %d ",n);
    printf("有數字: %d ",k);
    }
    voidnumber()
    {
    l=num;
    printf("請輸入一個數字:(0-10) ");
    fflush(stdin);
    scanf("%d",&m);
    printf("%d對應的英文是: %s ",m,*(l+m-1));
    }
    voidmain()
    {
    while(1)
    {
    system("cls");
    menu();
    switch(n)
    {
    case1:system("cls");check();system("pause");break;
    case2:system("cls");cout();system("pause");break;
    case3:system("cls");number();system("pause");break;
    case4:system("cls");break;
    default:system("cls");break;
    }
    if(n==4)break;
    }
    printf("感謝使用 ");
    }

⑤ C語言中怎麼編制簡單的菜單,通過菜單選擇能實現程序的各項功能

#include <iostream>
#include <stdlib.h>
#include <conio.h>
#include <ctype.h>
using namespace std;
void xuanzepaixu() //選擇排序函數
{
printf("待添加,請按任意鍵繼續...");
getchar();
}
void erfenpaixu() //二分查找函數
{
printf("待添加,請按任意鍵繼續...");
getchar();
}

void menu() //主菜單
{
system("cls"); //清屏
printf("\n\t\t\t 菜單\n");
printf("\t\t\t#***********************#\n");
printf("\t\t\t# 1選擇排序 #\n");
printf("\t\t\t# 2二分查找 #\n");
printf("\t\t\t# 3返回 #\n");
printf("\t\t\t# 4---關閉 #\n");
printf("\t\t\t#***********************#\n");
printf("\t\t\t 請選擇(1-4) =:");
}
void main()
{
char select;
while(1)
{
menu();
system("COLOR 9f");
scanf("%c",&select);
if(select=='3')
break; //返回上級菜單
else
{
getchar(); //讀入回車符
if(!isdigit(select)) //如果不是數字字元
{
printf("\n\7Your select may be wrong, must enter the digit!\n");_getch();
}
else
{

switch (select)
{
case '1': xuanzepaixu();break;
case '2': erfenpaixu();break;
case '4':exit(0); //直接退出
default:
{
printf("\n\7\7Your selected digit may be wrong, select again!\n");
_getch();
break;
}
}
}
}
}

}

⑥ c語言製作彈出式菜單

void Menu()
{

system("cls"); /*調用系統的清屏命令*/
textbackground(BLUE);/*將背景設置為藍色*/
textmode(2);
window(1,1,25,80);
clrscr();
textx=3;/*游標初始化位置*/
texty=2;
gotoxy(1,2);
cprintf("%c",218);/*畫左上角*/
for(i=0;i<78;i++)
cprintf("%c",196); /*畫水平直線*/
cprintf("%c",191);/*畫右上角*/
for(i=3;i<=23;i++)
{
gotoxy(1,i);
cprintf("%c",179); /*畫垂直線*/
gotoxy(80,i);
cprintf("%c",179);
}
cprintf("%c",192); /*畫左下角*/
for(i=0;i<78;i++)
cprintf("%c",196);

cprintf("%c",217); /*畫右下角*/
gotoxy(1,1);
textcolor(7); /*設置灰色*/
for(i=0;i<80;i++)
cprintf("%c",219);/*用符號實現畫主菜單的灰色背景區*/
Selectitem(); /*調用選項函數*/
DrawSelectitem(); /*畫選項*/
gettext(2,3,78,23,c); /*保存當前文本區域*/
}
/*定義菜單*/
void Selectitem()
{
strcpy(ml[0].name,"File");/*下面的具體選項補空格是為了各菜單黑色背景相同*/
strcpy(ml[0].str[0],"Open ALT-O");
strcpy(ml[0].str[1],"New ALT-N");
strcpy(ml[0].str[2],"Save Ctrl-S");
strcpy(ml[0].str[3],"Write to... ");
strcpy(ml[0].str[4],"Exit ");

ml[0].n=5; /*保存菜單的項數*/
strcpy(ml[1].name,"Edit");
strcpy(ml[1].str[0],"Cut Ctrl+X");
strcpy(ml[1].str[1],"Copy Ctrl+C");
strcpy(ml[1].str[2],"Paste Ctrl+V");
strcpy(ml[1].str[3],"Find ");
strcpy(ml[1].str[4],"Find&Replace ");
ml[1].n=5;
strcpy(ml[2].name,"Help");/*系統幫助*/
strcpy(ml[2].str[0],"This System ");
strcpy(ml[2].str[1],"Ver ");
ml[2].n=2;
}
/*顯示主單名*/
void DrawSelectitem()
{
for(i=0;i<3;i++)
RedText(i,1,ml[i].name); /*顯示主菜單名,且首字母為紅色*/
}
/*正常顯示菜單*/
void RedText(int x,int y,char *z)
{
textbackground(7); /*設置背景顏色為淺灰色*/
gotoxy(3+x*20,y);
for(j=0;z[j];j++)
{
if(j==0)
textcolor(RED);/*第一個字母顯示紅色*/
else
textcolor(BLACK); /*設置黑色*/
cprintf("%c",z[j]); /*輸出菜單名*/
}
}
/*顯示選中菜單*/
void BlackText(int x,int y,char *z)
{
textbackground(0); /*設置背景顏色為黑色*/
textcolor(15); /*設置文本顏色為白色*/
gotoxy(3+20*x,y);/*定位坐標*/
cputs(z); /*輸出菜單名字元串*/
}

/*畫邊框函數*/

void DrawFrame(int l,int u,int r,int d,int tcolor,int bcolor)
{
textbackground(bcolor); /*背景顏色*/
textcolor(bcolor); /*文本顏色*/
for(i=l;i<=r;i++) /*輸出背景區域*/
{
for(j=u;j<=d;j++)
{
gotoxy(i,j);
cprintf("%c",219); /*輸出背景字元*/
}
}
textcolor(tcolor);/*邊框顏色*/
for(i=u+1;i<d;i++) /*在背景區域內輸出邊框線*/
{
gotoxy(l,i);
cprintf("%c",179); /*垂直線*/
gotoxy(r,i);
cprintf("%c",179);
}
for(i=l+1;i<r;i++)
{
gotoxy(i,u);
cprintf("%c",196); /*水平線*/
gotoxy(i,d);
cprintf("%c",196);
}
gotoxy(l,u);
cprintf("%c",218);/*左上角*/
gotoxy(r,u);
cprintf("%c",191);/*右上角*/
gotoxy(l,d);
cprintf("%c",192);/*左下角*/
gotoxy(r,d);
cprintf("%c",217); /*右下角*/
/* gettext(l+1,u+1,r-1,d-1,save1);*//*保存邊框內區域*/
}
/*顯示具體下拉選擇項目*/
void DrawMl(int n,charnodeptr *L,rownodeptr *R,pformateptr *P,operationptr *C,editptr *E)
{
gettext(1,1,80,25,save);/*保存被掩蓋的地方*/
BlackText(n,1,ml[n].name);/*反選顯示主菜單*/
DrawFrame(3+20*n-1,2,3+20*n+19,3+ml[n].n,0,7);/*下拉菜單的邊框*/
for(i=3;i<3+ml[n].n;i++)/*輸出所選菜單各選項*/
{
if(i==3)
BlackText(n,i,ml[n].str[i-3]);/*默認選中第一項*/
else
RedText(n,i,ml[n].str[i-3]);/*其餘各項首字元紅色顯示*/
}
gotoxy(79,1);
MoveMl(n,3,L,R,P,C,E);/*菜單選項的控制*/
}
/*菜單選項的控制,n決定水平項,x決定下拉的選項*/
void MoveMl(int n,int x,charnodeptr *L,rownodeptr *R,pformateptr *P,operationptr *C,editptr *E)
{
int flag=1;
while(flag)
{
gotoxy(79,1);
key=bioskey(0);/*接收按鍵*/
gotoxy(79,1);
switch(key)
{
case ESC:/*退出循環*/
puttext(1,1,80,25,save);/*恢復打開菜單前的樣子*/
flag=0;
break;
case LEFT:/*移到左邊的選項*/
puttext(1,1,80,25,save);/*恢復打開菜單前的樣子*/
if(n==0)/*往左移動越界的話移到最後一個選項*/
DrawMl(2,L,R,P,C,E);
else
DrawMl(n-1,L,R,P,C,E);
flag=0;
break;
case RIGHT:/*移動右邊的選項*/
puttext(1,1,80,25,save);/*恢復打開菜單前的樣子*/
if(n==2)/*往右移動越界的話移到第一個選項*/
DrawMl(0,L,R,P,C,E);
else
DrawMl(n+1,L,R,P,C,E);
flag=0;
break;
case UP:/*具體選項往上移動*/
RedText(n,x,ml[n].str[x-3]);/*輸出紅色字體*/
if(x==3)/*移到最上面再按上鍵,就移到最下面*/
x=3+ml[n].n-1;
else
x--;/*移動到新的要顯示的內容*/
BlackText(n,x,ml[n].str[x-3]);/*輸出黑色字體*/
flag=1;
break;
case DOWN:/*具體選項往下移動*/
RedText(n,x,ml[n].str[x-3]);
if(x==(3+ml[n].n-1))/*移動到最底下再按下鍵就移到最上面*/
x=3;
else
x++;/*移動到新的要顯示的內容*/
BlackText(n,x,ml[n].str[x-3]);
flag=1;
break;
case ENTER:
puttext(1,1,80,25,save);/*恢復打開菜單前的樣子*/
Enter(n,x-3,L,R,P,C,E);/*菜單選項的具體功能*/
flag=0;
break;
}
gotoxy(79,1);
}
}
/*菜單選項的具體功能*/
void Enter(int m,int n,charnodeptr *L,rownodeptr *R,pformateptr *P,operationptr *C,editptr *E)
{

switch(m)
{
case 0:switch(n)
{
case 0:Openfile(L,R,P,C,E);break; /*打開一個已存在的文件*/
case 1:Newfile(L,R,P,C,E);break; /*創建一個文件*/
case 2:Savefile(L);break; /*保存當前操作和文件*/
case 3:Writeto(L); /*另存為*/
case 4:Exit(L); /*退出系統*/
} break;
case 1: switch(n)
{
case 0: cut(L,R,P,C,E);break; /*剪切*/
case 1: (L,R,P,C,E);break; /*復制*/
case 2: paste(L,R,P,C,E);break; /*粘貼*/
case 3:find(L,R,P,C,E);break; /*查找*/
case 4:replace(L,R,P,C,E);break;/*替換*/
}break;
case 2:switch(n) /*選擇了幫助菜單選項*/
{
case 0:Help();break;
case 1:Ver();
}
}/*結束外switch*/
}
//這是部分程序,如果要完整的例子程序,告訴我郵箱,我發給你.

⑦ 如何用C語言做一個菜單,裡面放程序

1、首先新建源文件c.c,用文本編輯器打開。

⑧ 急求C語言編寫歡迎界面幾秒後跳入菜單界面的程序代碼,哪位大神會呀

#include <stdlib.h>
#include <windows.h>
#include "stdio.h"
void main()
{
int n;
printf("歡迎界面");//歡迎界面
Sleep(1000);//延時
system("cls");//清屏
//菜單界面
printf("***********************************************\n");
printf("*************1、 ***********************\n");
printf("*************2、 ***********************\n");
printf("*************3、並做 ***********************\n");
printf("***********************************************\n");
//菜單選擇
scanf("%d",&n);
if(n==1){}
else if(n==2){}
else if(n==3){}
else {printf("錯誤!");}
}

希望能幫助你,喜歡請採納,有問題歡春稿迎追扒蔽孝問!

⑨ C語言的菜單選擇動能

while(1)
{ printf(" ----------------------------------\n");
printf(" | 菜單 |\n");
printf(" |__首棚______________|\n");
printf(" | A.輸出元素 |\n");
printf(" | B.插入元素 |\n");
printf(" | C:刪除元素 |\n");
printf("梁芹塌 | D.查找 |\n");
printf(" | E.排序 |\n");
printf(" | F.退出程序 |\n");
printf(" ----------------------------------\n");
printf(" 請輸入你的選擇\橡圓n");
scanf("%c",&k);
switch(k)
{ case A: p=output(); break;
case B: insert(p); break;
case C: p=del(p); break;
case D: p=find(p); break;
case E: paixu(p); break;
case F: exit(0);
default: printf("選擇錯誤,重新開始!\n");
}
這是根據我的作業做了寫改動,給你做參考吧