Web课程设计
课程设计web系统案例

课程设计web系统案例一、教学目标本课程的教学目标是使学生掌握Web系统的基本概念、设计和实现方法。
通过本课程的学习,学生应能够理解Web系统的体系结构,熟悉常见的Web开发技术和工具,了解Web系统的设计原则和开发流程,并具备基本的Web系统开发能力。
具体来说,知识目标包括:1.理解Web系统的定义、特点和应用领域;2.掌握Web系统的体系结构,包括客户端、服务器、数据库等;3.熟悉常见的Web开发技术,如HTML、CSS、JavaScript、HTTP等;4.了解Web系统的设计原则,如模块化、标准化、可扩展性等;5.掌握Web系统的开发流程,包括需求分析、系统设计、编码实现、测试等。
技能目标包括:1.能够使用HTML、CSS、JavaScript等基本Web开发技术编写简单的Web页面;2.能够使用HTTP协议和数据库技术实现简单的Web应用;3.能够根据需求分析进行Web系统的设计和规划;4.能够对Web系统进行测试和优化,提高系统的性能和稳定性。
情感态度价值观目标包括:1.培养学生的团队合作意识和解决问题的能力;2.培养学生对新技术的敏感性和持续学习的意识;3.培养学生对Web系统的安全性、隐私保护等问题的关注。
二、教学内容本课程的教学内容主要包括Web系统的基本概念、设计和实现方法。
具体的教学大纲如下:1.第一章:Web系统概述介绍Web系统的定义、特点和应用领域,Web系统的发展历程,Web系统的体系结构等。
2.第二章:Web开发技术介绍HTML、CSS、JavaScript等基本Web开发技术,以及HTTP协议、数据库技术等。
3.第三章:Web系统设计原则介绍Web系统设计的原则和方法,如模块化、标准化、可扩展性等。
4.第四章:Web系统开发流程介绍Web系统的开发流程,包括需求分析、系统设计、编码实现、测试等。
5.第五章:Web系统案例分析分析一些典型的Web系统案例,如电子商务、社交媒体、在线教育等,了解其设计理念和实现方法。
web网站课程设计实现功能

web课程设计实现功能一、教学目标本课程的教学目标是使学生掌握Web的基本设计原理和实现功能,培养学生运用Web技术进行创新的能力。
具体目标如下:1.知识目标:(1)了解Web设计的基本概念和原理;(2)掌握HTML、CSS和JavaScript等Web技术;(3)了解Web的实现流程和开发工具;(4)熟悉Web的安全性和优化方法。
2.技能目标:(1)能够运用HTML、CSS和JavaScript等Web技术创建简单的Web页面;(2)能够使用主流的Web开发工具进行开发;(3)具备Web调试和维护的基本能力;(4)能够针对具体需求设计和实现Web功能。
3.情感态度价值观目标:(1)培养学生对Web技术的兴趣和好奇心,提高学生的自主学习能力;(2)培养学生团队协作精神和沟通能力,提高学生解决实际问题的能力;(3)培养学生具有良好的创新意识和审美观念,提高学生对Web设计的综合素质。
二、教学内容本课程的教学内容主要包括以下几个部分:1.Web设计基本概念和原理:介绍Web的起源、发展历程和基本概念,使学生了解Web设计的重要性。
2.HTML、CSS和JavaScript技术:讲解HTML结构、CSS样式和JavaScript脚本的使用方法,培养学生创建和美化Web页面的能力。
3.Web实现流程和开发工具:介绍Web的实现流程,以及主流的Web开发工具,如HTML编辑器、CSS预处理器和JavaScript框架等。
4.Web安全性和优化方法:讲解Web的安全性问题和优化策略,提高学生建设和维护的能力。
5.实践项目:安排一定课时的实践项目,使学生在实际操作中掌握Web设计的方法和技巧。
三、教学方法本课程采用多种教学方法,以激发学生的学习兴趣和主动性:1.讲授法:讲解Web设计的基本概念、原理和技术,使学生掌握理论知识。
2.案例分析法:分析典型的Web案例,使学生了解Web设计的实际应用。
3.实验法:安排实践项目,让学生动手操作,提高实际操作能力。
web中课程设计都是设计啥

web中课程设计都是设计啥一、教学目标本章节的教学目标是使学生掌握Web课程的基本概念、原理和技能,能够运用Web技术进行简单的网页设计和开发。
具体包括:1.知识目标:了解Web技术的基本概念和原理,如HTML、CSS、JavaScript等;掌握Web页面设计的基本原则和方法。
2.技能目标:能够使用HTML编写网页结构,使用CSS进行页面布局和美化,使用JavaScript实现网页交互功能;能够运用Web技术进行简单的设计和开发。
3.情感态度价值观目标:培养学生对Web技术的兴趣和热情,提高学生运用Web技术解决实际问题的能力,培养学生的创新精神和团队协作意识。
二、教学内容本章节的教学内容主要包括Web技术的基本概念、原理和应用。
具体包括:1.HTML:介绍HTML的基本结构、标签和属性,如标题、段落、图片、链接等;掌握HTML的创建和编辑。
2.CSS:介绍CSS的基本语法和选择器,如内联样式、内部样式表、外部样式表;掌握CSS的布局模式和样式属性,如margin、padding、float等。
3.JavaScript:介绍JavaScript的基本语法和数据类型,如变量、运算符、字符串;掌握JavaScript的控制结构和方法,如if条件语句、for循环、function函数等。
4.网页设计原则:介绍网页设计的基本原则和方法,如布局、色彩、字体等;掌握网页设计的基本技巧和注意事项。
三、教学方法本章节的教学方法采用讲授法、案例分析法和实验法相结合的方式。
具体包括:1.讲授法:通过讲解和演示,使学生掌握Web技术的基本概念、原理和技能。
2.案例分析法:通过分析实际案例,使学生了解Web技术在实际应用中的方法和技巧。
3.实验法:通过上机实验,使学生亲自操作和实践,巩固和提高Web技术的应用能力。
四、教学资源本章节的教学资源包括教材、参考书、多媒体资料和实验设备。
具体包括:1.教材:选用权威、实用的Web技术教材,为学生提供系统的学习资料。
web网站课程设计前端加后端

web课程设计前端加后端一、教学目标本课程的学习目标包括知识目标、技能目标和情感态度价值观目标。
知识目标要求学生掌握Web的基本概念、前端和后端的技术原理及应用。
技能目标要求学生能够使用HTML、CSS、JavaScript等前端技术进行网页设计与开发,并掌握PHP、MySQL等后端技术进行数据处理与交互。
情感态度价值观目标培养学生的团队合作意识、创新思维和问题解决能力。
通过分析课程性质、学生特点和教学要求,明确课程目标,将目标分解为具体的学习成果,以便后续的教学设计和评估。
二、教学内容根据课程目标,选择和教学内容,确保内容的科学性和系统性。
本课程的教学大纲如下:1.Web基本概念:介绍Web的发展历程、基本组成和网络协议。
2.前端技术:学习HTML、CSS、JavaScript等前端技术,掌握网页设计与开发的基本方法。
3.后端技术:学习PHP、MySQL等后端技术,掌握数据处理与交互的方法。
4.项目实践:通过实际项目案例,培养学生独立完成设计与开发的能力。
教学内容安排和进度将根据学生的学习情况适时调整,以确保教学目标的实现。
三、教学方法选择合适的教学方法,如讲授法、讨论法、案例分析法、实验法等,以激发学生的学习兴趣和主动性。
结合本课程的特点,采用以下教学方法:1.讲授法:讲解基本概念、技术原理和关键知识点。
2.案例分析法:分析实际项目案例,引导学生学会运用所学知识解决实际问题。
3.实验法:让学生动手实践,提高实际操作能力。
4.小组讨论法:培养学生的团队合作意识和沟通能力。
四、教学资源选择和准备适当的教学资源,包括教材、参考书、多媒体资料、实验设备等。
教学资源应该能够支持教学内容和教学方法的实施,丰富学生的学习体验。
1.教材:选用权威、实用的教材,如《Web前端与后端开发实战》。
2.参考书:提供相关领域的经典著作和最新技术资料。
3.多媒体资料:制作精美的课件、视频教程等,帮助学生更好地理解知识。
web设计基础课程设计

web设计基础课程设计一、课程目标知识目标:1. 理解Web设计的基本概念,掌握HTML、CSS和JavaScript的基础知识;2. 学习常见的网页布局方法,掌握网页设计的结构、表现和行为三部分;3. 了解Web设计中的用户体验和界面设计原则。
技能目标:1. 能够运用HTML创建网页结构,使用CSS进行网页样式设计和布局;2. 掌握使用JavaScript实现简单的交互效果,如动态内容加载、表单验证等;3. 能够运用Web设计原则和规范,设计出符合用户需求的网页。
情感态度价值观目标:1. 培养学生对Web设计的兴趣和热情,激发他们的创新意识和探索精神;2. 培养学生团队协作能力和沟通表达能力,让他们在学习过程中体验到合作与分享的快乐;3. 增强学生对网络信息安全和法律法规的认识,引导他们树立正确的网络道德观念。
课程性质:本课程为实践性较强的学科,注重培养学生的动手操作能力和实际应用能力。
学生特点:学生具备一定的计算机操作基础,对网络和新技术有较高的兴趣,但可能缺乏系统的Web设计知识。
教学要求:结合学生特点,以实践为主,理论联系实际,注重培养学生的实际操作能力和创新能力。
在教学过程中,关注学生的个体差异,提供有针对性的指导,确保每位学生都能达到课程目标。
通过分解课程目标为具体的学习成果,便于后续教学设计和评估。
二、教学内容1. 网页设计基础知识:- 网页设计概述:网页的概念、组成和分类;- 网页设计的基本原则:页面布局、色彩搭配、字体选用等;- 网页设计的流程:需求分析、设计、编码、测试和发布。
2. HTML和CSS基础:- HTML基本语法和标签:文档结构、文本、链接、图片、表格等;- CSS基本语法和属性:选择器、字体、颜色、背景、边框、盒模型、布局等;- 网页布局方法:固定布局、流体布局、响应式布局等。
3. JavaScript基础:- JavaScript语法和基本概念:变量、数据类型、运算符、控制结构等;- 函数和事件处理:函数定义、调用、事件绑定和触发;- DOM操作:获取和修改元素、添加和删除节点、属性操作等。
web课程设计报告附源码

web课程设计报告附源码一、课程目标知识目标:1. 学生理解Web开发的基本概念,掌握HTML、CSS和JavaScript的基础知识;2. 学生能运用所学知识,设计并实现一个简单的静态网页;3. 学生了解Web前端框架的作用,学会使用至少一种常见框架进行页面布局和样式设计;4. 学生掌握基本的网站发布流程,了解网站优化的基本方法。
技能目标:1. 学生能够独立完成网页的编写和调试,具备基本的Web开发能力;2. 学生通过实践操作,提高问题解决能力和团队协作能力;3. 学生学会运用网络资源进行自主学习,提高学习效率。
情感态度价值观目标:1. 学生培养对Web开发的兴趣,激发学习编程的热情;2. 学生在团队合作中,学会相互尊重、沟通和协作,培养团队精神;3. 学生了解网络安全和知识产权的重要性,树立正确的网络道德观念。
课程性质:本课程为实践性较强的学科,注重培养学生的动手能力和实际问题解决能力。
学生特点:学生在本年级已具备一定的计算机操作能力,对新鲜事物充满好奇,但编程基础薄弱。
教学要求:结合学生特点,采用案例教学和项目驱动教学法,使学生在实践中掌握Web开发技术,提高实际操作能力。
同时,注重培养学生的自主学习能力和团队协作精神,提高学生的综合素质。
通过分解课程目标为具体的学习成果,为后续的教学设计和评估提供依据。
二、教学内容1. 基础知识模块:- HTML:文本、链接、图片、列表、表格、表单等基本标签的用法;- CSS:选择器、字体样式、文本样式、颜色、背景、盒模型、浮动、定位等基本属性;- JavaScript:变量、数据类型、运算符、流程控制、函数、事件处理、DOM 操作等基本概念。
2. 实践操作模块:- 使用HTML和CSS设计静态网页;- 应用JavaScript实现简单的交互效果;- 利用Web前端框架(如Bootstrap)进行页面布局和样式设计;- 网站发布和优化。
3. 教学内容安排与进度:- 第一周:HTML基础,完成基本页面结构设计;- 第二周:CSS基础,实现页面样式设计;- 第三周:JavaScript基础,实现简单的交互效果;- 第四周:Web前端框架的应用,进行页面布局和样式设计;- 第五周:网站发布和优化,总结与评价。
web前端课程设计个人网页设计

web前端课程设计个人网页设计一、教学目标本课程的学习目标包括:知识目标:学生能够理解并掌握HTML、CSS和JavaScript的基本概念和用法,能够运用这些知识构建基本的个人网页。
技能目标:学生能够通过实践,掌握使用HTML编写网页结构、使用CSS进行页面样式设计和使用JavaScript实现交互功能的能力。
情感态度价值观目标:学生能够体验到web前端开发的乐趣,培养对技术的热爱和积极探索的精神,提高自我学习和解决问题的能力。
二、教学内容教学内容将按照教材的章节进行,包括:第1章:Web前端基础,介绍HTML、CSS和JavaScript的基本概念。
第2章:HTML页面结构,学习如何使用HTML编写网页的结构。
第3章:CSS页面样式设计,学习如何使用CSS进行页面样式设计。
第4章:JavaScript交互功能,学习如何使用JavaScript实现网页的交互功能。
三、教学方法本课程将采用讲授法、案例分析法和实验法进行教学:讲授法:通过讲解和演示,让学生掌握Web前端的基本概念和用法。
案例分析法:通过分析实际案例,让学生理解并掌握如何构建个人网页。
实验法:通过实践操作,让学生亲手编写代码,培养其编程能力和解决问题的能力。
四、教学资源教学资源包括:教材:《Web前端开发教程》,作为主要的学习材料。
参考书:《HTML与CSS入门经典》,作为辅助的学习材料。
多媒体资料:包括教学PPT、视频教程等,用于辅助教学。
实验设备:计算机、网络等,用于实践操作。
五、教学评估教学评估将包括以下几个方面:平时表现:通过观察学生在课堂上的参与程度、提问和回答问题的表现来评估其学习态度和理解程度。
作业:布置与课程内容相关的作业,评估学生对知识的掌握和应用能力。
考试:定期进行考试,评估学生的综合理解和应用能力。
评估方式将力求客观、公正,全面反映学生的学习成果。
六、教学安排教学进度将按照教材的章节进行安排,确保在有限的时间内完成教学任务。
web的课程设计

web的课程设计一、课程目标知识目标:1. 学生能够理解Web的基本概念,掌握HTML、CSS和JavaScript的基础知识。
2. 学生能够运用Web技术构建静态网页,实现页面布局、样式设计和基本交互功能。
3. 学生了解Web前端框架的使用,能够使用至少一种框架进行网页开发。
技能目标:1. 学生能够运用HTML标签创建网页结构,使用CSS进行页面样式设计,运用JavaScript实现动态交互效果。
2. 学生能够使用Web开发工具,如VS Code、Sublime Text等,编写和调试代码。
3. 学生掌握基本的网络通信原理,能够实现前后端数据交互。
情感态度价值观目标:1. 培养学生对Web技术的兴趣和热情,激发他们主动探索新技术的精神。
2. 培养学生团队协作意识,使他们能够在项目开发中与他人沟通、协作,共同解决问题。
3. 培养学生遵守网络安全规范,养成良好的网络道德素养。
课程性质:本课程为信息技术课程,旨在帮助学生掌握Web开发基础,培养实际操作能力。
学生特点:本课程针对初中生,学生对计算机操作有一定基础,对新事物充满好奇,喜欢动手实践。
教学要求:教师应以实践为主,理论联系实际,注重激发学生兴趣,鼓励学生主动探究,培养实际操作能力。
同时,关注学生个体差异,因材施教,使每个学生都能在原有基础上得到提高。
通过课程学习,使学生能够独立完成简单的Web页面开发,为后续学习打下坚实基础。
二、教学内容1. Web基础知识:包括Web概念、浏览器工作原理、网络基础等,使学生了解Web技术的基本原理。
- 教材章节:第一章 Web概述,第二章 网络基础2. HTML:HTML标签、属性、页面结构,使学生掌握构建网页的基本方法。
- 教材章节:第三章 HTML基础,第四章 HTML页面结构3. CSS:选择器、样式属性、盒模型、布局方式,使学生能够进行网页样式设计。
- 教材章节:第五章 CSS基础,第六章 CSS布局4. JavaScript:基本语法、函数、事件处理、DOM操作,使学生实现网页的动态交互。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
通信软件开发基础课程设计报告学院:班级:学号:姓名:2015年1月14日目录作业一课程设计目的……………………………………………………………课程设计要求……………………………………………………………开发运行的软件……………………………………………………….设计步骤……………………………………………………………………运行结果截图……………………………………………………………总结……………………………………………………………………………作业二课程设计目的……………………………………………………………. 课程设计要求……………………………………………………………. 开发运行的软件…………………………………………………………设计步骤………………………………………………………………...... 运行结果截图……………………………………………………………. 总结…………………………………………………………………………….作业一:一个显示系统时间的时钟一.课程设计目的本课程设计的目的就是要通过一次集中的强化训练,使学生能及时巩固已学的知识,补充未学的但又必要的内容。
进行课程设计目的在于加深对程序设计基础中基础理论和基本知识的理解,促进理论与实践的结合,进一步提高程序设计的能力。
具体目的如下:1.使学生更深入地理解和掌握该课程中的有关基本概念,程序设计思想和方法。
2.培养学生综合运用所学知识独立完成课题的能力。
3.培养学生勇于探索、严谨推理、实事求是、有错必改,用实践来检验理论,全方位考虑问题等科学技术人员应具有的素质。
4.提高学生对工作认真负责、一丝不苟,对同学团结友爱,协作攻关的基本素质。
5.培养学生从资料文献、科学实验中获得知识的能力,提高学生从别人经验中找到解决问题的新途径的悟性,初步培养工程意识和创新能力。
6.对学生掌握知识的深度、运用理论去处理问题的能力、实验能力、课程设计能力、书面及口头表达能力进行考核。
二.课程设计要求A.具有显示时钟,“开始”,“停止”按钮的图形界面。
B.点击“开始”按钮,显示时钟;点击“停止”按钮,清除屏幕。
C.时钟界面有12个小时的点,三根不同的指针。
短粗指针为时针,长粗指针为分针,长细指针为秒针。
可以以不同颜色来区分三根指针。
D.秒针以一秒为单位进行旋转,分和时针要进行近似不停的旋转针。
例如,分针每十秒旋转一次,时针每两分钟旋转一次。
三.开发运行的软件支持Java语言的Eclipse开发软件。
四.设计步骤导入的类定义的数据绘制时钟定义的函数绘制指针五.运行结果截图初始点击开始按钮过了两分钟可以看出分针秒针在动点击停止按钮六.总结虽然基本按老师的要求完成了课程设计,但是还是有很多的不足需要改进。
而且整个界面做的也不是很好看。
会进一步去完善的。
作业二一.课程设计目的本课程设计的目的就是要通过一次集中的强化训练,使学生能及时巩固已学的知识,补充未学的但又必要的内容。
进行课程设计目的在于加深对程序设计基础中基础理论和基本知识的理解,促进理论与实践的结合,进一步提高程序设计的能力。
具体目的如下:1.使学生更深入地理解和掌握该课程中的有关基本概念,程序设计思想和方法。
2.培养学生综合运用所学知识独立完成课题的能力。
3.培养学生勇于探索、严谨推理、实事求是、有错必改,用实践来检验理论,全方位考虑问题等科学技术人员应具有的素质。
4.提高学生对工作认真负责、一丝不苟,对同学团结友爱,协作攻关的基本素质。
5.培养学生从资料文献、科学实验中获得知识的能力,提高学生从别人经验中找到解决问题的新途径的悟性,初步培养工程意识和创新能力。
6.对学生掌握知识的深度、运用理论去处理问题的能力、实验能力、课程设计能力、书面及口头表达能力进行考核。
二.设计要求A.具有至少一下0-9,加,减,乘,除,小数点,等于显示结果框这些内容的图形界面。
B.输入若干运算符号和数据后点击等于输出相应结果。
C.要求可以连续输入数据和运算符号,最后计算结果。
三.开发运行的软件支持Java语言的Eclipse开发软件。
四.设计步骤导入的类数据的定义按钮的设置图形界面的绘制主要函数的绘制五.运行结果六.总结基本达到要求,但仍然有待改进。
附录一:import java.awt.*;import java.awt.event.*;import java.util.concurrent.ExecutorService;import java.util.concurrent.Executors;import javax.swing.*;import java.util.Timer;import java.util.*;public class zhong extends JFrame implements Runnable{Panel p1,p2;Button b1,b2;private int width = 400;private int height = 400;private int hour = 0;private int minute = 0;private int second = 0;//半径private double R = (width-200)/2.0;private double P = Math.PI/6;private boolean tag = true;private Map<Integer,Double> xMap = new HashMap<Integer,Double>();private Map<Integer,Double> yMap = new HashMap<Integer,Double>();public zhong() {b1=new Button("开始");b1.addActionListener(new ActionListener( ) {public void actionPerformed(ActionEvent e) {processAction(e); }} );b2=new Button("停止");b2.addActionListener(new ActionListener( ) {public void actionPerformed(ActionEvent e) {processAction(e); }} );p1=new Panel();p1.add(b1);p1.add(b2);add(p1,BorderLayout.SOUTH);p2 = new Panel();p2.setSize (400,400);p2.setBackground(Color.WHITE);add(p2);p2.setVisible(true);this.setTitle("pan's little clock");this.setSize(new Dimension(width,height));this.setLocation(1,1);this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);this.setVisible(true);//new Thread(this).start();}public int calX(double P,int i,int R1){double e = P*i;double x = Math.sin(e)*R1 + R + 50;return (int)x;}public int calY(double P,int i,int R1){double e = P*i;double y = R + 50 - Math.cos(e)*R1 ;return (int)y;}public void paint(Graphics g){for(int i=1;i<=12;i++) {double e = P*i;double x = Math.sin(e)*R + R + 50;double y = R + 60 - Math.cos(e)*R ;xMap.put(i, x);yMap.put(i, y);}Graphics2D g2 = (Graphics2D) g;//钟的背景和钟盘只绘制一次g2.setColor(Color.gray);g2.fillRect(0,0,width,height);g2.setColor(Color.WHITE);g2.drawOval(35,35,width-160,height-160);double x = 0, y = 0;for(int i=1;i<=12;i++) {double e = P*i;x = xMap.get(i);y = yMap.get(i) ;g2.drawString(String.valueOf(i),(int)x,(int) y);}tag = false;//绘制钟心g2.fillRect(33+(width-160)/2,33+(height-160)/2,8,8);//绘制数字时钟g2.drawString(hour+":"+minute+":"+second,20 + (width-180)/2,100);//绘制时针g2.setColor(Color.MAGENTA);if(hour>12){hour -= 12;}g2.drawLine(33+(width-160)/2,33+(width-160)/2,calX(Math.PI/6+Math.PI/120,hour,60), calY(Math.PI/6+Math.PI/120,hour,40));//绘制分针g2.setColor(Color.RED);g2.drawLine(33+(width-160)/2,33+(width-160)/2,calX(Math.PI/30,minute,100), calY(Math.PI/30,minute,80));//绘制秒针g2.setColor(Color.YELLOW);g2.drawLine(33+(width-160)/2,33+(width-160)/2,calX(Math.PI/30,second,150), calY(Math.PI/30,second,100));g2.dispose();}public void processAction(ActionEvent e) {Object obj=e.getSource();if (obj==b1) {p2.setVisible(false);new Thread(this).start(); }if (obj==b2) { p2.setVisible(true);//p2 = new Panel();//p2.setSize (400,400);//p2.setBackground(Color.black);//add(p2);}}public void run() {Timer timer = new Timer();timer.schedule(new TimerTask(){public void run() {hour = new java.util.Date().getHours();minute = new java.util.Date().getMinutes();second = new java.util.Date().getSeconds();repaint();}},0,1000);}public static void main(String[] args){zhong mainf = new zhong();}}附录二:import java.awt.*;import java.awt.event.*;import java.text.DecimalFormat;import javax.swing.*;import java.util.*;public class suan extends JFrame implements ActionListener { JTextField txt, text;JPanel pnl, pnl_1, pnl_2, pnl_3;JMenuBar menu;JMenuItem s, t ;JLabel label;JButton btn_Bk, btn_C, btn_left, btn_right, btn_Dot;JButton btn[];JButton btn_Add, btn_Sub, btn_Mul, btn_Div;JButton btn_Equal;DecimalFormat df;double memory_data;int memory_int;double middle, result;int key = -1, prekey = -1;public suan() {super("计算器");result = 0;df = new DecimalFormat("0.##############");txt = new JTextField(15);txt.setText("");txt.setHorizontalAlignment(JTextField.RIGHT);txt.setEditable(false);pnl = new JPanel();this.getContentPane().add(pnl);pnl_1 = new JPanel();pnl_2 = new JPanel();pnl.setLayout(new BorderLayout());JMenuBar mainMenu = new JMenuBar();setJMenuBar(mainMenu);menu = new JMenuBar();pnl.add(menu, BorderLayout.NORTH);pnl.add(txt, BorderLayout.CENTER);pnl.add(pnl_1, BorderLayout.SOUTH);pnl_1.setLayout(new BorderLayout());text = new JTextField(3);text.setEditable(false);text.setBackground(new Color(220, 220, 220));label = new JLabel(" ");btn_Bk = new JButton("Backspace");btn_C = new JButton("C");btn_Bk.addActionListener(this);btn_C.addActionListener(this);pnl_1.add(pnl_2, BorderLayout.NORTH);pnl_2.setLayout(new FlowLayout(FlowLayout.RIGHT)); pnl_2.add(text);pnl_2.add(label);pnl_2.add(btn_Bk);pnl_2.add(btn_C);pnl_3 = new JPanel();pnl_1.add(pnl_3, BorderLayout.CENTER);btn = new JButton[10];for (int i = 0; i < btn.length; i++) {btn[i] = new JButton(Integer.toString(i));btn[i].addActionListener(this);}btn_left = new JButton("(");btn_right = new JButton(")");btn_Dot = new JButton(".");btn_Add = new JButton("+");btn_Sub = new JButton("-");btn_Mul = new JButton("*");btn_Div = new JButton("/");btn_Equal = new JButton("=");pnl_3.setLayout(new GridLayout(5, 4));pnl_3.add(btn[7]);pnl_3.add(btn[8]);pnl_3.add(btn[9]);pnl_3.add(btn_Add);btn_Add.addActionListener(this);pnl_3.add(btn[4]);pnl_3.add(btn[5]);pnl_3.add(btn[6]);pnl_3.add(btn_Sub);btn_Sub.addActionListener(this);pnl_3.add(btn[1]);pnl_3.add(btn[2]);pnl_3.add(btn[3]);pnl_3.add(btn_Mul);btn_Mul.addActionListener(this);pnl_3.add(btn_left);btn_left.addActionListener(this);pnl_3.add(btn[0]);pnl_3.add(btn_right);btn_right.addActionListener(this);pnl_3.add(btn_Div);btn_Div.addActionListener(this);pnl_3.add(btn_Dot);btn_Dot.addActionListener(this);pnl_3.add(btn_Equal);btn_Equal.addActionListener(this);setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);pack();this.setVisible(true);}public void actionPerformed(ActionEvent event) {Object temp = event.getSource();try {for (int i = 0; i <= 9; i++) {if (temp == btn[i]) {txt.setText(txt.getText() + Integer.toString(i));}}if (temp == btn_Add || temp == btn_Sub || temp == btn_Mul || temp == btn_Div || temp == btn_left || temp == btn_right) {txt.setText(txt.getText() + event.getActionCommand());}if (temp == btn_Dot) {txt.setText(txt.getText() + ".");}if (temp == btn_Equal) {try {double result = Calculate(txt.getText());txt.setText(df.format(result));} catch (Exception e) {}}if (temp == btn_Bk) {String s = txt.getText();txt.setText("");for (int i = 0; i < s.length() - 1; i++) {char a = s.charAt(i);txt.setText(txt.getText() + a);}}if (temp == btn_C) {middle = result = 0;txt.setText("");}try {} catch (Exception eeee) {}}catch (Exception e) {}}final static int N = 100;private int com(String x) {if (x.equals("*") || x.equals("/")) {return 2;}if (x.equals("*") || x.equals("/")) {return 1;} else {return -1;}}public double Calculate(String Input) {String example = new String("()+*/-");String[] input = new String[N];String[] Post = new String[N];int n = Input.length();int count = 0;int pre = -1;for (int i = 0; i < n; i++) {if (example.indexOf(Input.charAt(i)) != -1) {if (pre != -1 && i != pre) {input[count++] = Input.substring(pre, i);} if (pre == -1) {input[count++] = Input.substring(0, i);}input[count++] = Input.substring(i, i + 1);pre = i + 1;}}if (pre < n) {if (pre == -1) {input[count++] = Input.substring(0, n);} else {input[count++] = Input.substring(pre, n);}}Stack<String> S = new Stack<String>();int j = 0;for (int i = 0; i < count; i++) {if (example.indexOf(input[i]) == -1) {Post[j++] = input[i];} else {if (input[i].equals("(")) {S.push(input[i]);} else if (input[i].equals(")")) {while (!S.peek().equals("(")) {Post[j++] = S.pop();}S.pop();} else {if (S.empty()) {S.push(input[i]);} else {while (!S.empty() && com(S.peek()) >= com(input[i]) && (!S.peek().equals("("))) {Post[j++] = S.pop();}S.push(input[i]);}}}}while (!S.empty()) {Post[j++] = S.pop();}S.clear();int m = j;for (int i = 0; i < m; i++) {if (Post[i].equals("+")) {double a = Double.parseDouble(S.pop());S.push(String.valueOf(Double.parseDouble(S.pop()) + a));} else if (Post[i].equals("-")) {double a = Double.parseDouble(S.pop());S.push(String.valueOf(Double.parseDouble(S.pop()) - a));} else if (Post[i].equals("*")) {double a = Double.parseDouble(S.pop());S.push(String.valueOf(Double.parseDouble(S.pop()) * a));} else if (Post[i].equals("/")) {double a = Double.parseDouble(S.pop());S.push(String.valueOf(Double.parseDouble(S.pop()) / a));} else {S.push(Post[i]);}}double result = Double.parseDouble(S.pop());return result;}public static void main(String args[]) {new suan();}}。