public class Add : Calculation { //构造函数 public Add(double num1, double num2) : base(num1, num2) { } //重写父类中的抽象方法 public override double YunSuan() { return this.DouNum1 + this.DouNum2; } }

时间: 2023-06-14 12:03:28 浏览: 88
这是一个继承自 Calculation 类的 Add 类,它实现了 Calculation 中的抽象方法 YunSuan(),并且在其中实现了加法运算。构造函数接收两个 double 类型的参数并传递给父类的构造函数。通过继承 Calculation 类,Add 类可以使用 Calculation 类中的属性和方法,同时也可以重写 Calculation 类中的抽象方法。
相关问题

%input parameters: R=32%Microns n1=1.37 n2=1.27 CA=71 %degrees inputAngle=30 %degrees gridLinesOn=true %Calculation Resolution: dAngle=0.005 %radians wavelengths=linspace(0.3, 0.800, 50); %microns %------------------------------------------------------ thetaOut=[0:dAngle:pi/2]; phiOut=[0:dAngle:pi*2]; %Primary calculation: it should be noted that this calculation takes into %acocunt refraction from n1 medium to air. outMap=Intensity_3D(wavelengths, thetaOut, phiOut, R, CA, inputAngle, n1, n2); %% C=IntensityToColor(wavelengths, outMap); %image(C); C_sphere=sphericalProjection( C, thetaOut, phiOut ); %Output image: figure image([-1, 1], [-1, 1], C_sphere) hold on title(['\theta:', num2str(inputAngle), '^o, R:', num2str(R), '\mu m \eta: ', num2str(CA), '^o' ]) axis image axis off t=linspace(0, 2*pi); plot(cos(t), sin(t), 'w', 'linewidth', 1) if (gridLinesOn) %phi: for p=0:pi/4:pi plot([cos(p), -cos(p)], [sin(p), -sin(p)], 'w', 'linewidth', 1) hold on end % theta: for thetaWhite=[pi/8:pi/8:pi/2]; plot(sin(thetaWhite)*cos(t), sin(thetaWhite)*sin(t), 'w', 'linewidth', 1) end end怎么理解

这段代码是一个 MATLAB 语言的程序,主要用于计算一个球形物体的光强分布,并进行可视化。程序中的各个变量含义如下: - R:球体半径,单位为微米; - n1、n2:入射光线所在介质和球体内介质的折射率; - CA:球体表面的接触角,单位为度; - inputAngle:入射光线与球体表面法线的夹角,单位为度; - dAngle:计算球体表面上采样点的角度间隔,单位为弧度; - wavelengths:计算光强分布的波长范围,单位为微米; - thetaOut、phiOut:球面坐标系下的采样点角度范围,用于计算球面上每个采样点的光强; - outMap:计算得到的球面上每个采样点的光强值; - C、C_sphere:将光强值转化为颜色,用于可视化球体上每个采样点的光强分布; - t:用于绘制球面上的圆形边界; - gridLinesOn:控制是否绘制网格线。如果为 true,则绘制球面上的经线和纬线。 程序主要分为三个部分: 1. 计算球面上每个采样点的光强分布: 使用 Intensity_3D 函数计算球面上每个采样点的光强分布,该函数的输入参数为波长、采样点的极角和方位角、球体半径、接触角、入射光线的夹角和介质的折射率。注意,该函数内部已经考虑了光线的折射现象。 2. 可视化球面上每个采样点的光强分布: 将计算得到的光强分布转化为颜色,并使用 sphericalProjection 函数将颜色映射到球面上。最后,使用 image 函数和 plot 函数将可视化结果显示出来。具体来说,image 函数用于在二维平面上显示球面上每个采样点的颜色,plot 函数用于绘制球面的圆形边界和网格线(如果需要)。 3. 绘制球面上的网格线: 如果 gridLinesOn 为 true,则绘制球面上的经线和纬线。具体来说,使用 for 循环分别绘制经线和纬线。经线的范围为 0 到 2π,每隔 π/4 绘制一条经线;纬线的范围为 0 到 π/2,每隔 π/8 绘制一条纬线。

public class Calculator extends JFrame { private JPanel result, button; private JLabel show; private JButton CLR, add, minus, Multiply, divide; private JTextField field; private Double answer; private String number; public Calculator() { super("Calculator"); this.setLocationRelativeTo(null);// set up window this.setResizable(false); this.setDefaultCloseOperation(EXIT_ON_CLOSE); this.setSize(600, 200); result = new JPanel(); answer = 0.0 ; show = new JLabel(Double.toString(answer), SwingConstants.RIGHT);// let the result at the right of the field result.add(show); JTextField filed = new JTextField(Double.toString(answer));// setup the size of the text field filed.setColumns(6); filed.setHorizontalAlignment(JTextField.RIGHT); button = new JPanel(); button.setLayout(new GridLayout(1, 5)); CLR = new JButton("CLR");// add the buttons of calculation. add = new JButton("+"); minus = new JButton("-"); Multiply = new JButton("*"); divide = new JButton("/"); button.add(CLR); button.add(add); button.add(minus); button.add(Multiply); button.add(divide); CLR.addActionListener(e -> {// clear answer = 0.0; show.setText(Double.toString(answer)); field.setText(" "); }); add.addActionListener(e -> {// add number = field.getText(); if (!number.equals(null)) { double value = Double.parseDouble(number); answer += value; show.setText(Double.toString(answer)); field.setText(""); } }); minus.addActionListener(e -> {// minus number = field.getText(); if (!number.equals("")) { double value = Double.parseDouble(number); answer -= value; show.setText(Double.toString(answer)); field.setText(""); } }); Multiply.addActionListener(e -> {// multiply number = field.getText(); if (!number.equals("")) { double value = Double.parseDouble(number); answer *= value; show.setText(Double.toString(answer)); field.setText(""); } }); divide.addActionListener(e -> {// divide number = field.getText(); if (!number.equals("")) { double value = Double.parseDouble(number); answer /= value; show.setText(Double.toString(answer)); field.setText(""); } }); add(button); add(field); add(result); this.setLayout(new GridLayout(3, 1)); this.setVisible(true); }

你好,看起来这是一个实现简单计算器的 Java Swing 程序。程序界面有一个文本框和一些按钮,可以进行加减乘除等基本运算。 程序中的 `JTextField` 组件 `field` 用于输入数字,每当用户点击一个按钮时,程序会读取 `field` 中的数字并进行相应的运算。运算结果会显示在 `JLabel` 组件 `show` 中。 程序中的 `CLR` 按钮可以清除输入的数字并将结果重置为 0。其他按钮则分别对应加、减、乘、除四种运算。当用户点击这些按钮时,程序会从 `field` 中读取数字,并根据当前的运算符进行相应的运算,然后将结果显示在 `show` 中。 这个程序很简单,但可以帮助你了解 Java Swing 程序的基本结构和事件处理机制。如果你想深入了解 Java Swing,可以查看相关的文档或书籍。
阅读全文

相关推荐

// cudaPi.cpp : Defines the entry point for the console application. // #include "stdafx.h" #include <stdio.h> #include <cuda.h> #include <math.h> #define NUM_THREAD 1024 #define NUM_BLOCK 1 __global__ void cal_pi(double *sum, long long nbin, float step, long long nthreads, long long nblocks) { long long i; float x; long long idx = blockIdx.x*blockDim.x+threadIdx.x; for (i=idx; i< nbin; i+=nthreads*nblocks) { x = (i+0.5)*step; sum[idx] = sum[idx]+4.0/(1.+x*x); } } int _tmain(int argc, _TCHAR* argv[]) { long long tid; double pi = 0; long long num_steps = 100000000; float step = 1./(float)num_steps; long long size = NUM_THREAD*NUM_BLOCK*sizeof(double); clock_t before, after; double *sumHost, *sumDev; sumHost = (double *)malloc(size); cudaMalloc((void **)&sumDev, size); // Initialize array in device to 0 cudaMemset(sumDev, 0, size); before = clock(); // Do calculation on device printf("Before Compute \n\n"); dim3 numBlocks(NUM_BLOCK,1,1); dim3 threadsPerBlock(NUM_THREAD,1,1); cal_pi <<<numBlocks, threadsPerBlock>>> (sumDev, (int)num_steps, step, NUM_THREAD, NUM_BLOCK); // call CUDA kernel printf("After Compute \n\n"); // Retrieve result from device and store it in host array cudaMemcpy(sumHost, sumDev, size, cudaMemcpyDeviceToHost); printf("After Copy \n\n"); for(tid=0; tid<NUM_THREAD*NUM_BLOCK; tid++){ pi = pi+sumHost[tid]; } pi = pi*step; after = clock(); printf("The value of PI is %15.12f\n",pi); printf("The time to calculate PI was %f seconds\n",((float)(after - before)/1000.0)); free(sumHost); cudaFree(sumDev); return 0; }

将一下java代码转成c语言:import java.util.; public class Main { public static boolean judge(char c1,char c2) { char ch[] = {'#','+','-','','/','%','(',')'}; int num1 = 0,num2 = 0; for(int i = 0;i <= 7;i ++) { if(ch[i] == c1) num1 = i; if(ch[i] == c2) num2 = i; } if(num1 > num2) return true; return false; } public static int calculation(int t1,int t2,char c) { if(c == '+') return t2 + t1; else if(c == '-') return t2 - t1; else if(c == '*') return t2 * t1; else if(c == '%') return t2 % t1; else return t2 / t1; } public static void main(String[] args) { Scanner sc = new Scanner(System.in); String s = sc.nextLine(); Stack<Integer> stk_int = new Stack<>(); Stack<Character> stk_str = new Stack<>(); int index = 0; stk_str.push('#'); for(int i = 0;i < s.length();i ++) { if(s.charAt(i) < '0' || s.charAt(i) > '9') { if(index != i) stk_int.push(Integer.parseInt(s.substring(index,i))); index = i+1; boolean flag = false; while(flag == false) { if (judge(s.charAt(i),stk_str.peek())) { stk_str.push(s.charAt(i)); if(stk_str.peek() == '(' ) stk_str.push('#'); if( stk_str.peek() == ')') { stk_str.pop(); while(stk_str.peek()!='#') { stk_int.push(calculation(stk_int.pop(),stk_int.pop(),stk_str.pop())); } stk_str.pop(); stk_str.pop(); } flag = true; } else { stk_int.push(calculation(stk_int.pop(),stk_int.pop(),stk_str.pop())); } } } if(index != s.length() && i == s.length()-1) stk_int.push(Integer.parseInt(s.substring(index,s.length()))); } while(!stk_int.isEmpty() && stk_str.peek()!= '#') { stk_int.push(calculation(stk_int.pop(),stk_int.pop(),stk_str.pop())); } System.out.println(stk_int.pop()); } }

public Calculator() { super("Calculator"); this.setLocationRelativeTo(null);// set up window this.setResizable(false); this.setDefaultCloseOperation(EXIT_ON_CLOSE); this.setSize(600, 200); result = new JPanel(); answer = 0.0 ; show = new JLabel(Double.toString(answer), SwingConstants.RIGHT);// let the result at the right of the field result.add(show); JTextField input = new JTextField(Double.toString(answer));// setup the size of the text field input.setColumns(6); input.setHorizontalAlignment(JTextField.RIGHT); button = new JPanel(); button.setLayout(new GridLayout(1, 5)); CLR = new JButton("CLR");// add the buttons of calculation. add = new JButton("+"); minus = new JButton("-"); Multiply = new JButton("*"); divide = new JButton("/"); button.add(CLR); button.add(add); button.add(minus); button.add(Multiply); button.add(divide); CLR.addActionListener(e -> {// clear answer = 0.0; show.setText(Double.toString(answer)); field.setText(" "); }); add.addActionListener(e -> {// add number = field.getText(); if (!number.equals(null)) { double value = Double.parseDouble(number); answer += value; show.setText(Double.toString(answer)); field.setText(""); } }); minus.addActionListener(e -> {// minus number = field.getText(); if (!number.equals("")) { double value = Double.parseDouble(number); answer -= value; show.setText(Double.toString(answer)); field.setText(""); } }); Multiply.addActionListener(e -> {// multiply number = field.getText(); if (!number.equals("")) { double value = Double.parseDouble(number); answer *= value; show.setText(Double.toString(answer)); field.setText(""); } }); divide.addActionListener(e -> {// divide number = field.getText(); if (!number.equals("")) { double value = Double.parseDouble(number); answer /= value; show.setText(Double.toString(answer)); field.setText(""); } }); add(button); add(field); add(result); this.setLayout(new GridLayout(3, 1)); this.setVisible(true); }错哪了

最新推荐

recommend-type

MELIS 用户编程手册-Orange 编程指南.pdf

1. GUI_FrmWinCreate:用于创建窗口的函数。 2. GUI_ManWinCreate:用于管理窗口的函数。 3. Pipe:一种数据传输机制,用于在不同模块之间传输数据。 4. Alpha:一种透明度计算公式,用于计算图形元素的透明度。 5. ...
recommend-type

基于labview的改变字体大小源码.zip

labview源码参考示例,可供参考学习使用
recommend-type

macOS 10.9至10.13版高通RTL88xx USB驱动下载

资源摘要信息:"USB_RTL88xx_macOS_10.9_10.13_driver.zip是一个为macOS系统版本10.9至10.13提供的高通USB设备驱动压缩包。这个驱动文件是针对特定的高通RTL88xx系列USB无线网卡和相关设备的,使其能够在苹果的macOS操作系统上正常工作。通过这个驱动,用户可以充分利用他们的RTL88xx系列设备,包括但不限于USB无线网卡、USB蓝牙设备等,从而实现在macOS系统上的无线网络连接、数据传输和其他相关功能。 高通RTL88xx系列是广泛应用于个人电脑、笔记本、平板和手机等设备的无线通信组件,支持IEEE 802.11 a/b/g/n/ac等多种无线网络标准,为用户提供了高速稳定的无线网络连接。然而,为了在不同的操作系统上发挥其性能,通常需要安装相应的驱动程序。特别是在macOS系统上,由于操作系统的特殊性,不同版本的系统对硬件的支持和驱动的兼容性都有不同的要求。 这个压缩包中的驱动文件是特别为macOS 10.9至10.13版本设计的。这意味着如果你正在使用的macOS版本在这个范围内,你可以下载并解压这个压缩包,然后按照说明安装驱动程序。安装过程通常涉及运行一个安装脚本或应用程序,或者可能需要手动复制特定文件到系统目录中。 请注意,在安装任何第三方驱动程序之前,应确保从可信赖的来源获取。安装非官方或未经认证的驱动程序可能会导致系统不稳定、安全风险,甚至可能违反操作系统的使用条款。此外,在安装前还应该查看是否有适用于你设备的更新驱动版本,并考虑备份系统或创建恢复点,以防安装过程中出现问题。 在标签"凄 凄 切 切 群"中,由于它们似乎是无意义的汉字组合,并没有提供有关该驱动程序的具体信息。如果这是一组随机的汉字,那可能是压缩包文件名的一部分,或者可能是文件在上传或处理过程中产生的错误。因此,这些标签本身并不提供与驱动程序相关的任何技术性知识点。 总结来说,USB_RTL88xx_macOS_10.9_10.13_driver.zip包含了用于特定高通RTL88xx系列USB设备的驱动,适用于macOS 10.9至10.13版本的操作系统。在安装驱动之前,应确保来源的可靠性,并做好必要的系统备份,以防止潜在的系统问题。"
recommend-type

PyCharm开发者必备:提升效率的Python环境管理秘籍

# 摘要 本文系统地介绍了PyCharm集成开发环境的搭建、配置及高级使用技巧,重点探讨了如何通过PyCharm进行高效的项目管理和团队协作。文章详细阐述了PyCharm项目结构的优化方法,包括虚拟环境的有效利用和项目依赖的管理。同时,本文也深入分析了版本控制的集成流程,如Git和GitHub的集成,分支管理和代码合并策略。为了提高代码质量,本文提供了配置和使用linters以及代码风格和格式化工具的指导。此外,本文还探讨了PyCharm的调试与性能分析工具,插件生态系统,以及定制化开发环境的技巧。在团队协作方面,本文讲述了如何在PyCharm中实现持续集成和部署(CI/CD)、代码审查,以及
recommend-type

matlab中VBA指令集

MATLAB是一种强大的数值计算和图形处理软件,主要用于科学计算、工程分析和技术应用。虽然它本身并不是基于Visual Basic (VB)的,但在MATLAB环境中可以利用一种称为“工具箱”(Toolbox)的功能,其中包括了名为“Visual Basic for Applications”(VBA)的接口,允许用户通过编写VB代码扩展MATLAB的功能。 MATLAB的VBA指令集实际上主要是用于操作MATLAB的工作空间(Workspace)、图形界面(GUIs)以及调用MATLAB函数。VBA代码可以在MATLAB环境下运行,执行的任务可能包括但不限于: 1. 创建和修改变量、矩阵
recommend-type

在Windows Forms和WPF中实现FontAwesome-4.7.0图形

资源摘要信息: "将FontAwesome470应用于Windows Forms和WPF" 知识点: 1. FontAwesome简介: FontAwesome是一个广泛使用的图标字体库,它提供了一套可定制的图标集合,这些图标可以用于Web、桌面和移动应用的界面设计。FontAwesome 4.7.0是该库的一个版本,它包含了大量常用的图标,用户可以通过简单的CSS类名引用这些图标,而无需下载单独的图标文件。 2. .NET开发中的图形处理: 在.NET开发中,图形处理是一个重要的方面,它涉及到创建、修改、显示和保存图像。Windows Forms和WPF(Windows Presentation Foundation)是两种常见的用于构建.NET桌面应用程序的用户界面框架。Windows Forms相对较为传统,而WPF提供了更为现代和丰富的用户界面设计能力。 3. 将FontAwesome集成到Windows Forms中: 要在Windows Forms应用程序中使用FontAwesome图标,首先需要将FontAwesome字体文件(通常是.ttf或.otf格式)添加到项目资源中。然后,可以通过设置控件的字体属性来使用FontAwesome图标,例如,将按钮的字体设置为FontAwesome,并通过设置其Text属性为相应的FontAwesome类名(如"fa fa-home")来显示图标。 4. 将FontAwesome集成到WPF中: 在WPF中集成FontAwesome稍微复杂一些,因为WPF对字体文件的支持有所不同。首先需要在项目中添加FontAwesome字体文件,然后通过XAML中的FontFamily属性引用它。WPF提供了一个名为"DrawingImage"的类,可以将图标转换为WPF可识别的ImageSource对象。具体操作是使用"FontIcon"控件,并将FontAwesome类名作为Text属性值来显示图标。 5. FontAwesome字体文件的安装和引用: 安装FontAwesome字体文件到项目中,通常需要先下载FontAwesome字体包,解压缩后会得到包含字体文件的FontAwesome-master文件夹。将这些字体文件添加到Windows Forms或WPF项目资源中,一般需要将字体文件复制到项目的相应目录,例如,对于Windows Forms,可能需要将字体文件放置在与主执行文件相同的目录下,或者将其添加为项目的嵌入资源。 6. 如何使用FontAwesome图标: 在使用FontAwesome图标时,需要注意图标名称的正确性。FontAwesome提供了一个图标检索工具,帮助开发者查找和确认每个图标的确切名称。每个图标都有一个对应的CSS类名,这个类名就是用来在应用程序中引用图标的。 7. 面向不同平台的应用开发: 由于FontAwesome最初是为Web开发设计的,将它集成到桌面应用中需要做一些额外的工作。在不同平台(如Web、Windows、Mac等)之间保持一致的用户体验,对于开发团队来说是一个重要考虑因素。 8. 版权和使用许可: 在使用FontAwesome字体图标时,需要遵守其提供的许可证协议。FontAwesome有多个许可证版本,包括免费的公共许可证和个人许可证。开发者在将FontAwesome集成到项目中时,应确保符合相关的许可要求。 9. 资源文件管理: 在管理包含FontAwesome字体文件的项目时,应当注意字体文件的维护和更新,确保在未来的项目版本中能够继续使用这些图标资源。 10. 其他图标字体库: FontAwesome并不是唯一一个图标字体库,还有其他类似的选择,例如Material Design Icons、Ionicons等。开发人员可以根据项目需求和偏好选择合适的图标库,并学习如何将它们集成到.NET桌面应用中。 以上知识点总结了如何将FontAwesome 4.7.0这一图标字体库应用于.NET开发中的Windows Forms和WPF应用程序,并涉及了相关的图形处理、资源管理和版权知识。通过这些步骤和细节,开发者可以更有效地增强其应用程序的视觉效果和用户体验。
recommend-type

【Postman进阶秘籍】:解锁高级API测试与管理的10大技巧

# 摘要 本文系统地介绍了Postman工具的基础使用方法和高级功能,旨在提高API测试的效率与质量。第一章概述了Postman的基本操作,为读者打下使用基础。第二章深入探讨了Postman的环境变量设置、集合管理以及自动化测试流程,特别强调了测试脚本的编写和持续集成的重要性。第三章介绍了数据驱动测试、高级断言技巧以及性能测试,这些都是提高测试覆盖率和测试准确性的关键技巧。第四章侧重于API的管理,包括版本控制、文档生成和分享,以及监控和报警系统的设计,这些是维护和监控API的关键实践。最后,第五章讨论了Postman如何与DevOps集成以及插件的使用和开发,展示了Postman在更广阔的应
recommend-type

ubuntu22.04怎么恢复出厂设置

### 如何在Ubuntu 22.04上执行恢复出厂设置 #### 清除个人数据并重置系统配置 要使 Ubuntu 22.04 恢复到初始状态,可以考虑清除用户的个人文件以及应用程序的数据。这可以通过删除 `/home` 目录下的所有用户目录来实现,但需要注意的是此操作不可逆,在实际操作前建议先做好重要资料的备份工作[^1]。 对于全局范围内的软件包管理,如果希望移除非官方源安装的应用程序,则可通过 `apt-get autoremove` 命令卸载不再需要依赖项,并手动记录下自定义安装过的第三方应用列表以便后续重新部署环境时作为参考[^3]。 #### 使用Live CD/USB进行修
recommend-type

2001年度广告运作规划:高效利用资源的策略

资源摘要信息:"2001年度广告运作规划" 知识点: 1. 广告运作规划的重要性:广告运作规划是企业营销战略的重要组成部分,它能够帮助企业明确目标、制定计划、优化资源配置,以实现最佳的广告效果和品牌推广。 2. 广告资源的利用:人力、物力、财力和资源是广告运作的主要因素。有效的广告规划需要充分考虑这些因素,以确保广告活动的顺利进行。 3. 广告规划的简洁性:简洁的广告规划更容易理解和执行,可以提高工作效率,减少不必要的浪费。 4. 广告规划的实用性:实用的广告规划能够为企业带来实际的效果,帮助企业提升品牌知名度,增加产品的销售。 5. 广告规划的参考价值:一份好的广告规划可以为其他企业提供参考,帮助企业更好地进行广告运作。 6. 广告规划的下载和分享:互联网为企业提供了方便的广告规划下载和分享平台,企业可以通过网络获取大量的广告规划资料,提高广告工作的效率和质量。 7. 广告规划的持续更新:随着市场环境的变化,广告规划也需要不断更新和完善,以适应新的市场环境。 8. 广告规划的实施:广告规划的成功实施需要团队的协作和执行,需要企业有明确的目标和计划,以及高效的执行力。 9. 广告规划的效果评估:广告规划的实施后,需要对广告效果进行评估,以便了解广告活动的成果,为未来的广告规划提供参考。 10. 广告规划的改进和优化:根据广告效果的评估结果,企业需要对广告规划进行改进和优化,以提高广告活动的效果。
recommend-type

【Postman终极指南】:掌握API测试到自动化部署的全流程

![【Postman终极指南】:掌握API测试到自动化部署的全流程](http://qarocks.ru/wp-content/uploads/2023/11/image-156-1024x538-1.png) # 摘要 本文详细介绍了Postman这一流行的API开发工具,从基础知识讲起,涵盖了API测试、高级测试技术、自动化部署应用,以及企业级应用和最佳实践。在API测试基础和接口测试能力方面,文章探讨了如何构建和管理请求、使用测试脚本以及集合和文件夹的有效使用。高级测试技术部分深入讲述了动态变量、数据驱动测试、监控、测试套件以及集成测试与错误管理。自动化部署章节重点讲解了集合运行器的使