c语言食堂菜谱管理系统,基于C语言的食堂菜谱管理系统
系统的目的:
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语言的食堂菜谱管理系统相关推荐
- 学校图书管理系统基于c语言源代码,基于C语言的学校图书管理系统参考.doc
基于C语言的学校图书管理系统参考 本科学生毕业论文(设计) 题目(中 文):基于C语言的学校图书管理系统(英 文):School Library Management System Based on ...
- 基于c语言的物业管理系统设计,基于C#语言的小区物业管理系统的设计与实现
摘要: 随着人们生活水平和消费水平的不断提高,人们在追求物质生活的同时,更注重生活的质量,小区物业管理作为一种服务行业,与人们的生活息息相关,是人们生活质量的最基本需求.因此,小区物业管理系统的研究和 ...
- c语言张宗杰,《基于C语言的学校图书管理系统》.doc
本科学生毕业论文(设计) 题目(中 文):基于C语言的学校图书管理系统(英 文):School Library Management System Based on C Language姓 名 学 号 ...
- c语言程序设计 点菜系统,基于c语言智能点餐系统设计与实现.doc
基于c语言智能点餐系统设计与实现 综合实践(论文) 题 目 基于C语言的智能点餐系统的设计与实现 学 院 通信与电子工程学院 专业班级 学生姓名 指导教师 成 绩 2013年 12 月 22 日 摘 ...
- linux c语言 信号,linux下基于C语言的信号编程实例
搜索热词 本文实例讲述了linux下基于C语言的信号编程方法.分享给大家供大家参考.具体如下: #include #include #include #include #include void si ...
- r语言 线性回归 相关系数_基于R语言的lmer混合线性回归模型
原文 基于R语言的lmer混合线性回归模型tecdat.cn 混合模型适合需求吗? 混合模型在很多方面与线性模型相似.它估计一个或多个解释变量对响应变量的影响.混合模型的输出将给出一个解释值列表,其 ...
- go语言打印日期_基于 Go 语言开发在线论坛(八):消息、视图及日期时间本地化...
我们接着上篇在线论坛的进度,由于之前所有页面和消息文本都是英文的,而我们开发的应用基本都是面向中文用户的,所以需要对项目进行本地化,今天正好借着这个入门项目给大家介绍下如何在 Go Web 应用中进行 ...
- c语言编程TLC2543AD采集,基于C语言的89C51与TLC2543AD转换器的驱动程序的设计 实训报告...
电子信息技术综合实训报告 竞赛题名称:基于C语言的89C51与TLC2543AD转换器的驱动程序的设计 队员名称: 评阅人签名:设计思路描述: 设计思路: 硬件部分基于80C51单片机和TLC2543 ...
- c语言五子棋学年论文,基于c语言五子棋小游戏生本科论文.doc
基于c语言五子棋小游戏生本科论文 五子棋小游戏 需求分析 现在有越来越多的人使用电脑,而且五子棋的受众广泛但实体棋操作较为繁琐且平时较难实现,所以电脑版的五子棋游戏应运而生.大家对于这个小游戏的需求如 ...
- c语言 字数统计 字符串,基于C语言的字数统计
摘要:字数统计是文档处理中经常要用到的功能,这其中要包括英文单词.数字和中文等,而且又要和全角或半角的标点符号进行区分,故此在中英文混合文件中进行准确的字数统计也是有一定难度的.这里提出了一种较好的字 ...
最新文章
- Docker 运行的 应用程序无法连接Oracle数据库的解决办法
- 作业综合练习-初始化工作
- 解决 CentOS7 容器 Failed to get D-Bus connection: Operation not permitted
- Centos安装Xen总结
- 安卓从业者应该关注:Android 6.0的运行时权限
- Machine Learning学习计划
- 互联网+法律兴起,品牌上线数量出现爆发
- python 哥德巴赫猜想的验证
- 1040. 有几个PAT(25)
- COM口总是有惊叹号怎么办
- 2021华为软挑赛复盘
- 手机上编程python的软件_盘点几个在手机上可以用来学习编程的软件
- ATmega328芯片-“变身”-温度计-,附示例教程
- python分组求和_Python–多个键分组求和
- ae合成设置快捷键_【教程】你不知道的全网最全ae快捷键【基础篇】
- linux查看显卡型号
- element 保存 点击链接_element ui 中 el-menu 如何添加链接router-link标签
- 加密与安全——非对称加密算法
- 对回合制游戏的探讨以及想法
- 令人惊艳的80个免费学习网站,每一个都备受好评!
热门文章
- PROGPPCNEXUS读写烧录刷写软件 飞思卡尔MPC55xx/56xx/57xx/58xx 没有次数限制
- 深入浅出-网络七层模型以及libcurl的使用博客地址
- 什么软件能在线支持视频配音文字转语音?
- 美腻!Visual Studio Code 界面毛玻璃效果!
- 3-22个月宝宝生活自理能力训练全记录
- python随机生成小写字母_python生成n个随机(大小写)字母
- 我敢说80% 的程序员都掉进了「老鼠赛跑」的陷阱
- 大型企业自建直播平台有哪些优势呢?
- Android MediaPlayer源码分析
- 3297: 「ZJOI2006」物流运输