您好,问您c语言多程序功能合并,实现菜单返回上一级或者下一级的问题。
======单链表的基本运算=========
#include"linklist.cpp" /*这里是单链表的调用同一文件夹中的文件*/
#include <stdlib.h>
#include <string.h>
#include<conio.h>
int menu1()
{ int code;
system("pause");
system("cls");
printf(" 单链表的基本运算算法 ");
printf(" ------------------------------------------- ");
printf(" │ 0.初始化单链表h。 │ ");
printf(" │ 1.依次采用尾插法插入a,b,c,d,e元素。 │ ");
printf(" │ 2.输出单链表h。 │ ");
printf(" │ 3.输出单链表h长度。 │ ");
printf(" │ 4.判断单链表h是否为空。 │ ");
printf(" │ 5.输出单链表h的第3个元素。 │ ");
printf(" │ 6.输出元素a的位置。 │ ");
printf(" │ 7.在第4个元素上插入f元素。 │ ");
printf(" │ 8.输出单链表h。 │ ");
printf(" │ 9.删除单链表h的第3个元素。 │ ");
printf(" │ 10.输出单链表h。 │ ");
printf(" │ 11.释放单链表h。 │ ");
printf(" ------------------------------------------- ");
printf(" 选择代码(0,1,2,3,4,5,6,7,8,9,10,11) : ");
do
{ printf(" 0:初始化单链表h 1:依次采用尾插法插入a,b,c,d,e元素 2:输出单链表h 3:输出单链表h长度 4:判断单链表h是否为空 5:输出单链表h的第3个元素 6:输出元素a的位置 7:在第4个元素上插入f元素 8:输出单链表h 9:删除单链表h的第3个元素10:输出单链表h 11:释放单链表h 请选择:");
scanf("%d",&code);
}while(code<0||code>13);
return code;
}
int main()
{
LinkNode *h;
ElemType e;
int code;
system("cls");
printf(" 单链表的基本运算如下 ");
printf("-------------------------------------------- ");
while(1)
{
code=menu1();
switch(code)
{
case 0:{
printf("初始化单链表h ");
InitList(h);break;
}
case 1:{
printf("依次采用尾插法插入a,b,c,d,e元素 ");
ListInsert(h,1,'a');
ListInsert(h,2,'b');
ListInsert(h,3,'c');
ListInsert(h,4,'d');
ListInsert(h,5,'e');
break;
}
}
}
return 1;
}
=====顺序表的基本运算=========
#include"sqlist.cpp" /*同样*/
#include<stdio.h>
#include <stdlib.h>
#include <string.h>
#include<conio.h>
int menu()
{ int code;
system("pause");
system("cls");
printf(" 顺序表的基本运算算法 ");
printf(" --------------------------------- ");
printf(" │ 0.初始化顺序表L │ ");
printf(" │ 1.依次插入a,b,c,d,e元素 │ ");
printf(" │ 2.输出顺序表L │ ");
printf(" │ 3.顺序表L长度 │ ");
printf(" │ 4.顺序表L是否为空 │ ");
printf(" │ 5.顺序表L的第3个元素 │ ");
printf(" │ 6.元素a的位置 │ ");
printf(" │ 7.在第4个元素上插入f元素 │ ");
printf(" │ 8.输出顺序表L │ ");
printf(" │ 9.删除L的第3个元素 │ ");
printf(" │ 10.输出顺序表L │ ");
printf(" │ 11.释放顺序表L │ ");
printf(" --------------------------------- ");
printf(" 选择代码(0,1,2,3,4,5,6,7,8,9,10,11) : ");
do
{ printf(" 0:初始化顺序表L 1:依次插入a,b,c,d,e元素 2:输出顺序表L 3:顺序表L长度 4:顺序表L是否为空 5:顺序表L的第3个元素 6:元素a的位置 7:在第4个元素上插入f元素 8:输出顺序表L 9:删除L的第3个元素10:输出顺序表L 11:释放顺序表L 请选择:");
scanf("%d",&code);
}while(code<0||code>12);
return code;
}
int main()
{
SqList *L;
ElemType e;
int code;
system("cls");
printf(" 顺序表的基本运算如下 ");
printf("-------------------------------------------- ");
while(1)
{
code=menu();
switch(code)
{
case 0:{
printf("初始化顺序表L ");
InitList(L);break;
}
case 1:{
printf("依次插入a,b,c,d,e元素 ");
ListInsert(L,1,'a');
ListInsert(L,2,'b');
ListInsert(L,3,'c');
ListInsert(L,4,'d');
ListInsert(L,5,'e');
break;
}
}
}
return 1;
}
您好,我想要将顺序表和单链表的俩个菜单可以实现功能合并,就是说我运行单链表的菜单的时候,我按某个数字就可以跳到顺序表,然后按某个数字又可以返回单链表,请问要怎么弄?(由于限制字数,我删掉了大部分case情况)
二个方案
一是设计个二级菜单
一级菜单界面为
printf(" 1. 单链表的基本运算算法 ");
printf(" 2. 顺序表的基本运算算法 ");
printf(" 3. 退出 ");
用if或case判断.,并进入相应的menu(),menu1(),显示你的子菜单(上面的程序)
而每个子菜单加一返回主菜单选项,程序不难的,你自己先写下,有问题再补充提问
二是把两个菜单合并到一个大菜单,或是中间用=========分开
类似于
printf(" 单链表的基本运算算法 ");
printf(" ------------------------------------------- ");
printf(" │ 0.初始化单链表h。 │ ");
printf(" │ 1.依次采用尾插法插入a,b,c,d,e元素。 │ ");
printf(" │ 2.输出单链表h。 │ ");
printf(" │ 3.输出单链表h长度。 │ ");
printf(" │ 4.判断单链表h是否为空。 │ ");
printf(" │ 5.输出单链表h的第3个元素。 │ ");
printf(" │ 6.输出元素a的位置。 │ ");
printf(" │ 7.在第4个元素上插入f元素。 │ ");
printf(" │ 8.输出单链表h。 │ ");
printf(" │ 9.删除单链表h的第3个元素。 │ ");
printf(" │ 10.输出单链表h。 │ ");
printf(" │ 11.释放单链表h。 │ ");
printf(" =========================================== ");
printf(" 顺序表的基本运算算法 ");
printf(" --------------------------------- ");
printf(" │ 12.初始化顺序表L │ ");
printf(" │ 13.依次插入a,b,c,d,e元素 │ ");
printf(" │ 14.输出顺序表L │ ");
printf(" │ 15.顺序表L长度 │ ");
printf(" │ 16.顺序表L是否为空 │ ");
printf(" │ 17.顺序表L的第3个元素 │ ");
printf(" │ 18.元素a的位置 │ ");
printf(" │ 19.在第4个元素上插入f元素 │ ");
printf(" │ 20.输出顺序表L │ ");
printf(" │ 21.删除L的第3个元素 │ ");
printf(" │ 22.输出顺序表L │ ");
printf(" │ 23.释放顺序表L │ ");
printf(" --------------------------------- ");
然后用case分别进入你的程序
就应该做个函数,每次根据输入的值显示
你把单链表和顺序表做成一个函数啊,
然后可以通过
switch(num){
}