项目2:数据类型和运算——储蓄存款计算器一、教学内容及要求能力培养:1、掌握常量和变量概念,掌握变量的声明、初始化方法。2、掌握C#的常用的简单数据类型。3、掌握C#的运算符和表达式的概念,理解运算符运算规则,理解表达式的使用方法。核心技能点:1、C#语言中的常量、变量、数据类型、运算符、表达式等的概念。扩展技能点:1、数据类型转换。2、运算符的运算规则。教学内容:1、项目介绍(5分钟)任务1:项目引入:储蓄存款计算器的功能介绍2、常量与变量。(10分钟)任务2:实例引入:了解常量与变量的概念3、C#的数据类型。(1)数据类型(10分钟)任务3:掌握变量的定义和声明(2)变量命名规则(10分钟)任务4:掌握变量命名规则4、数据类型的转换。(10分钟)任务5:掌握使用Parse、ToString和Convert进行类型转换的方法5、运算符与表达式(1)赋值运算符与赋值表达式(10分钟)任务6:掌握赋值运算符与赋值表达式的使用(2)算术运算符与算术表达式(20分钟)任务7:掌握算术运算符与算术表达式的使用演示,求一个3位数的每一位数的值任务8:掌握自加和自减运算和Timer控件的使用(20分钟)演示,设计一个计时器(3)类型转换(10分钟)任务9:掌握运算符的结合性、优先级以及类型转换等相关知识点演示,复合运算和类型转换的案例5、案例演示:(30分钟)任务10:储蓄存款计算器的实现6、课内实践:(45分钟)任务11:摄氏温度到华氏温度器的实现二、教学重点、难点及解决办法教学重点:C#语言中的常量、变量、数据类型、运算符、表达式等的概念教学难点:1、数据类型转换2、运算符的运算规则教学方法:基于CDIO的课程改革,应用了CDIO教育模式。以“做中学”为出发点,实施“知识讲解案例化、课内课外协作化、实战演练一体化”的教学模式。由传统的教师引导课堂转变为以学生为主体,课本中的知识点讲解转变为“项目”主导,将传统的课堂模式转变为了以实际经验为核心。三、教学设计1、教学进程工程化将教学内容按CDIO理念,以项目为核心,并结合课程内容设计了四个环节的内容,包括构思环节、设计环节、实现环节、运作环节,同时,在课程的教学过程中,主要采用“做中学”的教学理念来实现“教学做”一体化。以项目为载体,将抽象的知识融入到项目中,通过项目的学习将知识点分解,将“工程”教学思想体现在教学中,进而提高学生的学习效果。2、教学设计递进化根据“工程化”的思想,教学模式的设计呈递进化趋势,每一个教学项目的实现将分成四个部分来完成:任务的明确,实施方案的编写,项目的实施和项目的评价3、实践设计层次化在项目的实施过程中,主要组织层次化教学。在教学中,采取“基础实验”“综合实验”,“综合性课程设计”的设计。4、课程考核工程化考核以过程考核和工程验收测试相结合的方式进行。本门课程采取的是形成性考核方式,考试成绩由本门课程学习期间的多项过程成绩组合而成5、知识讲解案例化根据CDIO的思想,对知识点采取案例化教学法,6、课内课外协作化7、实战演练一体化为了让学生对所学课程加深理论知识,并能够将相关知识结合到实际应用中,学生需要自选一个相关主题进行综合项目的开发,提高综合应用能力。在这个环节中,学生是主体,教师主要负责引导和监控,学生需要在这个阶段发挥自身能力,以团队的形式完成项目,并由此锻炼学生的团队合作意识。四、教学过程1、项目介绍(5分钟)任务1:项目引入:储蓄存款计算器的功能介绍程序功能:当输入存款金额、年利率和存款年限后,点击计算,计算出到期后应得利息总额和本息合计。2、常量与变量。(10分钟)任务2:实例引入:了解常量与变量的概念①电脑使用内存来记忆计算时所使用的数据②内存如何存储数据?内存像旅馆,数据各式各样,要先根据数据的需求(即类型)为它申请一块合适的空间③在银行存1000元钱,银行一年的利息5%,那一年之后钱变成了多少?④为什么需要变量内存地址不好记,怎么办?通过内存中小房间的别名找到数据存储的位置⑤变量是存储数据的一个基本单元3、C#的数据类型。(1)数据类型(10分钟)任务3:掌握变量的定义和声明①变量的声明和赋值使用变量的步骤:第一步:声明一个变量:根据类型开辟空间第二步:赋值:将数据存入空间第三步:使用变量:取出数据使用语法:②C#常用数据类型(2)变量命名规则(10分钟)任务4:掌握变量命名规则①只能有52个字母(A-Z,a-z),10个数字(0-9),下划线(_)和汉字组成;②不能以数字开始③不能使用C#保留字另外,注意C#区分大小写,大写字母和小写字母定义的变量是两个不同的变量,因此,sum和SUM是两个不同的变量名。4、数据类型的转换。(10分钟)任务5:掌握使用Parse、ToString和Convert进行类型转换的方法①Parse方法:将特定格式的字符串转换为数值语法:数值类型名称.Parse(字符串表达式)②ToString方法:将其它数据类型的变量值转换为字符串类型语法:变量名称.ToString();③Convert方法:将字符串类型和其它数据类型之间进行转换5、运算符与表达式(1)赋值运算符与赋值表达式(10分钟)任务6:掌握赋值运算符与赋值表达式的使用格式:变量名=表达式;注意:=左边必须是变量=右边可以是变量、常量或表达式(2)算术运算符与算术表达式(20分钟)任务7:掌握算术运算符与算术表达式的使用演示,求一个3位数的每一位数的值privatevoidbutton1_Click(objectsender,EventArgse){intnum=int.Parse(txtNum.Text);intg,s,b;g=num%10;s=num/10%10;b=num/100%10;txtB.Text=b.ToString();txtS.Text=s.ToString();txtG.Text=g.ToString();}}任务8:掌握自加和自减运算和Timer控件的使用(20分钟)演示,设计一个计时器①介绍:Timer类②设计一个计时器privatevoidtimer1_Tick(objectsender,EventArgse){time++;intt,m,s,ms;ms=time%100;s=time/100%60;m=time/100/60%60;t=time/100/3600;label2.Text=ms.ToString();label1.Text=string.Format({0:D2}:{1:D2}:{2:D2},t,m,s);}(3)类型转换(10分钟)任务9:掌握运算符的结合性、优先级以及类型转换等相关知识点①隐式转换:由编译器自动完成,但必须确保不会丢失信息ntx=123456;//intisa4-byteintegerlongy=x;//implicitconversiontoalong②显式转换:需要明确要求编译器完成的转换,否则可能会丢失信息intx=65537;shortz=(short)x;//explicitconversiontoashort,z==1③类型提升规则在某种条件下,系统自动完成类型转换:两种类型兼容,例如:int和double兼容;目标类型大于源类型,例如:double型大于int型对于表达式:如果一个操作数为double型,则整个表达式可提升为double型④显式转换:语法:(类型名)表达式intb=(int)10.2;doublea=10;intc=(int)a;如:去年Apple笔记本所占的市场份额是20,今年增长的市场份额是9.8,求今年所占的份额?intbefore=20;//apple笔记本市场份额doublerise=9.8;//增长的份额intnow=before+rise;//现在的份额编译出错:不能完成自动类型转换更改为:intnow=before+(int)rise;⑤演示,复合运算和类型转换的案例5、案例演示:(30分钟)任务10:储蓄存款计算器的实现(1)程序界面的设计的注意事项①窗体的初始位置设置:并不能修改大小:没有最大化按钮:②在按钮中的快捷方式(ALT+s)的实现方式是在按钮的Text属性中填入“计算(&S)”(2)程序业务逻辑的几个注意事项①利率输入的是%。在计算机时,注意转换成小数值。②文本框中的内容可以通过[文本框名].Text获得,但应注意要该值是string类型,需要转换成对应的数据类型后才能进行运算。如何要转换成int,则:int.Parse(textBox1.Text);//textBox1是文本框的名字(name)或:Convert.ToInt32(textBox1.Text);如何要转换成double,则:double.Parse(textBox1.Text);//textBox1是文本框的名字(name)或:Convert.ToDouble(textBox1.Text);③控件事件所关联的方法只有订阅后才能生效,方法之一是双击该控件,在产生的方法中添入代码,才能够使事件产生后能够执行相应的方法。如:只有在双击button1控件后,产生的代码:privatevoidbutton1_Click(objectsender,EventArgse){}中写入代码才能点击该按钮后执行相应的功能。6、课内实践:(45分钟)任务11:摄氏温度到华氏温度器的实现(1)程序界面的设计的几个注意事项①窗体的初始位置设置:并不能修改大小:没有最大化按钮:②在按钮中的快捷方式(ALT+s)的实现方式是在按钮的Text属性中填入“显示(&S)”(2)程序业务逻辑的几个注意事项①文本框中的内容可以通过[文本框名].Text获得,但应注意要该值是string类型,需要转换成对应的数据类型后才能进行运算。如何要转换成int,则:int.Parse(textBox1.Text);//textBox1是文本框的名字(name)或:Convert.ToInt32(textBox1.Text);如何要转换成double,则:double.Parse(textBox1.Text);//textBox1是文本框的名字(name)或:Convert.ToDouble(textBox1.Text);②注意在C#中,9/5的结果是1。3)控件事件所关联的方法只有订阅后才能生效,方法之一是双击该控件,在产生的方法中添入代码,才能够使事件产生后能够执行相应的方法。如:只有在双击button1控件后,产生的代码:privatevoidbutton1_Click(objectsender,EventArgse){//写入代码}中写入代码才能点击该按钮后执行相应的功能。五、参考资料[1]VisualC#.NET程序设计教程(第2版),罗福强,白忠建,杨剑,人民邮电出版社,2012-8[2]C#入门经典(第5版),(美)沃森,(美)内格尔等著,齐立波翻译,黄静审校,清华大学出版社,2010-12[3]精通C#(第6版),(美)特罗尔森著,姚琪琳等译,人民邮电出版社,2013-07[4]精通C#5.0与.NET4.5高级编程——LINQ、WCF、WPF和WF,张敬普,丁士锋等编著,清华大学出版社,2014-02