潍坊科技学院JavaScript课程设计报告书设计题目基于javascript的电子商务网站开发专业班级11软件一学生姓名江京翔学号************指导教师陈凤萍日期2012.12.24~2012.1.11成绩课程设计任务书院系:软件学院专业:软件技术班级:11软1 学号:201101080002一、课程设计时间2012年12月24日至2013年1月11日,共计3周。
二、课程设计内容使用html+javascript+css 完成以下任务:1、能够熟练使用css结合html实现网页布局。
2、熟练使用文档对象模型和事件驱动,能够很好的实现web表单的交互式操作。
3、熟练使用javascrip中的对象,实现网页的动态效果。
三、课程设计要求1. 课程设计质量:✧贯彻事件驱动的程序设计思想,熟练使用javascript中的对象,实现网页特效。
✧网页设计布局合理,色彩搭配合理,网页操作方便。
✧设计过程中充分考虑浏览器兼容等问题,并做适当处理。
✧代码应适当缩进,并给出必要的注释,以增强程序的可读性。
2. 课程设计说明书:课程结束后,上交课程设计报告书和相关的网页。
课程设计报告书的格式和内容参见提供的模板。
四、指导教师和学生签字指导教师:学生签名:江京翔五、教师评语:基于javascript的电子商务网站开发摘要JavaScript是开发WEB应用程序不可或缺的一种语言,无论是为web页面增加交互性还是创建整个应用程序,如果没有Javascript,今天的web就不是现在这个样子了。
JavaScript是具有正式规范的基于标准语言;然而,正如任何一个web开发人员所告诉你的那样,几乎每个web浏览器对这个规范的解释都不同。
本网站充分的结合了HTML与CSS的结合充分显示了网站的动态效果,是客户与网站能够充分的结合,进行信息的交换信息不断的进行更新。
基于新闻管理网站,国外新闻页面更具有代表性,是网站最标准型之一,通过Javascript 脚本的交互式该页面更好与其他的页面相互结合。
同时通常页面的下载是按照代码的排列顺序,而表格布局代码的排列代表从上向下,从左到右,无法改变。
而通过CSS控制,您可以任意改变代码的排列顺序,比如将重要的右边内容先加载出来。
关键字:节假日、日历、Javascript脚本目录一、前言 11.1课程设计思路 (1)1.2课程设计目标 (1)二、关键技术 (1)2.1HTML相关概念 (1)2.2css (3)2.3javascript (3)三、总体设计 ............................................ 错误!未定义书签。
3.1网站总体架构 (4)3.2网站软件结构 (4)3.3网站功能设计 (5)四、详细设计 (6)4.1中文日历 (6)4.2主要代码 (6)五、课设总结 (10)六、参考文献 (10)一、前言1.1课程设计思路网站设计一个中文小日历方便游客查看日期以及节假日,方便游客了解时间,以增强网站人性化设计可以增强时间观念。
日期跟附农历日期以及闰年提醒以及传统24节气。
可以在网页中显示出当前客户端的日期信息,1.2课程设计目标1.能够熟练使用css结合html,利用代码编写出日历雏形,。
2.熟练使用javascript和cookie实现日期精准查询,从而提高网页访问速度。
3.熟练使用javascript中的内建对象最终实现一个中文日历的雏形。
二、关键技术2.1HTML相关概念1.HTML语言HTML语言(Hypertext Markup Language,中文通常称为超文本置标语言或超文本标记语言)是一种文本类、解释执行的标记语言,它是Internet上用于编写网页的主要语言。
用HTML编写的超文本文件称为HTML文件。
在WWW上,通常使用的发布语言是HTML,即超文本标识语言。
当用浏览器打开网页时,浏览器读取网页中的HTML代码,分析其语法结构,然后根据解释的结果显示网页内容,正是因为如此,制作网页的时候,如果不涉及HTML语言,几乎是不可能的。
如图:WWW三个组成部分图2-1WWW的组成2.HTML文件结构<HTML><HEAD> <head>元素出现在文档的开头部分。
<head>与</head>之间的内容不会在浏览器的文档窗口显示,但是其间的元素有特殊重要的意义。
<title></title> <title>元素定义HTML文档的标题。
<title>与</title>之间的内容将显示在浏览器窗口的标题栏。
</HEAD><BODY>HTML 文件的正文//<body>元素表明是HTML文档的主体部分。
在<body>与</body>之间,通常都会有很多其它元素;这些元素和元素属性构成HTML文档的主体部分。
</BODY></HTML>元素:是HTML语言的基本部分。
元素总是成对出现,每一对元素一般都有一个开始的标记(如<body>),也有一个结束的标记(如</body>)。
元素的标记要用一对尖括号括起来,并且结束的标记总是在开始的标记前加一个斜杠。
HTML元素属性:HTML元素可以有自己的相关属性,每一个属性还可以由我们网页编制者赋一定的值。
元素属性出现在元素的< >内,并且和元素名之间有一个空格分隔;属性值用“”引起来。
2.2css1.css简介级联样式表(Cascading Style Sheet)简称“CSS”,它是用来进行网页风格设计。
通过设立样式表,可以统一地控制HTML中各标签的显示属性。
级联样式表可以使人更能有效地控制网页外观。
使用级联样式表,可以扩充精确指定网页元素位置,外观以及创建特殊效果的能力。
2.css文件当要在站点上所有或部份的网页上一致地应用相同样式时,可使用外部样式表。
在一个或多个外部样式表中定义样式,并将它们链接到所有网页,便能确保所有网页外观的一致性。
如果人们决定更改样式,只需在外部样式表中作一次更改,而该更改会反映到所有与该样式表相链接的网页上。
通常外部样式表以 .css 做为文件扩展名,例如Mystyles.css。
2.3javascript1.javascript语言JavaScript是一种基于对象和事件驱动并具有相对安全性的客户端脚本语言。
同时也是一种广泛用于客户端Web开发的脚本语言,常用来给HTML网页添加动态功能,响应用户的各种操作。
2.JavaScript嵌入HTML文件JavaScript代码可直接嵌入HTML文件中,随网页一起传送到客户端浏览器,然后通过浏览器来解释执行。
1)、JavaScript 语句插入 HTML的方式:(1)使用 <SCRIPT> 标签将语句嵌入文档(2)将 JavaScript 源文件(.js)链接到 HTML 文档中2)、JavaScript 语句插入 HTML的位置:(1)body部分的JS(2)head部分的JS:当脚本被调用、事件被触发时执行,可保证在调用函数前,脚本已载入三、总体设计3.1网站总体架构本系统的实现采用典型的B/S结构来实现,不同的客户端程序通过IE共同访问WEB 服务器的发布页面、WEB服务器访问数据库服务器进行数据存取,系统结构如图3-1:3.2网站软件结构图3-2软件结构图3.3网站功能设计在本网站中包括动态切换广告条、浮动广告、中文小日历、电子时钟、数学计算器、购物车、树形结构菜单、用户注册等,并进行一定的美化和整理,基本完成商务网站的雏形结构。
显示的样式要求如下:图 3-3商务网站样式1.广告推荐:一般有动态切换广告条、浮动图片和文字滚动等几种方式,通过动态样式表甚至可以让图片的切换获得多达20多种转场效果。
2.商品浏览:一般用HTML表格显示商品的图片、价格、规格等信息,大部分网站都采用数据库和动态脚本语言来自动生成商品的列表。
3.电子购物车:电子购物车一般有两种方式来实现,一种是在服务器端存储每个用户的每一次电子购物操作,还有一种是采用客户端cookie来实现电子购物车,cookie是网站存储在客户端的少量数据,可以让网站的不同网页之间共享相同的变量。
4.用户注册功能:创建用户注册程序,需要输入的信息包括注册用户名、口令、姓名、出生年月日、身份证号码、住址、邮编。
重点体现在格式验证通过客户端,无须将数据提交到服务器端,从而提高了程序的效率,也可以避免程序提交数据的过程中重复输入的过程。
5.电子时钟设置:通过JavaScript模仿液晶显示板的形式创建一个电子时钟,要求按照12小时制进行时间显示,如果是上午则显示AM,如果是下午则显示PM。
6.中文日历:编写一个中文小日历程序,可以在网页中显示出当前客户端的日期信息,同时也可以显示出本月其他日期的星期。
必须采用中文星期表示来显示星期,如果是闰年则必须在年份的旁边注明。
7.树形结构菜单:创建一个树形菜单,要求可以展开多级分类菜单,在包含内容的文件夹前显示加号图片,在展开后则显示减号图片,对于不包含内容的叶节点则用叶节点图片来表示。
四、详细设计在整个网站设计主要负责设计中文小日历4.1中文日历4.2主要代码首先编写cookie的写入程序和读取程序。
购物车物品信息主要包括两个属性,物品名称,物品价格,在这里不考虑物品的数量,每次将物品放入购物车就在cookie中添加一条信息,在购物车中可以存放多种物品,而且每种物品可能购买多个,所以每次将物品放入时必须用一个唯一的名称来定义cookie的名称。
在读取cookie信息的时候由于系统会一次性把所有可以访问的cookie读出来,所以如果需要只读取指定名称的cookie值需要通过定位截取指定名称cookie的值。
<html><head><FCK:meta http-equiv="Content-Type" content="text/html; charset=gb2312" /> <title>本地计算机时间</title></head><body><SCRIPT language=JavaScript><!--///====================================== 传回农历 y年的总天数function lYearDays(y) {var i, sum = 348for(i=0x8000; i>0x8; i>>=1) sum += (lunarInfo[y-1900] & i)? 1: 0return(sum+leapDays(y))}//====================================== 传回农历 y年闰月的天数function leapDays(y) {if(leapMonth(y)) return((lunarInfo[y-1900] & 0x10000)? 30: 29)else return(0)}//====================================== 传回农历 y年闰哪个月 1-12 , 没闰传回0function leapMonth(y) {return(lunarInfo[y-1900] & 0xf)}//====================================== 传回农历 y年m月的总天数function monthDays(y,m) {return( (lunarInfo[y-1900] & (0x10000>>m))? 30: 29 )}//====================================== 算出农历, 传入日期物件, 传回农历日期物件// 该物件属性有 .year .month .day .isLeap .yearCyl .dayCyl .monCylfunction Lunar(objDate) {}this.length = solarDays(y,m) //国历当月天数this.firstWeek = sDObj.getDay() //国历当月1日星期几for(var i=0;i<this.length;i++) {if(lD>lX) {sDObj = new Date(y,m,i+1) //当月一日日期lDObj = new Lunar(sDObj) //农历lY = lDObj.year //农历年lM = lDObj.month //农历月lD = lDObj.day //农历日lL = lDObj.isLeap //农历是否闰月lX = lL? leapDays(lY): monthDays(lY,lM) //农历当月最後一天if(n==0) firstLM = lMlDPOS[n++] = i-lD+1}//sYear,sMonth,sDay,week,//lYear,lMonth,lDay,isLeap,//cYear,cMonth,cDaythis[i] = new calElement(y, m+1, i+1, nStr1[(i+this.firstWeek)%7],lY, lM, lD++, lL,cyclical(lDObj.yearCyl) ,cyclical(lDObj.monCyl), cyclical(lDObj.dayCyl++) )<TD width=50 height="1" align="center" bgcolor="#99CCFF"><font size="2">三</font></TD><TD width=54 height="1" align="center" bgcolor="#99CCFF"><font size="2">四</font></TD><TD width=54 height="1" align="center" bgcolor="#99CCFF"><font size="2">五</font></TD><TD width=54 height="1" align="center" bgcolor="#99CCFF"><font size="2">六</font></TD></TR><SCRIPT language=JavaScript><!--var gNumfor(i=0;i<6;i++) {document.write('<tr align=center>')for(j=0;j<7;j++) {gNum = i*7+jdocument.write('<td id="GD' + gNum +'" onMouseOver="mOvr(' + gNum +')" onMouseOut="mOut()"><font id="SD' + gNum +'" size=2 face="Arial Black"') if(j == 0) document.write(' color=red')if(j == 6)if(i%2==1) document.write(' color=red')else document.write(' color=green')document.write(' TITLE=""> </font><br><font id="LD' + gNum + '" size=2 style="font-size:9pt"> </font></td>')}document.write('</tr>')}//--></SCRIPT></TBODY></TABLE></center></div><五、课设总结这套程序经过我们小组的一起努力终于完成,通过这次程序设计,我感慨颇多,首先认识到集体力量的伟大,没有集体智慧的结合,就不会有我们这套系统的运行,其次,我感觉这次课程设计不再局限于书本知识,而是让我们学以致用,是理论与实际相结合的产物。