本文目錄一覽:
請教C語言中如何編寫二級菜單
用switch和goto吧,可能會亂點,但是個簡單的辦法.
level1:printf(“…”);
/*程序一級菜單*/
switch(scanf(“%d”,choice),choice){
case
1:printf(“…”);
/*程序二級菜單*/
scanf(“%d”,choice);
if(4==choice)goto
level1;
else
switch(choice){
/*…*/
}
break;
case
2:
/*…*/
怎麼實現級聯菜單?
對於一個多條件的查詢,我們希望在選擇了一個菜單項後,另外一個下拉菜單能夠根據我們所選擇的第一個菜單項顯示其所有子菜單項。這就是本文提到的級聯菜單問題。級聯菜單實現的方法有很多,本文根據筆者所做的一個小實驗,簡單的介紹一下如何通過XML來實現級聯菜單的功能。
首先要定義一個XML文件,用以存放級聯菜單的信息,我們命名為query.xml,其代碼如下:
?xml version=”1.0″ encoding=”gb2312″?
info
course
text軟件工程/text
value1/value
/course
course
text數據結構/text
value2/value
/course
course
text操作系統/text
value3/value
/course
course
text計算機組成原理/text
value4/value
/course
teacher
text張老師/text
value1/value
/teacher
teacher
text李老師/text
value2/value
/teacher
teacher
text劉老師/text
value3/value
/teacher
teacher
text王老師/text
value4/value
/teacher
class
text一班/text
value1/value
/class
class
text二班/text
value2/value
/class
class
text三班/text
value3/value
/class
class
text四班/text
value4/value
/class
/info
然後再創建一個HTML文件,命名為query.html
在query.html里,首先創建一個表單
form id=”queryForm”
select id=”keyword” name=”keyword” onChange=”showDetail()”
option value=”default”default/option
option value=”1″課程/option
option value=”2″教師/option
option value=”3″班級/option
/select
select id=”content” name=”content” onChange=”showValue()”
option value=”default”default/option
/select
/form
從上面的代碼可以看出,當我們選擇第一級菜單時,會觸發showDetail方法,這是通過JavaScript來實現的,因此我們還需要定義一個showDetail方法,其實現代碼如下:
function showDetail(){
var document_xml = new ActiveXObject(“Microsoft.XMLDOM”);
document_xml.load(“query.xml”); //加載info.xml
var RootNode = document_xml.documentElement; //獲得info.xml文檔的根節點
var keyword = document.getElementByIdx(“keyword”).value;
var details; //用以存放二級菜單內容,是一個數組對象
var content = document.getElementByIdx(“content”);
content.options.length = 0;//先清空
if(keyword==”default”){
var option = new Option(“default”,”default”);
content.add(option);
}else{
if(keyword==”1″){
details = document_xml.getElementsByTagName_r(“course”);
}else if(keyword==”2″){
details = document_xml.getElementsByTagName_r(“teacher”);
}else if(keyword==”3″){
details = document_xml.getElementsByTagName_r(“class”);
}
for(var i=0;idetails.length;i++){
var xText = details[i].childNodes[0].firstChild.nodeValue; //獲取文本
var xValue = details[i].childNodes[1].firstChild.nodeValue; //獲取文本以應的值
var option = new Option(xText,xValue);
content.add(option);
}
}
}
從上面的代碼可以看出,showDetail方法會根據一級菜單選項的不同顯示對應的子菜單。這裡涉及到通過JavaScript來讀取xml文件的操作,可以參見源碼的注釋部分,記得結合xml文件里的內容一起看哦。
二級菜單顯示出來之後,我們就可以進行選擇了,選擇之後,會調用showValue方法,把選到的子菜單項的value和text顯示出來。showValue的定義如下:
function showValue(){
var content= document.getElementByIdx(“content”);
var contentText = content.options[content.selectedIndex].text; //獲取text值
var contentValue = document.getElementByIdx(“content”).value; //獲取文本
alert(contentValue+” “+contentText);
}
在這個方法里,要注意option當中text值的獲取,它與select表單域的value的獲取方式不大一樣,詳見代碼及其注釋。
把兩個方法封裝在head/head之間,記得要寫上script language=”javascript”和/script了,然後你直接打開query.xml就可以看到效果了。
不知是否對樓主有用,希望對樓主有所幫助。
C語言二級菜單
#include “stdio.h”
//被二級菜單調用的3*3九個小程序
fun1_1()
{}
fun1_2()
{}
fun1_3()
{}
fun2_1()
{}
fun2_2()
{}
fun2_3()
{}
fun3_1()
{}
fun3_2()
{}
fun3_3()
{}
//被主函數調用的3個程序,每個程序可分別調用三個函數(第二級菜單)
fun1()
{
int x;
printf(“菜單二\n”);
printf(“1. 1-1 xxx\n”);
printf(“2. 1-2 yyy\n”);
printf(“3. 3-3 zzz\n”);
printf(“\n請選擇:”);
scanf(“%d”,x);
switch(x)
{
case 1 : fun1_1();break;
case 2 : fun2_2();break;
case 3 : fun3_3();break;
}
}
fun2()
{
int x;
printf(“菜單二\n”);
printf(“1. 2-1 xxx\n”);
printf(“2. 2-2 yyy\n”);
printf(“3. 2-3 zzz\n”);
printf(“\n請選擇:”);
scanf(“%d”,x);
switch(x)
{
case 1 : fun2_1();break;
case 2 : fun2_2();break;
case 3 : fun2_3();break;
}
}
fun3()
{
int x;
printf(“菜單二\n”);
printf(“1. 3-1 xxx\n”);
printf(“2. 3-2 yyy\n”);
printf(“3. 3-3 zzz\n”);
printf(“\n請選擇:”);
scanf(“%d”,x);
switch(x)
{
case 1 : fun3_1();break;
case 2 : fun3_2();break;
case 3 : fun3_3();break;
}
}
//主函數,可調用3個函數(一級菜單)
main()
{
int x;
printf(“菜單一\n”);
printf(“1 xxx\n”);
printf(“2 yyy\n”);
printf(“3 zzz\n”);
printf(“\n請選擇:”);
scanf(“%d”,x);
switch(x)
{
case 1 : fun1();break;
case 2 : fun2();break;
case 3 : fun3();break;
}
}
用C語言怎麼寫一個二級菜單呢,可以在液晶上顯示,謝謝!!!
#includestdio.h
#includestdlib.h
int main()
{ void menu();
printf(“\n\n\n\n\n\n\t\t\t歡 迎 使 用 通 訊 錄 管 理 系 統”);
printf(“\n\n\n\t\t\t\t\t製作人:*******”);
printf(“\n\n\t\t\t\t\t2012年2月18日”);
printf(“\n\n\t\t\t\t\tVC6.0運行通過”);
printf(“\n\n\n\t按回車進入主菜單:”);
getchar();
menu();
return 0;
}
void menu()
{
system(“cls”);
printf(“\t***********************************************************\n”);
printf(“\t\t********************主菜單******************\n”);
printf(“\t***********************************************************\n”);
printf(“\t請選擇以下功能:\n\n”);
printf(“\t1:登記、添加同學信息\n”);
printf(“\t2:查看同學信息\n”);
printf(“\t3.排序同學信息\n”);
printf(“\t4:修改同學信息\n”);
printf(“\t5:刪除同學信息\n”);
printf(“\t6:查詢同學信息\n”);
printf(“\t7:使用說明幫助\n”);
printf(“\t8:退出系統\n”);
printf(“\n\n\t溫馨提示:先進入功能–7,了解使用說明\n\n”);
}
再在menu()函數中用switch語句寫選擇
C語言結構體實現多級菜單的困惑,請高手解答
missing ‘;’ before ‘code’ :在code前面少了一個分號
但看你代碼是沒有問題的。
應該是你在頭文件里的宏定義多了個分號 或者少了個分號
原創文章,作者:NQFG,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/140741.html