系统的目的:

1.让食堂的前后台员工通过使用本系统可以及时掌握学生需求的动态,提高食堂的管理效率。

2.食堂的管理员通过全面的餐饮信息采集和处理,辅助提高系统的管理水平。用最低的费用最短的时间提供尽可能精确、可靠的信息,以便使决策者选择最佳的实施方案。

系统实现的功能:

1.进行需求分析,设计系统的概念模型。

2.食堂信息管理:食堂菜品信息的添加、编辑、删除和查询。

#include "stdio.h"

#include "string.h"

#include "stdlib.h"

#include "struct_file.h"

#include "function_declare_file.h"

int f_Count=0;

int Count=0;

int main (void)

{

int a,choice;

Load_a();

a=admin_land();

Load_food_information();

if(a)

{

do{

printf("________________________________________________________________________________\n");

printf("\n");

printf("\t\t\t*-----*-----*-----*-----*----*---*\n");

printf("\t\t\t|+ 请 选 择 要 进 行 的 操 作 |\n");

printf("\t\t\t|+!****************************!+|\n");

printf("\t\t\t|+ 【1】 录入菜品信息 +|\n");

printf("\t\t\t|+ 【2】 修改菜品信息 +|\n");

printf("\t\t\t|+ 【3】 查询菜品信息 +|\n");

printf("\t\t\t|+ 【4】 删除菜品信息 +|\n");

printf("\t\t\t|+ 【5】 浏览菜品信息 +|\n");

printf("\t\t\t|+ 【0】 退出系统 +|\n");

printf("\t\t\t|+!****************************!+|\n");

printf("\n");

printf("________________________________________________________________________________\n");

printf("请输入您的选择:");

scanf("%d",&choice);

switch(choice){

case 1:

add();

break;

case 2:

modify();

break;

case 3:

seek();

break;

case 4:

dele();

break;

case 5:

look();

break;

case 0:

save_food_information();

return 0;

default:

printf("选项错误!!!\n");

break;

}

printf("\n\n\n\n按Enter键返回^_^");

getchar();

if(getchar()) system("cls");

}while(1);

}

else

return 0;

}

//管理员密码验证...............................................................................

int admin_land()

{

int i=1,j;

char user_name[15];

char user_pwd[15];

do{

printf("\n请输入管理员用户名:");

scanf("%s",user_name);

printf("\n请输入管理员密码:");

scanf("%s",user_pwd);

for(j=0;j

{

if((strcmp(user_name,b[j].username))==0&&strcmp(user_pwd,b[j].password)==0)

return 1;

}

if(j>=Count)

printf("密码错误!");

printf("请重新输入!\n");

i++;

printf("________________________________________________________________________________\n");

}while(i<=3);

return 0;

}

//录入菜品信息

void add()

{

printf("\n\n提示:请按*编号*名称*类别*单价的顺序输入菜品的信息!\n");

printf("________________________________________________________________________________\n\n");

scanf("%d%s%s%lf",&f[f_Count].num,f[f_Count].name,f[f_Count].genre,&f[f_Count].price);

printf("\n\n\n菜品信息已录入^_^");

f_Count++;

}

//修改菜品信息

void modify()

{

int num;

int i;

printf("请输入要修改菜品的编号:");

scanf("%d",&num);

for(i=0;i

{

if(f[i].num==num)

break;

}

if(i

{

int choice;

system("cls");//清屏

do{

printf("请选择您要修改的菜品信息的内容:\n");

printf("\t\t\t+++++++++++++++++++++++++++++\n");

printf("\t\t\t|* 编号 请按 1 *|\n");

printf("\t\t\t|* 名称 请按 2 *|\n");

printf("\t\t\t|* 类别 请按 3 *|\n");

printf("\t\t\t|* 单价 请按 4 *|\n");

printf("\t\t\t|* 取消 请按 0 *|\n");

printf("\t\t\t+++++++++++++++++++++++++++++\n");

printf("请选择:");

scanf("%d",&choice);

switch(choice)

{

case 1:

printf("请输入新编号:");

scanf("%d",&f[i].num);

printf("\n\n\n修改已完成^_^");

break;

case 2:

printf("请输入新姓名:");

scanf("%s",f[i].name);

printf("\n\n\n修改已完成^_^");

break;

case 3:

printf("请输入新类别:");

scanf("%s",f[i].genre);

printf("\n\n\n修改已完成^_^");

break;

case 4:

printf("请输入新的单价:");

scanf("%lf",&f[i].price);

printf("\n\n\n修改已完成^_^");

break;

case 0:

return;

default:

printf("\n无效选项!");

break;

}

printf("\n\n\n\n按Enter键返回^_^");

getchar();

if(getchar()) system("cls");

}while(choice!=0);

}

else

{

printf("未找到该菜品信息!!");

}

}

//查询菜品信息

void seek()

{

int i;

int num;

printf("请输入要查询的菜品的编号:");

scanf("%d",&num);

for(i=0;i

{

if(f[i].num==num)

break;

}

if(i

{

printf("\t名称\t类别\t单价\n");

printf("\t%s\t%s\t%.1lf\n",f[i].name,f[i].genre,f[i].price);

}

else

printf("未找到该菜品信息!");

printf("\n\n\n\n按Enter键返回^_^");

getchar();

if(getchar()) system("cls");

return;

}

//删除菜品信息

void dele()

{

int i;

char name[20];

printf("请输入要删除的菜品名称:");

scanf("%s",name);

for(i=0;i

{

if(strcmp(name,f[i].name)==0)

break;

}

if(i

{

int j;

for(j=i;j

{

f[j]=f[j+1];

}

f_Count--;

printf("删除信息完成。");

}

else

{

printf("未找到该菜品信息!!");

}

}

//载入菜品信息

void Load_food_information()

{

FILE *fp;//定义一个file类型的 指针 *fp

struct food *p; //定义food结构体 指针*p

if((fp=fopen("food.txt","r"))==NULL)//“r”表示打开文件

{

printf("未找到菜品文件!\n");

return;

}

while(!feof(fp))//检查fp所指文件

{

p=(struct food *)malloc(sizeof(struct food));//分配单元首地址 分配size个字节的存储单元

if(fscanf(fp,"%d%s%s%lf\r",&p->num,p->name,p->genre,&p->price)==0)

{

printf("菜品文件载入失败!\n");

return;

}

f[f_Count]=*p;

f_Count++;

}

printf("f_Count=%d",f_Count);

free(p);//释放内存空间

fclose(fp);//关闭fp所指文件

printf("\n菜品文件已载入!\n\n");

}

//保存菜品信息函数

void save_food_information()

{

FILE *fp;

struct food *p;

int i;

if((fp=fopen("food.txt","w"))==NULL)

printf("未找到菜品文件,不能保存!\n");

for(i=0;i

{

p=(struct food *)malloc(sizeof(struct food));//分配单元首地址 分配size个字节的存储单元

*p=f[i];

if(fprintf(fp,"%d\t%s\t%s\t%lf\t",p->num,p->name,p->genre,p->price)==0)

{

printf("菜品文件保存失败!\n");

return;

}

}

free(p);//释放内存空间

fclose(fp);//关闭fp所指文件

printf("菜品文件已保存!\n");

}

//载入账号密码

void Load_a()

{

FILE *fp;

struct a *p;

if((fp=fopen("adm.txt","r"))==NULL)

{

printf("未找到密码 文件!\n");

return;

}

while(!feof(fp))//检查fp所指文件

{

p=(struct a *)malloc(sizeof(struct a));//分配单元首地址 分配size个字节的存储单元

if(fscanf(fp,"%s%s\r",p->username,p->password)==0)

{

printf("密码文件载入失败!\n");

return;

}

b[Count]=*p;

Count++;

}

printf("Count=%d",Count);

free(p);//释放内存空间

fclose(fp);//关闭fp所指文件

printf("\n密码文件已载入!\n\n");

}

//浏览菜品信息

void look()

{

int i;

printf("\t编号\t名称\t类别\t单价\n");

for(i=0;i

{

printf("\t%d\t%s\t%s\t%.1lf\n",f[i].num,f[i].name,f[i].genre,f[i].price);

}

}

c语言食堂菜谱管理系统,基于C语言的食堂菜谱管理系统相关推荐

  1. 学校图书管理系统基于c语言源代码,基于C语言的学校图书管理系统参考.doc

    基于C语言的学校图书管理系统参考 本科学生毕业论文(设计) 题目(中 文):基于C语言的学校图书管理系统(英 文):School Library Management System Based on ...

  2. 基于c语言的物业管理系统设计,基于C#语言的小区物业管理系统的设计与实现

    摘要: 随着人们生活水平和消费水平的不断提高,人们在追求物质生活的同时,更注重生活的质量,小区物业管理作为一种服务行业,与人们的生活息息相关,是人们生活质量的最基本需求.因此,小区物业管理系统的研究和 ...

  3. c语言张宗杰,《基于C语言的学校图书管理系统》.doc

    本科学生毕业论文(设计) 题目(中 文):基于C语言的学校图书管理系统(英 文):School Library Management System Based on C Language姓 名 学 号 ...

  4. c语言程序设计 点菜系统,基于c语言智能点餐系统设计与实现.doc

    基于c语言智能点餐系统设计与实现 综合实践(论文) 题 目 基于C语言的智能点餐系统的设计与实现 学 院 通信与电子工程学院 专业班级 学生姓名 指导教师 成 绩 2013年 12 月 22 日 摘 ...

  5. linux c语言 信号,linux下基于C语言的信号编程实例

    搜索热词 本文实例讲述了linux下基于C语言的信号编程方法.分享给大家供大家参考.具体如下: #include #include #include #include #include void si ...

  6. r语言 线性回归 相关系数_基于R语言的lmer混合线性回归模型

    原文 基于R语言的lmer混合线性回归模型​tecdat.cn 混合模型适合需求吗? 混合模型在很多方面与线性模型相似.它估计一个或多个解释变量对响应变量的影响.混合模型的输出将给出一个解释值列表,其 ...

  7. go语言打印日期_基于 Go 语言开发在线论坛(八):消息、视图及日期时间本地化...

    我们接着上篇在线论坛的进度,由于之前所有页面和消息文本都是英文的,而我们开发的应用基本都是面向中文用户的,所以需要对项目进行本地化,今天正好借着这个入门项目给大家介绍下如何在 Go Web 应用中进行 ...

  8. c语言编程TLC2543AD采集,基于C语言的89C51与TLC2543AD转换器的驱动程序的设计 实训报告...

    电子信息技术综合实训报告 竞赛题名称:基于C语言的89C51与TLC2543AD转换器的驱动程序的设计 队员名称: 评阅人签名:设计思路描述: 设计思路: 硬件部分基于80C51单片机和TLC2543 ...

  9. c语言五子棋学年论文,基于c语言五子棋小游戏生本科论文.doc

    基于c语言五子棋小游戏生本科论文 五子棋小游戏 需求分析 现在有越来越多的人使用电脑,而且五子棋的受众广泛但实体棋操作较为繁琐且平时较难实现,所以电脑版的五子棋游戏应运而生.大家对于这个小游戏的需求如 ...

  10. c语言 字数统计 字符串,基于C语言的字数统计

    摘要:字数统计是文档处理中经常要用到的功能,这其中要包括英文单词.数字和中文等,而且又要和全角或半角的标点符号进行区分,故此在中英文混合文件中进行准确的字数统计也是有一定难度的.这里提出了一种较好的字 ...

最新文章

  1. Docker 运行的 应用程序无法连接Oracle数据库的解决办法
  2. 作业综合练习-初始化工作
  3. 解决 CentOS7 容器 Failed to get D-Bus connection: Operation not permitted
  4. Centos安装Xen总结
  5. 安卓从业者应该关注:Android 6.0的运行时权限
  6. Machine Learning学习计划
  7. 互联网+法律兴起,品牌上线数量出现爆发
  8. python 哥德巴赫猜想的验证
  9. 1040. 有几个PAT(25)
  10. COM口总是有惊叹号怎么办
  11. 2021华为软挑赛复盘
  12. 手机上编程python的软件_盘点几个在手机上可以用来学习编程的软件
  13. ATmega328芯片-“变身”-温度计-,附示例教程
  14. python分组求和_Python–多个键分组求和
  15. ae合成设置快捷键_【教程】你不知道的全网最全ae快捷键【基础篇】
  16. linux查看显卡型号
  17. element 保存 点击链接_element ui 中 el-menu 如何添加链接router-link标签
  18. 加密与安全——非对称加密算法
  19. 对回合制游戏的探讨以及想法
  20. 令人惊艳的80个免费学习网站,每一个都备受好评!

热门文章

  1. PROGPPCNEXUS读写烧录刷写软件 飞思卡尔MPC55xx/56xx/57xx/58xx 没有次数限制
  2. 深入浅出-网络七层模型以及libcurl的使用博客地址
  3. 什么软件能在线支持视频配音文字转语音?
  4. 美腻!Visual Studio Code 界面毛玻璃效果!
  5. 3-22个月宝宝生活自理能力训练全记录
  6. python随机生成小写字母_python生成n个随机(大小写)字母
  7. 我敢说80% 的程序员都掉进了「老鼠赛跑」的陷阱
  8. 大型企业自建直播平台有哪些优势呢?
  9. Android MediaPlayer源码分析
  10. 3297: 「ZJOI2006」物流运输