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

c語言設計一個文本菜單

發布時間: 2022-06-29 07:17:18

『壹』 如何用c語言編寫菜單項

在C語言中,通常菜單有系統菜單、彈出菜單、下拉菜單等,不知道你要做哪一種。
菜單的製作,通常需要一下幾個步驟:
1、定義菜單項目數據結構;
2、定義你要做的彈出菜單或下拉菜單或...的數據結構;
3、建立菜單內容;
4、載入菜單內容;
5、在某個位置上顯示(包含保存原有內容以備關閉菜單後恢復覆蓋的屏幕,測試菜單顯示區域根據實際情況調整顯示區域);
6、游標移動,菜單項目顏色變化;
7、執行選中菜單項程序;
8、關閉菜單。
如果純粹用C語言寫,寫一個通用的,估計至少要上千行程序代碼,以前做過,後來不再使用C語言了,放在機器上,就找不到了。要不就放上去了。

『貳』 如何用c語言實現文本菜單界面

/************************************************
*函數名:Menu
*功能:繪制主菜單界面,並根據輸入轉跳到其它功能
************************************************/
intMenu()
{
charcScan; //cScan用於記錄鍵盤的輸入

/*┏━┓┃┛┗*/

printf(" ");
printf(" ┏━━━━━━━━━━━━━━━━━━━━━━━━━┓ ");
printf(" ┃歡迎使用員工管理系統BetaV1.0┃ ");
printf(" ┃by1500830221┃ ");
printf(" ┃1、查看所有員工信息┃ ");
printf(" ┃2、添加員工┃ ");
printf(" ┃3、查找員工┃ ");
printf(" ┃4、刪除員工或修改資料┃ ");
printf(" ┃5、重設密碼┃ ");
printf(" ┃6、將員工信息以文本文檔輸出┃ ");
printf(" ┃7、清屏┃ ");
printf(" ┃8、查看版本信息┃ ");
printf(" ┃9、退出┃ ");
printf(" ┃┃ ");
printf(" ┗━━━━━━━━━━━━━━━━━━━━━━━━━┛ ");
cScan=getch();
returncScan-48;

}

『叄』 怎樣用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>
usingnamespacestd;
voidxuanzepaixu()//選擇排序函數
{
printf("待添加,請按任意鍵繼續...");
getchar();
}
voiderfenpaixu()//二分查找函數
{
printf("待添加,請按任意鍵繼續...");
getchar();
}

voidmenu()//主菜單
{
system("cls");//清屏
printf(" 菜單 ");
printf(" #***********************# ");
printf(" #1選擇排序# ");
printf(" #2二分查找# ");
printf(" #3返回# ");
printf(" #4---關閉# ");
printf(" #***********************# ");
printf(" 請選擇(1-4)=:");
}
voidmain()
{
charselect;
while(1)
{
menu();
system("COLOR9f");
scanf("%c",&select);
if(select=='3')
break;//返回上級菜單
else
{
getchar();//讀入回車符
if(!isdigit(select))//如果不是數字字元
{
printf(" 7Yourselectmaybewrong,mustenterthedigit! ");_getch();
}
else
{

switch(select)
{
case'1':xuanzepaixu();break;
case'2':erfenpaixu();break;
case'4':exit(0);//直接退出
default:
{
printf(" 77Yourselecteddigitmaybewrong,selectagain! ");
_getch();
break;
}
}
}
}
}

}

『伍』 怎麼用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、直接用輸出即可實現、

2、常式:

#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;
}

『柒』 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<string.h>


intMENU_Print(ints32QuerNum)
{
switch(s32QuerNum)
{
case1:
printf("您選擇的題目如下: ");
printf("1、以下可以正確表示標識符的是:() ");
printf("A、Data,Double ");
printf("B、case,Big ");
printf("C、2011A,hi_ok ");
printf("D、_2011,year-month-data ");
break;
case2:
printf("您選擇的題目如下: ");
printf("2、以下運算符優先順序最低的是:() ");
printf("A、?: ");
printf("B、++ ");
printf("C、&& ");
printf("D、+= ");
break;
case3:
printf("您選擇的題目如下: ");
printf("2、以下選項中不能正確賦值的是:() ");
printf("A、chars[20];s="ABCDE" ");
printf("B、chars[]="ABCDE" ");
printf("C、chars[20]={"ABCDE"} ");
printf("D、chars[20]={'A','B','C'} ");
break;
default:
break;
}

return0;
}

intmain()
{
ints32ChooseNum=0;
while(1)
{
printf(" 題號范圍為1-3,請輸入題號: ");
scanf("%d",&s32ChooseNum);

if(s32ChooseNum<1||s32ChooseNum>3)
{
printf("題號范圍為1-3,您是輸入超出的范圍,請重新輸入 ");
continue;
}

MENU_Print(s32ChooseNum);

}

return0;
}


運行結果:


我也不知道有沒有理解你的意思,你看看是否合適。。。,我沒有做選擇輸入和結果的判斷,如果需要的話可以加上去,你可以告訴我你的具體要求

以上

『玖』 C語言程序設計 編製程序:編制一個文本菜單 用來對學生信息進行輸入、修改、刪除和顯示 誰幫忙改下

LZ,你這個是C++風格的代碼。代碼已經改好了,可以運行,請採納我的答案吧,謝謝!

#include<IOSTREAM>

#include<string>

#include<CSTDLIB>

usingnamespacestd;

#defineN4

structSTUDENT

{

charnum[20];

charname[20];

charsex;

intage;

floatscore;

}st[N];

voidins()

{

intc=0;

cout<<endl<<"請輸入一個學生的數據";

cin>>st[c].num>>st[c].name>>st[c].sex>>st[c].age;

c++;

}

voiddel()

{

st[0];st[1];st[2];st[3];st[4];

intx,i,c=0;

cout<<"請輸入刪除的學生下標";

cin>>x;

if(x<c&&x>=0)

{

for(i=x;i<c-1;i++)

{

strcpy(st[i].num,st[i+1].num);

strcpy(st[i].name,st[i+1].name);

st[i].sex=st[i+1].sex;

st[i].age=st[i+1].age;

st[i].score=st[i+1].score;

}

c--;

}

else

cout<<endl<<"沒有此人";

}

voidcha()

{

intx,c;

cout<<endl<<"請輸入修改的學生下標";

cin>>x;

if(x<c&&x>=0)

{

cout<<endl<<"請輸入一個學生的數據";

cin>>st[c].num>>st[c].name>>st[c].sex>>st[c].age;

}

else

cout<<endl<<"沒有此人";

}

voidsort()

{

intp,c;

STUDENTmin;

for(inti=0;i<c;i++)

{

min=st[i];p=i;

for(intj=i+1;j<c+1;j++)

if(strcmp(st[j].num,min.num)<0)

{

min=st[j];

p=j;

}

st[p]=st[i];

st[i]=min;

}

}

voiddisp()

{

inti,c;

for(i=0;i<c;i++)

cout<<st[c].num<<st[c].name<<st[c].sex<<st[c].age<<st[c].score;

}

intmain()

{

STUDENTone;

intchoice=0;

do

{

cout<<"1-----insert"<<endl;

cout<<"2-----delete"<<endl;

cout<<"3-----change"<<endl;

cout<<"4-----sort"<<endl;

cout<<"5-----display"<<endl;

cout<<"6-----exit"<<endl;

cout<<"請選擇:";

cin>>choice;

switch(choice)

{

case1:

ins();

break;

case2:

del();

break;

case3:

cha();

break;

case4:

disp();

break;

case5:

sort();

break;

case6:

exit(0);

break;

default:

return1;

}

}while(1);

return0;

}

改了好久,現在可以運行了,請採納我的答案吧,謝謝!

『拾』 C語言 編寫菜單

#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");
}

樓主,終於幫你寫完了,完美測試成功,第一功能因為學藝未精寫了兩個小時,艾,呵呵,不過我還是很開心,如果你有什麼不懂可以HI我,我會幫你解答,呵呵,真的好開心,終於寫出來了
哈哈。。。。