本文目录一览:
请教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前面少了一个分号
但看你代码是没有问题的。
应该是你在头文件里的宏定义多了个分号 或者少了个分号