c语言用文件存储成绩,C语言程序设计《文件与格式成绩.doc

PAGE

PAGE 6

C语言程序设计《文件读写与成绩处理的应用》教学设计

眉县职业教育中心 陈晓军

【教学内容】文件读写与成绩处理的应用

【教材分析】

本节内容选自于高等教育出版社出版的《C语言程序设计》教材。该教材对程序剖析清晰,强调学生编程方法的培养,但缺乏实用性。鉴于此种情况,根据职业学校培养人才的要求,依据实用性原则,特别是目前职业教育基于“做中教、做中学”的教学理念。我在学生学习了简单的数组应用及文件的相关操作后设计了本节内容。本节课实际是一节技能训练课,旨在培养学生使用所学知识解决实际问题的能力。

【教学目标】

一、知识目标:

1、熟练进行文件中数据的读写。

2、能求出一组成绩的最高分,最低分,总分,平均分,及格人数,及格率,优秀人数,优秀率。并从中归纳出成绩处理的一般方法。

3、理解利用文件存取数据的优点。

二、能力目标:

1、学会利用所学知识解决生活实践问题。

2、培养学生分析问题、解决问题的基本能力。

三、情感目标:

1、在教学过程中,培养学生的学习兴趣,树立学习的信心。

1、通过组内合作,培养学生团结协作,细心认真的学习习惯

2、通过组间竞争,增强学生的拼搏精神,培养学生学习兴趣。

【教学重点】

根据教学目标确定本节课的重点为文件读写,数据处理。

【教学难点】

根据教学目标及学生学情确定本节课的难点为文件读写和数据处理的综合应用。

【教学课时】1课时

【教学方法】

主要采用任务驱动法、点拨引导法、尝试练习法、教师演示、分组讨论、学生自主探究法等教学方法。根据教材特点和学生水平,本节课将采用“导、议、讲、练、结”五字教学模式实现。即通过实例导入、学生商议、讨论、教师点拨、讲述,学生练习、归纳小结使学生掌握所学内容,最终由教师评点,从而完成教学目标。具体教学中将采用诱思探究、分组安排任务,组内协作、组间竞争来实现。

【学情及学法指导】

计0309班学生思维活跃,除个别学生外,其余学生对学习程序设计课有较高的热情,加之又经历了前一段时间的学习,在教学中如果通过既竞争又协作的方法调动学生的兴趣和积极性,相信学生会掌握得比较好,教学效果也会比较显著。在教学中我主要采用学生自主探究、尝试练习、学生总结演示、学生质疑等方面对学生进行指导。

【教学环节设计】

设疑激趣导入

整体感知 形成思路

分组探索 形成具体算法 实践操作(尝试练习)

教师指导、释疑

学生小结 分程序具体设计方法

扩展练习 分组交换任务

存在问题

教师评点 根据完成情况 展示分程序

小组竞争情况 (提出表扬和鼓励)

作业

【课前探索(教学准备)】

制作教学课件,并设置教师机可灵活在课件和编程界面切换。

根据学生学情将学生分为四组,分组需注意强弱搭配,每组指定一名小组长。

【教学过程】

一、激趣导入:

师生互动:

我们以前已经学过了使用数组来进行成绩的处理.例如排序等操作.但是,我们以前所做过的练习需要的数据是从什么地方来的呢?此外大家再想一下,程序的最终结果又是显示在什么地方的?这样做固然可以,但是有没有不足之处呢?(以上问题由学生回答)。那么,怎样又可以解决这些问题呢?使用文件来存放数据,下面我们就来看一下如何利用文件进行复杂的成绩处理。

二、新授 文件与成绩处理的应用(板书课题)

1、整体感知:

(1)文件类程序的一般设计方法是怎样的?(学生回答)

(2)展示学习任务(课件展示):

求出一组学生成绩的总分、平均分、最高分、最低分、及格人数、及格率、优秀人数、优秀率。

(3)学生讨论:

对于这道题大家谈谈应该怎样做?数据读取及处理过程?

(4)教师点拨:

原始数据读取使用fscanf函数,结果数据写入使用fprintf函数。中间使用数组元素的操作方法对数据进行处理即可。(课件展示)

2、分发任务,分组探索:(课件展示)

组别

学习任务

第一组

计算总分和平均分

第二组

计算最高分和最低分

第三组

计算及格人数和及格率

第四组

计算优秀人数和优秀率

3、尝试练习:

各组根据讨论方案编程实现(实践环节)

要求:组内可以讨论、商议。比一比,看看哪个组做得快,做得好?

4、教师巡回指导,解决问题

5、小组长代表本组小结本组题目的具体操作方法

(1)比一比:看看哪个小组说得全面,说得好。

(2)课件展示:先从源文件中读出数据,存放在数组中,然后使用以前讲过的处理成绩的方法进行处理,最后将

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
C语言学生成绩管理系统(以包含文件的形式写的),结构体,链表,数组,以下是main.c #include #include #include #define m 3/*宏定义m的值为3*/ struct node/*链表初始化*/ { char name[20]; int no; float score[m]; float sum; float avg; struct node *next; }; char ch[m+4][20]={{"学号"},{"姓名"},{"语文"},{"数学"},{"英语"},{"总分"},{"平均分"}};/*定义并初始化一个全局二维字符数组*/ #include "save.c"/*包含保存文件*/ #include "read.c"/*包含读取文件*/ #include "output.c"/*包含打印文件*/ #include "set.c"/*包含录入文件*/ #include "demand.c"/*包含查询文件*/ #include "sort.c"/*包含排序文件*/ #include "modified.c"/*包含修改文件*/ #include "add.c"/*包含添加文件*/ #include "del.c"/*包含删除文件*/ void main() { int n; printf("\n\t\t\t欢迎使用学生成绩管理系统\n\n"); printf("\t\t\t\t\t\t制 作: XIA XIA\n"); do { printf("\n\n1:学生成绩录入,并保存\n"); printf("2:学生成绩查询\n"); printf("3:学生成绩的排序\n"); printf("4:学生成绩的修改\n"); printf("5:学生成绩的打印\n"); printf("6:学生信息的添加\n"); printf("7:学生信息的删除\n"); printf("0:退出学生成绩管理系统\n\n\n"); printf("输入你要执行操作的相应序号\n"); scanf("%d",&n);/*输入相就的操作的序号*/ switch (n) { case 1: set();break;/*调用录入函数*/ case 2: demand();break;/*调用查询函数*/ case 3: sort();break;/*调用排序函数*/ case 4: modified();break;/*调用修改函数*/ case 5: output();break;/*调用打印函数*/ case 6: add();break;/*调用添加函数*/ case 7: del();break;/*调用删除函数*/ case 0: printf("正在退出学生成绩管理系统......\n");exit(0);/*直到输入“0”退出学生成绩管理系统*/ default:printf("输入错误码,请重新输入\n"); } }while(1); }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值