c语言饭卡管理系统课程设计报告
C语言课程设计餐馆管理系统

C语言课程设计餐馆管理系统一、教学目标本课程的目标是让学生掌握C语言的基本知识,通过构建一个简单的餐馆管理系统,培养学生的实际编程能力和问题解决能力。
在知识目标方面,学生需要理解C语言的数据类型、控制结构、函数等基本概念。
在技能目标方面,学生应掌握C语言的编程技巧,能够独立完成一个小型的软件系统。
在情感态度价值观目标方面,学生应培养对计算机科学的兴趣,具备良好的团队合作精神和自主学习能力。
二、教学内容教学内容主要包括C语言的基本语法、数据类型、控制结构、函数等。
具体的教学内容安排如下:1.引言:介绍C语言的发展历程和特点,让学生了解C语言的重要性和应用范围。
2.数据类型和变量:讲解整型、浮点型、字符型等数据类型的定义和使用方法。
3.控制结构:介绍条件语句、循环语句等控制结构的使用和原理。
4.函数:讲解函数的定义、声明和调用,以及函数的参数传递和返回值。
5.餐馆管理系统:通过构建一个简单的餐馆管理系统,让学生将所学知识应用于实际问题的解决。
三、教学方法为了激发学生的学习兴趣和主动性,本课程将采用多种教学方法,包括讲授法、讨论法、案例分析法和实验法等。
在讲授法中,教师将系统地讲解C语言的基本概念和语法。
在讨论法中,教师将引导学生进行思考和讨论,培养学生的创新思维和问题解决能力。
在案例分析法中,教师将通过分析具体的编程案例,让学生了解C语言在实际应用中的重要性。
在实验法中,教师将学生进行上机实验,让学生在实际操作中掌握C语言的编程技巧。
四、教学资源为了支持教学内容和教学方法的实施,我们将选择和准备适当的教学资源。
教材方面,我们选择《C程序设计语言》作为主教材,辅以《C语言编程实例教程》进行实践操作。
参考书方面,我们推荐《C Primer Plus》和《C和指针》。
多媒体资料方面,我们将制作PPT课件和视频教程,以便学生更好地理解和掌握知识。
实验设备方面,我们将提供计算机实验室,让学生进行上机实验和编程实践。
c语言课程设计校园饭卡

c语言课程设计校园饭卡一、教学目标本章节的教学目标是使学生掌握C语言编程的基本知识,能够运用C语言设计简单的校园饭卡管理系统。
具体目标如下:1.知识目标:学生需要掌握C语言的基本语法、数据类型、运算符、控制结构、函数等编程基础。
2.技能目标:学生能够运用C语言编写简单的校园饭卡管理系统,包括用户注册、登录、充值、消费等功能。
3.情感态度价值观目标:培养学生对编程的兴趣和热情,提高学生解决问题的能力,培养学生的创新精神和团队合作意识。
二、教学内容本章节的教学内容主要包括C语言的基本语法、数据类型、运算符、控制结构、函数等编程基础,以及校园饭卡管理系统的需求分析、设计、实现和测试。
具体安排如下:1.第一课时:C语言的基本语法和数据类型。
2.第二课时:运算符和控制结构。
3.第三课时:函数和校园饭卡管理系统的设计。
4.第四课时:校园饭卡管理系统的实现和测试。
三、教学方法本章节的教学方法采用讲授法、案例分析法和实验法相结合的方式。
1.讲授法:用于讲解C语言的基本语法、数据类型、运算符、控制结构、函数等编程基础。
2.案例分析法:通过分析校园饭卡管理系统的需求,引导学生学会分析问题、解决问题。
3.实验法:让学生动手编写校园饭卡管理系统,提高学生的编程能力和实践能力。
四、教学资源本章节的教学资源包括教材、参考书、多媒体资料和实验设备。
1.教材:选用《C程序设计原理与应用》作为主教材,辅助以《C语言编程实例解析》等参考书。
2.多媒体资料:制作PPT课件,展示C语言编程的基本知识和校园饭卡管理系统的界面及功能。
3.实验设备:为学生提供计算机、网络和编程环境,让学生能够动手编写和测试校园饭卡管理系统。
五、教学评估本章节的教学评估主要包括平时表现、作业和考试三个部分,以全面、客观、公正地评估学生的学习成果。
1.平时表现:通过观察学生在课堂上的参与程度、提问回答、合作交流等表现,评估学生的学习态度和积极性。
2.作业:布置与本章节内容相关的编程作业,评估学生的编程能力和对知识的掌握程度。
食堂饭卡管理系统C语言课程设计实习(二)2024

食堂饭卡管理系统C语言课程设计实习(二)引言概述:食堂饭卡管理系统是一个基于C语言的课程设计实习项目。
该系统旨在解决食堂饭卡管理的效率和准确性问题,通过计算机技术的应用,提供了一个功能完善、用户友好、高效的饭卡管理解决方案。
本文将从以下五个方面进行详细介绍和讨论。
1. 饭卡充值管理1.1 充值功能:实现用户对饭卡进行充值操作,输入充值金额并完成充值流程。
1.2 充值记录查询:提供用户查询充值记录的功能,用户可以通过输入时间范围和饭卡号码来查找充值记录。
1.3 充值统计分析:系统自动统计总充值金额、平均充值金额等数据,为管理者提供充值情况的分析报告。
2. 饭卡消费管理2.1 消费功能:用户可以通过选择食堂菜品并输入数量进行一次或多次消费操作,系统将扣除相应金额并更新余额。
2.2 菜品管理:管理员可以添加、修改和删除食堂菜品信息,保证系统中的菜品信息始终准确。
2.3 消费记录查询:用户和管理员都拥有查询消费记录的权限,可以根据时间范围和饭卡号码查看相应的消费记录。
3. 饭卡挂失与解挂3.1 饭卡挂失:用户可以在系统内申请挂失饭卡,挂失后无法进行充值和消费操作,有效保护饭卡余额的安全。
3.2 饭卡解挂:用户可以通过输入饭卡号和密码解除挂失状态,系统将重新激活饭卡并恢复正常使用。
4. 饭卡余额查询和管理4.1 余额查询:用户可以随时查询当前饭卡的余额,并了解最近账户的变动情况。
4.2 账户管理:管理员可以对用户的饭卡账户进行管理,包括账户冻结和解冻功能,以防止异常账户的继续使用。
5. 系统安全与日志管理5.1 登录验证:系统需要用户输入正确的用户名和密码进行登录,确保只有授权用户才能访问系统。
5.2 操作日志:系统将记录用户的所有操作日志,包括登录、充值、消费、挂失、解挂等,以便管理者对系统进行监控和追踪。
总结:食堂饭卡管理系统C语言课程设计实习(二)是一个以提高饭堂饭卡管理效率为目标的项目。
通过充值、消费、挂失和解挂、余额查询与管理以及系统安全与日志管理等五个方面的设计,该系统能够有效提高食堂饭卡的便利性和管理性,提供用户友好的界面和安全可靠的操作环境。
饭卡管理系统课程设计

饭卡管理系统课程设计一、课程目标知识目标:1. 理解并掌握饭卡管理系统的基本原理和功能;2. 学会使用程序设计语言,如Python,进行饭卡管理系统的简单编程;3. 掌握运用数据库知识进行数据存储和管理。
技能目标:1. 能够运用所学知识设计并实现一个简单的饭卡管理系统;2. 培养学生的编程能力,提高问题解决能力;3. 培养学生团队协作和沟通能力,能在小组合作中发挥各自优势。
情感态度价值观目标:1. 培养学生对计算机科学和信息技术的兴趣,激发学习积极性;2. 培养学生的创新意识和实践能力,敢于尝试,勇于探索;3. 培养学生遵守规则、诚信使用的价值观,提高社会责任感。
课程性质:本课程为信息技术学科,结合编程、数据库等知识,旨在培养学生的实际操作能力和解决问题的能力。
学生特点:六年级学生具备一定的计算机操作能力,对新鲜事物充满好奇心,善于合作与探究。
教学要求:结合学生特点,注重实践操作,鼓励学生自主探究和小组合作,以培养学生的实际应用能力和团队合作精神。
通过本课程的学习,将目标分解为具体的学习成果,便于后续教学设计和评估。
二、教学内容1. 理论知识:- 饭卡管理系统概述:介绍饭卡管理系统的基本概念、功能和应用场景;- 数据库基础:讲解数据库的基本原理,如数据表、字段、记录等;- 编程语言简介:介绍Python编程语言的基本语法和特点。
2. 实践操作:- 设计饭卡管理系统:运用所学知识,设计并实现一个简单的饭卡管理系统;- 编程实践:编写Python代码,实现饭卡管理系统的功能;- 数据库操作:学会使用数据库存储和管理饭卡信息。
3. 教学大纲:- 第一周:饭卡管理系统概述,了解系统功能和应用场景;- 第二周:学习数据库基础知识,创建数据表、字段、记录等;- 第三周:学习Python编程语言基本语法,编写简单程序;- 第四周:设计饭卡管理系统,分组讨论,明确系统需求;- 第五周:编写Python代码,实现饭卡管理系统功能;- 第六周:进行数据库操作,存储和管理饭卡信息;- 第七周:课程总结与展示,小组分享成果,互相评价。
c语言课程设计点餐系统设计

c语言课程设计点餐系统设计一、教学目标本节课的教学目标是让学生掌握C语言编程的基本知识,能够运用C语言设计一个简单的点餐系统。
具体分为三个部分:1.知识目标:使学生了解C语言的基本语法、数据类型、运算符、控制结构等,为后续编程打下基础。
2.技能目标:培养学生运用C语言进行程序设计的能力,学会使用函数、数组、指针等编程技巧。
3.情感态度价值观目标:激发学生对编程事业的热爱,培养他们勇于创新、解决问题的精神。
二、教学内容本节课的教学内容主要包括以下几个部分:1.C语言基本语法和数据类型2.运算符与控制结构3.函数、数组和指针4.文件操作5.点餐系统设计三、教学方法为了达到本节课的教学目标,采用以下几种教学方法:1.讲授法:讲解C语言的基本语法、数据类型、运算符和控制结构等知识。
2.案例分析法:通过分析实际案例,使学生掌握函数、数组和指针的运用。
3.实验法:让学生动手编写代码,设计一个简单的点餐系统,巩固所学知识。
4.讨论法:鼓励学生相互交流、讨论,提高解决问题的能力。
四、教学资源为了保证本节课的教学质量,准备以下教学资源:1.教材:《C程序设计》2.参考书:《C语言 Primer》3.多媒体资料:PPT、教学视频4.实验设备:计算机、编程环境以上教学资源将贯穿整个教学过程,为学生提供丰富的学习体验。
五、教学评估本节课的教学评估将采用多元化的评价方式,以全面、客观、公正地评价学生的学习成果。
评估内容包括:1.平时表现:评价学生在课堂上的参与度、提问回答、小组讨论等,占总评的30%。
2.作业:布置相应的编程作业,评估学生的编程能力和应用能力,占总评的30%。
3.考试成绩:期末进行C语言编程考试,评估学生的综合运用能力,占总评的40%。
评估方式将结合定性和定量评价,以全面反映学生的学习成果。
六、教学安排本节课的教学安排如下:1.教学进度:按照教材《C程序设计》的章节顺序进行教学,确保学生在每个阶段掌握相应的知识点。
C课程设计报告餐厅管理

C语言课程设计报告书题目:餐厅管理学号:********姓名:学号:********姓名:学号:********姓名:1.功能需求点菜,客户结账,账目管理,餐馆统计,退出。
2. 总体设计2.1系统模块结构框图2.2功能模块框图2.3系统流程图Main函数3. 详细设计基于系统需求分析与系统总体设计的结论,本系统采用VC实现各模块的功能。
下面按照模块的划分来分别阐述系统的详细设计和实现过程。
3.1 功能选择3.1.1 模块描述功能选择模块为系统提供类似于菜单的功能,让用户输入功能选项,并进入相应的功能执行程序。
3.1.2 源文件定义restaurant.c3.1.3 函数声明(1)void Table_Init(void):餐桌信息初始化。
(2)void Observe(void):查看账目。
(3)void List_Management(void):账本管理。
(4)void ListMenu(void):账目管理菜单。
(5)void Menu_select(void):显示系统菜单。
(6)void Get_Rank(void):对菜进行统计排名。
输入:用户选择的功能选择界面。
处理:根据用户选项跳转到相关功能函数。
输出:相关功能函数的处理或显示界面。
4.详细设计#include <stdio.h>#include <conio.h>#include <string.h>#include <stdlib.h>#include <time.h>#define N 10#define D 10#define H 10//#define PASSWORD 123#define ASK (ORDER*)malloc(sizeof(ORDER))#define MaxCapacity 4//定义订单结构typedef struct Order{int Table_ID;//记录餐桌号int Dish_ID[N];//记录菜的编号struct Order *next;}ORDER;//定义餐厅结构体typedef struct Table{int Table_ID;//餐桌编号int Capacity;//餐桌最多能容纳的人数int Table_State;//1有人在用,0没人在用}TABLE;//定义菜的结构体typedef struct Dish{int Dish_ID;//菜的编号char Dish_Name[10];//菜名float Dish_Price;//价格}DISH;TABLE tb[H];//餐桌结构体数组DISH dish[D];//菜的结构体数组int PASSWORD=123;//密码设置//函数定义void Load_Dish(void);//从文件中读取菜谱ORDER*CreateOne(int);//创建一个订单节点void Dish_Menu(void);//显示菜谱void Table_Init(void);//餐桌信息初始化int search(void);//查找匹配的餐桌ORDER* Dish_Order(ORDER*,ORDER*);//将节点添加到主链void Display(int);//显示菜的信息void saveInList(float);//将客户消费额写入账单void Save_Inform(ORDER*,int);//将已结账订单信息写入历史记录ORDER *Payment(ORDER*);//结账void ModifyPW(void);//修改密码int Pass_Word(void);//密码验证void Observe(void);//账目查询void ListMenu(void);//账单管理菜单void List_Management(void);//账单管理void Main_Menu(void);//主菜单void Get_Rank(void);//统计void Menu_select(void);//选择功能//主函数main(){Table_Init();Menu_select();}//系统主菜单void Main_Menu(){printf("\n**********************\n");printf("餐厅服务系统\n");printf("**********************\n");printf("1.点菜\n");printf("2.客户结账\n");printf("3.账目管理\n");printf("4.餐厅统计\n");printf("5.退出系统\n");}//选择功能void Menu_select(void){ORDER* head;int choose;int result;head=NULL;system("cls");do{Load_Dish();Main_Menu();printf("请选择:\n");fflush(stdin);scanf("%d",&choose);//system("cls");switch(choose){case 1: result=search();if(result==1)printf("你可以到%d号餐桌就餐\n",result);elseprintf("你和你的朋友可以到%d号餐桌就餐\n",result);Dish_Menu();head=Dish_Order(head,CreateOne(result));//system("cls");break;case 2: head=Payment(head);break;case 3: List_Management();break;case 4: Get_Rank();break;case 5: exit(1);break;}}while(1);}//从文件中读取菜谱void Load_Dish(void){FILE *fp;int i;fp=fopen("dish_name.txt","r");for(i=0;i<D;i++){fscanf(fp,"%d\t%s\t%f\n",&dish[i].Dish_ID,dish[i].Dish_Name,&dish[i].Dish_Pr ice);}}//餐桌初始化void Table_Init(){tb[0].Capacity=1;tb[0].Table_ID=1;tb[1].Capacity=1;tb[1].Table_ID=2;tb[2].Capacity=2;tb[2].Table_ID=3;tb[3].Capacity=2;tb[3].Table_ID=4;tb[4].Capacity=2;tb[4].Table_ID=5;tb[5].Capacity=3;tb[5].Table_ID=6;tb[6].Capacity=4;tb[6].Table_ID=7;tb[7].Capacity=4;tb[7].Table_ID=8;tb[8].Capacity=4;tb[8].Table_ID=9;tb[9].Capacity=4;tb[9].Table_ID=10;}//显示菜谱void Dish_Menu(void){int i;printf("*********欢迎选购本店菜**********\n");printf("菜编号\t菜名\t菜单价\n");for(i=0;i<D;i++)printf("%d\t%s\t%f\n",dish[i].Dish_ID,dish[i].Dish_Name,dish[i].Dish_Price);}//查找有没有匹配的餐桌int search (void){int Cust_Num;int i;printf("请输入来客数量:\n");scanf("%d",&Cust_Num);if(MaxCapacity<Cust_Num){printf("抱歉,本店没有容纳%d的餐桌!",Cust_Num);return -1;}while(Cust_Num<=MaxCapacity){for(i=0;i<H;i++){if(tb[i].Table_State==0){if(tb[i].Capacity==Cust_Num)return (tb[i].Table_ID);}}printf("抱歉,现在没有%d人桌",Cust_Num);Cust_Num+=1;}printf("餐桌已满,请客人稍等一会。
c课程设计菜单点餐系统

c 课程设计菜单点餐系统一、教学目标本课程的目标是让学生掌握菜单点餐系统的开发过程和基本原理,培养学生的实际编程能力和解决问题的能力。
具体目标如下:知识目标:使学生了解菜单点餐系统的需求分析、系统设计、编码实现和测试等基本环节;掌握C语言的基本语法和编程方法;理解数据结构在菜单点餐系统中的应用。
技能目标:培养学生运用C语言进行程序设计的能力,能够独立完成菜单点餐系统的设计与实现;培养学生运用算法解决问题的能力,能够针对实际问题设计合理的算法。
情感态度价值观目标:培养学生热爱编程、勇于探索的科学精神;培养学生团队协作、共同解决问题的合作意识;培养学生关注实际应用、积极服务社会的责任感。
二、教学内容本课程的教学内容主要包括以下几个部分:1.菜单点餐系统概述:介绍菜单点餐系统的基本概念、功能和应用场景,使学生了解菜单点餐系统的重要性和实际意义。
2.需求分析:培养学生分析用户需求、撰写需求说明书的能力,使学生掌握需求分析的基本方法和技巧。
3.系统设计:教授学生如何根据需求分析结果进行系统设计,包括模块划分、界面设计、数据库设计等,培养学生运用设计原理和方法解决问题的能力。
4.编码实现:教授学生使用C语言进行程序设计,使学生掌握基本语法、数据类型、运算符、控制结构等编程基础知识,培养学生熟练编写程序的能力。
5.测试与调试:培养学生编写测试用例、进行系统测试和调试的能力,使学生了解软件质量保证的基本方法。
6.数据结构与应用:讲解在菜单点餐系统中常用的数据结构,如数组、链表、树等,培养学生运用数据结构解决实际问题的能力。
三、教学方法为了提高教学效果,本课程将采用多种教学方法相结合的方式进行教学:1.讲授法:教师讲解基本概念、原理和方法,使学生掌握相关知识。
2.案例分析法:分析实际案例,使学生了解菜单点餐系统的应用场景和开发过程。
3.实验法:让学生动手编写程序,培养学生的实际编程能力和解决问题的能力。
4.小组讨论法:分组进行讨论和合作,培养学生的团队协作能力和沟通能力。
餐饮管理C语言课程设计

餐饮管理C语言课程设计一、课程目标知识目标:1. 理解餐饮管理系统的基本需求与功能模块;2. 掌握C语言编程基础,包括数据类型、控制结构、函数等;3. 学会使用C语言进行简单的数据处理和文件操作;4. 掌握如何在C语言中实现餐饮管理系统的基本功能,如菜单显示、点餐、计算价格等。
技能目标:1. 能够运用结构体数组管理菜单数据;2. 独立编写C程序,实现餐饮管理系统的核心功能;3. 通过编程实践,提高问题分析和程序设计能力;4. 学会使用C语言进行基本的错误处理和调试。
情感态度价值观目标:1. 培养学生对餐饮管理工作的兴趣,认识到信息管理在餐饮行业的重要性;2. 增强学生的团队协作意识,学会在小组合作中共同解决问题;3. 培养学生严谨、细致的工作态度,养成良好的编程习惯;4. 激发学生的创新思维,鼓励他们尝试不同的解决方案。
本课程针对高年级学生,结合餐饮管理实际需求,运用C语言进行课程设计。
课程旨在帮助学生将所学的编程知识运用到实际场景中,提高其编程能力和实际问题解决能力。
同时,注重培养学生的情感态度价值观,使其成为具有创新精神和团队协作能力的餐饮管理人才。
通过本课程的学习,学生将能够独立完成一个简单的餐饮管理系统的设计与实现。
二、教学内容1. C语言基础知识复习:数据类型、运算符、控制结构、函数定义与调用;2. 结构体与数组:介绍结构体的定义和使用,数组的应用,重点讲解如何使用结构体数组存储和管理菜单信息;3. 文件操作:文件打开、读写、关闭,以及如何将数据持久化存储;4. 餐饮管理系统功能模块设计:- 菜单显示:设计并实现一个清晰的菜单显示界面;- 点餐功能:实现用户点餐,包括菜品的选择、数量确定等;- 价格计算:根据点餐信息计算总价,并实现找零功能;- 订单管理:实现对订单的存储、查询和修改;5. 错误处理与调试技巧:介绍程序中可能出现的错误类型及调试方法;6. 项目实践:小组合作,完成一个完整的餐饮管理系统的设计与实现,并进行展示和评价。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
课程设计报告课程名称: C语言程序设计课设项目名称:饭卡管理系统学院:专业:姓名:学号:指导教师:成绩:目录第1部分课程设计题目与要求 (2)1.问题描述 (2)2.功能要求 (2)3.任务分工................................. 错误!未定义书签。
第2部分《饭卡管理系统》的设计与功能实现 (3)1.总体设计 (3)2.数据结构 (3)3.算法设计 (4)4.程序代码设计 (12)5.测试与调试 (22)第3部分课程设计总结................................. 错误!未定义书签。
个人总结........................................ 错误!未定义书签。
个人总结........................................ 错误!未定义书签。
结束语.......................................... 错误!未定义书签。
附录Ⅰ程序清单 (23)附录Ⅱ用户使用说明书 (34)参考文献 (35)第1部分课程设计题目与要求1.问题描述学校等大单位集体食堂买饭时间非常集中,这时如果食堂使用饭票卖饭,大家就得排长队等候,而且还要经过先去买饭票等麻烦的经历。
因此食堂提出使用计算机进行管理,食堂用饭卡卖饭,不仅提高卖饭速度,还易于2.功能要求重复显示如图所示的主菜单,在主菜单中选择任意一项,均实现相应功能。
在主菜单中选择1,建立名为card.dat的文件,并在其中添加若干人的饭卡号、姓名、金额、挂失信息,要求饭卡号是唯一的。
在主菜单中选择2,要求用户输入饭卡号、饭费,然后系统自动从该人的饭卡中减去饭钱,并分别显示买饭前后的金额,如果原来饭卡中的金额不足5元,则不能买饭,而且显示“金额不足够,请续钱!”,如果挂失信息为真,则显示“本卡已冻结!”。
在主菜单中选择4,添加新饭卡,这时要求新饭卡号和已有的饭卡号不能重号。
在主菜单中选择5,注销旧饭卡。
在主菜单中选择6,要求用户输入饭卡号和挂失信息,然后更新该饭卡的挂失信息。
在主菜单中选择7,在主菜单中选择0,显示“感谢使用本软件!已正常退出,按任意键结束。
”按任意键退出本系统。
第2部分《饭卡管理系统》的设计与功能实现1.总体设计图1初始的主模块图2细分后的主模块图2.数据结构例如:struct card{ char name[10],num[10]; float yu,sum; int guashi;}; num[10]表示学号放在一维数组中,name[10]表示姓名放在一维数组中,yu表示余额,sum 表示消费金额的累积,guashi表示挂失的情况。
3. 算法设计图3主函数流程图图4 建立饭卡模块流程图图5 买饭模块流程图图6 续钱模块流程图图7 添加新饭卡模块流程图图8 注销旧饭卡模块流程图图9 设置与解除挂失模块流程图图10 创新功能模块流程图4.程序代码设计采用模块化的思想,按照“自顶向下,逐步细化”的原则设计算法。
(1)菜单的设计1,本例需要输出主菜单选择界面,简单菜单的制作可利用printf函数实现。
用printf函数将菜单项逐一打印到屏幕上,界面中的边框可以通过多个printf函数输出的“|”和“-”拼接起来。
2,菜单应根据用户的选择做出不同的反应,因此需要使用分支结构实现选择选项的功能。
根据题意,主菜单含有8个菜单选项,属于多分支条件判断,使用带break和switch语句最为合适。
3,因为本例具有重复选择主菜单选项的功能,因此需要使用循环结构。
在本例中菜单至少要显示一次,随后才判断是否继续选择主菜单,所以使用do-while循坏比较好,因为do-while循坏是先执行循环体,然后再判断表达式。
4,作为菜单,应该给用户一个正常的出口,即满足一定条件时退出程序。
为了给用户提供方便,我们采用人机对话形式,当用户选择某一菜单项后,系统立即完成相应的功能,然后询问用户是否需要继续选择,只要用户继续选择(输入y 或Y),主菜单就会在屏幕上反复出现,只有当用户不再选择(输入N或n),才可退出主菜单。
除此之外,为了使用方便,在主菜单中还特设0选项,选择它也能正常退出程序。
为了实现上述功能,有关语句都应放在do-while循环体中。
选择选项的程序段可设计成如下形式:choose=getchar();switch(choose){case '1':mycreat();break;case '2':mybuy();break;case '3':myaddyu();break;case '4':myaddcard();break;case '5':myzhuxiao();break;case '6':mysetguashi();break;case '7':mynew();break;case '0':{printf("\n 非常感谢使用本软件!\n 已正常退出,按任意键结束....");exit(0);}break;default :{printf("\n 该选项非法!");}break;}( 2 ) 设计各模块的算法,这是逐步细化的过程。
1,建立饭卡模块,函数名 mycreat。
在该模块中输入学生的卡号,姓名,充值钱数,并将它们存放在文件中;每输入一组数据,记录数增1。
建立饭卡的程序设计如下:void mycreat(){i nt i=1;s truct card temp={0};F ILE *fp=NULL;c har yes_no='\0';t emp.guashi=0;t emp.sum=0;s ystem("cls");f p=fopen("D:\\饭卡管理系统\\files\\card.dat","a");i f(fp==NULL) {printf("\n\n 饭卡文件丢失!按任意键继续...");getchar();exit(0);}e lse{fclose(fp);do{printf("\n 请输入第%d个记录:\n\n",i);printf(" 卡号:");scanf("%s",&temp.num);if(myexist(temp.num)!=1){fp=fopen("D:\\饭卡管理系统\\files\\card.dat","a");printf(" 姓名:");scanf("%s",&);printf(" 充值钱数:");scanf("%f",&temp.yu);f printf(fp,"%10s%10s%20.2f%4d%20.2f\n",temp.num,,temp.yu,temp.guashi,temp.sum);fclose(fp);i++;}else printf(" 卡号重复!\n");printf("\n 请问您要继续吗?");do{yes_no=getchar();}while(yes_no!='Y'&&yes_no!='y'&&yes_no!='N'&&yes_no!='n');}while(yes_no=='Y'||yes_no=='y');}}在文件夹中寻找已输入的卡号用函数 myexist 系统自动用循环将文件中读入的学号一一做比较。
用fp=fopen("D:\\饭卡管理系统\\files\\card.dat","a");追加打开文件,输入学生的姓名,充值钱数,并将它们存放在文件中;每输入一组数据,记录数增1。
用do---while语句实现人机对话的功能,机器问用户是否继续,如果继续就接着建立新饭卡,否则返回主菜单。
2,买饭设计模块,函数名mybuy.void mybuy()system("cls");fp=fopen("D:\\饭卡管理系统\\files\\card.dat","r");while(feof(fp)==0){ fscanf(fp,"%s%s%f%d%f",temp[i].num,temp[i].name,&temp[i].yu,&temp[ i].guashi,&temp[i].sum);i++;}fclose(fp);printf("\n 请输入卡号:");scanf("%s",num_temp);if(myexist(num_temp)==-1) printf("\n 卡号不存在!");else if(myguashi(num_temp)==1) printf("\n 本卡已冻结!");else if(myyu(num_temp)==0) printf("\n 余额不够,请续费!");else{ for(j=0;j<i;j++)if(strcmp(num_temp,temp[j].num)==0) break;printf("\n 请输入消费金额:");scanf("%f",&money);printf("\n 卡号姓名余额\n");printf("\n 消费前: %-10s %-10s %-10.2f\n",temp[j].num,temp[j].name,temp[ j].yu);printf("\n 消费后: %-10s %-10s %-10.2f\n",temp[j].num,temp[j].name,temp[ j].yu-money);temp[j].yu=temp[j].yu-money;temp[j].sum=temp[j].sum+money;fp=fopen("D:\\饭卡管理系统\\files\\card.dat","w");for(j=0;j<i-1;j++)fprintf(fp,"%10s%10s%20.2f%4d%20.2f\n",temp[j].num,temp[j].name,temp [j].yu,temp[j].guashi,temp[j].sum);fclose(fp);printf("\n\n 此次消费成功!按任意键返回主菜单.....");getch();return;}printf("\n\n 此次消费失败!按任意键返回主菜单...");getch();判断卡号存在模块:函数名myexist。