C語(yǔ)言實(shí)現(xiàn)餐飲管理與點(diǎn)餐系統(tǒng)
本文實(shí)例為大家分享了C語(yǔ)言實(shí)現(xiàn)餐飲管理與點(diǎn)餐系統(tǒng)的具體代碼,供大家參考,具體內(nèi)容如下
一、項(xiàng)目簡(jiǎn)介
1、本程序?qū)崿F(xiàn)了用戶的點(diǎn)餐功能,共包含五類菜品:涼菜、熱菜、鍋?zhàn)小⒅魇?、飲品。還有查看所點(diǎn)菜品與結(jié)束等功能。
2、后臺(tái)管理員:按a可進(jìn)入,主頁(yè)面并未提示。
3、合理運(yùn)用getch函數(shù),清屏與暫停函數(shù),頁(yè)面整潔清爽。
4、菜品與txt文件對(duì)應(yīng),可實(shí)現(xiàn)對(duì)程序與txt的同步增刪改查等功能。
5、使用了C語(yǔ)言很多基礎(chǔ)語(yǔ)法:函數(shù)、指針、結(jié)構(gòu)體、文件等。
二、程序說(shuō)明
程序運(yùn)行后在主頁(yè)面按a進(jìn)入后臺(tái)管理頁(yè)面,給相應(yīng)的菜品信息添加菜品,這些信息會(huì)自動(dòng)保存到txt中,下次打開(kāi)的時(shí)候也會(huì)自動(dòng)讀取,做好菜品信息的創(chuàng)建工作就可以回到主頁(yè)面進(jìn)行相應(yīng)的用戶點(diǎn)餐操作。
三、功能演示




四、思維導(dǎo)圖

五、程序代碼
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<conio.h>
/*宏定義區(qū)*/
#define max_str 30 //最大字符串長(zhǎng)度
#define max_num 30 //最大菜品數(shù)量
#define max_all 100 //今日售賣(mài)總計(jì)最大值
/*定義菜品結(jié)構(gòu)體*/
struct dishes
{
char name[max_str];
int price;
};
/*定義全局變量*/
struct dishes list1[max_num]; //存放涼菜菜品信息
int num1=0; //存放涼菜菜品數(shù)量
int *p1=&num1;
struct dishes list2[max_num]; //存放熱菜菜品信息
int num2=0; //存放熱菜菜品數(shù)量
int *p2=&num2;
struct dishes list3[max_num]; //存放鍋?zhàn)胁似沸畔?
int num3=0; //存放鍋?zhàn)胁似窋?shù)量
int *p3=&num3;
struct dishes list4[max_num]; //存放主食菜品信息
int num4=0; //存放主食菜品數(shù)量
int *p4=&num4;
struct dishes list5[max_num]; //存放飲品菜品信息
int num5=0; //存放飲品菜品數(shù)量
int *p5=&num5;
struct dishes list6[max_num]; //存放顧客點(diǎn)餐菜品信息
int num6=0; //存放顧客點(diǎn)餐菜品數(shù)量
int *p6=&num6;
struct dishes list7[max_all]; //存放今日所點(diǎn)總菜品信息
int num7=0; //存放今日所點(diǎn)總菜品數(shù)量
int *p7=&num7;
/*全局聲明*/
/*菜單的輸出*/
//一級(jí)主菜單
char menu_m1();
// 管理員一級(jí)菜單
char menu_a1();
// 管理員二級(jí)菜單:添加或刪除菜品的提示
char menu_a2();
//輸出菜單1(包括提示輸入語(yǔ)句)
void output_1(struct dishes list[],int num);
//輸出菜品信息2(不含有提示輸入語(yǔ)句)
void output_2(struct dishes list[],int num);
/*函數(shù)*/
//創(chuàng)建程序運(yùn)行所需的txt文件
void creat_file();
//加載菜品信息到結(jié)構(gòu)體數(shù)組,嵌套功能模塊1:讀取txt寫(xiě)入到單個(gè)結(jié)構(gòu)體數(shù)組中
void load_dishes(struct dishes list1[],int *p1,struct dishes list2[],int *p2,struct dishes list3[],int *p3,struct dishes list4[],int *p4,struct dishes list5[],int *p5);
//實(shí)現(xiàn)點(diǎn)餐的函數(shù),嵌套功能模塊2:實(shí)現(xiàn)點(diǎn)餐的結(jié)構(gòu)體數(shù)組寫(xiě)入數(shù)據(jù)
void ordering(struct dishes list1[],int num1,struct dishes list2[],int *p2,struct dishes list3[],int *p3);
// 查看與結(jié)算的輸出函數(shù)
void settlement(struct dishes list[],int num);
// 計(jì)算今日收入
void income(struct dishes list[],int num);
// 實(shí)現(xiàn)菜品的價(jià)格修改,內(nèi)嵌功能模塊3:實(shí)現(xiàn)結(jié)構(gòu)體菜品的價(jià)格修改與文件的重構(gòu)
void change(struct dishes list[],int *p,char ch);
// 實(shí)現(xiàn)菜品的刪除,內(nèi)嵌功能模塊4:實(shí)現(xiàn)結(jié)構(gòu)體菜品的刪除與文件的重構(gòu)
void del(struct dishes list[],int *p,char ch);
// 函數(shù):實(shí)現(xiàn)菜品的添加,內(nèi)嵌功能模塊5:實(shí)現(xiàn)結(jié)構(gòu)體菜品的添加與文件的重構(gòu)
void add(struct dishes list[],int *p,char ch);
/*功能模塊區(qū)*/
//功能模塊1:讀取txt寫(xiě)入到單個(gè)結(jié)構(gòu)體數(shù)組中
int function_read(struct dishes list[],FILE *fp);
//功能模塊2:實(shí)現(xiàn)點(diǎn)餐的結(jié)構(gòu)體數(shù)組寫(xiě)入數(shù)據(jù)
void function_ordering(struct dishes list1[],int num1,struct dishes list2[],int *p2,struct dishes list3[],int *p3,int choice);
// 功能模塊3:實(shí)現(xiàn)結(jié)構(gòu)體菜品的價(jià)格修改與文件的重構(gòu),內(nèi)嵌功能模塊6:對(duì)經(jīng)過(guò)修改的菜品結(jié)構(gòu)體按價(jià)格從低到高排序
int funtion_change(struct dishes list[],int num,FILE *fp);
//功能模塊4:實(shí)現(xiàn)結(jié)構(gòu)體菜品的刪除與文件的重構(gòu)
int function_del(struct dishes list[],int *p,FILE *fp);
//功能模塊5:實(shí)現(xiàn)結(jié)構(gòu)體菜品的添加與文件的重構(gòu),,內(nèi)嵌功能模塊6:對(duì)經(jīng)過(guò)修改的菜品結(jié)構(gòu)體按價(jià)格從低到高排序
int function_add(struct dishes list[],int *p,FILE *fp);
// 功能模塊6:對(duì)經(jīng)過(guò)修改的菜品結(jié)構(gòu)體按價(jià)格從低到高排序
void function_sort(struct dishes list[],int num);
int main()
{
creat_file();
load_dishes(list1,p1,list2,p2,list3,p3,list4,p4,list5,p5);
int i,j,choice;
char a,b,c;
while(1)
{
a=menu_m1();
switch(a)
{
case '1':
ordering(list1,num1,list6,p6,list7,p7);
break;
case '2':
ordering(list2,num2,list6,p6,list7,p7);
break;
case '3':
ordering(list3,num3,list6,p6,list7,p7);
break;
case '4':
ordering(list4,num4,list6,p6,list7,p7);
break;
case '5':
ordering(list5,num5,list6,p6,list7,p7);
break;
case '6':
system("cls"),settlement(list6,num6),system("pause"),system("cls");
break;
case 'y':
system("cls"),settlement(list6,num6),*p6=0,system("pause");
break;
case 'a':
system("cls");
while(1)
{
b=menu_a1();
switch(b)
{
case '1':
system("cls"),income(list7,num7),system("pause"),system("cls");
break;
case '2':
{
system("cls");
c=menu_a2();
system("cls");
switch(c)
{
case '1':
change(list1,p1,c);
break;
case '2':
change(list2,p2,c);
break;
case '3':
change(list3,p3,c);
break;
case '4':
change(list4,p4,c);
break;
case '5':
change(list5,p5,c);
break;
}
system("cls");
}
break;
case '3':
{
system("cls");
c=menu_a2();
system("cls");
switch(c)
{
case '1':
del(list1,p1,c);
break;
case '2':
del(list2,p2,c);
break;
case '3':
del(list3,p3,c);
break;
case '4':
del(list4,p4,c);
break;
case '5':
del(list5,p5,c);
break;
}
system("cls");
}
break;
case '4':
{
system("cls");
c=menu_a2();
system("cls");
switch(c)
{
case '1':
add(list1,p1,c);
break;
case '2':
add(list2,p2,c);
break;
case '3':
add(list3,p3,c);
break;
case '4':
add(list4,p4,c);
break;
case '5':
add(list5,p5,c);
break;
}
system("cls");
}
break;
case '0':
system("cls");
break;
}
if(b=='0')
break;
}
break;
}
system("cls");
}
}
/*菜單的輸出*/
//一級(jí)主菜單
char menu_m1()
{
char ch;
printf(" ---------------------------\n");
printf(" | 歡迎光臨本餐廳 |\n");
printf(" | 請(qǐng)按序號(hào)選擇菜品 |\n");
printf(" ---------------------------\n");
printf(" | 1 涼菜 |\n");
printf(" | 2 熱菜 |\n");
printf(" | 3 鍋?zhàn)? |\n");
printf(" | 4 主食 |\n");
printf(" | 5 飲品 |\n");
printf(" | 6 查看 |\n");
printf(" | y 結(jié)算 |\n");
printf(" ---------------------------\n");
printf(" 輸入序號(hào):");
ch=getch();
return ch;
}
// 管理員一級(jí)菜單
char menu_a1()
{
char ch;
printf("\n-------------------------------\n");
printf("\t1\t今日收入\t\n");
printf("\t2\t修改價(jià)格\t\n");
printf("\t3\t刪除菜品\t\n");
printf("\t4\t添加菜品\t\n");
printf("\t0\t返回上一級(jí)\t\n");
printf("-------------------------------\n");
printf("輸入序號(hào):");
ch=getch();
return ch;
}
// 管理員二級(jí)菜單:添加或刪除菜品的提示
char menu_a2()
{
char ch;
printf("\n-------------------------------\n");
printf("\t1\t涼菜\t\n");
printf("\t2\t熱菜\t\n");
printf("\t3\t鍋?zhàn)衆(zhòng)t\n");
printf("\t4\t主食\t\n");
printf("\t5\t飲品\t\n");
printf("\t0\t返回上一級(jí)\t\n");
printf("-------------------------------\n");
printf("輸入序號(hào):");
ch=getch();
return ch;
}
//輸出菜單1(包括提示輸入語(yǔ)句)
void output_1(struct dishes list[],int num)
{
int i;
printf("\n-------------------------------------------------\n");
printf("|\t序號(hào)\t菜品\t\t價(jià)格\t\t|\n");
printf("-------------------------------------------------\n");
for(i=0; i<num; i++)
{
if(strlen(list[i].name)<=6)
printf("|\t%d\t%s\t\t%d\t\t|\n",i+1,list[i].name,list[i].price);
else
printf("|\t%d\t%s\t%d\t\t|\n",i+1,list[i].name,list[i].price);
}
printf("|\t0\t返回\t\t\t\t|\n");
printf("-------------------------------------------------\n");
printf("請(qǐng)輸入序號(hào):\n");
}
//輸出菜品信息2(不含有提示輸入語(yǔ)句)
void output_2(struct dishes list[],int num)
{
int i;
printf("\n-------------------------------------------------\n");
printf("|\t序號(hào)\t菜品\t\t價(jià)格\t\t|\n");
printf("-------------------------------------------------\n");
for(i=0; i<num; i++)
{
if(strlen(list[i].name)<=6)
printf("|\t%d\t%s\t\t%d\t\t|\n",i+1,list[i].name,list[i].price);
else
printf("|\t%d\t%s\t%d\t\t|\n",i+1,list[i].name,list[i].price);
}
printf("|\t0\t返回\t\t\t\t|\n");
printf("-------------------------------------------------\n");
}
/*函數(shù)*/
//創(chuàng)建程序運(yùn)行所需的txt文件
void creat_file()
{
FILE *fp=fopen("涼菜.txt","a");
if(fp==NULL)
return;
fclose(fp);
fp=fopen("熱菜.txt","a");
if(fp==NULL)
return;
fclose(fp);
fp=fopen("鍋?zhàn)?txt","a");
if(fp==NULL)
return;
fclose(fp);
fp=fopen("主食.txt","a");
if(fp==NULL)
return;
fclose(fp);
fp=fopen("飲品.txt","a");
if(fp==NULL)
return;
fclose(fp);
}
//加載菜品信息到結(jié)構(gòu)體數(shù)組,嵌套功能模塊1:讀取txt寫(xiě)入到單個(gè)結(jié)構(gòu)體數(shù)組中
void load_dishes(struct dishes list1[],int *p1,struct dishes list2[],int *p2,struct dishes list3[],int *p3,struct dishes list4[],int *p4,struct dishes list5[],int *p5)
{
FILE *fp;
fp=fopen("涼菜.txt","r");
*p1=function_read(list1,fp);
fp=fopen("熱菜.txt","r");
*p2=function_read(list2,fp);
fp=fopen("鍋?zhàn)?txt","r");
*p3=function_read(list3,fp);
fp=fopen("主食.txt","r");
*p4=function_read(list4,fp);
fp=fopen("飲品.txt","r");
*p5=function_read(list5,fp);
fclose(fp);
}
//實(shí)現(xiàn)點(diǎn)餐的函數(shù),嵌套功能模塊2:實(shí)現(xiàn)點(diǎn)餐的結(jié)構(gòu)體數(shù)組寫(xiě)入數(shù)據(jù)
void ordering(struct dishes list1[],int num1,struct dishes list2[],int *p2,struct dishes list3[],int *p3)
{
int choice;
system("cls");
output_1(list1,num1);
while(1)
{
scanf("%d",&choice);
if(choice>=0&&choice<=num1)
{
if(choice==0)
break;
else
function_ordering(list1,num1,list2,p2,list3,p3,choice);
}
else
printf("輸入序號(hào)有誤,請(qǐng)重新輸入:\n");
}
}
// 查看與結(jié)算的輸出函數(shù)
void settlement(struct dishes list[],int num)
{
int i,sum;
for(i=0,sum=0; i<num; i++)
sum+=list[i].price;
printf("\n-------------------------------------------------\n");
printf("|\t序號(hào)\t菜品\t\t價(jià)格\t\t|\n");
printf("-------------------------------------------------\n");
for(i=0; i<num; i++)
{
if(strlen(list[i].name)<=6)
printf("|\t%d\t%s\t\t%d\t\t|\n",i+1,list[i].name,list[i].price);
else
printf("|\t%d\t%s\t%d\t\t|\n",i+1,list[i].name,list[i].price);
}
printf("-------------------------------------------------\n");
printf("總價(jià)格為:%d\n\n",sum);
}
// 計(jì)算今日收入
void income(struct dishes list[],int num)
{
int i,sum;
output_2(list,num);
for(i=0,sum=0; i<num; i++)
sum+=list[i].price;
printf("今日總收入:%d\n",sum);
}
// 實(shí)現(xiàn)菜品的價(jià)格修改,內(nèi)嵌功能模塊3:實(shí)現(xiàn)結(jié)構(gòu)體菜品的價(jià)格修改與文件的重構(gòu)
void change(struct dishes list[],int *p,char ch)
{
int i=1;
FILE *fp;
while(i!=0)
{
switch(ch)
{
case '1':
output_2(list1,num1),fp=fopen("涼菜.txt","w"),i=funtion_change(list1,num1,fp),fclose(fp);
break;
case '2':
output_2(list2,num2),fp=fopen("熱菜.txt","w"),i=funtion_change(list2,num2,fp),fclose(fp);
break;
case '3':
output_2(list3,num3),fp=fopen("鍋?zhàn)?txt","w"),i=funtion_change(list3,num3,fp),fclose(fp);
break;
case '4':
output_2(list4,num4),fp=fopen("主食.txt","w"),i=funtion_change(list4,num4,fp),fclose(fp);
break;
case '5':
output_2(list5,num5),fp=fopen("飲品.txt","w"),i=funtion_change(list5,num5,fp),fclose(fp);
break;
}
}
}
// 實(shí)現(xiàn)菜品的刪除,內(nèi)嵌功能模塊4:實(shí)現(xiàn)結(jié)構(gòu)體菜品的刪除與文件的重構(gòu)
void del(struct dishes list[],int *p,char ch)
{
int i=1;
FILE *fp;
while(i!=0)
{
switch(ch)
{
case '1':
output_2(list1,num1),fp=fopen("涼菜.txt","w"),i=function_del(list1,p1,fp),fclose(fp);
break;
case '2':
output_2(list2,num2),fp=fopen("熱菜.txt","w"),i=function_del(list2,p2,fp),fclose(fp);
break;
case '3':
output_2(list3,num3),fp=fopen("鍋?zhàn)?txt","w"),i=function_del(list3,p3,fp),fclose(fp);
break;
case '4':
output_2(list4,num4),fp=fopen("主食.txt","w"),i=function_del(list4,p4,fp),fclose(fp);
break;
case '5':
output_2(list5,num5),fp=fopen("飲品.txt","w"),i=function_del(list5,p5,fp),fclose(fp);
break;
}
}
}
// 函數(shù):實(shí)現(xiàn)菜品的添加,內(nèi)嵌功能模塊5:實(shí)現(xiàn)結(jié)構(gòu)體菜品的添加與文件的重構(gòu)
void add(struct dishes list[],int *p,char ch)
{
int i=1;
FILE *fp;
while(i!=0)
{
switch(ch)
{
case '1':
output_2(list1,num1),fp=fopen("涼菜.txt","w"),i=function_add(list1,p1,fp),fclose(fp);
break;
case '2':
output_2(list2,num2),fp=fopen("熱菜.txt","w"),i=function_add(list2,p2,fp),fclose(fp);
break;
case '3':
output_2(list3,num3),fp=fopen("鍋?zhàn)?txt","w"),i=function_add(list3,p3,fp),fclose(fp);
break;
case '4':
output_2(list4,num4),fp=fopen("主食.txt","w"),i=function_add(list4,p4,fp),fclose(fp);
break;
case '5':
output_2(list5,num5),fp=fopen("飲品.txt","w"),i=function_add(list5,p5,fp),fclose(fp);
break;
}
}
}
/*功能模塊區(qū)*/
//功能模塊1:讀取txt寫(xiě)入到單個(gè)結(jié)構(gòu)體數(shù)組中
int function_read(struct dishes list[],FILE *fp)
{
int num=1;//索引從0開(kāi)始 定義為1統(tǒng)計(jì)個(gè)數(shù)
char t,c[max_str];
int i;
if(fp==NULL)
{
printf("Can't open this file\n");
exit(1);
}
while(!feof(fp)) //檢測(cè)流上的文件結(jié)束符,如果文件s結(jié)束,則返回非0值,否則返回0
{
t=fgetc(fp);
if(t=='\n')
num++;
}
rewind(fp); //將指針重置到第一行
for(i=0; i<num; i++)
{
fgets(c,max_str,fp);
sscanf(c,"%s %d",list[i].name,&list[i].price);
}
fclose(fp);
return num;
}
//功能模塊2:實(shí)現(xiàn)點(diǎn)餐的結(jié)構(gòu)體數(shù)組寫(xiě)入數(shù)據(jù)
void function_ordering(struct dishes list1[],int num1,struct dishes list2[],int *p2,struct dishes list3[],int *p3,int choice)
{
strcpy(list2[*p2].name,list1[choice-1].name);
list2[*p2].price=list1[choice-1].price;
strcpy(list3[*p3].name,list1[choice-1].name);
list3[*p3].price=list1[choice-1].price;
*p2=*p2+1;
*p3=*p3+1;
}
// 功能模塊3:實(shí)現(xiàn)結(jié)構(gòu)體菜品的價(jià)格修改與文件的重構(gòu),內(nèi)嵌功能模塊6:對(duì)經(jīng)過(guò)修改的菜品結(jié)構(gòu)體按價(jià)格從低到高排序
int funtion_change(struct dishes list[],int num,FILE *fp)
{
if(fp==NULL)
{
printf("Can't open this file\n");
exit(1);
}
int i,n;
char temp[max_str],t[max_str];
printf("\n輸入ID:");
scanf("%d",&n);
if(n==0)
{
for(i=0; i<num; i++)
{
strcpy(temp,list[i].name);
strcat(temp," ");
itoa(list[i].price,t,10); //itoa():將整型值轉(zhuǎn)換為字符串,參數(shù)依次為:要復(fù)制的內(nèi)容,復(fù)制給誰(shuí),以什么進(jìn)制。
strcat(temp,t);
strcat(temp,"\n");
fputs(temp,fp);
}
return n;
}
printf("輸入修改后的價(jià)格:");
scanf("%d",&list[n-1].price);
function_sort(list,num);
for(i=0; i<num; i++)
{
strcpy(temp,list[i].name);
strcat(temp," ");
itoa(list[i].price,t,10); //itoa():將整型值轉(zhuǎn)換為字符串,參數(shù)依次為:要復(fù)制的內(nèi)容,復(fù)制給誰(shuí),以什么進(jìn)制。
strcat(temp,t);
strcat(temp,"\n");
fputs(temp,fp);
}
printf("修改完成\n");
system("pause");
system("cls");
return 1;
}
//功能模塊4:實(shí)現(xiàn)結(jié)構(gòu)體菜品的刪除與文件的重構(gòu)
int function_del(struct dishes list[],int *p,FILE *fp)
{
if(fp==NULL)
{
printf("Can't open this file\n");
exit(1);
}
int i,n;
char temp[max_str],t[max_str];
printf("\n輸入想要修改的菜品ID:");
scanf("%d",&n);
if(n==0)
{
for(i=0; i<*p; i++)
{
strcpy(temp,list[i].name);
strcat(temp," ");
itoa(list[i].price,t,10); //itoa():將整型值轉(zhuǎn)換為字符串,參數(shù)依次為:要復(fù)制的內(nèi)容,復(fù)制給誰(shuí),以什么進(jìn)制。
strcat(temp,t);
strcat(temp,"\n");
fputs(temp,fp);
}
return 0;
}
for(i=n-1; i<*p; i++)
{
strcpy(list[i].name,list[i+1].name);
list[i].price=list[i+1].price;
}
*p=*p-1;
for(i=0; i<*p; i++)
{
strcpy(temp,list[i].name);
strcat(temp," ");
itoa(list[i].price,t,10); //itoa():將整型值轉(zhuǎn)換為字符串,參數(shù)依次為:要復(fù)制的內(nèi)容,復(fù)制給誰(shuí),以什么進(jìn)制。
strcat(temp,t);
strcat(temp,"\n");
fputs(temp,fp);
}
printf("刪除完成\n");
system("pause");
system("cls");
return 1;
}
//功能模塊5:實(shí)現(xiàn)結(jié)構(gòu)體菜品的添加與文件的重構(gòu),內(nèi)嵌功能模塊6:對(duì)經(jīng)過(guò)修改的菜品結(jié)構(gòu)體按價(jià)格從低到高排序
int function_add(struct dishes list[],int *p,FILE *fp)
{
if(fp==NULL)
{
printf("Can't open this file\n");
exit(1);
}
int i,n,x;
char temp[max_str],t[max_str],in[max_str];
printf("\n輸入0 0返回上一級(jí)\n");
printf("輸入菜品名和價(jià)格,中間使用空格隔開(kāi):\n");
scanf("%s%d",list[*p].name,&list[*p].price);
if(list[*p].price == 0)
{
for(i=0; i<*p; i++)
{
strcpy(temp,list[i].name);
strcat(temp," ");
itoa(list[i].price,t,10); //itoa():將整型值轉(zhuǎn)換為字符串,參數(shù)依次為:要復(fù)制的內(nèi)容,復(fù)制給誰(shuí),以什么進(jìn)制。
strcat(temp,t);
strcat(temp,"\n");
fputs(temp,fp);
}
return 0;
}
*p=*p+1;
function_sort(list,*p);
for(i=0; i<*p; i++)
{
strcpy(temp,list[i].name);
strcat(temp," ");
itoa(list[i].price,t,10); //itoa():將整型值轉(zhuǎn)換為字符串,參數(shù)依次為:要復(fù)制的內(nèi)容,復(fù)制給誰(shuí),以什么進(jìn)制。
strcat(temp,t);
strcat(temp,"\n");
fputs(temp,fp);
}
printf("添加完成\n");
system("pause");
system("cls");
return 1;
}
// 功能模塊6:對(duì)經(jīng)過(guò)修改的菜品結(jié)構(gòu)體按價(jià)格從低到高排序
void function_sort(struct dishes list[],int num)
{
int i,j;
struct dishes t;
for(j=num-1; j>0; j--)
{
for(i=0; i<j; i++)
if(list[i].price>list[i+1].price)
{
t=list[i];
list[i]=list[i+1];
list[i+1]=t;
}
}
}以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
- C語(yǔ)言實(shí)現(xiàn)餐飲點(diǎn)餐管理系統(tǒng)
- 基于C語(yǔ)言實(shí)現(xiàn)點(diǎn)餐系統(tǒng)
- 餐館點(diǎn)菜系統(tǒng)C語(yǔ)言源代碼
- C語(yǔ)言實(shí)現(xiàn)點(diǎn)餐系統(tǒng)
- C語(yǔ)言實(shí)現(xiàn)食堂就餐管理系統(tǒng)(帶鏈表)
- C語(yǔ)言代碼實(shí)現(xiàn)點(diǎn)餐系統(tǒng)
- C語(yǔ)言實(shí)現(xiàn)餐飲結(jié)賬管理系統(tǒng)
- C語(yǔ)言實(shí)現(xiàn)電話訂餐管理系統(tǒng)
- 基于C語(yǔ)言代碼實(shí)現(xiàn)點(diǎn)餐系統(tǒng)
- C語(yǔ)言實(shí)現(xiàn)餐廳點(diǎn)餐系統(tǒng)
相關(guān)文章
kernel利用pt?regs劫持seq?operations的遷移過(guò)程詳解
這篇文章主要為大家介紹了kernel利用pt_regs劫持seq_operations進(jìn)行遷移的過(guò)程詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-05-05
簡(jiǎn)單實(shí)現(xiàn)C++復(fù)數(shù)計(jì)算器
這篇文章主要為大家詳細(xì)介紹了C++簡(jiǎn)單實(shí)現(xiàn)復(fù)數(shù)計(jì)算器的的相關(guān)代碼,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2016-06-06
C語(yǔ)言實(shí)現(xiàn)歌手大獎(jiǎng)賽計(jì)分程序
這篇文章主要為大家詳細(xì)介紹了C語(yǔ)言實(shí)現(xiàn)歌手大獎(jiǎng)賽計(jì)分程序,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-03-03
C++?超詳細(xì)分析多態(tài)的原理與實(shí)現(xiàn)
這篇文章主要介紹了C++多態(tài)的原理與實(shí)現(xiàn),多態(tài)是一種面向?qū)ο蟮脑O(shè)計(jì)思路,本身和C++不是強(qiáng)綁定的,其他語(yǔ)言當(dāng)中一樣有多態(tài),只不過(guò)實(shí)現(xiàn)的方式可能有所不同。下面來(lái)一起了解更多詳細(xì)內(nèi)容吧2022-03-03
C++實(shí)現(xiàn)LeetCode(173.二叉搜索樹(shù)迭代器)
這篇文章主要介紹了C++實(shí)現(xiàn)LeetCode(173.二叉搜索樹(shù)迭代器),本篇文章通過(guò)簡(jiǎn)要的案例,講解了該項(xiàng)技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下2021-08-08
FFRPC應(yīng)用 Client/Server使用及原理解析
這篇文章主要介紹了FFRPC應(yīng)用 Client/Server使用及原理解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-08-08

