简单的菜单在c
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了简单的菜单在c相关的知识,希望对你有一定的参考价值。
我是一名新的计算机科学专业的学生,目前我正在从事超级商店管理系统的大学项目。
为此,我想要一个菜单系统。我尝试过使用开关盒。
它可以工作,但是,例如,当我按1
程序转到我定义的另一个函数。
但主菜单功能仍然显示在顶部。 我想要一个菜单,我将按下一个数字,程序将继续执行某个功能,清除我之前使用的命令。
任何帮助,将不胜感激。谢谢。
(我尝试使用switch case。我是新手,对文件处理和那种东西一无所知)
#include<stdio.h>
#include<math.h>
#include<stdlib.h>
//User defined function declaration
int main_menu();
int products();
double payment();
int customer();
//User defined sub menus
//under products
int home_products();
int electronics();
int add_products();
int remove_products();
int products_quantity();
//Under payment
double billing();
//under customer menu()
int customer_inf();
int edit_customer();
int main ()
{
int input;
printf(" Hello ADMIN
SHIRONAMHIN Super Shop
================================================================================");
printf(" -Products
-Payment/Billing
-Customer information
");
printf("
");
printf(" Press One for Products
Press two for Billing
Press Three for Customer information
Press 0 to terminate program");
scanf("
%d", &input);
if(input==0)
{
return 0; //Program will be terminated if 0 is pressed
}
switch(input)
{
case 1:
if(input==1)
{
products();
}
break;
case 2:
if(input==2)
{
payment();
}
break;
case 3:
if(input==3)
{
customer();
}
break;
default:
printf("Enter a valid number");
break;
}
}
int products()
{
int input;
printf("
-Home products
-Electronics
Press any key rather than 1 and 2 two return to main menu");
scanf("%d", &input);
switch (input)
{
case 1:
if(input == 1)
home_products();
break;
case 2:
if(input == 2)
electronics();
break;
default:
main();
break;
}
}
int home_products()
{
int input;
printf("Code yet to be written
return to main menu by pressing 1 on the keyboard");
scanf("%d", &input);
if(input == 1)
{
return main();
}
}
int electronics()
{
printf("Code yet to be written");
}
double payment()
{
return main();
}
int customer()
{
printf("Code yet to be written");
return main();
}
答案
你可以看看这个Answer。我在Windows上测试过它。
它基本上说
在Windows(cmd.exe),Linux(Bash和zsh)和OS X(zsh)上测试的变通方法:
你可以拥有这样的功能
void clrscr() { system("cls||clear"); }
system("cls")
(Works On Windows)的基本问题是它不可移植,system("clear")
(Works On Linux)也是如此。
以上功能适用于两者。
你可以拥有它
case 1:
if(input==1)
{
clrscr();
products();
}
因此,如果input == 1
,将调用第一个clrscr()
并且将清除控制台,然后将调用products()
。您可以对所有其他函数执行相同操作,请不要忘记在上面包含函数clrscr()
的定义。
另外,我强烈建议您查看此问题How do you clear the console screen in C?有关此主题的更多信息。
以上是关于简单的菜单在c的主要内容,如果未能解决你的问题,请参考以下文章