C语言课程设计优秀版

合集下载

毕业设计c语言课程设计

毕业设计c语言课程设计

毕业设计c语言课程设计一、课程目标知识目标:1. 理解C语言在毕业设计中的应用场景,掌握C语言的基本语法和编程技巧。

2. 学会使用C语言进行数据结构的设计与实现,如链表、树、图等。

3. 掌握C语言在嵌入式系统、算法竞赛等领域的实际应用。

技能目标:1. 能够运用C语言编写具有实际意义的程序,解决实际问题。

2. 能够分析并优化C语言程序的运行效率,提高编程质量。

3. 培养良好的编程习惯,编写规范、易读、高质量的C语言代码。

情感态度价值观目标:1. 培养学生积极主动探索新知识的精神,提高学生的自主学习能力。

2. 增强学生的团队协作意识,培养良好的沟通与协作能力。

3. 使学生认识到C语言在计算机科学领域的重要地位,激发学生对编程的兴趣。

分析课程性质、学生特点和教学要求:1. 课程性质:本课程为毕业设计前的预备课程,旨在帮助学生掌握C语言编程技能,为毕业设计奠定基础。

2. 学生特点:学生已具备一定的计算机基础,了解编程基本概念,但实际编程能力较弱,需要加强实践操作。

3. 教学要求:注重理论与实践相结合,强调实际编程能力的培养,以项目驱动教学,提高学生的实践操作能力。

1. 独立完成C语言基础语法的学习,并能运用所学知识编写简单程序。

2. 掌握常见数据结构在C语言中的实现与应用,能够解决实际问题。

3. 编写具有一定规模的C语言项目,具备初步的软件设计能力。

4. 养成良好的编程习惯,具备团队协作能力和沟通能力。

二、教学内容1. C语言基础语法:变量定义、数据类型、运算符、表达式、控制语句(顺序、选择、循环)、函数、数组、指针。

2. 常见数据结构:链表、栈、队列、树(二叉树、查找树)、图(邻接矩阵、邻接表)。

3. 编程技巧与优化:算法复杂度分析、递归与迭代、内存管理、程序调试与优化。

4. C语言项目实践:学生信息管理系统、简易计算器、文件压缩与解压缩、小型游戏等。

5. 教学内容安排与进度:- 第一周:C语言概述、基础语法、数据类型与运算符。

c语言教案参考5篇

c语言教案参考5篇

c语言教案参考5篇(经典版)编制人:__________________审核人:__________________审批人:__________________编制单位:__________________编制时间:____年____月____日序言下载提示:该文档是本店铺精心编制而成的,希望大家下载后,能够帮助大家解决实际问题。

文档下载后可定制修改,请根据实际需要进行调整和使用,谢谢!并且,本店铺为大家提供各种类型的经典范文,如工作计划、述职报告、演讲稿、心得体会、合同协议、条据文书、策划方案、教学资料、作文大全、其他范文等等,想了解不同范文格式和写法,敬请关注!Download tips: This document is carefully compiled by this editor. I hope that after you download it, it can help you solve practical problems. The document can be customized and modified after downloading, please adjust and use it according to actual needs, thank you!Moreover, our store provides various types of classic sample essays for everyone, such as work plans, job reports, speeches, insights, contract agreements, documents, planning plans, teaching materials, complete essays, and other sample essays. If you want to learn about different sample formats and writing methods, please pay attention!c语言教案参考5篇通过一份优秀的教案,教师可以有针对性地讲解难点知识,提高学生的理解和掌握能力,优秀的教案能够根据学生的学习反馈和评价进行必要的调整和改进,以下是本店铺精心为您推荐的c语言教案参考5篇,供大家参考。

大一学生c语言课程设计

大一学生c语言课程设计

大一学生c语言课程设计一、课程目标知识目标:1. 掌握C语言的基本语法结构,包括变量定义、数据类型、运算符和表达式;2. 学会使用C语言控制结构,如顺序、选择和循环结构;3. 理解函数的定义和调用,能编写简单的自定义函数;4. 了解数组、字符串和指针的概念及应用。

技能目标:1. 能运用C语言编写简单的程序,解决实际问题;2. 培养良好的编程习惯,如规范命名、合理注释和模块化设计;3. 学会使用调试工具,如gcc和gdb,进行程序调试和错误排查;4. 提高逻辑思维能力,分析并解决程序中的问题。

情感态度价值观目标:1. 培养对编程的兴趣和热情,树立计算机科学的学习信心;2. 树立团队合作意识,学会与他人共同解决问题;3. 培养严谨、细致的学习态度,注重程序的正确性和可靠性;4. 增强自主学习能力,主动探索C语言的深入学习。

本课程针对大一学生,以C语言为基础,注重理论与实践相结合。

课程设计旨在帮助学生掌握C语言的基本知识,培养编程技能,同时激发学生的学习兴趣,提高逻辑思维和团队协作能力。

通过本课程的学习,学生能够具备初步的编程能力,为后续计算机专业课程打下坚实基础。

二、教学内容1. C语言概述:介绍C语言的发展历史、特点和应用领域,引导学生了解C语言的重要性。

教材章节:第一章2. 基本语法和数据类型:讲解变量定义、数据类型、常量和变量,以及基本输入输出函数。

教材章节:第二章3. 运算符和表达式:介绍各类运算符,包括算术、关系、逻辑运算符等,以及表达式的求值规则。

教材章节:第三章4. 控制结构:讲解顺序、选择(if、switch)和循环(for、while、do-while)结构,引导学生学会程序流程控制。

教材章节:第四章5. 函数:介绍函数的定义、声明和调用,重点讲解传值调用和引用调用,以及递归函数。

教材章节:第五章6. 数组与字符串:讲解一维数组、二维数组的概念和应用,以及字符串的基本操作。

教材章节:第六章7. 指针:介绍指针的概念、定义和使用,包括指针与数组、指针与字符串、指针与函数的关系。

c语言课程设计

c语言课程设计

c语言课程设计一、课程目标知识目标:1. 学生能掌握C语言基础语法,包括变量声明、数据类型、运算符、控制结构等。

2. 学生能理解函数的定义和调用,掌握模块化编程思想。

3. 学生能运用数组、指针解决实际问题,提高编程能力。

4. 学生了解C语言中的文件操作,能够读写文件,处理数据。

技能目标:1. 学生能运用C语言编写简单的程序,解决实际问题。

2. 学生通过课程学习,培养逻辑思维能力和问题解决能力。

3. 学生能够使用调试工具,如gcc、gdb等,对程序进行编译、调试和优化。

情感态度价值观目标:1. 培养学生对编程的兴趣,激发学习热情,形成自主学习习惯。

2. 学生能够体会到编程带来的成就感,增强自信心。

3. 学生在学习过程中,培养团队协作精神,学会分享和交流。

课程性质:本课程为C语言入门课程,以实践为主,理论联系实际,注重培养学生的动手能力和编程思维。

学生特点:学生为初中年级,具备一定的计算机操作基础,对编程有一定兴趣,但缺乏系统的编程知识和实践经验。

教学要求:结合学生特点,课程设计应以案例教学为主,注重实践操作,引导学生主动探索,培养编程兴趣。

同时,注重培养学生的逻辑思维能力和问题解决能力,提高学生的编程素养。

通过分解课程目标为具体学习成果,使学生在课程结束后能够独立编写简单的C语言程序,解决实际问题。

二、教学内容1. C语言基础语法- 变量声明、数据类型- 运算符、表达式- 控制结构(顺序、选择、循环)2. 函数与模块化编程- 函数定义、调用- 参数传递、返回值- 递归函数3. 数组与指针- 一维数组、多维数组- 指针的概念、运算- 指针与数组的关系4. 文件操作- 文件的打开、关闭- 文件的读写操作- 文件指针定位5. 编程实践- 简单的计算器程序- 学生管理系统- 排序算法实现教学安排与进度:第一周:C语言基础语法(1-2章)第二周:函数与模块化编程(3章)第三周:数组与指针(4章)第四周:文件操作(5章)第五周:编程实践与项目开发(6章)教材章节关联:1. C语言基础语法:教材第1-2章2. 函数与模块化编程:教材第3章3. 数组与指针:教材第4章4. 文件操作:教材第5章5. 编程实践:教材第6章教学内容确保科学性和系统性,以教材为基础,结合实践案例,引导学生逐步掌握C语言编程知识。

2024版年度优秀课程思政教学案例《CC语言程序设计》

2024版年度优秀课程思政教学案例《CC语言程序设计》

过程与方法
通过案例分析、项目实践等教学方 式,引导学生掌握编程思维,提高 分析问题和解决问题的能力。
情感态度与价值观
培养学生对编程的兴趣和热情,增 强自主学习和团队协作意识,同时 注重诚信、责任、创新等思政素质 的培养。
5
思政元素融入点
爱国情怀
职业道德
结合我国计算机领域的发展成就,引导学生 认识到科技创新对于国家发展的重要性,激 发学生的爱国热情和民族自豪感。
2024/2/2
8
教学方法与手段
01
02
03
启发式教学
通过提问、讨论等方式, 引导学生主动思考、积极 探索,激发学生的学习兴 趣和动力。
2024/2/2
案例教学
结合实际应用案例,让学 生分析、解决问题,培养 学生的团队协作和创新能 力。
多媒体教学
利用多媒体课件、在线资 源等现代化教学手段,丰 富教学内容,提高教学效 果。
2024/2/2
27
THANKS
感谢观看
2024/2/2
28
其他课程可以借鉴《C语言程序设计》的经验,深入挖掘自身课程 中的思政元素,实现专业技能培养与价值引领的有机统一。
注重教学设计
在教学设计过程中,应注重将思政内容与专业知识相融合,避免生 硬地插入思政内容,以提高教学效果。
加强师资培训
教师是课程思政教学的关键,应加强师资培训,提高教师的思政意识 和教学能力,为推广课程思政教学提供有力保障。
教学模式不断创新 在《C语言程序设计》等课程中,未来可能会涌现出更多 创新性的教学模式,如混合式教学、案例教学等,以更好 地融入思政内容。
技术手段不断丰富 随着信息技术的发展,未来可以利用更多技术手段来辅助 思政教学,如虚拟现实、人工智能等,提高教学效果和体 验。

c语言优质课教案6篇

c语言优质课教案6篇

c语言优质课教案6篇(经典版)编制人:__________________审核人:__________________审批人:__________________编制单位:__________________编制时间:____年____月____日序言下载提示:该文档是本店铺精心编制而成的,希望大家下载后,能够帮助大家解决实际问题。

文档下载后可定制修改,请根据实际需要进行调整和使用,谢谢!并且,本店铺为大家提供各种类型的经典范文,如工作报告、工作计划、心得体会、汇报材料、条据文书、合同协议、规章制度、教学资料、作文大全、其他范文等等,想了解不同范文格式和写法,敬请关注!Download tips: This document is carefully compiled by this editor. I hope that after you download it, it can help you solve practical problems. The document can be customized and modified after downloading, please adjust and use it according to actual needs, thank you!Moreover, our store provides various types of classic sample essays, such as work reports, work plans, insights, reporting materials, documentary evidence, contract agreements, rules and regulations, teaching materials, complete essays, and other sample essays. If you would like to learn about different sample formats and writing methods, please pay attention!c语言优质课教案6篇在编写教案时,要根据实际的教学进度,合理安排教学资源和材料,提供丰富多样的学习体验,教案写好了,可以帮助教师合理安排教学时间和资源利用,以下是本店铺精心为您推荐的c语言优质课教案6篇,供大家参考。

c语言课课程设计

c语言课课程设计一、教学目标本节课的教学目标是让学生掌握C语言的基本语法和编程思想,培养学生编写简单程序的能力。

具体目标如下:1.知识目标:–了解C语言的发展历史和特点。

–掌握C语言的数据类型、变量、运算符和表达式。

–熟悉C语言的控制结构,包括条件语句和循环语句。

–理解函数的定义和调用。

2.技能目标:–能够使用C语言编写简单的程序,实现基本的输入输出、计算和控制流程。

–能够阅读和理解简单的C语言程序。

–能够对程序进行简单的调试和优化。

3.情感态度价值观目标:–培养学生对计算机科学的兴趣和好奇心。

–培养学生解决问题的能力和创新精神。

–培养学生团队合作和分享的意识。

二、教学内容根据教学目标,本节课的教学内容主要包括以下几个部分:1.C语言的发展历史和特点:介绍C语言的起源、发展和特点,让学生了解C语言的重要性和应用领域。

2.数据类型、变量、运算符和表达式:讲解C语言的基本数据类型、变量的声明和使用、运算符的用法和表达式的计算。

3.控制结构:讲解条件语句和循环语句的用法,让学生能够编写简单的分支和循环程序。

4.函数的定义和调用:讲解函数的定义、声明和调用方式,让学生了解函数的基本概念和使用方法。

5.编程实践:通过编写简单的程序,让学生实践和巩固所学的知识。

三、教学方法为了达到教学目标,本节课将采用以下几种教学方法:1.讲授法:教师讲解C语言的基本概念和语法,引导学生理解和掌握相关知识。

2.案例分析法:通过分析典型的C语言程序,让学生了解编程思想和方法。

3.实验法:让学生动手编写和运行C语言程序,培养学生的编程能力和实践能力。

4.讨论法:鼓励学生之间的交流和讨论,培养学生的团队合作和沟通能力。

四、教学资源为了支持教学内容和教学方法的实施,本节课将准备以下教学资源:1.教材:选用权威、实用的C语言教材,为学生提供系统的学习资料。

2.参考书:提供一些经典的C语言编程书籍,供学生课后阅读和参考。

3.多媒体资料:制作精美的PPT和教学视频,提高学生的学习兴趣和效果。

c语言课程设计优秀论文

c语言课程设计优秀论文一、教学目标本课程旨在通过C语言的学习,让学生掌握C语言的基本语法、数据类型、运算符、控制结构、函数等基本知识,培养学生编程思维和解决问题的能力。

同时,通过编程实践,使学生能够熟练使用C语言进行程序设计,提高学生的动手能力和创新能力。

此外,通过课程的学习,使学生养成良好的编程习惯,培养学生的团队合作精神和自主学习能力。

二、教学内容本课程的教学内容主要包括C语言的基本语法、数据类型、运算符、控制结构、函数等基本知识。

在教学过程中,我们将按照教材的章节顺序进行讲解,并结合实际案例进行演示和分析。

具体的教学内容安排如下:1.第一章:C语言概述介绍C语言的历史、特点和应用领域,熟悉C语言的编译环境和基本语法。

2.第二章:数据类型和运算符学习C语言的基本数据类型、运算符及其使用方法。

3.第三章:控制结构学习条件语句、循环语句及其应用。

4.第四章:函数学习函数的定义、声明和调用,熟悉常用的库函数。

5.第五章:数组和字符串学习数组的概念和应用,字符串的操作。

6.第六章:指针学习指针的概念、运算和应用。

7.第七章:结构体和联合体学习结构体、联合体的定义和应用。

8.第八章:文件操作学习文件的概念、文件操作函数及其应用。

三、教学方法为了提高教学效果,我们将采用多种教学方法相结合的方式进行教学。

包括:1.讲授法:通过教师的讲解,使学生掌握C语言的基本知识和编程技巧。

2.案例分析法:通过分析实际案例,使学生更好地理解和掌握C语言的应用。

3.实验法:通过动手实践,使学生熟练掌握C语言的编程方法和技巧。

4.小组讨论法:通过小组合作,培养学生的团队合作精神和沟通能力。

四、教学资源为了支持教学内容的实施,我们将准备以下教学资源:1.教材:《C程序设计语言》(K&R)2.参考书:《C Primer Plus》、《C语言编程思想》3.多媒体资料:教学PPT、视频教程、在线编程练习平台4.实验设备:计算机、编程环境、调试工具五、教学评估为了全面、客观地评估学生的学习成果,我们将采用多元化的评估方式。

c语言课程设计优秀案例

c语言课程设计优秀案例C语言是一门广泛应用于计算机科学领域的编程语言,它具有高效、简洁、可移植等特点,因此在计算机科学领域中得到了广泛的应用。

在C语言课程设计中,学生需要通过实践来掌握C语言的基本语法和编程思想,同时也需要通过设计优秀的案例来提高自己的编程能力。

下面是10个优秀的C语言课程设计案例。

1. 学生成绩管理系统这个案例要求学生设计一个学生成绩管理系统,可以实现学生信息的录入、查询、修改和删除,同时还可以计算学生的平均成绩、最高成绩和最低成绩等统计信息。

2. 简单计算器这个案例要求学生设计一个简单的计算器,可以实现加、减、乘、除等基本运算,同时还可以实现括号、小数点和负数等高级运算。

3. 迷宫游戏这个案例要求学生设计一个迷宫游戏,可以实现玩家在迷宫中寻找出口的过程,同时还可以实现随机生成迷宫、计时和计分等功能。

4. 图书管理系统这个案例要求学生设计一个图书管理系统,可以实现图书信息的录入、查询、修改和删除,同时还可以实现借书和还书等功能。

5. 简单的文件管理器这个案例要求学生设计一个简单的文件管理器,可以实现文件的创建、删除、复制和移动等基本操作,同时还可以实现文件夹的创建和删除等高级操作。

6. 简单的网络聊天程序这个案例要求学生设计一个简单的网络聊天程序,可以实现用户之间的文字聊天和文件传输等功能,同时还可以实现用户登录和注册等操作。

7. 简单的音乐播放器这个案例要求学生设计一个简单的音乐播放器,可以实现音乐的播放、暂停、停止和跳转等基本操作,同时还可以实现音乐列表的管理和歌词显示等高级功能。

8. 简单的游戏开发这个案例要求学生设计一个简单的游戏,可以实现玩家的移动、攻击和防御等基本操作,同时还可以实现关卡设计和游戏难度调整等高级功能。

9. 简单的人工智能程序这个案例要求学生设计一个简单的人工智能程序,可以实现基本的语音识别、图像识别和自然语言处理等功能,同时还可以实现机器学习和深度学习等高级功能。

c语言优质课教案优质8篇

c语言优质课教案优质8篇(经典版)编制人:__________________审核人:__________________审批人:__________________编制单位:__________________编制时间:____年____月____日序言下载提示:该文档是本店铺精心编制而成的,希望大家下载后,能够帮助大家解决实际问题。

文档下载后可定制修改,请根据实际需要进行调整和使用,谢谢!并且,本店铺为大家提供各种类型的经典范文,如工作方案、工作总结、心得体会、演讲稿、合同协议、条据书信、规章制度、教学资料、作文大全、其他范文等等,想了解不同范文格式和写法,敬请关注!Download tips: This document is carefully compiled by this editor. I hope that after you download it, it can help you solve practical problems. The document can be customized and modified after downloading, please adjust and use it according to actual needs, thank you!Moreover, our store provides various types of classic sample essays, such as work plans, work summaries, insights, speeches, contract agreements, policy letters, rules and regulations, teaching materials, complete essays, and other sample essays. If you want to learn about different sample formats and writing methods, please pay attention!c语言优质课教案优质8篇制定互动性的教案能够提升课堂氛围和学生的参与度,通过优秀的教案,我们能够设计有趣的讨论和辩论活动,培养学生的思辨和论述能力,下面是本店铺为您分享的c语言优质课教案优质8篇,感谢您的参阅。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

C语言课程设计报告班级:学号:姓名:指导教师:评语:成绩2011 年7 月21 日目录1.基本题目 (1)1.1 题目 (1)1.2 题目分析 (1)1.2.1 问题分析 (1)1.2.2 函数流程图 (1)1.3 程序 (2)1.4 程序的运行结果 (2)1.4.1 运行截屏 (2)1.4.2 结果注释 (2)2.改错题目 (3)2.1 改正后程序 (3)2.2 程序运行结果 (4)3.综合题目 (4)3.1 题目 (4)3.2 程序的主要功能 (4)3.3 各函数的功能 (5)3.4 源程序 (11)3.5 程序运行结果 (22)4.结论与体会 (32)参考书目 (32)1.基本题目1.1 题目1. 用条件编译方法实现以下功能:输入一行电报文字,可以任选两种输出,一为原文输出;一为将字母变为其下一字母(如`a`变为`b`……`z`变为`a`。

其他字符不变用#define命令来控制是否要译成密码。

例如:#define change 1,则输出密码。

若#define change 0,则不译成密码,按原码输出。

1.2 题目分析1.2.1 问题分析将输入的每一个字符储存在所定义的数组元素中,然后按照其对应的ASCII码转换成他的下一个字符输出即可。

1.2.2 函数流程图开始输入字符NChange=1Y取出一个元素Y判断是否为空N转化为下一字符输出图1.1 函数流程图1.3 程序#define CHANGE 1main(){char str[80],c;int i=0;gets(str);while(str[i]!=’\0’){#if CHANGEif(str[i]==90||str[i]==122) str[i]=str[i]-25;else if(str[i]>=65&&str[i]<90||str[i]>=97&&str[i]<122) str[i]=str[i]+1;#endifi++;}puts(str);}1.4 程序的运行结果1.4.1 运行截屏图1.2 运行结果1.4.2 结果注释按照顺序依次输入I am a studeng后,程序根据算法,将其每一个字母转换为其下一个字母,便得到该运行结果。

2.改错题目#include <stdio.h>int fun( ){int a[3][3], sum;int i, j; sum;for(i=0; i<3; i++){for(j=0; j<3; j++)scanf("%d" a[i][j]);}for(i=0; i<3; i++)sum = sum * a[i][i];printf("Sum=%d\n", sum);}main( ){ fun( ); }2.1 改正后程序#include <stdio.h>int fun( ){int a[3][3], sum;int i, j; sum=1; //给sum赋初始值1for(i=0; i<3; i++){for(j=0; j<3; j++)scanf("%d",&a[i][j]); //a[i][j]前加&符号与“,”}for(i=0; i<3; i++)sum = sum * a[i][i];printf("Sum=%d\n", sum);}main( ){ fun( ); }2.2 程序运行结果图2.1运行结果改程序完成的功能是求一个二维数组中行,列序号相同的元素的乘积。

3.综合题目3.1 题目假设某航空公司只有M架N个座位的飞机,每架飞机每天飞行一趟。

通过该系统来实现机票的订购问题。

3.2 程序的主要功能1. 本系统采用一个包含N个数据的结构体数组,每个数据的结构应当包括:起飞地、目的地航班号、座次号码、座次订出与否标记、订座者的姓名和订座者的身份证号码。

2. 本系统显示这样的菜单:(1) 输入航班信息(2) 输出航班信息(3) 查找航班信息①显示空座的数量②显示空座的信息③显示已订座的信息④起飞时间(4)订票预约(5)删除定票预约(6)退出系统3. 本系统成功执行菜单的每个信息,选项4)和5)将要求额外的输入,并且它们都允许用户收回其输入。

4. 查找航班信息既可按线路查,也可按目的地查。

5. 在两次运行之间,数据被保存于一个文件里,当本程序重新开始的时候,它首先从该文件读入数据.开始订票系统输入信息显示信息查询模块订票模块退票模块退出系统显示空座数量显示空座信息显示已订座信息起飞时间结束图3.1 主程序流程图3.3 各函数的功能1) 输入函数通过此函数,程序管理员可以输入飞机票的相关信息,包括航班号、起始站、终点站及起飞时间。

首先,管理员必须输入密码,密码正确才能正确,这样,增加了该系统安全性。

开始判定密码是否正确计算输入信息总数是否继续输入?保存航班信息返回输入密码密码错误提示输入各航班信息输入航班号输入起始站输入终点站输入起飞时间输入机票总数显示航班信息图3.2 输入函数流程图2)显示航班信息函数此函数主要功能是显示管理员所输入的有关飞机票的信息,这个函数主要是通过文件的方式来实现的,通过文件的打开和保存来进行显示的,在以后的程序中要经常调用这个函数,这个函数是一个桥梁的作用。

YNYN开始是否打开文件判定文件是否存在是否继续输出返回输出航班信息图3.3 显示函数流程图3)查询信息函数这个函数比较复杂,通过三种方式进行查询,利用switch 语句进行选择。

首先,乘客选择哪种方式进行查询,然后乘客所输入的信息和原信息进行比较,如果相同,则查找成功,否则的话,需要重新输入信息。

查找的信息包括起始站、终点站、航班号、起飞时间等。

NYNY开始定义变量及初始化选择查询方式输入查询方式N按航班号查询按终点站查询按航线查询Break显示航班信息输出的航班号,终点站,起始站是否相等Y输出查找的信息返回图3.4 查询函数流程图4)订票函数首先通过调用查询函数确定是否有飞机票,然后乘客输入所需要飞机票数,系统自动进行计算并保存,这样订票就成功了。

如果乘客想继续订票,还可以继续输入票数。

开始查询航班信息判定是否出错保存订票信息是否继续输入返回输入要订机票数量显示订票成功图3.5 订票函数流程图5)退票函数首先,乘客通过调用查询函数查询飞机票相关信息。

然后,输人要退票的飞机票数,系统自动进行运算和保存,这样就退票成功了。

如果想继续退票,可以继续输入退票数。

YYNN开始定义变量及初始化输入退票数NNN>0N Y修改票数保存信息是否继续Y返回图3.6 退票函数流程图6)删除函数此函数主要是用于删除航班信息的,管理员通过输入密码进入系统,然后通过三种方式进行删除,然后管理员输入要删除的内容,最后,系统提示是否继续。

如果继续想删除,可以继续删除;否则,退出函数。

开始输入密码密码是否相同选择删除内容Break 根据航班号删除根据起始站,终点站删除显示航班信息选择删除内容删除是否继续返回图3.7 删除函数流程图3.4 源程序#include<stdio.h> //标准输入、输出头文件#include<string.h> //包含字符串函数处理头文件#include<stdlib.h> //包含动态存储与释放函数头文件 #define N 10000struct air //定义结构体数组 {int num;char start[20];NYYNchar over[20];char time[10];int count;}s[N];int i;int m=0;//输入信息的序数m#define PRINT "%-d%12s%12s%10s%12d\n",s[i].num,s[i].start,s[i].over,s[i].time,s[i].count //定义输出格式void input(); //输入航班信息void print(); //输出航班信息void save(); //保存航班信息void read(); //读取航班信息void search(); //查找航班信息void shanchu(); //删除航班信息void dingpiao(); //订票信息void tuipiao(); //退票信息void xiugai(); //修改信息void main()//主函数{int j;printf(" ★---您好,欢迎进入飞机订票系统!---★\n"); printf(" ********************动1002班制作组。

参考程序来自:百度文库*******************\n");printf("==================================================================== ============\n");do{printf(" -------- ☆ 1.输入航班信息☆-------- \n\n"" -------- ☆ 2.浏览航班信息☆-------- \n\n"" -------- ☆ 3.修改航班信息☆-------- \n\n"" -------- ☆ 4.查找航班信息☆-------- \n\n"" -------- ☆ 5.删除航班信息☆-------- \n\n"" -------- ☆ 6.订票信息☆-------- \n\n"" -------- ☆7.退票信息☆-------- \n\n"" -------- ☆ 0.退出☆-------- \n\n"); printf("================================================================================\n");printf("请在0-7中选择以回车键结束:\n\n");scanf("%d",&j);switch(j){case 1: input(); //调用输入模块break;case 2:print(); //调用打印模块break;case 3:xiugai(); //调用修改模块break;case 4:search(); //调用查找模块break;case 5:shanchu(); //调用删除模块break;case 6:dingpiao(); //调用订票模块break;case 7:tuipiao(); //调用退票模块break;case 0:;break;}}while(j!=0); //判定结束printf("谢谢使用,再见!\n");}//主函数结束void input() //打印模块程序{char f[3],m1[]="736"; //设置密码int y;printf("请输入密码并以回车键结束:\n\n");scanf("%s",f); //读取密码if(strcmp(f,m1)==0){printf("请依次输入航班信息(机票数位0结束输入):\n\n""完成输入信息请键入w以回车键结束\n\n");//打印提示信息printf("--------------------------------------------------------------------------\n");for(i=0;i<N;i++){printf("请输入航班号:\n");scanf("%d",&s[i].num); //读取航班号printf("请输入起始站:\n");scanf("%s",s[i].start); //读取起始站printf("请输入终点站:\n");scanf("%s",s[i].over); //读取终点站printf("请输入时间:\n");scanf("%s",s[i].time); //读取时间printf("请输入机票数(机票数为0结束输入):\n");scanf("%d",&s[i].count); //读取机票数m++;printf("第%d个信息已经输完是否继续?按任意键继续,按 0结束",m);scanf("%d",&y);if(y==0){save(); //将结构体信息存盘(调用save函数)print(); //输出输入的航班信息(调用print函数)break;}}}elseprintf("输入密码错误!请检查您的密码是否正确!谢谢!再见!\n\n");}void save() //保存模块程序{FILE *fp,*fp1; //定义文件指针if((fp=fopen("chen.dat","wb"))==NULL) //打开文件并判定是否出错{printf("创建文件失败!\n\n"); //打印出错提示getchar();return;}if((fp1=fopen("hao.dat","wb"))==NULL) //打开文件并判定是否出错{printf("创建文件失败!\n\n"); //打印出错提示getchar();return;}for(i=0;i<m;i++)if(fwrite(&s[i],sizeof(struct air),1,fp)==0) /*向文件写入数据,并判定是否出错*/ printf("向文件输入数据失败!\n\n");fprintf(fp1,"%d",m);fclose(fp); //关闭文件fclose(fp1); //关闭文件}void read() //从文件读取信息模块{FILE *fp,*fp1; //定义文件指针if((fp=fopen("chen.dat","rb"))==NULL) //打开文件,并判定是否出错{printf("出错,请检查文件是否存在,按任意键返回住菜单"); //打印出错提示getchar();}if((fp1=fopen("hao.dat","rb"))==NULL) //打开文件并判定是否出错{printf("创建文件失败!\n\n"); //打印出错提示getchar();return;}fscanf(fp1,"%d",&m);fclose(fp1); //关闭文件for(i=0;i<m;i++){fread(&s[i],sizeof(struct air),1,fp);//从文件中读取信息}fclose(fp); //关闭文件}void print()//打印模块{char w[10];read();//调用读取文件函数printf(" 航班号起始站终点站时间机票数\n"); for(i=0;i<m;i++){printf(PRINT);//打印信息}printf("请按任意键回车键结束返回上层菜单以:\n");scanf("%s",w);}void search()//查询模块{char name1[20];char name2[20];char ii[10];int n,no;do{printf("请选择查找方式:\n\n");//打印查询方式菜单printf("1.按航班号查//打印信息请按任意键回车键结束返回上层菜单以//查询模块请选择查找方式://打印查询方式菜单1.按航班号查找按终点站查找按航线查找\返回\请在0-3中选择按其他键以回车键结束返回主菜单//读取查找方式找\n\n""2.按终点站查找\n\n""3.按航线查找\n\n""0.返回\n\n");printf("请在0-3中选择:\n\n""按其他键以回车键结束返回主菜单:\n\n");scanf("%d",&n);//读取查找方式if(n==0)break;switch(n){case 1:printf("请输入航班号:\n");scanf("%d",&no);//航班号break;case 2:printf("请输入终点站名称:\n");scanf("%s",name2);//读取终点站break;case 3:printf("请输入起始站名称:\n");scanf("%s",name1);//读取起始站printf("请输入终点站名称:\n");scanf("%s",name2);//终点站break;}read();//调用读取函数for(i=0;i<m;i++){if(strcmp(s[i].over,name1)==0||strcmp(s[i].over,name2)==0)//按终点站起始站判定输出条件{printf("\n查找航班信息成功!\n");printf("航班号起始站终点站时间机票数\n");printf(PRINT);//打印信息break;}if(s[i].num==no)//按航班号判定输出条件{printf("\n查找航班信息成功!\n");printf("航班号起始站终点站时间机票数\n");printf(PRINT);//打印信息break;}}no=0;//将航班号赋值为0printf("没有您需要的信息或查找完毕:\n\n""是否继续查找?请键入yes或no以回车键结束\n");scanf("%s",ii);}while(strcmp(ii,"yes")==0);//判定结束}void shanchu()//删除模块{char name1[20];char name2[ 20];char ii[10];char f[]="736";//设置密码int no,n;printf("请输入密码并以回车键结束:\n\n");scanf("%s",f);//读取密码if(strcmp(f,"736")==0) //判定密码是否正确{do{printf("请选择删除以方式回车键结束:\n\n");//打印删除方式菜单printf("*1.按航班号删除\n\n""*2.按航线删除\n\n""*0.返回\n\n");printf("请在0-2中选择以回车键结束:\n");scanf("%d",&n);//读取删除方式if(n==0)break; //跳出循环switch(n){case 1:printf("请输入航班号:\n");scanf("%d",&no);//读取航班号read();//调用读取函数break;//跳出循环case 2:printf("请输入起始站名称:\n");scanf("%s",name1);//读取起始站printf("请输入终点站名称:\n");scanf("%s",name2);//读取终点站read();//调用读取函数break;//跳出循环}for(i=0;i<m;i++){if(s[i].num==no||strcmp(s[i].start,name1)==0&&strcmp(s[i].over,name2)==0)//判定输入信息是否存在{s[i]=s[m-1];m--;}}printf("查找完毕或没有这个信息\n\n");printf("是否继续删除\n");printf("请键入yes或no以回车键结束\n");scanf("%s",ii); //读取是否继续信息save(); //调用读取函数if(!strcmp(ii,"yes")) //判定是否继续删除printf("请按任意键以回车键结束返回上层菜单:\n");break;}while(n!=1&&n!=2&&n!=3&&n!=4&&n!=0); //判定结束}elseprintf("对不起密码错误!您不是治理员,不能使用此项功能!谢谢!再见!\n\n"); }void dingpiao() //订票模块{int n;char a[10];do{search(); //调用查询模块printf("请输入您要订的机票数以回车键结束:\n");scanf("%d",&n); //读取所订机票数if(n<0){printf("请输入有效的机票数!\n"); //判定机票数是否出错break;}if(s[i].count!=0&&s[i].count>=n) //判定是否出错{s[i].count=s[i].count-n;save(); //调用保存函数printf("订票成功!\n\n");break;}if(s[i].count<n) //判定是否出错{printf("请输入有效的机票数:\n");break;}printf("是否继续?请输入yes或no以回车键结束:\n");//判定是否继续订票scanf("%s",a);}while(!strcmp(a,"yes")); //判定结束}void tuipiao()//退票模块{int n;char a[10];do{search(); //调用查询模块printf("请输入您要退的机票数目:\n");scanf("%d",&n);//输入所退票数if(n<0) //判定票数是否有效printf("请输入有效的机票数!\n");s[i].count=s[i].count+n;save(); //调用保存模块printf("退票成功!\n\n");printf("是否继续?请键入yes或no以回车键结束:\n\n");//判定是否继续退票scanf("%s",a);}while(!strcmp(a,"yes")); //判定并跳出循环getchar();}void xiugai() //修改模块{struct xiu //定义结构体{int no;char name1[20];char name2[20];char time[20];int count;}x[1];char j[10];char f[]="736"; //设置密码int n;printf("请输入密码并以回车键结束:\n\n");scanf("%s",f); //读取密码if(strcmp(f,"736")==0) //判定是否出错{read(); //调用读取模块do{printf( "请选择修改方式:\n\n""*1,按航班号修改:\n\n""*2,按航线修改: \n\n");printf("请在1---2中修改以回车键结束:\n\n");scanf("%d",&n); //读取修改方式switch(n){case 1:printf("请输入航班号:\n");scanf("%d",&x[0].no); //读取航班号break;case 2:printf("请输入起始站:\n");scanf("%s",x[0].name1); //读取起始站printf("请输入终点站:\n");scanf("%s",x[0].name2); //读取终点站break;}for(i=0;i<m;i++){if(strcmp(s[i].over,x[0].name1)==0&&strcmp(s[i].over,x[0].name2)==0) //判定输出条件{printf("航班号起始站终点站时间机票数\n");printf(PRINT);break;}if(s[i].num==x[0].no) //判定输出条件{printf("航班号起始站终点站时间机票数\n");printf(PRINT);break;}}x[0].no=0; //将结构体中的号为零printf("请输入新航班号、起始站、终点站、时间、机票数:\n");scanf("%d%s%s%s%d",&x[0].no,x[0].name1,x[0].name2,x[0].time,&x[0].count);//定义输入格式s[i].num=x[0].no; //替换航班号strcpy(s[i].start,x[0].name1); //替换其始站strcpy(s[i].over,x[0].name2); //替换终点站strcpy(s[i].time,x[0].time); //替换时间s[i].count=x[0].count; //替换机票数save(); //调用保存模块printf("是否继续?请键入yes或no以回车键结束:\n\n");scanf("%s",j);}while(strcmp(j,"yes")==0); //判定结束}elseprintf("对不起密码错误!您不是治理员,不能使用此项功能!谢谢!再见!\n\n"); }3.5 程序运行结果程序运行后的主界面如下图所示:图3.8 主界面进入输入界面,并且输入信息。

相关文档
最新文档