《JavaScript项目式实例教程》项目三 统计成绩单 - 循环结构_第1页
《JavaScript项目式实例教程》项目三 统计成绩单 - 循环结构_第2页
《JavaScript项目式实例教程》项目三 统计成绩单 - 循环结构_第3页
《JavaScript项目式实例教程》项目三 统计成绩单 - 循环结构_第4页
《JavaScript项目式实例教程》项目三 统计成绩单 - 循环结构_第5页
已阅读5页,还剩25页未读 继续免费阅读

下载本文档

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

文档简介

项目三统计成绩单——循环结构设计一个程序,要求能不断弹出输入成绩对话框。在输入成绩时,检测输入数据的合法性,如果输入的不是数字或输入内容为空,给出错误信息,继续弹出成绩对话框输入成绩,只到用户输入一个截止符号"!"为止。最后在页面上打印所有输入的有效成绩,打印的格式为每行4个。统计所有成绩的平均分、最高分、最低分并打印输出。最后输出一个链接“是否有不及格”。用户点击该链接,如果成绩中有不及格的,则弹出对话框提示没有不及格成绩。若有不及格成绩,则弹出对话框提示有不及格成绩。项目情境初步了解数组的概念和使用方法。初步了解对象的概念。熟悉Math数学对象的应用。熟悉循环结构的使用方法。熟悉变量的作用域学习目标分别计算并打印输出1+2+3+...+100和1×2

×3×...×100的值。任务1累加和累乘1、循环结构1.1、while语句while(<逻辑表达式>)<语句块>1.2、do...while语句do<语句块>while(<逻辑表达式>);2、死循环【相关知识】在<head>标签内部输入以下代码:<scripttype="text/javascript">varsum=0; //总和sumvarf=1; //总乘积fvari=1; //计数iwhile(i<=100) { sum=sum+i; f=f*i; i++; } document.write("1+2+3+...+100="+sum+"<br/>1×2×3×...×100="+f);</script>【任务实现】随机的给出10个0到100之间(包含0和100)的整数,统计这10个数中的最大值和最小值。任务2最大和最小值1、数组1.1、数组的概念数组是一些数据元素(element)的集合,每个数据元素在数组中都有一个编号,通过编号可以引用这些数据元素。这些数据元素可以是不同的数据类型,例如数字型、字符串型、布尔型等,设置还可以是一个数组。每个数组都有一个名称,其命名规则和变量的命名规则相同。【相关知识】1.2、数组的定义1.2.1、使用构造函数方式有三种,分别是:newArray()newArray(<数组元素的个数>)newArray(<数组元素1的值>[,数组元素2的值]...)1.2.2、直接定义方式有两种,一种是用一对空的中括号定义一个空数组,然后再为数组元素赋值。另一种方式是在一对中括号中,放入数组元素值,并用逗号隔开。【相关知识】2、对象2.1、对象的概念对象有三要素:属性、方法和事件。2.2、使用属性和方法引用或修改对象的属性:对象.对象的属性调用对象的方法:对象.对象的方法名([参数列表])【相关知识】2.3、Math对象【相关知识】属性描述E返回算术常量e,即自然对数的底数(约等于2.718)。LN2返回2的自然对数(约等于0.693)。LN10返回10的自然对数(约等于2.302)。LOG2E返回以2为底的e的对数(约等于1.414)。LOG10E返回以10为底的e的对数(约等于0.434)。PI返回圆周率(约等于3.14159)。SQRT1_2返回返回2的平方根的倒数(约等于0.707)。SQRT2返回2的平方根(约等于1.414)。【相关知识】方法描述abs(x)返回数的绝对值。acos(x)返回数的反余弦值。asin(x)返回数的反正弦值。atan(x)以介于-PI/2与PI/2弧度之间的数值来返回x的反正切值。atan2(y,x)返回从x轴到点(x,y)的角度(介于-PI/2与PI/2弧度之间)。ceil(x)对数进行上舍入。cos(x)返回数的余弦。exp(x)返回e的指数。floor(x)对数进行下舍入。log(x)返回数的自然对数(底为e)。max(x,y)返回x和y中的最高值。min(x,y)返回x和y中的最低值。pow(x,y)返回x的y次幂。random()返回0~1之间的随机数。round(x)把数四舍五入为最接近的整数。sin(x)返回数的正弦。sqrt(x)返回数的平方根。tan(x)返回角的正切。toSource()返回该对象的源代码。valueOf()返回Math对象的原始值。3、for循环结构for(初始化变量;逻辑表达式;改变变量表达式)<语句块>4、for...in循环结构for(变量in对象或者数组)<语句块>5、循环的嵌套无论哪种循环结构,都可以相互之间使用嵌套,这与判断结构的嵌套类似。【相关知识】在<head>标签对中输入以下代码:<scripttype="text/javascript">varele=[];for(vari=0;i<10;i++){ ele[i]=Math.round(Math.random()*100); document.write(ele[i]+"");}vare_max=ele[1];vare_min=ele[1];for(vari=0;i<10;i++){ if(ele[i]>e_max) { e_max=ele[i]; } if(ele[i]<e_min) { e_min=ele[i]; }}document.write("<br/>最大值:"+e_max+"<br/>最小值:"+e_min);</script>【任务实现】有一个字符串"Iamastudent",用循环语句查找第一个字母"t"在字符串中的位置。任务3循环的跳转1、字符串对象1.1、创建字符串对象使用构造函数String()创建字符串对象,方式是:newString(str)或者String(str)其中str参数是字符串变量或者具体的字符串的值。【相关知识】1.2、属性和方法【相关知识】属性描述constructor对创建该对象的函数的引用length字符串的长度prototype允许您向对象添加属性和方法【相关知识】方法描述charAt()返回在指定位置的字符。charCodeAt()返回在指定的位置的字符的Unicode编码。concat()连接字符串。indexOf()检索字符串。lastIndexOf()从后向前搜索字符串。localeCompare()用本地特定的顺序来比较两个字符串。match()找到一个或多个正则表达式的匹配。replace()替换与正则表达式匹配的子串。search()检索与正则表达式相匹配的值。slice()提取字符串的片断,并在新的字符串中返回被提取的部分。split()把字符串分割为字符串数组。strike()使用删除线来显示字符串。substr()从起始索引号提取字符串中指定数目的字符。substring()提取字符串中两个指定的索引号之间的字符。toLocaleLowerCase()把字符串转换为小写。toLocaleUpperCase()把字符串转换为大写。toLowerCase()把字符串转换为小写。toUpperCase()把字符串转换为大写。toSource()代表对象的源代码。toString()返回字符串。valueOf()返回某个字符串对象的原始值。2、循环的跳转2.1、break语句在循环中,它的作用是结束循环的执行。即使循环的次数还没有执行完,也不再执行。2.2、continue语句continue语句只能用于循环中,是结束当前正在执行的这次循环,跳入下一次循环。【相关知识】在<head>标签内部输入以下代码:<scripttype="text/javascript">varstr="Iamastudent";varstr_len=str.length;variPos=0;for(vari=0;i<str_len;i++){if(str.charAt(i)=="t"){iPos=i+1;break;}}document.write("字符串"+str+"中的第一个字母t的位置为"+iPos);【任务实现】任务4“项目三”的实现1、函数1.1、自定义函数function函数名称([参数列表]){ [语句块][return<返回值>]}【相关知识】1.2、函数参数函数名称([参数值列表]);对于形参和实参还需要注意以下几点:①形参与实参要一一对应,也就是传递的顺序要一致。②形参的个数与实参的个数原则上要求一致。如果形参的个数大于实参的个数,则多余的形参的值将被赋予undefined(表示未定义),如果形参的个数小于实参的个数,则多余的实参将被舍弃。③用于定义形参的变量不能添加关键字var,直接写变量名即可。④形参只能是变量,不能是一个表达式。【相关知识】1.3、系统函数也叫内置函数,是JavaScript内部定义好的函数,能完成一些特定的功能,用户不必知道它是如何实现的,只要直接调用就可以了。前面我们已经学习的例如数学函数、parseInt()、parseFloat()、isNaN()等都是系统函数。【相关知识】2、变量的作用域变量的作用域就是变量的有效作用范围。这个范围有两种:全局和局部。在函数定义之外声明的变量是全局变量,该变量在整个持续范围内都可以访问和修改。在函数定义内声明的变量是局部变量,它不能被该函数外的任何事物访问。但是,必须注意的是,在函数内部声明一个局部变量时一定要使用关键字var,否则还是一个全局变量。一个局部变量的名称可以与某个全局变量的名称相同,但这是完全不同和独立的两个变量。【相关知识】1、要不断弹出成绩输入对话框,没有规定输入次数,所以要使用while循环。2、当输入“!”就结束输入,所以while循环的开始条件是输入字符串不等于“!”。3、要对成绩进行打印和统计,每输入一个成绩就先存储到数组中。【任务分析】1、在<body>标签对中编写超级链接“是否有不及格”的代码,并为其添加onclick事件,在事件中调用一个自定义函数check()。此函数的功能是查找是否有不及格的成绩:<ahref="#"onclick="check()">是否有不及格</a>【任务实现】2、在<head>标签对中输入以下代码:<scripttype="text/javascript">varscore=0;//存放当前输入的成绩vari=1;//输入次数计数varele=[];//存放最终的成绩while(score!="!"){ score=prompt("请输入第"+i+"个成绩:",0); if(!isNaN(score)&&score!=""&&score!="!") { ele[i]=Number(score); i++; } elseif(score!="!") { alert("输入的成绩无效!"); }}document.write("输入的成绩列表:<br/>");【任务实现】for(vari=1;i<ele.length;i++){ document.write(ele[i]+""); if(i%4==0) { document.write("<br/>"); }}vare_max

温馨提示

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

评论

0/150

提交评论