C语言编写菜单

请编写一个菜单,包含以下内容:1.显示菜单内容;2.参数传递演示;3.动态数组演示;4.退出程序演示按值传递参数和按地址传递参数两种方式利用malloc()函数为数组动态... 请编写一个菜单,包含以下内容:1.显示菜单内容;2.参数传递演示;3.动态数组演示;4.退出程序
演示按值传递参数和按地址传递参数两种方式 利用malloc()函数为数组动态分配存储空间
展开
 我来答
xushiladeng
推荐于2017-09-01 · TA获得超过101个赞
知道小有建树答主
回答量:113
采纳率:0%
帮助的人:102万
展开全部
#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); 
  } 
 }

}
ahulxh
2015-10-11 · 知道合伙人软件行家
ahulxh
知道合伙人软件行家
采纳数:267 获赞数:805
研究生教学:数据结构与算法、计算机图形学…… 本科生教学:C语言程序设计、多媒体创作……

向TA提问 私信TA
展开全部
中国电力出版社书号为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);
}
在结构那一章还有一个课程设计的菜单,太长了,感兴趣找书看看吧
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式