C语言编写菜单
请编写一个菜单,包含以下内容:1.显示菜单内容;2.参数传递演示;3.动态数组演示;4.退出程序演示按值传递参数和按地址传递参数两种方式利用malloc()函数为数组动态...
请编写一个菜单,包含以下内容:1.显示菜单内容;2.参数传递演示;3.动态数组演示;4.退出程序
演示按值传递参数和按地址传递参数两种方式 利用malloc()函数为数组动态分配存储空间 展开
演示按值传递参数和按地址传递参数两种方式 利用malloc()函数为数组动态分配存储空间 展开
2个回答
展开全部
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
//值传递
void fun1(char a)
{
a = 'b';
}
//地址传递
char fun2(char* a)
{
*a = 'a';
return *a;
}
//动态分配数组
void fun3(char*& a)
{
a = (char*)malloc(sizeof(char));
}
char caidan()
{
char choose[5];
printf("\n***************************************\n");
printf(" ┌──────┐\n");
printf(" │ 菜单│\n");
printf(" __________________________________\n");
printf("│ 1,按值传递 |\n");
printf("│ 2,按地址传递 |\n");
printf("│ 3,动态数组演示|\n");
printf("│ 4,退 出 |\n");
printf("└────────────────┙\n");
printf("**************************************\n\n");
do
{
printf("请输入您的选择(1-4):");
scanf("%s",choose);
}while(strcmp(choose,"1")&&strcmp(choose,"2")&&strcmp(choose,"3")&&strcmp(choose,"4"));
//返回选择的菜单,注意如果输入太长 这里会异常,因为choose[5],只申请了5个字节。
return choose[0];
}
void main()
{
//执行菜单的选择
while(1)
{
switch(caidan())
{
case '1':
{
char a = 'a';
fun1(a);
//按值传递 内容不变
break;
}
case '2':
{
char b = 'b';
char a = fun2(&b);
//按地址传递内容会变
break;
}
case '3':
{
char* p = NULL;
fun3(p);
//动态数组分配成功
break;
}
case '4':exit(0);
}
}
}
2015-10-11 · 知道合伙人软件行家
关注
展开全部
中国电力出版社书号为5123-5504-0的C语言程序设计书上有介绍方法:
现在,通过一个简单的开发实例来理解上述概念。该应用软件运行时,首先出现一个菜单,用户选择某一菜单项后进入相应子模块处理具体问题,处理结束后回到主菜单。当在主菜单上选择退出功能后,软件运行结束。将各子模块划分成子函数后,进一步将菜单初始化和界面显示、选择功能划分成子函数,最终设计出来的函数代码框架如下:
#include
//菜单初始化函数:设置菜单文字
void InitMenu( char *Menu[] )
{
Menu[0]="1. 菜单项1名称 ";
…
}
// 显示菜单、接受用户选择函数
// 初学者可以使用printf、getch函数实现基本交互
// 进阶后可以引入图形、字体、功能键、鼠标等元素进行人机交互
int ChooseMenu( char *Menu[], int MaxItem )
{
return 1; // 选择菜单1
…
return 0; // 选择退出
}
//模块一
void sub1(void)
{
…
}
void main( void )
{
char *Menu[10],MaxItem=10; //指针数组存储菜单名称:0-9项
intdone=0; //退出标志,为1时退出
InitMenu( Menu ); //调用菜单初始化模块
do
{
// 每轮循环都重新显示界面、接受用户选择、根据用户选择执行相应分支
switch( ChooseMenu(Menu, MaxItem ) )
{
case 1:
sub1();
break;
case 2:
…
case 0:
done=1;
}
}while(!done);
}
在结构那一章还有一个课程设计的菜单,太长了,感兴趣找书看看吧
现在,通过一个简单的开发实例来理解上述概念。该应用软件运行时,首先出现一个菜单,用户选择某一菜单项后进入相应子模块处理具体问题,处理结束后回到主菜单。当在主菜单上选择退出功能后,软件运行结束。将各子模块划分成子函数后,进一步将菜单初始化和界面显示、选择功能划分成子函数,最终设计出来的函数代码框架如下:
#include
//菜单初始化函数:设置菜单文字
void InitMenu( char *Menu[] )
{
Menu[0]="1. 菜单项1名称 ";
…
}
// 显示菜单、接受用户选择函数
// 初学者可以使用printf、getch函数实现基本交互
// 进阶后可以引入图形、字体、功能键、鼠标等元素进行人机交互
int ChooseMenu( char *Menu[], int MaxItem )
{
return 1; // 选择菜单1
…
return 0; // 选择退出
}
//模块一
void sub1(void)
{
…
}
void main( void )
{
char *Menu[10],MaxItem=10; //指针数组存储菜单名称:0-9项
intdone=0; //退出标志,为1时退出
InitMenu( Menu ); //调用菜单初始化模块
do
{
// 每轮循环都重新显示界面、接受用户选择、根据用户选择执行相应分支
switch( ChooseMenu(Menu, MaxItem ) )
{
case 1:
sub1();
break;
case 2:
…
case 0:
done=1;
}
}while(!done);
}
在结构那一章还有一个课程设计的菜单,太长了,感兴趣找书看看吧
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询