《编程》-项目一统计学生成绩2_第1页
《编程》-项目一统计学生成绩2_第2页
《编程》-项目一统计学生成绩2_第3页
《编程》-项目一统计学生成绩2_第4页
《编程》-项目一统计学生成绩2_第5页
已阅读5页,还剩2页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

公开课教案教师班级科目C#程序设计开课时间地点机房课题名称项目一:统计学生成绩课时数6背景分析本课程是为软件技术专业的学生开设的一门很重要的程序设计类课程。学习者从设计Stu类结构,到各种数据的输入和统计。通过本项目,学生学会类基本结构的设计,公共属性,创建方法等的使用,为后续更好的理解类和对象打下基础。学生已经具备一定的应用软件能力。根据课程教学目标和学生的专业特点,教学中应当注重培养学生的操作能力、思维能力和学习能力。本课采用以项目教学为主,边讲边做,让学生在做的过程中学会探索、学会合作。学习目标设定掌握类和对象的基础知识,定义和构造类,构造函数和析构函数的用法,定义属性、方法。培养学生积极思考、敢于尝试,让学生体验学习的乐趣,激发学生对本课程的学习兴趣。学习任务描述学习任务围绕学生成绩统计的综合运用而展开,根据教师设计的项目,并将其分解为任务完成。通过任务的设定,在对比中,引导学生自主学习、合作学习、竞争学习。教学情境创设本节课通过对一个贴近学生生活的项目学习,引导学生做中学习、合作学习。围绕课堂总目标,让学生在不断的成功体验中进行快乐学习。教学资源准备时间资源:课前资料收集、课堂教学、课后资料整理、完成作业信息资源:教案、教学素材人员资源:1位专业教师,1位专业指导教师,学生小组设备资源:2.2GHz或速度更快的CPU、1GB或更大容量的RAM、1280x1024显示器、7200RPM或更高转速的硬盘;操作系统:Windows7或以上;开发软件:VisualStudio2012中文版(含MSDN);教学过程实施内容方法【导入】同学们都具有C语言学习基础。现决定用C#代码来初探面向对象编程。在控制台下设计一个学生类,包含学生的基本信息和三门课程的成绩,并统计和输出显示。【新课】项目一:统计学生成绩【项目描述】学生成绩统计主要有五个任务:1.理解从现实到抽象的概念转换。2.确定一个班的总人数(整数)。3.输入每个学生的信息,并给出确认消息。4.输出一个班学生的所有信息,及三门课的总分。5.统计该班的实际总人数,以及这三门课的总分和平均成绩。任务二设计主方法【任务描述】输入一个班的人数num(整数);保留多个学生对象信息到一个类数组中;学生基本信息和成绩总分输出显示。【任务实施】1.输入班级最大容纳学生人数Console.WriteLine("请输入班级人数:");intnum=int.Parse(Console.ReadLine());2.若步骤1中输入班级学生总人数有40人,则需创建40个Stu类对象,相关代码如下:Stus2=newStu("王恒","02",18,"男",newdouble[]{85,80,78});Stus3=newStu("李明","03",19,"男",newdouble[]{95,74,88});………………Stus40=newStu("张华","40",19,"男",newdouble[]{100,89,92});注:显然这么输入的做法繁琐而不易管理数据。因此,可以考虑将创建的类对象看作是同类型的数据以数组的方式来存放,通过改变数组的下标可获得不同的对象信息。3.创建学生类数组,相关代码如下:Stu[]student=newStu[]{s1,s2,s3,………,s40};进一步简化类数组的初始化,相关代码如下:Stu[]student=newStu[]{newStu("张莉","01",19,"女",newdouble[]{70,80,90}),newStu("王恒","02",18,"男",newdouble[]{85,80,78}),newStu("李明","03",19,"男",newdouble[]{95,74,88}),……………newStu("张华","40",19,"男",newdouble[]{100,89,92})}4.进一步完善学生的基本信息,通过提示信息输入,相关代码如下:Stu[]student=newStu[num];for(inti=0;i<num;i++){Console.Write("请输入学生姓名:");stringname=Console.ReadLine();Console.Write("请输入学生学号:");stringno=Console.ReadLine();Console.Write("请输入学生年龄:");intage=int.Parse(Console.ReadLine());Console.Write("请输入学生性别:");stringsex=Console.ReadLine();double[]score=newdouble[3];for(intj=0;j<3;j++){Console.Write("请输入学生第{0}门成绩:",j+1);score[j]=double.Parse(Console.ReadLine());}Stustu=newStu(name,no,age,sex,score);student[i]=stu;}5.学生信息输出显示,相关代码如下:foreach(Stusinstudent){Console.WriteLine(s);}运行结果如图所示。6.每个学生总分和平均分输出显示,修改Stu类中Display()方法的输出信息,相关代码如下:publicstringDisplay(){……………return"姓名:"+stuName+",学号:"+stuNo+",年龄:"+stuAge+",性别:"+stuSex+",3门课成绩:"+t+",成绩总分:"+Totle()+",平均分:"+Avg();}运行结果如图所示。任务三完善程序功能【任务描述】输入学生基本信息的有效性检验;每个学生基本信息输入有效后的信息提示;输入学生姓名为“exit”时,可结束输入,并统计实际学生人数信息。【任务实施】1.创建学生年龄的公开属性,对其为负值情况的判断,相关代码如下:publicintAge{get{returnstuAge;}set{if(value<=0)isSucc=false;elsestuAge=value;}}注:在构造方法中将stuAge=age;代码修改为Age=age;在对象初始化数值时能通过属性赋值给内部数据变量,同时进行数值有效性判断。2.添加一个布尔类型字段isSucc,以判断是否成功录入数据。若有无效数据录入,则设置为false,否则为true,相关代码如下:privateboolisSucc;修改构造函数,将isSucc初始化。publicStu(stringname,stringno,intage,stringsex,double[]score)//初始化数据成员的构造函数{isSucc=true;stuName=name;stuNo=no;Age=age;stuSex=sex;stuScore=score;}在录入数据结束后,如何让private类型的isSucc的值传递到Main()方法中呢?可通过在Stu类中设置一个对应于isSucc的公开属性。publicboolIsSucc{get{returnisSucc;}set{isSucc=value;}}Main()方法接收传递的公开属性IsSucc,并进行判断,在任务二的步骤4的循环中进行修改,相关代码如下:for(inti=0;i<num;i++){…………Stustu=newStu(name,no,age,sex,score);//将student[i]=stu;修改为如下所示if(stu.IsSucc)//IsSucc为true则录入信息无错{student[i]=stu;Console.WriteLine("信息录入成功!");}else{//IsSucc为false则录入信息有错,类数组退回到前一个下标位置i--;Console.WriteLine("信息录入失败!");}}3.输入学生姓名为“exit”时,可结束输入。在任务二的步骤4的循环中进行修改,相关代码如下:for(inti=0;i<num;i++){Console.Write("请输入学生姓名:");stringname=Console.ReadLine();if(name=="exit")//输入信息结束判断break; ………… }在Main()方法中添加一整型类型的变量count,统计输入的实际人数。在任务二的步骤4的循环外和循环内进行修改,相关代码如下:intcount=0;//统计实际录入的学生人数for(inti=0;i<num;i++){ ………… Stustu=newStu(name,no,age,sex,score);if(stu.IsSucc)//IsSucc为true则录入信息无错{student[i]=stu;count++;Console.WriteLine("信息录入成功!");} …………}学生信息和成绩总分、平均分显示,相关代码如下:foreach(Stusinstudent){if(s!=null)//有空对象就不显示Console.WriteLine(s);}注:该部分程序若没有对象为空的判断,则会按照最初输入的班级人数全部显示。若没有count变量,则任务三中计算每门课程的平均分无法统计出正确人数。运行结果如图所示。【项目小结】 学习者从设计Stu类结构,到各种数据的输入和统计。通过本项目,学生学会类基本结构的设计

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论