c程序设计(第2版) 教学课件 作者 赵震奇 教案 项目一统计学生成绩2.doc

(7页)

'c程序设计(第2版) 教学课件 作者 赵震奇 教案 项目一统计学生成绩2.doc'

《c程序设计(第2版) 教学课件 作者 赵震奇 教案 项目一统计学生成绩2.doc》由会员分享,提供在线免费全文阅读可下载,此文档格式为doc,更多相关《c程序设计(第2版) 教学课件 作者 赵震奇 教案 项目一统计学生成绩2.doc》文档请在天天文库搜索。

1、公开课教案教 师班级科 目C#程序设计开课时间地 点机房课题名称项目一:统计学生成绩课时数6背景分析本课程是为软件技术专业的学生开设的一门很重要的程序设计类课程。学习者从设计Stu类结构,到各种数据的输入和统计。通过本项目,学生学会类基本结构的设计,公共属性,创建方法等的使用,为后续更好的理解类和对象打下基础。学生已经具备一定的应用软件能力。根据课程教学目标和学生的专业特点,教学中应当注重培养学生的操作能力、思维能力和学习能力。本课采用以项目教学为主,边讲边做,让学生在做的过程中学会探索、学会合作。学习目标设 定1、 掌握类和对象的基础知识,定义和构造类,构造函数和析构函数的用法,定义属性、方法。2、 培养学生积极思考、敢于尝试,让学生体验学习的乐趣,激发学生对本课程的学习兴趣。学习任务描 述学习任务围绕学生成绩统计的综合运用而展开,根据教师设计的项目,并将其分解为任务完成。通过任务的设。

2、定,在对比中,引导学生自主学习、合作学习、竞争学习。教学情境创 设本节课通过对一个贴近学生生活的项目学习,引导学生做中学习、合作学习。围绕课堂总目标,让学生在不断的成功体验中进行快乐学习。教学资源准 备时间资源:课前资料收集、课堂教学、课后资料整理、完成作业信息资源:教案、教学素材人员资源:1位专业教师,1位专业指导教师,学生小组设备资源:2.2 GHz 或速度更快的 CPU、1GB或更大容量的 RAM、1280x1024 显示器、7200 RPM 或更高转速的硬盘;操作系统:Windows 7或以上;开发软件:Visual Studio 2012 中文版(含MSDN);教 学 过 程 实 施内 容方法【导入】同学们都具有C语言学习基础。现决定用C#代码来初探面向对象编程。在控制台下设计一个学生类,包含学生的基本信息和三门课程的成绩,并统计和输出显示。【新课】项目一:统计学生成绩【项目描述。

3、】学生成绩统计主要有五个任务:1. 理解从现实到抽象的概念转换。2.确定一个班的总人数(整数)。3.输入每个学生的信息,并给出确认消息。4. 输出一个班学生的所有信息,及三门课的总分。5. 统计该班的实际总人数,以及这三门课的总分和平均成绩。任务二 设计主方法【任务描述】输入一个班的人数num(整数);保留多个学生对象信息到一个类数组中;学生基本信息和成绩总分输出显示。【任务实施】1. 输入班级最大容纳学生人数Console.WriteLine("请输入班级人数:"); int num = int.Parse(Console.ReadLine());2. 若步骤1中输入班级学生总人数有40人,则需创建40个Stu类对象,相关代码如下: Stu s2 = new Stu("王恒", "02", 18, "男" ,new double[]{85,80,78}); Stu s3 = new St。

4、u("李明", "03", 19, "男" ,new double[]{95,74,88});……………… Stu s40 = new Stu("张华", "40", 19, "男" ,new double[]{100,89,92});注:显然这么输入的做法繁琐而不易管理数据。因此,可以考虑将创建的类对象看作是同类型的数据以数组的方式来存放,通过改变数组的下标可获得不同的对象信息。3. 创建学生类数组,相关代码如下: Stu[] student = new Stu[] { s1,s2,s3,………,s40};进一步简化类数组的初始化,相关代码如下:Stu[] student = new Stu[]{new Stu("张莉", "01", 19, "女" ,new double[]{70,80,90}), new Stu("王恒", "02", 18, "男" ,new double[]{8。

5、5,80,78}), new Stu("李明", "03", 19, "男" ,new double[]{95,74,88}), …………… new Stu("张华", "40", 19, "男" ,new double[]{100,89,92})}4. 进一步完善学生的基本信息,通过提示信息输入,相关代码如下:Stu[] student=new Stu[num]; for (int i = 0; i < num; i++) { Console.Write("请输入学生姓名:"); string name = Console.ReadLine(); Console.Write("请输入学生学号:"); string no = Console.ReadLine(); Console.Write("请输入学生年龄:"); int age = int.Parse(Console.ReadL。

6、ine()); Console.Write("请输入学生性别:"); string sex = Console.ReadLine(); double[] score=new double[3]; for (int j = 0; j < 3; j++) { Console.Write("请输入学生第{0}门成绩:",j+1); score[j] = double.Parse(Console.ReadLine()); } Stu stu=new Stu(name,no,age,sex,score); student[i] = stu; }5. 学生信息输出显示,相关代码如下: foreach (Stu s in student) { Console.WriteLine(s); }运行结果如图所示。6. 每个学生总分和平均分输出显示,修改Stu类中Display()方法的输出信息,相关代码。

7、如下: public string Display() { …………… return "姓名:" + stuName + ",学号:" + stuNo + ",年龄:" + stuAge + ",性别:" + stuSex+",3门课成绩:"+t+",成绩总分:"+Totle()+",平均分:"+Avg(); }运行结果如图所示。任务三 完善程序功能【任务描述】输入学生基本信息的有效性检验;每个学生基本信息输入有效后的信息提示;输入学生姓名为“exit”时,可结束输入,并统计实际学生人数信息。【任务实施】1. 创建学生年龄的公开属性,对其为负值情况的判断,相关代码如下: public int Age { get{ return stuAge; } set { if (value <= 0) isSucc = false; else stuAge = value; } }注:在构造方法。

8、中将 stuAge = age; 代码修改为 Age = age; 在对象初始化数值时能通过属性赋值给内部数据变量,同时进行数值有效性判断。2. 添加一个布尔类型字段isSucc,以判断是否成功录入数据。若有无效数据录入,则设置为false,否则为true,相关代码如下: private bool isSucc;修改构造函数,将isSucc初始化。 public Stu(string name, string no, int age, string sex, double[] score)//初始化数据成员的构造函数 { isSucc = true; stuName = name; stuNo = no; Age = age; stuSex = sex; stuScore = score; }在录入数据结束后,如何让private类型的isSucc的值传递到Main()方法中呢?可通过在S。

9、tu类中设置一个对应于isSucc的公开属性。 public bool IsSucc { get{ return isSucc; } set{ isSucc = value; } }Main()方法接收传递的公开属性IsSucc,并进行判断,在任务二的步骤4的循环中进行修改,相关代码如下: for (int i = 0; i < num; i++) {………… Stu stu=new Stu(name,no,age,sex,score);//将student[i] = stu;修改为如下所示 if (stu.IsSucc)//IsSucc为true则录入信息无错 { student[i] = stu; Console.WriteLine("信息录入成功!"); } else { //IsSucc为false则录入信息有错,类数组退回到前一个下标位置 i--; Console.Writ。

10、eLine("信息录入失败!"); } }3. 输入学生姓名为“exit”时,可结束输入。在任务二的步骤4的循环中进行修改,相关代码如下: for (int i = 0; i < num; i++) { Console.Write("请输入学生姓名:"); string name = Console.ReadLine(); if (name == "exit")//输入信息结束判断 break; ………… }在Main()方法中添加一整型类型的变量count,统计输入的实际人数。在任务二的步骤4的循环外和循环内进行修改,相关代码如下: int count=0;//统计实际录入的学生人数 for (int i = 0; i < num; i++) { ………… Stu stu=new Stu(name,no,age,sex,score); if (stu.IsSucc)//IsS。

11、ucc为true则录入信息无错 { student[i] = stu; count++; Console.WriteLine("信息录入成功!"); } ………… }学生信息和成绩总分、平均分显示,相关代码如下: foreach (Stu s in student) { if(s!=null)//有空对象就不显示 Console.WriteLine(s); }注:该部分程序若没有对象为空的判断,则会按照最初输入的班级人数全部显示。若没有count变量,则任务三中计算每门课程的平均分无法统计出正确人数。运行结果如图所示。【项目小结】 学习者从设计Stu类结构,到各种数据的输入和统计。通过本项目,学生学会类基本结构的设计,公共属性,创建方法等的使用,为后续更好的理解类和对象打下基础。【思考与练习】1.请学生按照该项目,统计每门课程的总分和平均分。创设情境、激发学习兴趣营造良好的学习氛围明确任务,通过系列实验逐步呈现知识师生互动学习环节包括“实验与思考”、“观察与思考”、“交流与分享”巡回指导师生互动学习环节包括“实验与思考”、“观察与思考”、“交流与分享”教师巡回指导教师及时评价与引导学习环节分为“合作与探索”、“成功的体验”、“思考与提高”学生发现问题、教师释疑教师巡回指导学习环节分为“合作与探索”、“成功的体验”、“思考与提高”教师巡回指导学习环节分为“合作与探索”、“成功的体验”学生评价、教师评价。

关 键 词:
作者 教案 项目 统计 教学 学生 成绩 程序设计
 天天文库所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
关于本文
本文标题:c程序设计(第2版) 教学课件 作者 赵震奇 教案 项目一统计学生成绩2.doc
链接地址: https://www.wenku365.com/s-59387009.html
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服点击这里,给天天文库发消息,QQ:1290478887 - 联系我们

本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有【成交的100%(原创)】。本站是网络服务平台方,若您的权利被侵害,侵权客服QQ:1290478887 欢迎举报。

1290478887@qq.com 2017-2027 https://www.wenku365.com 网站版权所有

粤ICP备19057495号 

收起
展开