c语言课程设计(食堂刷卡)
- 格式:doc
- 大小:70.00 KB
- 文档页数:7
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 饭卡课程设计一、教学目标本课程的学习目标包括知识目标、技能目标和情感态度价值观目标。
知识目标要求学生掌握C语言的基本语法、数据类型、运算符、控制结构、函数等;技能目标要求学生能够运用C语言编写简单的程序,解决实际问题;情感态度价值观目标要求学生培养编程兴趣,增强自信心,培养团队合作精神。
通过对学生的学习特点和教学要求的分析,我们将目标分解为具体的学习成果。
针对不同层次的学生,设置难易适度的学习任务,使学生在掌握知识的同时,提高编程能力,培养良好的编程习惯。
二、教学内容本课程的教学内容主要包括C语言的基本语法、数据类型、运算符、控制结构、函数等。
教学大纲按照教材的结构进行编排,确保内容的科学性和系统性。
具体教学内容如下:1.C语言概述:介绍C语言的历史、特点和应用领域。
2.数据类型:讲解整型、浮点型、字符型等基本数据类型。
3.运算符:介绍算术运算符、关系运算符、逻辑运算符等。
4.控制结构:讲解顺序结构、选择结构、循环结构等。
5.函数:包括函数的定义、声明、调用和返回值。
6.数组、指针和字符串:讲解数组的声明和使用、指针的概念和运算、字符串的操作。
7.结构体和联合体:介绍结构体和联合体的定义和使用。
8.文件操作:讲解文件的基本操作,包括打开、读写、关闭等。
三、教学方法本课程采用多种教学方法,以激发学生的学习兴趣和主动性。
主要包括讲授法、讨论法、案例分析法和实验法。
1.讲授法:教师通过讲解、演示等方式,传授知识,引导学生理解。
2.讨论法:学生分组讨论,共同解决问题,培养团队合作精神。
3.案例分析法:分析实际编程案例,使学生更好地理解知识点。
4.实验法:学生动手编写程序,巩固所学知识,提高编程能力。
四、教学资源本课程的教学资源包括教材、参考书、多媒体资料和实验设备。
1.教材:选用权威、实用的教材,为学生提供系统的学习资源。
2.参考书:提供丰富的参考资料,帮助学生拓展知识面。
3.多媒体资料:制作精美的课件,提高课堂效果。
c语言餐馆点菜课程设计一、课程目标知识目标:1. 学生能理解并掌握C语言基础语法,包括变量声明、数据类型、运算符和表达式。
2. 学生能运用结构体数组创建并管理餐馆菜单项目。
3. 学生能够使用循环和条件判断实现点菜过程中的用户交互。
技能目标:1. 学生能够设计并编写C程序,模拟餐馆点菜系统的基本功能。
2. 学生能够通过编程实践,提升问题分析能力,掌握基本的算法设计方法。
3. 学生能够运用所学知识解决实际问题,培养计算思维和编程解决问题的能力。
情感态度价值观目标:1. 学生在课程中培养对编程的兴趣,增强学习信息技术的自信心。
2. 学生通过团队协作完成项目,学会分享和交流,培养合作精神。
3. 学生通过解决实际场景问题,认识到编程在现实生活中的应用价值,增强社会责任感。
课程性质:本课程设计以实践性为主,结合理论教学,注重培养学生的动手能力和创新能力。
学生特点:考虑到学生为初中或高一阶段,已有一定的逻辑思维能力和基础数学知识,对新鲜事物充满好奇。
教学要求:在教学过程中,需注重理论与实践相结合,关注学生个体差异,鼓励学生主动探索,充分调动学生的积极性与创造性。
通过具体的学习成果分解,使学生在完成课程设计的同时,达到预设的知识和技能目标,并促进情感态度价值观的全面发展。
二、教学内容1. C语言基础语法:- 变量声明、数据类型(整型、浮点型、字符型)- 运算符和表达式(算术、关系、逻辑运算符)- 控制语句(if、for、while循环)2. 结构体与数组:- 结构体定义和使用- 结构体数组创建和初始化- 结构体作为函数参数3. 函数与模块化:- 函数定义、声明和调用- 作用域规则- 模块化编程思想4. 餐馆点菜系统设计:- 系统需求分析- 功能模块划分(菜单展示、点菜、计算总价)- 用户交互设计(输入输出控制)5. 编程实践:- 设计并编写菜单结构体- 实现菜单展示功能- 编写点菜和计算总价模块- 整合各模块,完成点菜系统教材关联章节:- C语言基础语法:第三章- 结构体与数组:第四章- 函数与模块化:第五章- 餐馆点菜系统设计:综合实践章节教学内容安排和进度:- 第一周:C语言基础语法学习,完成基础编程练习- 第二周:结构体与数组学习,设计菜单结构体- 第三周:函数与模块化学习,编写各功能模块- 第四周:整合系统,调试优化,完成点菜系统设计教学内容旨在确保学生掌握C语言基础知识,学会运用结构体和函数进行模块化编程,并通过实际项目设计,将所学知识应用于实际问题解决中,提高学生的编程能力和实践能力。
食堂饭卡管理系统3人
基本功能:
(1)发卡:学生员工持有效证件到管理处缴押金,办理就餐卡,操作人员将相关内容写入卡中,并自动产生编号,持卡人员再预交一定金额款项即可进行就餐。
(2)存款:持卡人在卡中存款快用完时,到管理处交款存入就餐卡中,并可打印一张收据。
(3)就餐:持卡人将就餐卡插入或接近窗口机,窗口机检测是否有效,是否时本单位所发的卡,是否已被挂失,若有问题则窗口机报警,若正常则窗口机上数码显示就餐卡中的余额,工作人员键入本次用餐金额,并在数码上显示出来,若无误按结算键写卡,整个售饭过程完成。
(4)汇总统计:食堂就餐结束后,管理处计算机能通过联网(或统计卡)取出各窗口机中的数据,进行统计分析,可统计出本餐售饭总收入,各窗口收入,各持卡人存款明细,本日、月存款金额,卡中流动资金总额,日餐报表,年餐报表等
(5)挂失:持卡人不慎将卡丢失,可到管理处进行挂失,管理处将挂失名单传送到各窗口机中,用已挂失卡就餐就会报警,直到取消挂失为止,持卡人不会因卡丢失而引起经济上的损失。
(6)注销:学生离校或其他原因,不再就餐时,可到管理处注销卡退取押金,该卡还可重新使用。
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语言饭卡管理系统课程设计一、课程目标知识目标:1. 理解C语言的基本语法和结构,掌握变量定义、数据类型、运算符、控制语句等基础知识。
2. 学会使用数组、结构体等数据结构,实现数据的组织和管理。
3. 掌握函数的定义和调用,理解模块化编程的重要性,并能够运用到实际项目中。
4. 了解文件操作的基本方法,实现数据的存储和读取。
技能目标:1. 能够运用C语言编写简单的饭卡管理系统,实现用户注册、充值、消费、查询等功能。
2. 培养学生分析问题、设计算法、编写程序、调试和优化代码的能力。
3. 提高学生的编程实践能力,使其能够将理论知识应用到实际项目中。
情感态度价值观目标:1. 培养学生对计算机编程的兴趣和热情,激发其主动学习和探究的精神。
2. 培养学生团队协作意识,学会与他人合作共同解决问题,共同完成项目。
3. 培养学生严谨、细心的编程态度,养成良好的编程习惯,提高代码质量。
课程性质:本课程为实践性较强的学科,旨在让学生通过实际项目开发,掌握C语言编程的基本知识和技能。
学生特点:学生已具备一定的计算机基础,对编程有一定了解,但实践经验不足。
教学要求:结合学生特点和课程性质,注重理论与实践相结合,强调动手实践,培养学生编程思维和解决问题的能力。
通过本课程的学习,使学生能够独立完成简单的饭卡管理系统项目,达到课程目标。
在教学过程中,关注学生的个体差异,提供有针对性的指导,确保每位学生都能在学习中取得进步。
二、教学内容1. C语言基础知识回顾:变量定义、数据类型、运算符、控制语句(条件语句、循环语句)。
2. 数据结构:数组、结构体。
3. 函数:函数定义、调用、参数传递、模块化编程。
4. 文件操作:文件的打开、关闭、读写。
5. 饭卡管理系统功能模块设计:- 用户注册模块:设计用户信息结构体,实现用户注册功能。
- 充值模块:实现用户饭卡的充值功能。
- 消费模块:实现用户饭卡的消费功能。
- 查询模块:实现用户饭卡余额的查询功能。
c语言课程设计电子点餐系统设计一、教学目标本课程的教学目标是使学生掌握C语言的基本语法和编程技巧,能够运用C语言设计并实现一个电子点餐系统。
具体目标如下:1.理解C语言的基本数据类型、运算符和表达式。
2.掌握C语言的控制结构,包括条件语句和循环语句。
3.熟悉函数的定义和调用,理解局部变量和全局变量的概念。
4.了解指针的基本概念和应用。
5.能够使用C语言编写简单的程序,实现基本的输入输出操作。
6.能够使用C语言进行基本的控制流程设计,如条件判断和循环。
7.能够使用C语言实现函数的定义和调用,理解函数的参数传递和返回值。
8.能够使用指针解决实际问题,如字符串操作和数组操作。
情感态度价值观目标:1.培养学生对计算机编程的兴趣和好奇心,提高学生的自主学习能力。
2.培养学生解决问题的能力,使学生能够通过编程解决实际问题。
3.培养学生团队合作的精神,使学生能够在团队中共同完成项目任务。
二、教学内容根据课程目标,本课程的教学内容主要包括C语言的基本语法、编程技巧和电子点餐系统的设计。
具体内容如下:1.C语言的基本语法:数据类型、运算符、表达式、控制结构、函数、指针等。
2.编程技巧:变量定义、输入输出操作、控制流程设计、函数调用、指针应用等。
3.电子点餐系统设计:系统需求分析、系统架构设计、模块划分、功能实现等。
三、教学方法为了达到课程目标,本课程将采用多种教学方法,包括讲授法、案例分析法、实验法等。
1.讲授法:通过讲解C语言的基本语法和编程技巧,使学生掌握相关知识。
2.案例分析法:通过分析实际案例,使学生理解电子点餐系统的设计过程和方法。
3.实验法:通过编写代码和实际操作,使学生掌握C语言编程的技巧,并能够设计简单的电子点餐系统。
四、教学资源为了支持教学内容和教学方法的实施,本课程将准备以下教学资源:1.教材:选用权威、实用的C语言教材,如《C程序设计语言》。
2.参考书:提供相关的C语言编程参考书籍,供学生自主学习。
c 课程设计餐厅点餐系统设计一、课程目标知识目标:1. 让学生掌握餐厅点餐系统的基本概念和功能模块,了解其工作原理;2. 使学生了解数据库在餐厅点餐系统中的应用,学会使用基本的数据查询和操作;3. 帮助学生理解编程语言在餐厅点餐系统开发中的重要性,学会使用相关编程技巧。
技能目标:1. 培养学生运用所学知识设计和开发一个简单的餐厅点餐系统的能力;2. 提高学生分析问题和解决问题的能力,能够针对餐厅点餐系统的实际需求提出合理的解决方案;3. 培养学生团队协作能力,能够在项目中分工合作,共同完成任务。
情感态度价值观目标:1. 激发学生对计算机科学与技术学科的兴趣,培养其主动学习和探究的精神;2. 培养学生关注实际生活问题,学会运用所学知识解决现实问题,提高社会责任感;3. 引导学生认识到科技在餐饮行业中的重要作用,培养其创新意识和创业精神。
课程性质:本课程为实践性较强的课程,旨在让学生通过实际操作,掌握餐厅点餐系统的设计方法和开发技巧。
学生特点:学生具备一定的计算机基础知识,对编程和数据库有一定了解,但实际应用能力有待提高。
教学要求:注重理论知识与实践操作相结合,鼓励学生积极参与讨论和实践,培养其独立思考和解决问题的能力。
在教学过程中,将目标分解为具体的学习成果,以便进行教学设计和评估。
二、教学内容1. 餐厅点餐系统概述:介绍餐厅点餐系统的基本概念、功能模块及其在实际中的应用。
- 教材章节:第1章 计算机网络应用概述- 内容:餐厅点餐系统的基本组成、发展历程及未来发展趋势。
2. 数据库应用:学习数据库在餐厅点餐系统中的作用,掌握基本的数据查询和操作方法。
- 教材章节:第3章 数据库技术- 内容:数据库设计、数据表创建、数据查询与操作。
3. 编程语言及开发工具:学习编程语言在餐厅点餐系统开发中的应用,熟悉相关开发工具。
- 教材章节:第2章 编程语言及开发环境- 内容:编程语言基础、开发工具使用、基本编程技巧。
课程设计报告课程名称:C语言程序设计课设项目名称:饭卡管理系统学院:专业:姓名:学号:指导教师:成绩:目录第1部分课程设计题目与要求 (2)1.问题描述 (2)2.功能要求 (2)第2部分《饭卡管理系统》的设计与功能实现 (3)1.总体设计 (3)2.数据结构 (3)3.算法设计 (4)4.程序代码设计 (12)5.测试与调试 (22)附录Ⅰ程序清单 (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表示挂失的情况。
#include "stdafx.h"#include <stdio.h>#include <string.h>#include <stdlib.h>#include <conio.h>#include <sapi.h>#include <atlbase.h>#include <sphelper.h>#define MAX 100#define Stu struct studentint Num;CComPtr<ISpVoice> pVoice;HRESULT hr;Stu{char name[10]; //学生姓名int kh; //学生卡号char bm[33]; //学生卡编码float cash; //金额float xf; //消费};void menu();void _10_2(Stu*);void Register(Stu*);void CZ();void XF();void Award();void Tj();int InitVoice(){CComPtr<IEnumSpObjectTokens> pEnum;CComPtr<ISpObjectToken> pVoiceToken;int i;::CoInitialize(NULL);if(FAILED(hr=SpEnumTokens(SPCAT_VOICES,L"Language=804",NULL,&pEnum))) return 0;for(i=0;i<1;i++) //这里可以根据已安装的语音库,多循环几次以变更语音{pVoiceToken.Release();pEnum->Next(1, &pVoiceToken, NULL);}if(FAILED(hr=pVoice.CoCreateInstance(CLSID_SpVoice)))return 0;if(FAILED(hr = pVoice->SetVoice(pVoiceToken)))return 0;return 1;}void ReleaseVoice(){pVoice.Release();CoUninitialize();}void Speak(char *Txt){CSpDynamicString s(Txt);pVoice->Speak(s,0,0);}{menu();}void menu() //主菜单{Stu strStu;char ch;loop:system("cls");printf(" *********************************\n");printf(" * 1: 卡登记 * \n");printf(" * 2: 饭卡充值 * \n");printf(" * 3: 食堂消费 * \n");printf(" * 4: 有奖消费 * \n");printf(" * 5: 财务统计 * \n");printf(" * 6: 退出 * \n");printf(" *********************************\n");printf(" \n");printf(" 请选择输入选项[1\\2\\3\\4\\5\\6]:>");if(!InitVoice())return ;Speak("请选择输入选项");ReleaseVoice();while(ch=getch()){switch(ch){case '1': Register(&strStu);goto loop;case '2': CZ();case '3': XF();case '4': Award();case '5': Tj();case '6': exit(0);}}goto loop;}void Register(Stu *a) //卡登记{FILE *fp;system("cls");a->xf=0;printf("**********卡登记***************\n");if(!InitVoice())return ;Speak("卡登记");ReleaseVoice();printf("输入姓名:");if(!InitVoice())return ;Speak("输入姓名");ReleaseVoice();scanf("%s",a->name);printf("输入卡号:");if(!InitVoice())return ;Speak("输入卡号");scanf("%d",&a->kh);printf("输入初始金额:");if(!InitVoice())return ;Speak("输入初始金额");ReleaseVoice();scanf("%f",&a->cash);_10_2(a);printf("你的二进制卡编码是:%s",a->bm);if(!InitVoice())return ;Speak("你的二进制卡编码是");ReleaseVoice();if(!InitVoice())return ;Speak(a->bm);ReleaseVoice();if((fp=fopen("stu.txt","a"))==NULL){printf("ERROR\n");exit(0);}fprintf(fp,"%s\t%d\t%s\t%.2f\t%.2f",a->name,a->kh,a->bm,a->cash,a->xf);fputc('\n',fp);fclose(fp);}void _10_2(Stu*a) //10 进制转2进制{int n,i,t=1;n=a->kh;getchar();for(a->bm[0]='1',i=1;n;i++){a->bm[i]=n%2+48;n/=2;if(a->bm[i]=='1') t++;}if(t%2==1) a->bm[31]='1';else a->bm[31]='0';for(i;i<31;i++)a->bm[i]='0';a->bm[32]='\0';}void CZ() //饭卡充值{FILE *fp;char bm[33];Stu strshare[MAX];float cash;int nNum=0,i;system("cls");printf("**************饭卡充值**************\n");if(!InitVoice())return ;Speak("饭卡充值");ReleaseVoice();printf("请输入你的卡编码:");return ;Speak("请输入你的卡编码");ReleaseVoice();gets(bm);if((fp=fopen("stu.txt","r"))==NULL){printf("ERROR\n");exit(0);}while(!feof(fp)){fscanf(fp,"%s%*c%d%*c%s%*c%f%*c%f%*c",strshare[nNum].name,&strshare[nNum] .kh,strshare[nNum].bm,&strshare[nNum].cash,&strshare[nNum].xf);nNum++;}nNum--;fclose(fp);for(i=0;i<nNum;i++){if(strcmp(strshare[i].bm,bm)==0){printf("请输入充值金额:");if(!InitVoice())return ;Speak("请输入充值金额");ReleaseVoice();scanf("%f",&cash);strshare[i].cash+=cash;if((fp=fopen("stu.txt","w"))==NULL){printf("ERROR\n");exit(0);}for(i=0;i<nNum;i++)fprintf(fp,"%s\t%d\t%s\t%.2f\t%.2f\n",strshare[i].name,strshare[i].kh,str share[i].bm,strshare[i].cash,strshare[i].xf);fclose(fp);menu();}}if(i>=nNum){printf("你尚未登记!\n");if(!InitVoice())return ;Speak("你尚未登记");ReleaseVoice();menu();}menu();}void XF() // 卡消费{FILE *fp;char bm[33];float xf;int nNum=0,i;system("cls");printf("**************食堂消费**************\n");if(!InitVoice())return ;Speak("食堂消费");ReleaseVoice();printf("请输入你的卡编码:");if(!InitVoice())return ;Speak("请输入你的卡编码");ReleaseVoice();gets(bm);if((fp=fopen("stu.txt","r"))==NULL){printf("ERROR\n");exit(0);}while(!feof(fp)){fscanf(fp,"%s%*c%d%*c%s%*c%f%*c%f%*c",strshare[nNum].name,&strshare[nNum] .kh,strshare[nNum].bm,&strshare[nNum].cash,&strshare[nNum].xf);nNum++;}nNum--;fclose(fp);for(i=0;i<nNum;i++){if(strcmp(strshare[i].bm,bm)==0){printf("请输入消费金额:");if(!InitVoice())return ;Speak("请输入消费金额");ReleaseVoice();scanf("%f",&xf);strshare[i].xf+=xf;strshare[i].cash-=strshare[i].xf;if((fp=fopen("stu.txt","w"))==NULL){printf("ERROR\n");exit(0);}for(i=0;i<nNum;i++)fprintf(fp,"%s\t%d\t%s\t%.2f\t%.2f\n",strshare[i].name,strshare[i].kh,str share[i].bm,strshare[i].cash,strshare[i].xf);fclose(fp);menu();}}if(i>=nNum){printf("你尚未登记!\n");if(!InitVoice())Speak("你尚未登记");ReleaseVoice();menu();}menu();}void Award() //有奖消费{FILE *fp;Stu strshare[MAX],*p[MAX],*temp=NULL;int nNum=0,i,j;system("cls");printf("********有奖消费****************\n");if(!InitVoice())return ;Speak("有奖消费");ReleaseVoice();if((fp=fopen("stu.txt","r"))==NULL){printf("ERROR!\n");exit(0);}while(!feof(fp)){fscanf(fp,"%s%*c%d%*c%s%*c%f%*c%f%*c",strshare[nNum].name,&strshare[nNum] .kh,strshare[nNum].bm,&strshare[nNum].cash,&strshare[nNum].xf);nNum++;}nNum--;fclose(fp);for(i=0;i<nNum;i++)p[i]=&strshare[i];for(i=0;i<nNum-1;i++)for(j=0;j<nNum-1-i;j++)if(p[j]->xf<p[j+1]->xf){temp=p[j];p[j]=p[j+1];p[j+1]=temp;}for(i=0;i<3;i++)p[i]->cash+=(p[i]->xf)/100*5;printf("今日大胃王:\n");if(!InitVoice())return ;Speak("今日大胃王");ReleaseVoice();for(i=0;i<3;i++)printf("%s\t%d\t%s\t%.2f\t%.2f\n",p[i]->name,p[i]->kh,p[i]->bm,p[i]->cash ,p[i]->xf);if((fp=fopen("stu.txt","w"))==NULL){printf("ERROR!\n");exit(0);}fprintf(fp,"%s\t%d\t%s\t%.2f\t%.2f\n",strshare[i].name,strshare[i].kh,str share[i].bm,strshare[i].cash,strshare[i].xf);fclose(fp);menu();}void Tj() //财务统计{FILE *fp;Stu strshare[MAX];int nNum=0,i;float total=0,ave;system("cls");printf("*******校方统计****************\n");if(!InitVoice())return ;Speak("校方统计");ReleaseVoice();if((fp=fopen("stu.txt","r"))==NULL){printf("ERROR!\n");exit(0);}while(!feof(fp)){fscanf(fp,"%s%*c%d%*c%s%*c%f%*c%f%*c",strshare[nNum].name,&strshare[nNum] .kh,strshare[nNum].bm,&strshare[nNum].cash,&strshare[nNum].xf);nNum++;}nNum--;fclose(fp);for(i=0;i<nNum;i++)total+=strshare[i].xf;ave=total/nNum;printf("今日消费总额:%.2f\n学生平均消费水平:%.2f\n",total,ave);}。