第一篇:优秀毕业设计(论文)
(空一行)
基于SOPC测量仪器的设计与实现------三号黑体
(空一行)
电子信息工程系------小四宋体 五号黑体学生:魏坤导师:肖庆高-----小四宋体
摘 要: NdFeB随着电子测试技术的不断发展,测试技术正向自动化、智能化、数字化和网络化的方向发展。其中数字存储示波器作为测试技术的重要工具而被广泛适用于各个领域,同模拟示波器相比具有许多优点,并有逐步取代传统模拟示波器的趋势。本课题所设计的数字存储示波器基于SOPC技术,采用大屏幕液晶显示操作为终端,有采样系统、中央处理系统、显示系统、用户交互系统等多个模块组成。--------五号宋体(300字左右)关键词:SOPC数字存储示波器FPGA液晶显示器------五号宋体
五号黑体
一、数字存储示波器的关键技术-----四号宋体加粗
数据采集的速度直接决定了数字示波器的性能,所以提高数字示波器的关键性问题就是提高采样率。采样率主要受AD转换速率、各组成单元电路的延迟和存储器的速度影响,AD转换速度越高,硬件电路的延迟对系统的影响越大。因此本系统中对硬件电路是虚的调整是一个重要内容。-----小四宋体
∙
∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙
总字数在3000字左右之间
五号宋体加粗(10个左右)
:
[1].《基于QUARTUS Ⅱ的FPGA/CPLD数字系统设计实例》.[2]丁玉美等著.《数字信号处理》.西安电子科技大学出版社
[3]褚振勇等著.《FPGA设计及应用(第二版)》.西安电子科技大学出版社
[4]胡广书等著.《数字信号处理—理论、算法与实现》.清华大学出版社
[5]张贤达等著.《现代信号处理(第二版)》.清华大学出版社
[6]刘益成等著.《数字信号处理》.电子工业出版社
[7]谢德芳编著.《数字信号处理》.北京科学出版社
[8]王传新编著.《FPGA设计基础》.高等教育出版社
第二篇:优秀毕业设计论文摘要
基于单片机的多温度检测系统的设计与PROTEUS仿真
浦江学院浦自0806班张佑鹏指导教师:李为相
摘要
1.课题研究的背景及内容
在人类的生活环境中,温度扮演着极其重要的角色。自18世纪工业革命以来,工业的发展与温度有着密切的联系。不管是在钢铁、水泥、冶金、石化、玻璃、医药等行业,基本上70%的工业生产部门都必须考虑着温度的影响因素。温度对于工业如此重要,由此推进了温度传感器的迅速发展。许多产品对温度测量范围要求严格,而目前市场上的温度测试仪器都是单点测量,且温度信息传输是不及时的、不够精确的,从而不利于工业控制来及时做出决定。在这种形式下,制定出可以多点测量、实时性高、高精度的同步测量方案是很有必要的。
此次设计是利用单片机确定系统的总体设计方案,包括其功能设计、设计原则、组成与工作原理。对单片机的应用作进一步的了解,对于温度控制要有更进一步的认识。进行智能传感器的硬件电路设计,包括硬件电路构成及测量原理、温度传感器的选择、单片机的选择、输入输出通道设计。该系统采用层次化、模块化设计,整个系统由数据采集系统、单片机控制系统、计算机监控系统组成。进行了调试和仿真,包括硬件仿真和软件仿真,完成数据的采集和处理
本课题是以80C51单片机系统为核心,能对四点的温度进行实时检测。通过单片机的处理,可以使液晶显示器LCD显示四点温度。再经过按键设定温度报警上下限,系统设定阀值,若超限实时报警。
2.课题总体的系统设计
本设计由两大部分组成:硬件设计和软件设计。
1)硬件设计:主要包括整个系统控制核心的选择(单片机和传感器)、温度显示器件的选择、复位及晶振电路设计、蜂鸣器报警电路设计及温度上下限报警电路设计等。系统由单片机控制,能够接收传感器的温度数据并显示出来,可以从键盘输入命令,系统根据命令,选择对应的温度传感器,并由显示器对温度显示。
本课题选用80C51单片机作为主控制器,测温器件选用智能数字温度传感器DS18B20,键盘设计采用独立式按键电路来完成需要实现的功能,显示电路选用RT1602型号LCD液晶显示器显示四点温度及阀值,复位电路采用上电复位开关电路等。本课题设计了一种合理、可行的单片机监控软件,完成测量和显示的任务。由于单片机具有强大的运算和控制功能,使得整个系统具有模块化、硬件电路简单以及操作方便等优点。
2)软件设计:与机器语言、汇编语言相对比,本系统选择高级语言C语言编程。系统进行软件设计时,先要对本课题硬件有一个熟练的掌握,知道系统的组成,数据的传输,信号是如何被控制的,以及信号的显示。然后进行软件设计时,先搞清楚各个部分的子程序及他们的流程图,然后进行C语言编程,最后将它们系统的编程。
本课题系统主程序流程是首先要对系统的各个模块初始化,先执行测温子程序,获取外界的温度值送单片机进行处理,调用相应的显示子程序,对获取的温度显示。然后单片机对按键所连接的引脚进行巡回检测,若为低电平,说明有键被按下,执行相应的按键功能,对温度上下限的设定值进行调整并显示在LCD液晶显示器。若检测到返回键为低电平,则回到原来的测温状态,此时的报警上下限的设定值已经修改,系统根据此设定值和主程序,判断是否需要调用报警子程序和蜂鸣器响起子程序。
3.设计过程中要注意的问题
1)在DS18B20的有关资料中都没有提到单总线上需要挂接传感DS18B20数量问题,致使让人们误理解可以连接无穷多个DS18B20,事实上并非如此。只要单总线上连接的传感器DS18B20超过8个时,必须解决单片机的总线驱动这个难题。
2)硬件电路的简单是以软件的复杂为代价的,因此在程序的编写与调试的过程当中稍一粗心就会出现错误,包括时间延时不够长,设置参数的类型有错误。
3)在系统安装及工作之前应将主机逐个与DS18B20挂接,以读出其序列号。此外,由于DS18B20的单线通信功能为分时段完成,遵循严格的时间间隙的概念,因此,对DS18B20的每一个操作都得按照标准的协议来进行。
4.结论
本文利用PROTEUS与KEILC51对单片机四点温度测量系统进行了仿真设计。从本文结果可以看出,利用PROTEUS进行单片机系统的仿真设计可以极大地简化单片机程序在目标硬件上的调试工作,大幅度节省制作电路板的时间和成本,对于提高产品的开发效率、降低开发成本等有重要的意义。
该软件程序经过反复的调试和修改,虽然能够达到预期的目标,但是还有很多地方需要修改完善,如开始仿真时机器会扫描错误代码而使电路报警,还可以利用剩余的输入/输出口挂接更多的DS18B20等。通过分析对比各种不同的温度传感器,选定DS18B20,这种单总线数字温度传感器的通信方式比较独特新颖,软件编写的比较易懂,特点突出。
关键词: 温度测量温度传感器DS18B20单片机
第三篇:优秀毕业设计(论文)评选办法
为了提高学院学生毕业设计(论文)质量,学院决定每年进行一次优秀毕业设计(论文)评选活动,具体实施办法如下:
一、参评对象和比例
应届毕业生毕业设计(论文)。评选比例不超过应届毕业生毕业设计(论文)总数的10%,评选工作应本着宁缺毋滥的原则从严进行。
二、评选程序
1.填写推荐表。按照学院优秀毕业设计(论文)标准和学生答辩情况,指导教师提出推荐意见;
2.各系评选。系评选小组按照优秀设计(论文)评选标准进行初步评审,写出评审意见;
3.将参评学生推荐表、学生设计(论文)光盘一份及其他有关资料于毕业设计(论文)答辩完毕两周内,送交实验中心;
4.实践中心组织专家组进行评审,选出院级优秀设计(论文);
5.经主管院长审核批准后正式公布“院级优秀毕业设计(论文)”名单,并将评选出的优秀毕业设计(论文)汇编成册。
三、评选标准
www.xiexiebang.com【xiexiebang.com范文网】
1.选题科学,符合本专业培养目标要求和社会经济发展的要求;
2.能较好地提出论文论证方案,具有分析整理各类信息并从中获取新知识的能力;
3.论文撰写结构严谨,文字通顺,用语规范,符合规范化要求
4.对所述问题有独到见解,论文的观点和方法具有创新性,答辩表现出色。
四、奖励办法
1.学院向获奖学生颁发院级优秀毕业设计(论文)证书;
2.向院级优秀毕业设计(论文)的指导教师颁发奖金。
第四篇:优秀毕业设计(论文)摘要[模版]
天津市万科公司办公楼设计
系:土木工程系班级:土木0701班
姓名:杨嫚学号:07111138
指导教师:王邵臻
摘要
1.课题背景及工程概况
随着社会的进步和科学技术的发展,特别是在国家加快城市建设、发展新农村政策的推动下,建筑业越发蓬勃。近几年来,我国建筑业飞速发展,继2008年北京奥运会建造了地标性的建筑:国家体育场(鸟巢)、国家游泳中心(水立方)后,2010年上海又成功举办了世博会,建造了世博会大大小小两百多个场馆,且每个场馆都各有特色,除此之外地铁和城际高速铁路等交通设施建设也都在紧锣密鼓的进行,像2008年后通车的有沪杭高铁、武广高铁、郑西高铁等。
近年来,世界各地的钢筋混凝土框架结构的发展很快,应用很多。框架结构既要承受竖向荷载,又要承受水平风荷载,在地震区还要承受地震作用。由于水平方向风荷载和水平地震作用,除了沿结构两个主轴方向作用外,还可沿结构的任意方向作用,为了提高框架结构的侧向刚度,特别是要提高框架结构的抗扭刚度,以满足弹性位移角限值、弹塑形角限值、扭转位移比限值和扭转周期比限值等要求,要将框架结构设计成双向梁柱刚接的抗侧力体系,而且设计时还应尽量使框架结构两个方向的抗震能力相接近。所以说,提高框架结构的抗扭刚度,可以避免框架结构在地震发生时因扭转效应而导致结构严重破坏甚至倒塌。尤其是近年来世界各地频繁发生地震,保证建筑结构的稳定性尤为重要。
此次是关于天津市万科公司办公楼的设计,该建筑的主要用途是公司员工日常办公和接待公司客户,是该公司的主要构成部分。
万科公司办公楼位于天津市河东区,设计采用混凝土框架结构,长54m,宽15m,主体结构层数为三层;层高均为3.6m,室内外高差为0.45m;框架梁、柱及板均为现浇;屋面板顶面标高为10.8m。该工程是办公建筑,是行政管理人员的工作场所。在设计上以规整的一字形安排平面,充分利用场地。本工程的建筑抗震设防烈度7度,抗震等级为三级,场地土类别为二类。该建筑结构耐火等级为二级,使用年限达到50~100年,符合二级建筑耐火年限。该工程是一座以办公为主的现代建筑,力求充分体现现代化的特点。在整体造型上突出现代、新颖,做到简洁、明快、虚实相接、刚柔相济,给人以蓬勃向上的感觉。
2.办公楼设计的内容及方法
本设计由两大部分组成:建筑设计和结构设计。
建筑设计:
建筑物名称:天津市万科公司办公楼。
建筑设计主要包括建筑设计说明书和建筑设计图纸。根据办公楼的使用功能、自然条件和建筑设计规范确定建筑所能容纳的人数、房间的尺寸、门窗的开启方向、楼梯的踢面宽度等。建筑主要由门厅、办公室、会议室、值班室、储藏室、配电间、卫生间、走廊、楼梯等组成。在满足建筑制图标准的条件下,综合考虑建筑布置方案和当地的气象、地质条件,绘制首层平面图和剖面图。
设计要求:该建筑开间和跨度较大,要求布置灵活。同时,考虑到该建筑处于7度地震区,故选用框架结构。由于将承受纵、横向水平地震作用,选用纵、横向承重框架体系。依据相关建筑标准、规范的要求,该建筑离城市道路红线至少3m,与相邻基地之间应在边界红线范围以内留出防火通道或空地,建筑物的高度不应影响邻近建筑物的最低日照要求,建筑物应具备一定的稳定性和安全性,抗震设防烈度为7度,防火按二类二级设计。除此之外,还应满足建筑功能的需求,使得人流、物流方便有效地运行;要符合所在地规划发展的要求并有良好的视觉效果;采用合理的技术措施,以提高效率降低能耗,达到可持续发展的目的。结构设计:
结构设计主要是进行结构的内力计算,严格按照《荷载规范》、《混凝土结构设计规范》,查阅了《结构力学》、《抗震结构设计》、《钢筋混凝土结构设计》等中的设计方法对本工程进行结构设计。结构计算主要包括以下几个步骤:
(1)确定柱网尺寸及结构布置:
该结构采用全现浇混凝土框架结构,根据结构框架的布置要求及建筑平面布置的原则来确定柱网尺寸。
(2)梁、柱截面尺寸的确定:
梁截面尺寸的确定:主梁高度为跨度的1/8~1/12,宽为高的1/3~1/2;次梁高度为跨度的1/18~1/12,宽为高的1/3~1/2。
柱截面尺寸由轴压比确定:即按公式:N/fcAc<0.9(三级抗震)来确定柱截面尺寸。
(3)水平荷载计算:
包括横向框架地震荷载和风荷载的计算。根据荷载规范采用集中质量法计算各楼层重力荷载代表值Gi。
计算梁、柱线刚度:在框架结构内力与位移计算中,现浇楼面可视作框架梁的有效翼缘,框架边梁惯性矩取矩形梁的1.5倍,框架中梁惯性矩取矩形梁的2倍。
在地震荷载作用下,用D值法计算结构的自震周期,然后用底部剪力法计算剪力,计算横向各层等效地震力,根据计算结果,必须考虑顶部附加水平地震作用力的影响。
(4)竖向荷载计算:
包括横向框架的竖向恒载和活载的计算。
恒载由构件自重、装修等材料的重量,按一定的传力途径计算出框架的横梁上的线荷载及柱上的集中力,求出梁的固端弯矩,然后用二次弯矩分配法计算梁、柱的弯矩,用弯矩分配法时采用分层法计算各层弯矩,再进行叠加,求出最后平衡弯矩,再由平衡条件求出梁柱剪力和轴力,并且绘制一榀框架的弯矩图、剪力图和轴力图。
活载计算过程同恒载。
(5)内力组合:
框架横梁的控制截面是支座截面和跨中截面,支座处一般产生-Mmax和Vmax,跨中截面产生Mmax。柱的控制截面在柱的上、下端。恒载、活载、风载和地震荷载都分别按各自规律布置进行内力分析,恒载,活载取支座上部弯矩为负,下部弯矩为正;风载、地震荷载均考虑左右两个方向,然后取出各个构件控制截面处的内力,最后在若干组不利内力中选取几组最不利的内力作为构件截面的设计内力。
(6)梁、柱截面设计:
在梁的配筋计算中,分为正截面计算和斜截面计算。正截面计算主要是取梁端最大负弯矩、跨中最大正弯矩来配梁的纵筋。斜截面计算主要是取梁端最大剪力来配梁的箍筋,同时考虑地震剪力的影响。梁端箍筋加密区也要按构造要求来配置。
柱的正截面计算中。柱的弯矩和轴力组合共考虑了三种组合,即|M|max及相应的N;Nmax及相应的M;Nmin及相应的M,取最大的为最终配筋依据。
3.设计过程中应注意的问题
绘制施工图,一般情况下,一个图样应选用一种比例。根据专业制图需要,同一图样可选用两种比例。
设计交通联系部分时,要保证安全、合理、便捷,要充分考虑在最不利情况下应对安全疏散所需的时间以及通道的宽度和距离等。
要尽量避免短柱,短柱箍筋应全高加密,短柱纵筋不宜过大。
框架外挑梁配筋,由于占地面积的限制、使用功能的要求或结构上的原因,工程上常在框架的梁端设计挑梁。由于框架梁的荷载与外挑梁的实际荷载值不同,所以框架梁与外挑梁的断面尺寸会有所不同,框架梁外挑梁下常设置钢筋混凝土柱。
4.结论
我的毕业设计课题是天津万科办公楼,其中包括建筑设计,结构设计两部分。通过这两部分的设计使我对大学以来所学的各门课程有了一个系统而全面的了解,加深了各专业课程知识的融会贯通。
建筑设计是对拟建建筑物预先进行设想和规划,根据建筑物的用途和要求确定其各部分的形状和尺寸,并将各部分有机地组织到一起,创造出优美协调的建筑空间环境。从中,我进一步理解民用建筑设计原理和构造的基础知识,掌握建筑施工图的设计方法和步骤,提高绘制和识别建筑施工图的基本技能。根据办公楼的特点,确定了其结构形式为钢筋混凝土框架结构。
在结构设计中,根据荷载规范,正确计算作用在框架上的荷载值;掌握了框架结构的内力分析方法,学会了内力组合;根据控制截面的不利内力值和截面的尺寸进行配筋和节点构造设计。
在设计的过程中我严格按照最新规范及有关规定进行设计,其中采用的计算方法均参照有关书籍。整个方案设计基本符合设计和结构要求,具有一定的合理性。通过此次的毕业设计,我深深地认识到各种规范和规定是设计的灵魂,一定要好好把握。
关键词:框架结构,建筑设计,结构设计,抗震设计
The design of Tianjin wanke office building
Abstract
The wanke company office is located in HeDong District, Tianjin.This project uses concrete frame structure, 54 meters, 15 meters wide, the main structure for the three layers;storey are 3.6m, indoor and outdoor with the height difference 0.45m;frame beams, columns and panels are cast;housing Panel top elevation of 10.8m.The project is a office building, is the administrative staff in the workplace.Designed to shape the arrangements of a regular plane, full use of space.The construction of the project seismic intensity of 7 degrees for the three seismic level, site soil types into two categories.This structure fireproof rank as secondary, use fixed number of year of up to 50 to 100 years, accord with secondary architectural fireproof fixed number of year.The project is a modern building with office-based, and strive to fully reflect the modern features.Prominent in the overall shape of modern, innovative, be concise, crisp, deficiency and excess phase, hardness and softness, gives a vigorous feeling.The design includes architectural design and structural design of two parts.After the first building in accordance with the structure and layout of the overall after the first local node design steps design.Which include engineering in building design and construction information design conditions.According to office use and building design to determine the number of buildings can accommodate, the size of the room, doors and windows open direction, the width of the stairs of the play surface.Mainly by the construction lobby, offices, conference rooms, duty room, storage room, power distribution room, bathroom, corridors, staircases and other components.Meet the conditions of construction drawings, considering the building layout plan and the local meteorological and geological conditions, drawing floor plans and sections.The structure design, the mission of the frame structural design mainly have: the type selection ,the size of beams、pillars、walls etc., the gravity load calculation, the calculation of internal force and lateral moving in the function of the horizontal force, the internal force analysis of the crosswise frame in the function of the horizontal earthquakes, the internal force analysis of the crosswise frame in the function of the vertical load and also includes the dint combine、section design、foundation design.Foundation design also concludes footing layout selection, footing plane disposition, and foundation calculation.The whole project design is basic to match the design and the structure request, have certain rationality.Through the design of the structure of the office building, acquainted with the whole processes of design, controlled the calculating basic method of the structure design, completed the graduation design mission creately.At the same time, had deeper comprehension to professional knowledge and basic concept learn, improved the ability of the analysis solve definitely physically problem.Key Words:frame structure,architectural design,structural calculation,anti-seismic design
第五篇:毕业设计(论文)
[在此处键入]
日照职业技术学院毕业设计(论文)
php许愿墙系统
学生姓名
院 部电子信息科学与工程学院 专 业计算机应用技术 指导老师
日 期 2015-05-19
目录
一 许愿墙简介..........................................................................................................................................4 二 许愿墙设计原理..................................................................................................................................4 三 四 五 PHP技术介绍...................................................................................................................................4 PHP技术优点...................................................................................................................................4 MYSQL介绍......................................................................................................................................6
六 许愿墙系统的概要设计......................................................................................................................6(一)系统开发环境...............................................................................................................................6(二)php语言选择...............................................................................................................................6(三)系统功能.......................................................................................................................................7 七 许愿墙详细设计..................................................................................................................................7(一)数据库设计...................................................................................................................................7(二)许愿墙数据库连接 写入和保存..................................................................................................8(三)许愿墙文件夹中文件的介绍.....................................................................................................13(四)许愿墙首页设计.........................................................................................................................13 八 许愿墙特色和不足............................................................................................................................15
第1页
许愿墙系统
摘要:随着Internet的发展,网站的作用越来越重要,被称之为继广播、报纸、杂志、电视后的
第五种媒体——数字媒体,拥有众多优势,所以现在不少企业都有或正在建设自己的网站。而许愿墙作为网站重要的一个部分,从来就是一个大家交流的平台!许愿墙是一种最为简单的BBS应用,借助许愿墙,浏览者可以张贴留言的方式给站长、版主或其他浏览者进行留言和提问。
本文主要介绍许愿墙系统的设计思路和制作过程,从许愿墙的重要性开始,介绍我的留言版采用的PHP技术和MYSQL数据库,进而阐述整个许愿墙系统的制作过程和具体的设计思路。该许愿墙较全面地利用PHP技术实现许愿墙的基本功能:留言、回复、删除,并增加了一些特色功能。最后介绍自己在设计过程的心得体会。
关键词:许愿墙,PHP,MYSOL数据库
第2页
引言
Internet起源于20世纪60年代末、70年代初,当时,美国国防部为了将充斥于军事基地内各种厂商的电脑主机互连,让它们可以进行数据交换以便研究工作顺利进行,于是成立了ARPA网络计划。ARPA计划尝试建设1个网络系统,它可将各种不同厂商的电脑连接起来。随着这个计划的成功,各学术单位,研究机构也纷纷与ARPA计划所建立的ARPANet连接。到了20世纪80年代,Internet这个名词因势产生,它代表着这10年来所构建涵盖全球各地的网络系统。从1990年起,商业使用的Internet在美国急速地扩大,而Internet也从原来属于少数人使用的网络系统转变为普通百姓也能够使用的网络系统。
最初的Internet资源服务都还停留在文本模式,1989年,量子物理实验室(CERN)下的1个研究小组着手开发1种全新的Internet服务,它可以在网络上传送图片、文本、影像、声音等多媒体数据。于是由Tim Berners Lee领导的小组开发出了1种主从、分布式的网络服务系统,这就是www.xiexiebang.compile编译或链接程序,可在服务器端直接执行,这无疑是更加方便了我们的编写过程。
2、使用编程环境方便简单。可以使用普通的记事本之类的文本编辑器,即可进行编辑设计,如:Windows的记事本、FrontPage等文本编辑器。也可以用dreamweaver和专业的Microsoft Visual InterDev开发工具。
3、浏览网页方便,交互速度也快。PHP是运行在服务器端,所以我们无须担心浏览器是否支持PHP所使用的编程语言,用户端只要使用可执行HTML码的浏览器,即可浏览Personal home pages所设计的网页内容。PHP在服务器端运行,当程序执行完毕后,服务器仅将执行的结果返回给客户浏览器,这样也就减轻了客户端浏览器的负担,大大提高了交互的速度。
4、提供多种编程语言。PHP能与任何ActiveX scripting语言相容。除了可用VBScript或JScript语言来设计外,还通过plug-in的方式,使用由第三方所提供的其他脚本语言,譬如Perl等。
5、提高代码的安全性。Personal home pages的程序代码隐藏,已编码的脚本在运行时由脚本引擎解码,因此不需要单独的应用程序。客户端上仅可以看到由PHP输出的动态HTML文件。因而可以避免所写的源程序被他人剽窃,也提高了程序的安全性。
6、功能强大。编程是面向对象的(Object oriented),并可扩展ActiveX Server组件功能。Personal home page Components(ActiveX服务器组件)具有无限可扩充性。你可以使用任何编程语言来编写你所需要的Personal Server 组件。可以使用Visual Basic、Java、Visual C++、COBOL等编程语言来编写你所需要的Personal Server Component。也可以使用第三方组件或自己开发的Personal Server组件。理论上说,可以实现任何功能。
7、访问数据库十分方便。可以通过PDO(Personal Data Objects,微软的一种新的数据访问模型,是一种可以提供WEB页面开发者轻松存取Internet的数据库,并可以在用户端实现网上立即、即时更新显示的最新WEB页面数据库技术。)非常方便地访问数据库。总之,PHP从字面上说,包含三方面含义:
1.Personal:PHP使用了微软的Personal技术。Personal(COM)技术是现在Microsoft软件的重要基础。它采用封装对象,程序调用对象的技术,简化编程,加强程序间合作。PHP本身封装了一些基本组件和常用组件,有很多公司也开发了很多实用组件。只要你可以在服务器上安装这些组件,通过访问组件,你就可以快速、简易地建立自己的WEB应用。2.home:PHP运行在服务器端。这样就不必担心浏览器是否支持PHP所使用的编程语言。PHP的编程语言可以是VBSCRIPT和JSCRIPT。VBSCRIPT是VB的一个简集,会VB的人可以很方便的快速上手。然而NETscape浏览器不支持客户端的VBSCRIPT,所以最好不要在客户端使用VBSCRIPT。而在服务器端,则无需考虑浏览器的支持问题。NETscape浏览器也可以正常显示PHP页面。
3.page:PHP返回标准的HTML页面,可以正常地在常用的浏览器中显示。浏览者查看页面源文件时,看到的是PHP生成的HTML代码,而不是PHP程序代码。这样就可以防止别人抄袭程序。由此可以看出,PHP是在IIS下开发WEB应用的一种简单、方便的编程工具。在了解了VBSCRIPT的基本语法后,只需要清楚各个组件的用途、属性、方法,就可以轻松编写出自己的PHP系统。而我这次所开发的留言本系统,主要是利用PHP技术的简单和实用的特点,以及PHP使用的广泛性,而且非常适合于网络中小型系统开发。
第5页
五 MYSQL介绍
MySQL是一个小型关系型数据库管理系统,开发者为瑞典MySQL AB公司。在2008 年1月16号被Sun公司收购。而2009年,SUN又被Oracle收购.对于Mysql的前途,没有任何人抱乐观的态度.目前MySQL被广泛地应用在Internet上的中小型网站中。由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,许多中小型网站为了降低网站总体拥有成本而选择了MySQL作为网站数据库。
1.使用C和C++编写,并使用了多种编译器进行测试,保证源代码的可移植性 2.支持AIX、FreeBSD、HP-UX、Linux、Mac OS、Novell Netware、OpenBSD、OS/2 Wrap、Solaris、Windows等多种操作系统
3.为多种编程语言提供了API。这些编程语言包括C、C++、Python、Java、Perl、PHP、Eiffel、Ruby和Tcl等。
4.支持多线程,充分利用CPU资源
5.优化的SQL查询算法,有效地提高查询速度
6.既能够作为一个单独的应用程序应用在客户端服务器网络环境中,也能够作为一个库而嵌入到其他的软件中提供多语言支持,常见的编码如中文的GB 2312、BIG5,日文的Shift_JIS等都可以用作数据表名和数据列名
7.提供TCP/IP、ODBC和JDBC等多种数据库连接途径 8.提供用于管理、检查、优化数据库操作的管理工具 9.可以处理拥有上千万条记录的大型数据库
六 许愿墙系统的概要设计
(一)系统开发环境
基于微软平台PHP环境,使用MYSQL数据库。适用于IE4.0以上版本浏览器,Win2000+APACHE 或winxp+APACHE以上运行环境。(本人用的winxp+APACHE测试)。
(二)php语言选择
选择一个好的编程语言十分的重要,当前,面对众多的编程语言,很多人无从选择,而本人看到PHP的以上众多特点,个人认为:
MYSQL后台数据库+PHP服务器端程序+客户端IE浏览器,是一个精练实用高效的组合模式。在这种使用模式中,PHP程序无疑是最重要的,是沟通客户端和后台数据库之间的桥梁。在PHP程序中,通过数据库语言,建立对MYSQL数据库的连接,是客户能够访问后台数据库的前提。
鉴于前面介绍PHP优点的原因,又有上面组合的优势,本人的许愿墙使用PHP语言也是十分正确而实用的。
第6页
(三)系统功能
该许愿墙具有的主要功能如下:
1.可以按照发言时间的先后顺序,许愿墙自动排序; 2.许愿墙的主要栏目组成图
3.本许愿墙不需注册,陌生人即可留言。
七 许愿墙详细设计
有了技术和流程图以及许愿墙要实现的功能,接下来就应该进行详细设计了。数据库是首当其冲的,接下来就是用户常接触的首页的设计,然后就是该许愿墙特色功能的设计和实现。
(一)数据库设计
我的数据库采用的是MY SQL数据库,采用的原因也已经介绍了。以下就介绍许愿墙数据库的组成。
第7页
(二)许愿墙数据库连接 写入和保存
数据库链接失败!”;
exit();} mysql_select_db(“gbook”, $con);mysql_query(“set names 'gb2312'”);date_default_timezone_set(PRC);?>
$sessSavePath = LOVE_ROOT.“data/sessions/”;if(is_writeable($sessSavePath)&&is_readable($sessSavePath)){ session_save_path($sessSavePath);} date_default_timezone_set(Singapore);$timestamp = time();require_once LOVE_ROOT.'./data/config.inc.php';require_once LOVE_ROOT.'./data/db.inc.php';require_once LOVE_ROOT.'./include/db_mysql.class.php';require_once LOVE_ROOT.'./include/template.class.php';if(defined('UC_KG')){include_once TM_ROOT.'/uc_client/client.php';} $PHP_SELF = $_SERVER['PHP_SELF'] ? $_SERVER['PHP_SELF'] : $_SERVER['SCRIPT_NAME'];
第8页
$SCRIPT_FILENAME = str_replace('', '/',($_SERVER['PATH_TRANSLATED'] $_SERVER['PATH_TRANSLATED'] : $_SERVER['SCRIPT_FILENAME']));//$homeurl = 'http://'.$_SERVER['HTTP_HOST'].preg_replace(“//+(api|archiver|wap)?/*$/i”, substr($PHP_SELF, 0, strrpos($PHP_SELF, '/'))).'/';
? '', //实例化数据库操作 $db = new dbstuff;$db->connect($dbhost, $dbuser, $dbpw, $dbname, $pconnect);unset($dbhost, $dbuser, $dbpw, $dbname, $pconnect);$db->query(“set names gbk”);if(getenv('HTTP_CLIENT_IP')&&strcasecmp(getenv('HTTP_CLIENT_IP'), 'unknown')){ $onlineip = getenv('HTTP_CLIENT_IP');} elseif(getenv('HTTP_X_FORWARDED_FOR')&&strcasecmp(getenv('HTTP_X_FORWARDED_FOR'), 'unknown')){ $onlineip = getenv('HTTP_X_FORWARDED_FOR');} elseif(getenv('REMOTE_ADDR')&&strcasecmp(getenv('REMOTE_ADDR'), 'unknown')){ $onlineip = getenv('REMOTE_ADDR');} elseif(isset($_SERVER['REMOTE_ADDR'])&& $_SERVER['REMOTE_ADDR'] &&strcasecmp($_SERVER['REMOTE_ADDR'], 'unknown')){ $onlineip = $_SERVER['REMOTE_ADDR'];}
preg_match(“/[d.]{7,15}/”, $onlineip, $onlineipmatches);$onlineip = $onlineipmatches[0] ? $onlineipmatches[0] : 'unknown';unset($onlineipmatches);?>
var $dbhost;var $dbuser;var $dbpw;var $dbcharset;var $pconnect;var $tablepre;var $time;
var $goneaway = 5;
function connect($dbhost, $dbuser, $dbpw, $dbname = '', $dbcharset = '', $pconnect = 0, $tablepre='', $time = 0){
$this->dbhost = $dbhost;
第9页
$this->dbuser = $dbuser;
$this->dbpw = $dbpw;
$this->dbname = $dbname;
$this->dbcharset = $dbcharset;
$this->pconnect = $pconnect;
$this->tablepre = $tablepre;
$this->time = $time;
if($pconnect){
if(!$this->link = mysql_pconnect($dbhost, $dbuser, $dbpw)){
$this->halt('Can not connect to MySQL server');
}
} else {
if(!$this->link = mysql_connect($dbhost, $dbuser, $dbpw)){
$this->halt('Can not connect to MySQL server');
}
}
if($this->version()> '4.1'){
if($dbcharset){
mysql_query(“SET character_set_connection=”.$dbcharset.“, character_set_results=”.$dbcharset.“, character_set_client=binary”, $this->link);
}
if($this->version()> '5.0.1'){
mysql_query(“SET sql_mode=''”, $this->link);
}
}
if($dbname){
mysql_select_db($dbname, $this->link);
}
}
function fetch_array($query, $result_type = MYSQL_ASSOC){
return mysql_fetch_array($query, $result_type);}
function result_first($sql){
$query = $this->query($sql);
return $this->result($query, 0);}
第10页
function fetch_first($sql){
$query = $this->query($sql);
return $this->fetch_array($query);} function fetch_row($query){
$query = mysql_fetch_row($query);
return $query;} function fetch_fields($query){
return mysql_fetch_field($query);} function fetch_rows($sql){
$result = $this->query($sql);
$arr = array();
while($row = $this->fetch_array($result))
{
$arr[] = $row;
}
$this->free_result($result);
return $arr;} function fetch_one($sql){
$rs = $this->query($sql);
$arr = $this->fetch_array($rs,MYSQL_NUM);
$this->free_result($rs);
return $arr[0];} function fetch_all($sql, $id = ''){
$arr = array();
$query = $this->query($sql);
while($data = $this->fetch_array($query)){
$id ? $arr[$data[$id]] = $data : $arr[] = $data;
}
return $arr;}
function cache_gc(){
$this->query(“DELETE FROM {$this->tablepre}sqlcaches WHERE expiry<$this->time”);}
function query($sql, $type = '', $cachetime = FALSE){ $func = $type == 'UNBUFFERED' && @function_exists('mysql_unbuffered_query')第11页
?
'mysql_unbuffered_query' : 'mysql_query';
if(!($query = $func($sql, $this->link))&& $type!= 'SILENT'){
$this->halt('MySQL Query Error', $sql);
}
$this->querynum++;
$this->histories[] = $sql;
return $query;}
function affected_rows(){
return mysql_affected_rows($this->link);}
function error(){
return(($this->link)? mysql_error($this->link): mysql_error());}
function errno(){
return intval(($this->link)? mysql_errno($this->link): mysql_errno());}
function result($query, $row){
$query = @mysql_result($query, $row);
return $query;}
function num_rows($query){
$query = mysql_num_rows($query);
return $query;}
function num_fields($query){
return mysql_num_fields($query);}
function free_result($query){
return mysql_free_result($query);}
function insert_id(){
return($id = mysql_insert_id($this->link))>= 0 ? $id : $this->result($this->query(“SELECT last_insert_id()”), 0);}
第12页
function version(){
return mysql_get_server_info($this->link);}
function close(){
return mysql_close($this->link);}
function halt($message = '', $sql = ''){
$error = mysql_error();
$errorno = mysql_errno();
if($errorno == 2006 && $this->goneaway--> 0){
$this->connect($this->dbhost, $this->dbuser, $this->dbpw, $this->dbname, $this->dbcharset, $this->pconnect, $this->tablepre, $this->time);
$this->query($sql);
} else {
$s = 'Error:'.$error.'
';
$s.= 'Errno:'.$errorno.'
';
$s.= 'SQL::'.$sql;
exit($s);
} } } ?>
(三)许愿墙文件夹中文件的介绍
有了数据库,就应该设计许愿墙的各个页面。本许愿墙由6个文件夹,11个文件组成,简单介绍各文件的作用:
index.PHP:许愿墙主页,主要功能是查看许愿,任何人都可以查看许愿信息。add.php添加愿望。footer.php页面尾部。head.php页面头部。list.php列表页面
message.htm首页留言贴样式
db_mysql.class.php.许愿墙与数据库的连接的文件。Css.css:本网站的样式控制。
(四)许愿墙首页设计
我许愿墙的首页文件index.PHP,功能主要是为访客留下相关的信息,并进行留言。
第13页
界面相对简单,但功能很实用!许愿墙的基本功能实现具体如下:
图7.1许愿首页
图7.2添加愿望
第14页
图7.3愿望列表
结束语:通过上面的介绍,相信对该许愿墙整体的构建和各项功能都有了一定的认识,最重要的是学会了许愿墙的设计以及类似网络的编程,更对实际操作和具体设计流程有了清晰的认识。该许愿墙实现了基本功能,并具有自己的特色,例如屏蔽关键字和防灌水功能。由于该许愿墙功能实用,而且界面友好,特别适合于中小型网站使用。对于刚刚接触网络编程人员的信心和兴趣也会有很大提高。
八 许愿墙特色和不足
特色:任何人都可以许愿,任何人都可以看到。无需注册和登录,完全开放。不足:没有添加管理员功能,队员王的管理功能较弱。
第15页