当前位置:首页 » 编程语言 » c语言点菜程序
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

c语言点菜程序

发布时间: 2022-01-17 21:40:24

c语言菜单程序编写

#include <stdio.h>
#include <math.h>
void armstrong(int a)
{
int i;
int n = 1;
int b = a;
int s = 0;
while(b /= 10) n++;

b = a;

for(i = 0; i < n; i ++){
s += (int)pow(b%10, n);
b /= 10;
}
if(s == a){
printf("%d 是水仙花数!\n", a);
}else{
printf("%d 不是水仙花数!\n", a);
}
}
void prime(int a)
{
int i;
if(a < 2) {
printf("%d 不是素数!\n", a);
return ;
}
for(i = 2; i < a; i ++){
if(a % i == 0) {
printf("%d 不是素数!\n", a);
return ;
}
}
printf("%d 是素数!\n", a);
}
void max(int a, int b, int c)
{
if(b > a) a = b;
if(c > a) a = c;
printf("最大值是:%d\n", a);
}
void factorial(int a)
{
int i;
int f = 1;
for(i = a; i >1; i --)
f *= i;
printf("%d 的阶乘是:%d\n", a, f);
}

int main(int argc, char **argv)
{
int a, b, c;
int type ;
int run = 1;
printf("本程序可完成某些数学计算:\n");
printf( "***********************************\n"
"* 1.判断一个数是否为水仙花数。 *\n"
"* 2.判断一个数是否为素数。 *\n"
"* 3.求三个数的最大值。 *\n"
"* 4.求一个数的阶乘。 *\n"
"* 0.退出。 *\n"
"***********************************\n");
do{
printf("请按菜单进行选择(0-4):");
scanf("%d", &type);
switch(type){
case 0:
while(1){
getchar();
printf("你确定退出吗?(y/n)");
a = getchar();
switch(a){
case 'y':
run = 0;
break;
case 'n':
run = 1;
break;
default:
break;
}
if((a == 'y') || (a == 'n')) break;
}
break;
case 1:
printf("请输入一个数:");
scanf("%d", &a);
armstrong(a);
break;
case 2:
printf("请输入一个数:");
scanf("%d", &a);
prime(a);
break;
case 3:
printf("请输入三个数:");
scanf("%d%d%d", &a, &b, &c);
max(a, b, c);
break;
case 4:
printf("请输入一个数: ");
scanf("%d", &a);
factorial(a);
break;
default:
break;
}
}while(run);
return 0;
}

㈡ C语言 关于点菜程序

dsadsada

㈢ C语言实习,餐厅点菜系统程序代码!

#include<stdio.h>
#include<stdlib.h>
#defineROW12
#defineCOL12
#defineROW2COL1
#defineCOL24
intmain(void)
{
intarr1[ROW1][COL1]=
{
{1,2},
{3,4}
},
arr2[ROW2][COL2]=
{
{1,2,1,2},
{1,2,1,2}
},
arr3[ROW2][COL2],i,j,k;
for(i=0;i<ROW1;i++)
{
for(j=0;j<COL2;j++)
{
arr3[i][j]=0;
for(k=0;k<ROW2;k++)
{
arr3[i][j]+=arr1[i][k]*arr2[k][j];
}
}
}
for(i=0;i<ROW2;i++)
{
for(j=0;j<COL2;j++)
{
printf("%-3d",arr3[i][j]);
}
printf(" ");
}
system("pause");
return(0);
}

㈣ c语言点菜系统

// 下面是前期的点餐系统的基础数据维护,其它功能你可以自己尝试写,如果遇到什么问题可以提出来追问喔,相信你可以解决的(我怕代码太多提交会受字数限制)。

//mm.h头文件
#include<stdio.h>
#include<stdlib.h>
#defineMENU_NUM_MAX100//假设有100种菜式
#defineLENsizeof(structMenuInfo)
structMenuInfo
{
intID;
charMenuName[20];
floatprice;
}Menu[MENU_NUM_MAX];

/*基础数据维护*/
voidAddMenu()
{
FILE*fp;
intmenu_num;

printf(" 你要添加多少种菜?:");
scanf("%d",&menu_num);
for(inti=0;i<menu_num;i++)
{
printf(" ");//addedthisline
printf(" 请输入ID:");
scanf("%d",&Menu[i].ID);
printf(" 请输入菜名:");
scanf("%s",Menu[i].MenuName);
printf(" 请输入[%s]菜的价格:",Menu[i].MenuName);
Menu[i].price=0.0f;//initialfloatprice
scanf("%f",&Menu[i].price);
fflush(stdin);
}

if((fp=fopen("MenuInfo.dat","ab"))==NULL)//openbinaryfile
{
printf("Can'topenfile ");
exit(1);
}
for(intj=0;j<menu_num;j++)
{
if(fwrite(&Menu[j],LEN,1,fp)!=1)//writingdatatobinaryfile
printf("Errorwritingfile. ");
}
fclose(fp);//closefilepoint
}

voidDisplayMenuInfo()
{
FILE*fp;
printf(" ID菜名 价格 ");//columnheadings
if((fp=fopen("MenuInfo.dat","rb"))==NULL)//openbinaryfile
{
printf("Can'topenfile ");
exit(1);
}

inti=0;
do
{
fseek(fp,i*LEN,SEEK_SET);//movefileheadlocation
if(fread(&Menu[i],LEN,1,fp))//
{
printf(" %d%5s %5.1f元 ",Menu[i].ID,Menu[i].MenuName,Menu[i].price);
i++;
}
}while(!feof(fp));

fclose(fp);
}
voidDeleteToMenu()
{
FILE*fp;
intMenuID;
inttodelete=-1;
inti=0;
printf("请输入要删除的菜名的ID:");
scanf("%d",&MenuID);

/**/
if((fp=fopen("MenuInfo.dat","rb"))==NULL)//openbinaryfile
{
printf("Can'topenfile ");
exit(1);
}

do
{
fseek(fp,i*LEN,SEEK_SET);//movefileheadlocation
if(fread(&Menu[i],LEN,1,fp))
{
if(Menu[i].ID==MenuID)todelete=i;
i++;
}
}while(!feof(fp));
fclose(fp);

if(todelete==-1)
{
printf("AmenuwiththatIDdoesn'texist ");
}
else
{
/**/
if((fp=fopen("MenuInfo.dat","wb"))==NULL)//openbinaryfile
{
printf("Can'topenfile ");
exit(1);
}

for(intj=0;j<i;j++)
{
if(j==todelete)continue;/*skiprecordtobedeleted*/
if(fwrite(&Menu[j],LEN,1,fp)!=1)//writingdatatobinaryfile
printf("Errorwritingfile. ");
}
fclose(fp);//closefilepoint
}
}
voidFindMenu()
{
FILE*fp;
intMenuID;
boolfind_mark=false;
printf(" 请输入你要查找的菜名ID:");
scanf("%d",&MenuID);

printf(" ID菜名 价格 ");//columnheadings
if((fp=fopen("MenuInfo.dat","rb"))==NULL)//openbinaryfile
{
printf("Can'topenfile ");
exit(1);
}

inti=0;
do
{
fseek(fp,i*LEN,SEEK_SET);//movefileheadlocation
fread(&Menu[i],LEN,1,fp);//
if(Menu[i].ID==MenuID)
{
printf(" %d%5s %5.1f元 ",Menu[i].ID,Menu[i].MenuName,Menu[i].price);
find_mark=true;
break;
}

i++;
}while(!feof(fp));

if(!find_mark)printf(" 尊敬的客户:我们餐厅没有你要点的菜喔,你可以试试我们的招牌菜啊^-^. ");

fclose(fp);
}
/*基础数据维护完毕*/
//sc.cpp主文件
#include<stdio.h>
#include<stdlib.h>
#include"mm.h"
voidmain(void)
{
//AddMenu();
//DisplayMenuInfo();
//FindMenu();
}

㈤ C语言,编写一个点菜的程序,要求有点菜跟结账,退出。谢谢谢谢

It's so stupid.

㈥ 求一个C语言编写的点餐系统。

你好!

有个类似的点餐程序,基本和你要求差不多

㈦ C语言编写点菜系统

简单的点菜系统,可供学习:
#include <stdio.h>
#include <stdlib.h>
#include <errno.h>
#include <string.h>
#include <netdb.h>
#include <sys/types.h>
#include <netinet/in.h>
#include <sys/socket.h>
#define SERVPORT 3333
#define MAXDATASIZE 100 /*每次最大数据传输量 */

int main(int argc, char *argv[])
{
int sockfd, recvbytes;
char buf[MAXDATASIZE];
struct hostent *host;
struct sockaddr_in serv_addr;
if (argc < 2)
{ fprintf(stderr,"Please enter the server's hostname!\
"); exit(1); }

if ((host=gethostbyname(argv[1]))==NULL)
{ perror("gethostbyname出错!"); exit(1); }

if ((sockfd = socket(AF_INET, SOCK_STREAM, 0)) == -1)
{ perror("socket创建出错!"); exit(1); }
//初始化客户端
serv_addr.sin_family=AF_INET;
serv_addr.sin_port=htons(SERVPORT);
serv_addr.sin_addr = *((struct in_addr *)host->h_addr);
bzero(&(serv_addr.sin_zero),8);
//connect
if (connect(sockfd, (struct sockaddr *)&serv_addr, sizeof(struct sockaddr)) == -1)
{ perror("connect error!"); exit(1); }
//recv
if ((recvbytes=recv(sockfd, buf, MAXDATASIZE, 0)) ==-1)
{ perror("recv出错!"); exit(1); }

buf[recvbytes] = '\\0';
printf("Received: %s",buf);
close(sockfd);
return 0;
}
客户端#include <stdio.h>
#include <stdlib.h>
#include <errno.h>
#include <string.h>
#include <sys/types.h>
#include <netinet/in.h>
#include <sys/socket.h>
#include <sys/wait.h>
#define SERVPORT 3333 /*服务器监听端口号 */
#define BACKLOG 10 /* 最大同时连接请求数 */

int main()
{
int sockfd,client_fd,sin_size; /*sock_fd:监听socket;client_fd:数据传输socket */
struct sockaddr_in my_addr; /* 本机地址信息 */
struct sockaddr_in remote_addr; /* 客户端地址信息 */
//创建一个套接字,PF_INET,流式,
if ((sockfd = socket(AF_INET, SOCK_STREAM, 0)) == -1)
{ perror("socket"); exit(1); }
//初始化服务端
my_addr.sin_family=AF_INET;
my_addr.sin_port=htons(SERVPORT);
my_addr.sin_addr.s_addr = INADDR_ANY;
bzero(&(my_addr.sin_zero),8);
//将套接字地址与所创建的套接字号联系起来
if (bind(sockfd, (struct sockaddr *)&my_addr, sizeof(struct sockaddr)) == -1)
{ perror("bind"); exit(1); }
//愿意接收连接
if (listen(sockfd, BACKLOG) == -1)
{ perror("listen"); exit(1); }

while(1)
{
sin_size = sizeof(struct sockaddr_in);
if ((client_fd = accept(sockfd, (struct sockaddr *)&remote_addr, &sin_size)) == -1)
{ perror("accept"); continue; }

printf("received a connection from %s\
", inet_ntoa(remote_addr.sin_addr));

if (!fork()) { /* 子进程代码段 */

if (send(client_fd, "Hello, you are connected!\
", 26, 0) == -1)

perror("send"); close(client_fd); exit(0); }
close(client_fd); }
return 0;
}

㈧ 求C语言写一份外卖点餐管理程序

这一份是数据结构大作业的题目吧
我写过,这份代码我有完整功能的
一般可以用单链表进行数据存储
菜品信息、订单信息里相应的数据进行struct分类

然后对这些单链表进行一些操作
比如添加删除修改遍历查询等操作进行这些功能优化

㈨ C语言菜单程序设计

//完整版写完了
#include<stdio.h>
#defineN4
voidfun1(inta[],intn)//建立数组
{
inti;
printf("输入数组a[%d] ",n);
for(i=0;i<N;i++)
scanf("%d",&a[i]);
}

voidfun2(inta[],intn)//输出数组
{
inti;
for(i=0;i<n;i++)
printf("%d",a[i]);
printf(" ");

}

voidfun3(inta[],intn)//数组升序排序:选择排序法
{
inti,j,t;
for(j=1;j<n;j++)//N次比较
for(i=0;i<j;i++)//每趟中比j次
if(a[i]>a[j])//与a[i]后面的元素进行比较
{
t=a[i];a[i]=a[j];a[j]=t;
}
}

voidfun4(inta[],intn)//查找数据
{
intb,i,k=0;
printf("输入要查找的数:");
scanf("%d",&b);
for(i=0;i<n;i++)
{
if(a[i]==b)
printf("a[%d]=%d ",i,b);
elsek++;
if(k==n)printf("没有这个数 ");
}
}

voidfun5(inta[],intn)//逆序输出
{
inti;
for(i=n-1;i>=0;i--)
printf("%d",a[i]);
printf(" ");

}

voidmain()
{
intnum,a[N];

printf("1.建立数组 ");
printf("2.输出数组 ");
printf("3.数组排序 ");
printf("4.查找数据 ");
printf("5.逆序输出 ");
printf("0.退出程序 ");

while(1==1){
printf(" 请选择功能:");
scanf("%d",&num);
switch(num)
{
case5:fun5(a,N);break;
case4:fun4(a,N);break;
case3:fun3(a,N);break;
case2:fun2(a,N);break;
case1:fun1(a,N);break;
case0:return;
}
}
}

㈩ 求一个C语言菜单函数的程序

1、对于窗口组件菜单,需要根据不同平台,通过图形编程接口,进行菜单的编制。

例程:

#include<stdio.h>
#include<graphics.h>
#include<conio.h>
voidmain()
{
charstr;
inti,k,choice=1;
intgd=DETECT,gm;
initgraph(&gd,&gm,"");
setbkcolor(2);
settextstyle(3,0,3);
outtextxy(140,120,"A.TheMockClock.");
outtextxy(140,150,"B.TheDigitalClock.");
outtextxy(140,180,"C.Exit.");
setlinestyle(0,0,3);
rectangle(170,115,370,145);
/*按上下键选择所需选项*/
for(i=1;i<=100;i++)
{
str=getch();
if(str==72)
{
--choice;
if(choice==0)choice=3;
}
if(str==80)
{
++choice;
if(choice==4)choice=1;
}
if(str==13)break;/*按回车键确认*/
/*画图做菜单*/
cleardevice();
switch(choice)
{case1:setlinestyle(0,0,3);
rectangle(170,115,400,145);
settextstyle(3,0,3);
outtextxy(140,120,"A.TheMockClock.");
settextstyle(3,0,3);
outtextxy(140,150,"B.TheDigitalClock.");
outtextxy(140,180,"C.Exit.");
break;
case2:setlinestyle(0,0,3);
rectangle(170,145,400,175);
settextstyle(3,0,3);
outtextxy(140,120,"A.TheMockClock.");
settextstyle(3,0,3);
outtextxy(140,150,"B.TheDigitalClock.");
settextstyle(3,0,3);
outtextxy(140,180,"C.Exit.");
break;
case3:settextstyle(3,0,3);
outtextxy(140,120,"A.TheMockClock.");
outtextxy(140,150,"B.TheDigitalClock.");
settextstyle(3,0,3);
outtextxy(140,180,"C.Exit.");
setlinestyle(0,0,3);
rectangle(170,175,400,205);
break;
}
}
if(i>=100)exit(0);/*如果按键超过100次退出*/
switch(choice)/*这里引用函数,实现所要的功能*/
{
case1:cleardevice();
setbkcolor(4);
settextstyle(3,0,4);
outtextxy(160,120,"No.1havenotbuilt.");break;
case2:cleardevice();
setbkcolor(4);
settextstyle(3,0,4);
outtextxy(160,150,"No.2havenotbuilt.");
break;
case3:exit(0);
}
getch();
closegraph();
}


2、对于命令行菜单,直接通过不断刷新输出来模拟菜单行为。

例程:

#include<stdio.h>
#include<stdlib.h>
#include<string.h>
intn,t,k;
intm;
chars1[20],s2[20],c;
char**l;
char*num[]={"one","two","three","four","five","six","seven","eight","nine","ten"};
voidmenu()
{
printf(" ******************************************************* ");
printf(" **1.查找字符串S1中S2出现的次数** ");
printf(" **2.统计字符串中大小写字母,数字出现的次数** ");
printf(" **3.将数字翻译成英语** ");
printf(" **4.结束** ");
printf(" ******************************************************* ");
printf(" 您的输入:");
fflush(stdin);
scanf("%d",&n);
}
voidcheck()
{

chara[20],b[20];
intj=0,k,m,l=0;
intt=0,n=0;
printf("请输入主字符串: ");
scanf("%s",a);
k=strlen(a);
printf("请输入子字符串: ");
scanf("%s",b);
m=strlen(b);
for(n=0;n<k;n++)
if(a[n]==b[0])
{
j++;/*记录相同的字符数*/
do
{
if(a[++n]==b[++t])
{
j++;
if(j==m)
{
l++;/*子字符串相同数*/
j=0;/*判断后相同字符数归零*/
t=-1;/*判断中if中++t;t将会归零*/
}
}
else
{
j=0;
t=0;
break;/*如果不同跳出while循环让for使n+1继续判断*/
}
}while(a[n]!='');/*查找完字符数组a结束*/
}
printf("子字符串出现次数: %d ",l);
}
voidcout()
{
intn=0,t=0,k=0;
printf("请输入一个字符串: ");
fflush(stdin);/*清除缓冲*/
while((c=getchar())!=' ')
{
if(c>='a'&&c<='z')
n++;
if(c>='A'&&c<='Z')
t++;
if(c>='0'&&c<='9')
k++;
}
printf("有大写字母: %d ",t);
printf("有小写字母: %d ",n);
printf("有数字: %d ",k);
}
voidnumber()
{
l=num;
printf("请输入一个数字:(0-10) ");
fflush(stdin);
scanf("%d",&m);
printf("%d对应的英文是: %s ",m,*(l+m-1));
}
voidmain()
{
while(1)
{
system("cls");
menu();
switch(n)
{
case1:system("cls");check();system("pause");break;
case2:system("cls");cout();system("pause");break;
case3:system("cls");number();system("pause");break;
case4:system("cls");break;
default:system("cls");break;
}
if(n==4)break;
}
printf("感谢使用 ");
}