Skip to content
Snippets Groups Projects
Commit e615aef4 authored by Rsge's avatar Rsge
Browse files

Update to .NET 5 and newer standards

parent 109f37ea
No related branches found
No related tags found
No related merge requests found
Showing with 926 additions and 366 deletions
......@@ -3,7 +3,7 @@ Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio Version 16
VisualStudioVersion = 16.0.30503.244
MinimumVisualStudioVersion = 10.0.40219.1
Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "Deficiency-Calculator", "Deficiency-Calculator\Deficiency-Calculator.vbproj", "{F678487B-1B0E-45AD-B479-2F1F9DDC152B}"
Project("{778DAE3C-4631-46EA-AA77-85C1314464D9}") = "Deficiency-Calculator", "Deficiency-Calculator\Deficiency-Calculator.vbproj", "{F678487B-1B0E-45AD-B479-2F1F9DDC152B}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
......@@ -11,10 +11,10 @@ Global
Release|x86 = Release|x86
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{F678487B-1B0E-45AD-B479-2F1F9DDC152B}.Debug|x86.ActiveCfg = Debug|x86
{F678487B-1B0E-45AD-B479-2F1F9DDC152B}.Debug|x86.Build.0 = Debug|x86
{F678487B-1B0E-45AD-B479-2F1F9DDC152B}.Release|x86.ActiveCfg = Release|x86
{F678487B-1B0E-45AD-B479-2F1F9DDC152B}.Release|x86.Build.0 = Release|x86
{F678487B-1B0E-45AD-B479-2F1F9DDC152B}.Debug|x86.ActiveCfg = Debug|Any CPU
{F678487B-1B0E-45AD-B479-2F1F9DDC152B}.Debug|x86.Build.0 = Debug|Any CPU
{F678487B-1B0E-45AD-B479-2F1F9DDC152B}.Release|x86.ActiveCfg = Release|Any CPU
{F678487B-1B0E-45AD-B479-2F1F9DDC152B}.Release|x86.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
......
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<TargetFramework>net5.0-windows</TargetFramework>
<Platform Condition=" '$(Platform)' == '' ">x86</Platform>
<ProductVersion>
</ProductVersion>
<SchemaVersion>2.0</SchemaVersion>
<ProjectGuid>{F678487B-1B0E-45AD-B479-2F1F9DDC152B}</ProjectGuid>
<OutputType>WinExe</OutputType>
<StartupObject>DeficiencyCalculator.My.MyApplication</StartupObject>
<RootNamespace>DeficiencyCalculator</RootNamespace>
<AssemblyName>DeficiencyCalculator</AssemblyName>
<FileAlignment>512</FileAlignment>
<MyType>WindowsForms</MyType>
<TargetFrameworkVersion>v4.0</TargetFrameworkVersion>
<TargetFrameworkProfile>Client</TargetFrameworkProfile>
<IsWebBootstrapper>false</IsWebBootstrapper>
<PublishUrl>C:\Users\Rsge\Downloads\</PublishUrl>
<Install>true</Install>
......@@ -31,39 +23,19 @@
<UseApplicationTrust>false</UseApplicationTrust>
<PublishWizardCompleted>true</PublishWizardCompleted>
<BootstrapperEnabled>true</BootstrapperEnabled>
<GenerateAssemblyInfo>false</GenerateAssemblyInfo>
<UseWindowsForms>true</UseWindowsForms>
<ImportWindowsDesktopTargets>true</ImportWindowsDesktopTargets>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|x86' ">
<PlatformTarget>x86</PlatformTarget>
<DebugSymbols>true</DebugSymbols>
<DebugType>full</DebugType>
<DefineDebug>true</DefineDebug>
<DefineTrace>true</DefineTrace>
<OutputPath>bin\Debug\</OutputPath>
<DocumentationFile>DeficiencyCalculator.xml</DocumentationFile>
<NoWarn>42016,41999,42017,42018,42019,42032,42036,42020,42021,42022</NoWarn>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|x86' ">
<PlatformTarget>AnyCPU</PlatformTarget>
<DebugType>pdbonly</DebugType>
<DefineDebug>false</DefineDebug>
<DefineTrace>true</DefineTrace>
<Optimize>true</Optimize>
<OutputPath>bin\Release\</OutputPath>
<DocumentationFile>DeficiencyCalculator.xml</DocumentationFile>
<NoWarn>42016,41999,42017,42018,42019,42032,42036,42020,42021,42022</NoWarn>
</PropertyGroup>
<PropertyGroup>
<OptionExplicit>On</OptionExplicit>
</PropertyGroup>
<PropertyGroup>
<OptionCompare>Binary</OptionCompare>
</PropertyGroup>
<PropertyGroup>
<OptionStrict>Off</OptionStrict>
</PropertyGroup>
<PropertyGroup>
<OptionInfer>On</OptionInfer>
</PropertyGroup>
<PropertyGroup>
<ApplicationIcon>calculator.ico</ApplicationIcon>
</PropertyGroup>
......@@ -78,80 +50,39 @@
</PropertyGroup>
<PropertyGroup>
<SignManifests>false</SignManifests>
<PackageId>Deficiency Calculator</PackageId>
<Authors>Jan G. (Rsge)</Authors>
<RepositoryType>git</RepositoryType>
<RepositoryUrl>https://github.com/Rsge/Deficiency-Calculator</RepositoryUrl>
</PropertyGroup>
<ItemGroup>
<Reference Include="System" />
<Reference Include="System.Data" />
<Reference Include="System.Deployment" />
<Reference Include="System.Drawing" />
<Reference Include="System.Windows.Forms" />
<Reference Include="System.Xml" />
<Reference Include="System.Core" />
<Reference Include="System.Xml.Linq" />
<Reference Include="System.Data.DataSetExtensions" />
</ItemGroup>
<ItemGroup>
<Import Include="Microsoft.VisualBasic" />
<Import Include="System" />
<Import Include="System.Collections" />
<Import Include="System.Collections.Generic" />
<Import Include="System.Data" />
<Import Include="System.Drawing" />
<Import Include="System.Diagnostics" />
<Import Include="System.Windows.Forms" />
<Import Include="System.Linq" />
<Import Include="System.Xml.Linq" />
</ItemGroup>
<ItemGroup>
<Compile Include="DeficiencyCalculator.vb">
<SubType>Form</SubType>
</Compile>
<Compile Include="DeficiencyCalculator.Designer.vb">
<DependentUpon>DeficiencyCalculator.vb</DependentUpon>
<SubType>Form</SubType>
</Compile>
<Compile Include="My Project\AssemblyInfo.vb" />
<Compile Include="My Project\Application.Designer.vb">
<Compile Update="My Project\Application.Designer.vb">
<AutoGen>True</AutoGen>
<DependentUpon>Application.myapp</DependentUpon>
<DesignTime>True</DesignTime>
</Compile>
<Compile Include="My Project\Resources.Designer.vb">
<Compile Update="My Project\Resources.Designer.vb">
<AutoGen>True</AutoGen>
<DesignTime>True</DesignTime>
<DependentUpon>Resources.resx</DependentUpon>
</Compile>
<Compile Include="My Project\Settings.Designer.vb">
<Compile Update="My Project\Settings.Designer.vb">
<AutoGen>True</AutoGen>
<DependentUpon>Settings.settings</DependentUpon>
<DesignTimeSharedInput>True</DesignTimeSharedInput>
</Compile>
</ItemGroup>
<ItemGroup>
<EmbeddedResource Include="DeficiencyCalculator.de.resx">
<DependentUpon>DeficiencyCalculator.vb</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="DeficiencyCalculator.en-US.resx">
<DependentUpon>DeficiencyCalculator.vb</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="DeficiencyCalculator.resx">
<DependentUpon>DeficiencyCalculator.vb</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="My Project\Resources.resx">
<Generator>VbMyResourcesResXFileCodeGenerator</Generator>
<LastGenOutput>Resources.Designer.vb</LastGenOutput>
<CustomToolNamespace>My.Resources</CustomToolNamespace>
<SubType>Designer</SubType>
</EmbeddedResource>
</ItemGroup>
<ItemGroup>
<None Include="Deficiency-Calculator_TemporaryKey.pfx" />
<None Include="My Project\Application.myapp">
<None Update="My Project\Application.myapp">
<Generator>MyApplicationCodeGenerator</Generator>
<LastGenOutput>Application.Designer.vb</LastGenOutput>
</None>
<None Include="My Project\Settings.settings">
<None Update="My Project\Settings.settings">
<Generator>SettingsSingleFileGenerator</Generator>
<CustomToolNamespace>My</CustomToolNamespace>
<LastGenOutput>Settings.Designer.vb</LastGenOutput>
</None>
</ItemGroup>
......@@ -180,12 +111,10 @@
<Install>true</Install>
</BootstrapperPackage>
</ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.VisualBasic.targets" />
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.
Other similar extension points exist, see Microsoft.Common.targets.
<Target Name="BeforeBuild">
</Target>
<Target Name="AfterBuild">
</Target>
-->
<ItemGroup>
<PackageReference Include="Microsoft.DotNet.UpgradeAssistant.Extensions.Default.Analyzers" Version="0.3.252501">
<PrivateAssets>all</PrivateAssets>
</PackageReference>
<PackageReference Include="Microsoft.Windows.Compatibility" Version="5.0.2" />
</ItemGroup>
</Project>
\ No newline at end of file
<Global.Microsoft.VisualBasic.CompilerServices.DesignerGenerated()> _
Partial Class frm_deficiencycalculator
Partial Class DeficiencyCalculatorForm
Inherits System.Windows.Forms.Form
'Das Formular überschreibt den Löschvorgang, um die Komponentenliste zu bereinigen.
......@@ -22,68 +22,68 @@ Partial Class frm_deficiencycalculator
'Das Bearbeiten mit dem Code-Editor ist nicht möglich.
<System.Diagnostics.DebuggerStepThrough()> _
Private Sub InitializeComponent()
Dim resources As System.ComponentModel.ComponentResourceManager = New System.ComponentModel.ComponentResourceManager(GetType(frm_deficiencycalculator))
Me.lbl_in1 = New System.Windows.Forms.Label()
Me.lbl_in2 = New System.Windows.Forms.Label()
Me.txt_in1 = New System.Windows.Forms.TextBox()
Me.txt_in2 = New System.Windows.Forms.TextBox()
Me.txt_out = New System.Windows.Forms.TextBox()
Me.cmd_start = New System.Windows.Forms.Button()
Dim resources As System.ComponentModel.ComponentResourceManager = New System.ComponentModel.ComponentResourceManager(GetType(DeficiencyCalculatorForm))
Me.Input1Label = New System.Windows.Forms.Label()
Me.Input2Label = New System.Windows.Forms.Label()
Me.Input1Txt = New System.Windows.Forms.TextBox()
Me.Input2Txt = New System.Windows.Forms.TextBox()
Me.OutputTxt = New System.Windows.Forms.TextBox()
Me.StartButton = New System.Windows.Forms.Button()
Me.SuspendLayout()
'
'lbl_in1
'Input1Label
'
resources.ApplyResources(Me.lbl_in1, "lbl_in1")
Me.lbl_in1.Name = "lbl_in1"
resources.ApplyResources(Me.Input1Label, "Input1Label")
Me.Input1Label.Name = "Input1Label"
'
'lbl_in2
'Input2Label
'
resources.ApplyResources(Me.lbl_in2, "lbl_in2")
Me.lbl_in2.Name = "lbl_in2"
resources.ApplyResources(Me.Input2Label, "Input2Label")
Me.Input2Label.Name = "Input2Label"
'
'txt_in1
'Input1Txt
'
resources.ApplyResources(Me.txt_in1, "txt_in1")
Me.txt_in1.Name = "txt_in1"
resources.ApplyResources(Me.Input1Txt, "Input1Txt")
Me.Input1Txt.Name = "Input1Txt"
'
'txt_in2
'Input2Txt
'
resources.ApplyResources(Me.txt_in2, "txt_in2")
Me.txt_in2.Name = "txt_in2"
resources.ApplyResources(Me.Input2Txt, "Input2Txt")
Me.Input2Txt.Name = "Input2Txt"
'
'txt_out
'OutputTxt
'
Me.txt_out.BorderStyle = System.Windows.Forms.BorderStyle.None
resources.ApplyResources(Me.txt_out, "txt_out")
Me.txt_out.Name = "txt_out"
Me.txt_out.ReadOnly = True
Me.OutputTxt.BorderStyle = System.Windows.Forms.BorderStyle.None
resources.ApplyResources(Me.OutputTxt, "OutputTxt")
Me.OutputTxt.Name = "OutputTxt"
Me.OutputTxt.ReadOnly = True
'
'cmd_start
'StartButton
'
resources.ApplyResources(Me.cmd_start, "cmd_start")
Me.cmd_start.Name = "cmd_start"
Me.cmd_start.UseVisualStyleBackColor = True
resources.ApplyResources(Me.StartButton, "StartButton")
Me.StartButton.Name = "StartButton"
Me.StartButton.UseVisualStyleBackColor = True
'
'frm_deficiencycalculator
'DeficiencyCalculatorForm
'
resources.ApplyResources(Me, "$this")
Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font
Me.Controls.Add(Me.cmd_start)
Me.Controls.Add(Me.txt_out)
Me.Controls.Add(Me.txt_in2)
Me.Controls.Add(Me.txt_in1)
Me.Controls.Add(Me.lbl_in2)
Me.Controls.Add(Me.lbl_in1)
Me.Name = "frm_deficiencycalculator"
Me.Controls.Add(Me.StartButton)
Me.Controls.Add(Me.OutputTxt)
Me.Controls.Add(Me.Input2Txt)
Me.Controls.Add(Me.Input1Txt)
Me.Controls.Add(Me.Input2Label)
Me.Controls.Add(Me.Input1Label)
Me.Name = "DeficiencyCalculatorForm"
Me.ResumeLayout(False)
Me.PerformLayout()
End Sub
Friend WithEvents lbl_in1 As System.Windows.Forms.Label
Friend WithEvents lbl_in2 As System.Windows.Forms.Label
Friend WithEvents txt_in1 As System.Windows.Forms.TextBox
Friend WithEvents txt_in2 As System.Windows.Forms.TextBox
Friend WithEvents txt_out As System.Windows.Forms.TextBox
Friend WithEvents cmd_start As System.Windows.Forms.Button
Friend WithEvents Input1Label As System.Windows.Forms.Label
Friend WithEvents Input2Label As System.Windows.Forms.Label
Friend WithEvents Input1Txt As System.Windows.Forms.TextBox
Friend WithEvents Input2Txt As System.Windows.Forms.TextBox
Friend WithEvents OutputTxt As System.Windows.Forms.TextBox
Friend WithEvents StartButton As System.Windows.Forms.Button
End Class
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<root>
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
......@@ -118,193 +58,206 @@
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<assembly alias="mscorlib" name="mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<data name="lbl_in1.AutoSize" type="System.Boolean, mscorlib">
<data name="Input1Label.AutoSize" type="System.Boolean, mscorlib">
<value>True</value>
</data>
<assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<data name="lbl_in1.Font" type="System.Drawing.Font, System.Drawing">
<value>Microsoft Sans Serif, 10.2pt</value>
<data name="Input1Label.Font" type="System.Drawing.Font, System.Drawing">
<value>Segoe UI, 10pt</value>
</data>
<data name="lbl_in1.Location" type="System.Drawing.Point, System.Drawing">
<value>12, 9</value>
<data name="Input1Label.Location" type="System.Drawing.Point, System.Drawing">
<value>12, 11</value>
</data>
<data name="lbl_in1.Size" type="System.Drawing.Size, System.Drawing">
<value>128, 20</value>
<data name="Input1Label.Size" type="System.Drawing.Size, System.Drawing">
<value>131, 23</value>
</data>
<data name="lbl_in1.TabIndex" type="System.Int32, mscorlib">
<value>0</value>
<data name="Input1Label.TabIndex" type="System.Int32, mscorlib">
<value>4</value>
</data>
<data name="lbl_in1.Text" xml:space="preserve">
<data name="Input1Label.Text" xml:space="preserve">
<value>Ermittelter Wert</value>
</data>
<data name="&gt;&gt;lbl_in1.Name" xml:space="preserve">
<value>lbl_in1</value>
<data name="&gt;&gt;Input1Label.Name" xml:space="preserve">
<value>Input1Label</value>
</data>
<data name="&gt;&gt;lbl_in1.Type" xml:space="preserve">
<value>System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
<data name="&gt;&gt;Input1Label.Type" xml:space="preserve">
<value>System.Windows.Forms.Label, System.Windows.Forms, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;lbl_in1.Parent" xml:space="preserve">
<data name="&gt;&gt;Input1Label.Parent" xml:space="preserve">
<value>$this</value>
</data>
<data name="&gt;&gt;lbl_in1.ZOrder" xml:space="preserve">
<data name="&gt;&gt;Input1Label.ZOrder" xml:space="preserve">
<value>5</value>
</data>
<data name="lbl_in2.AutoSize" type="System.Boolean, mscorlib">
<data name="Input2Label.AutoSize" type="System.Boolean, mscorlib">
<value>True</value>
</data>
<data name="lbl_in2.Font" type="System.Drawing.Font, System.Drawing">
<value>Microsoft Sans Serif, 10.2pt</value>
<data name="Input2Label.Font" type="System.Drawing.Font, System.Drawing">
<value>Segoe UI, 10pt</value>
</data>
<data name="lbl_in2.Location" type="System.Drawing.Point, System.Drawing">
<value>261, 9</value>
<data name="Input2Label.Location" type="System.Drawing.Point, System.Drawing">
<value>261, 11</value>
</data>
<data name="lbl_in2.Size" type="System.Drawing.Size, System.Drawing">
<value>120, 20</value>
<data name="Input2Label.Size" type="System.Drawing.Size, System.Drawing">
<value>120, 23</value>
</data>
<data name="lbl_in2.TabIndex" type="System.Int32, mscorlib">
<value>1</value>
<data name="Input2Label.TabIndex" type="System.Int32, mscorlib">
<value>5</value>
</data>
<data name="lbl_in2.Text" xml:space="preserve">
<data name="Input2Label.Text" xml:space="preserve">
<value>Vergleichswert</value>
</data>
<data name="&gt;&gt;lbl_in2.Name" xml:space="preserve">
<value>lbl_in2</value>
<data name="&gt;&gt;Input2Label.Name" xml:space="preserve">
<value>Input2Label</value>
</data>
<data name="&gt;&gt;lbl_in2.Type" xml:space="preserve">
<value>System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
<data name="&gt;&gt;Input2Label.Type" xml:space="preserve">
<value>System.Windows.Forms.Label, System.Windows.Forms, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;lbl_in2.Parent" xml:space="preserve">
<data name="&gt;&gt;Input2Label.Parent" xml:space="preserve">
<value>$this</value>
</data>
<data name="&gt;&gt;lbl_in2.ZOrder" xml:space="preserve">
<data name="&gt;&gt;Input2Label.ZOrder" xml:space="preserve">
<value>4</value>
</data>
<data name="txt_in1.Font" type="System.Drawing.Font, System.Drawing">
<value>Microsoft Sans Serif, 12pt</value>
<data name="Input1Txt.Font" type="System.Drawing.Font, System.Drawing">
<value>Segoe UI, 12pt</value>
</data>
<data name="txt_in1.Location" type="System.Drawing.Point, System.Drawing">
<value>12, 32</value>
<data name="Input1Txt.Location" type="System.Drawing.Point, System.Drawing">
<value>12, 40</value>
</data>
<data name="txt_in1.Size" type="System.Drawing.Size, System.Drawing">
<value>246, 30</value>
<assembly alias="System.Windows.Forms" name="System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<data name="Input1Txt.Margin" type="System.Windows.Forms.Padding, System.Windows.Forms">
<value>3, 4, 3, 4</value>
</data>
<data name="txt_in1.TabIndex" type="System.Int32, mscorlib">
<value>2</value>
<data name="Input1Txt.Size" type="System.Drawing.Size, System.Drawing">
<value>246, 34</value>
</data>
<assembly alias="System.Windows.Forms" name="System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<data name="txt_in1.TextAlign" type="System.Windows.Forms.HorizontalAlignment, System.Windows.Forms">
<data name="Input1Txt.TabIndex" type="System.Int32, mscorlib">
<value>0</value>
</data>
<assembly alias="System.Windows.Forms" name="System.Windows.Forms, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<data name="Input1Txt.TextAlign" type="System.Windows.Forms.HorizontalAlignment, System.Windows.Forms">
<value>Right</value>
</data>
<data name="&gt;&gt;txt_in1.Name" xml:space="preserve">
<value>txt_in1</value>
<data name="&gt;&gt;Input1Txt.Name" xml:space="preserve">
<value>Input1Txt</value>
</data>
<data name="&gt;&gt;txt_in1.Type" xml:space="preserve">
<value>System.Windows.Forms.TextBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
<data name="&gt;&gt;Input1Txt.Type" xml:space="preserve">
<value>System.Windows.Forms.TextBox, System.Windows.Forms, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;txt_in1.Parent" xml:space="preserve">
<data name="&gt;&gt;Input1Txt.Parent" xml:space="preserve">
<value>$this</value>
</data>
<data name="&gt;&gt;txt_in1.ZOrder" xml:space="preserve">
<data name="&gt;&gt;Input1Txt.ZOrder" xml:space="preserve">
<value>3</value>
</data>
<data name="txt_in2.Font" type="System.Drawing.Font, System.Drawing">
<value>Microsoft Sans Serif, 12pt</value>
<data name="Input2Txt.Font" type="System.Drawing.Font, System.Drawing">
<value>Segoe UI, 12pt</value>
</data>
<data name="txt_in2.Location" type="System.Drawing.Point, System.Drawing">
<value>265, 32</value>
<data name="Input2Txt.Location" type="System.Drawing.Point, System.Drawing">
<value>265, 40</value>
</data>
<data name="txt_in2.Size" type="System.Drawing.Size, System.Drawing">
<value>247, 30</value>
<data name="Input2Txt.Margin" type="System.Windows.Forms.Padding, System.Windows.Forms">
<value>3, 4, 3, 4</value>
</data>
<data name="txt_in2.TabIndex" type="System.Int32, mscorlib">
<value>3</value>
<data name="Input2Txt.Size" type="System.Drawing.Size, System.Drawing">
<value>247, 34</value>
</data>
<data name="Input2Txt.TabIndex" type="System.Int32, mscorlib">
<value>1</value>
</data>
<data name="txt_in2.TextAlign" type="System.Windows.Forms.HorizontalAlignment, System.Windows.Forms">
<data name="Input2Txt.TextAlign" type="System.Windows.Forms.HorizontalAlignment, System.Windows.Forms">
<value>Right</value>
</data>
<data name="&gt;&gt;txt_in2.Name" xml:space="preserve">
<value>txt_in2</value>
<data name="&gt;&gt;Input2Txt.Name" xml:space="preserve">
<value>Input2Txt</value>
</data>
<data name="&gt;&gt;txt_in2.Type" xml:space="preserve">
<value>System.Windows.Forms.TextBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
<data name="&gt;&gt;Input2Txt.Type" xml:space="preserve">
<value>System.Windows.Forms.TextBox, System.Windows.Forms, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;txt_in2.Parent" xml:space="preserve">
<data name="&gt;&gt;Input2Txt.Parent" xml:space="preserve">
<value>$this</value>
</data>
<data name="&gt;&gt;txt_in2.ZOrder" xml:space="preserve">
<data name="&gt;&gt;Input2Txt.ZOrder" xml:space="preserve">
<value>2</value>
</data>
<data name="txt_out.Font" type="System.Drawing.Font, System.Drawing">
<value>Microsoft Sans Serif, 10.2pt</value>
<data name="OutputTxt.Font" type="System.Drawing.Font, System.Drawing">
<value>Segoe UI, 10pt</value>
</data>
<data name="txt_out.Location" type="System.Drawing.Point, System.Drawing">
<value>12, 113</value>
<data name="OutputTxt.Location" type="System.Drawing.Point, System.Drawing">
<value>12, 141</value>
</data>
<data name="txt_out.Multiline" type="System.Boolean, mscorlib">
<data name="OutputTxt.Margin" type="System.Windows.Forms.Padding, System.Windows.Forms">
<value>3, 4, 3, 4</value>
</data>
<data name="OutputTxt.Multiline" type="System.Boolean, mscorlib">
<value>True</value>
</data>
<data name="txt_out.Size" type="System.Drawing.Size, System.Drawing">
<value>499, 168</value>
<data name="OutputTxt.Size" type="System.Drawing.Size, System.Drawing">
<value>499, 210</value>
</data>
<data name="txt_out.TabIndex" type="System.Int32, mscorlib">
<value>4</value>
<data name="OutputTxt.TabIndex" type="System.Int32, mscorlib">
<value>3</value>
</data>
<data name="txt_out.Text" xml:space="preserve">
<value>Dieser Rechner berechnet den Fehler eines ermittelten Wertes mit
einem Vergleichswert mittels folgender Formel:
<data name="OutputTxt.Text" xml:space="preserve">
<value>Dieser Rechner berechnet den Fehler eines ermittelten Wertes
mit einem Vergleichswert mittels folgender Formel:
(Betrag( x/y - 1 ) + Betrag( y/x - 1 )) / 2
Dezimalzahlen mit einem Komma trennen.</value>
</data>
<data name="&gt;&gt;txt_out.Name" xml:space="preserve">
<value>txt_out</value>
<data name="&gt;&gt;OutputTxt.Name" xml:space="preserve">
<value>OutputTxt</value>
</data>
<data name="&gt;&gt;txt_out.Type" xml:space="preserve">
<value>System.Windows.Forms.TextBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
<data name="&gt;&gt;OutputTxt.Type" xml:space="preserve">
<value>System.Windows.Forms.TextBox, System.Windows.Forms, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;txt_out.Parent" xml:space="preserve">
<data name="&gt;&gt;OutputTxt.Parent" xml:space="preserve">
<value>$this</value>
</data>
<data name="&gt;&gt;txt_out.ZOrder" xml:space="preserve">
<data name="&gt;&gt;OutputTxt.ZOrder" xml:space="preserve">
<value>1</value>
</data>
<data name="cmd_start.Font" type="System.Drawing.Font, System.Drawing">
<value>Microsoft Sans Serif, 12pt</value>
<data name="StartButton.Font" type="System.Drawing.Font, System.Drawing">
<value>Segoe UI, 16pt</value>
</data>
<data name="cmd_start.Location" type="System.Drawing.Point, System.Drawing">
<value>12, 68</value>
<data name="StartButton.Location" type="System.Drawing.Point, System.Drawing">
<value>12, 85</value>
</data>
<data name="cmd_start.Size" type="System.Drawing.Size, System.Drawing">
<value>499, 39</value>
<data name="StartButton.Margin" type="System.Windows.Forms.Padding, System.Windows.Forms">
<value>3, 4, 3, 4</value>
</data>
<data name="cmd_start.TabIndex" type="System.Int32, mscorlib">
<value>5</value>
<data name="StartButton.Size" type="System.Drawing.Size, System.Drawing">
<value>499, 49</value>
</data>
<data name="cmd_start.Text" xml:space="preserve">
<data name="StartButton.TabIndex" type="System.Int32, mscorlib">
<value>2</value>
</data>
<data name="StartButton.Text" xml:space="preserve">
<value>Berechnen</value>
</data>
<data name="&gt;&gt;cmd_start.Name" xml:space="preserve">
<value>cmd_start</value>
<data name="&gt;&gt;StartButton.Name" xml:space="preserve">
<value>StartButton</value>
</data>
<data name="&gt;&gt;cmd_start.Type" xml:space="preserve">
<value>System.Windows.Forms.Button, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
<data name="&gt;&gt;StartButton.Type" xml:space="preserve">
<value>System.Windows.Forms.Button, System.Windows.Forms, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;cmd_start.Parent" xml:space="preserve">
<data name="&gt;&gt;StartButton.Parent" xml:space="preserve">
<value>$this</value>
</data>
<data name="&gt;&gt;cmd_start.ZOrder" xml:space="preserve">
<data name="&gt;&gt;StartButton.ZOrder" xml:space="preserve">
<value>0</value>
</data>
<metadata name="$this.Localizable" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<data name="$this.AutoScaleDimensions" type="System.Drawing.SizeF, System.Drawing">
<value>8, 16</value>
<value>8, 20</value>
</data>
<data name="$this.ClientSize" type="System.Drawing.Size, System.Drawing">
<value>523, 293</value>
<value>523, 366</value>
</data>
<data name="$this.Icon" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
......@@ -382,16 +335,19 @@ Dezimalzahlen mit einem Komma trennen.</value>
5gfh/+YH4f/gB+H/8AfgAAAH8AAAD/gAAB8=
</value>
</data>
<data name="$this.Margin" type="System.Windows.Forms.Padding, System.Windows.Forms">
<value>3, 4, 3, 4</value>
</data>
<data name="$this.MinimumSize" type="System.Drawing.Size, System.Drawing">
<value>541, 340</value>
<value>541, 413</value>
</data>
<data name="$this.Text" xml:space="preserve">
<value>Fehler-Rechner</value>
</data>
<data name="&gt;&gt;$this.Name" xml:space="preserve">
<value>frm_deficiencycalculator</value>
<value>DeficiencyCalculatorForm</value>
</data>
<data name="&gt;&gt;$this.Type" xml:space="preserve">
<value>System.Windows.Forms.Form, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
<value>System.Windows.Forms.Form, System.Windows.Forms, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
</root>
\ No newline at end of file
Imports System.Math
Imports System.Data
Imports System.Math
Public Class frm_deficiencycalculator
Public Class DeficiencyCalculatorForm
Private Shared ReadOnly NoOutputExc As String = "Without input nothing can be calculated.;Ohne Eingabe kann nichts berechnet werden."
Private Shared ReadOnly InvalidFormatExc As String = "Invalid conversion of string {} in type Double.;Ungültige Konvertierung von der Zeichenfolge {} in Typ Double."
Private Sub cmd_start_Click(sender As System.Object, e As System.EventArgs) Handles cmd_start.Click
Dim in1 As Double
Dim in2 As Double
Dim out As Double
Dim percout As Double
Dim txt As String()
Private Sub StartButton_Click(sender As System.Object, e As System.EventArgs) Handles StartButton.Click
Dim In1 As Double
Dim In2 As Double
Dim Out As Double
Dim PercOut As Double
Dim Txt As String()
Try
If (txt_in1.Text = "") Or (txt_in2.Text = "") Then
Throw New NoNullAllowedException("Without input nothing can be calculated.;Ohne Eingabe kann nichts berechnet werden.")
If (Input1Txt.Text = "") Or (Input2Txt.Text = "") Then
Throw New NoNullAllowedException(NoOutputExc)
End If
If (Not IsNumeric(txt_in1.Text) Or Not IsNumeric(txt_in2.Text)) Then
Throw New InvalidCastException("Invalid conversion of string " + txt_in1.Text + " in type Double.;Ungültige Konvertierung von der Zeichenfolge " + txt_in1.Text + " in Typ Double.")
ElseIf (txt_in1.Text.Contains(".")) Then
Throw New InvalidCastException("Invalid conversion of string " + txt_in1.Text + " in type Double.;Ungültige Konvertierung von der Zeichenfolge " + txt_in1.Text + " in Typ Double.")
ElseIf (txt_in2.Text.Contains(".")) Then
Throw New InvalidCastException("Invalid conversion of string " + txt_in2.Text + " in type Double.;Ungültige Konvertierung von der Zeichenfolge " + txt_in2.Text + " in Typ Double.")
If (Not IsNumeric(Input1Txt.Text) OrElse Not IsNumeric(Input2Txt.Text)) OrElse (Input1Txt.Text.Contains(".")) Then
Throw New InvalidCastException(InvalidFormatExc.Replace("{}", Input1Txt.Text))
ElseIf (Input2Txt.Text.Contains(".")) Then
Throw New InvalidCastException(InvalidFormatExc.Replace("{}", Input2Txt.Text))
End If
in1 = txt_in1.Text
in2 = txt_in2.Text
out = (Abs((in1 / in2) - 1) + Abs((in2 / in1) - 1)) / 2
percout = out * 100
In1 = Input1Txt.Text
In2 = Input2Txt.Text
Out = (Abs((In1 / In2) - 1) + Abs((In2 / In1) - 1)) / 2
PercOut = Round(Out * 100, 2)
txt_out.Text = vbCrLf + out.ToString + vbCrLf + vbCrLf + "≈" + vbCrLf + vbCrLf + Round(percout, 2).ToString + " %"
OutputTxt.Text = vbCrLf & Out.ToString & vbCrLf & vbCrLf & "≈" & vbCrLf & vbCrLf & PercOut.ToString & " %"
Catch ex As SystemException
txt = ex.Message.Split(";")
txt_out.Text = vbCrLf + txt(0) + vbCrLf + "Please use a comma for decimal numbers." + vbCrLf + vbCrLf + txt(1) + vbCrLf + "Bitte nur mit Komma getrennte Dezimalzahlen verwenden."
Txt = ex.Message.Split(";")
OutputTxt.Text = vbCrLf & Txt(0) & vbCrLf & "Please use a comma for decimal numbers." & vbCrLf & vbCrLf & Txt(1) & vbCrLf & "Bitte nur mit Komma getrennte Dezimalzahlen verwenden."
End Try
End Sub
End Class
'------------------------------------------------------------------------------
' <auto-generated>
' Dieser Code wurde von einem Tool generiert.
' Laufzeitversion:4.0.30319.42000
' This code was generated by a tool.
' Runtime Version:4.0.30319.42000
'
' Änderungen an dieser Datei können falsches Verhalten verursachen und gehen verloren, wenn
' der Code erneut generiert wird.
' Changes to this file may cause incorrect behavior and will be lost if
' the code is regenerated.
' </auto-generated>
'------------------------------------------------------------------------------
......@@ -14,10 +14,10 @@ Option Explicit On
Namespace My
'HINWEIS: Diese Datei wird automatisch generiert. Ändern Sie sie nicht direkt. Zum Ändern
' oder bei in dieser Datei auftretenden Buildfehlern wechseln Sie zum Projekt-Designer.
' (Wechseln Sie dazu zu den Projekteigenschaften, oder doppelklicken Sie auf den Knoten "Mein Projekt" im
' Projektmappen-Explorer). Nehmen Sie auf der Registerkarte "Anwendung" entsprechende Änderungen vor.
'NOTE: This file is auto-generated; do not modify it directly. To make changes,
' or if you encounter build errors in this file, go to the Project Designer
' (go to Project Properties or double-click the My Project node in
' Solution Explorer), and make changes on the Application tab.
'
Partial Friend Class MyApplication
......@@ -32,7 +32,7 @@ Namespace My
<Global.System.Diagnostics.DebuggerStepThroughAttribute()> _
Protected Overrides Sub OnCreateMainForm()
Me.MainForm = Global.DeficiencyCalculator.frm_deficiencycalculator
Me.MainForm = Global.DeficiencyCalculator.DeficiencyCalculatorForm
End Sub
End Class
End Namespace
<?xml version="1.0" encoding="utf-8"?>
<?xml version="1.0" encoding="utf-16"?>
<MyApplicationData xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<MySubMain>true</MySubMain>
<MainForm>frm_deficiencycalculator</MainForm>
<MainForm>DeficiencyCalculatorForm</MainForm>
<SingleInstance>false</SingleInstance>
<ShutdownMode>0</ShutdownMode>
<EnableVisualStyles>true</EnableVisualStyles>
......
......@@ -8,11 +8,11 @@ Imports System.Runtime.InteropServices
' Die Werte der Assemblyattribute überprüfen
<Assembly: AssemblyTitle("WindowsApplication1")>
<Assembly: AssemblyDescription("")>
<Assembly: AssemblyTitle("WindowsApplication1")>
<Assembly: AssemblyDescription("A small app to calculate the deficiency of two decimal values.")>
<Assembly: AssemblyCompany("")>
<Assembly: AssemblyProduct("WindowsApplication1")>
<Assembly: AssemblyCopyright("Copyright © 2018")>
<Assembly: AssemblyProduct("Deficiency Calculator")>
<Assembly: AssemblyCopyright("GPL-3.0")>
<Assembly: AssemblyTrademark("")>
<Assembly: ComVisible(False)>
......@@ -31,5 +31,5 @@ Imports System.Runtime.InteropServices
' übernehmen, indem Sie "*" eingeben:
' <Assembly: AssemblyVersion("1.0.*")>
<Assembly: AssemblyVersion("1.0.0.0")>
<Assembly: AssemblyFileVersion("1.0.0.0")>
<Assembly: AssemblyVersion("2.0.0.0")>
<Assembly: AssemblyFileVersion("2.0.0.0")>
'------------------------------------------------------------------------------
' <auto-generated>
' Dieser Code wurde von einem Tool generiert.
' Laufzeitversion:4.0.30319.42000
' This code was generated by a tool.
' Runtime Version:4.0.30319.42000
'
' Änderungen an dieser Datei können falsches Verhalten verursachen und gehen verloren, wenn
' der Code erneut generiert wird.
' Changes to this file may cause incorrect behavior and will be lost if
' the code is regenerated.
' </auto-generated>
'------------------------------------------------------------------------------
......@@ -15,14 +15,14 @@ Imports System
Namespace My.Resources
'Diese Klasse wurde von der StronglyTypedResourceBuilder automatisch generiert
'-Klasse über ein Tool wie ResGen oder Visual Studio automatisch generiert.
'Um einen Member hinzuzufügen oder zu entfernen, bearbeiten Sie die .ResX-Datei und führen dann ResGen
'mit der /str-Option erneut aus, oder Sie erstellen Ihr VS-Projekt neu.
'This class was auto-generated by the StronglyTypedResourceBuilder
'class via a tool like ResGen or Visual Studio.
'To add or remove a member, edit your .ResX file then rerun ResGen
'with the /str option, or rebuild your VS project.
'''<summary>
''' Eine stark typisierte Ressourcenklasse zum Suchen von lokalisierten Zeichenfolgen usw.
''' A strongly-typed resource class, for looking up localized strings, etc.
'''</summary>
<Global.System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0"), _
<Global.System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "16.0.0.0"), _
Global.System.Diagnostics.DebuggerNonUserCodeAttribute(), _
Global.System.Runtime.CompilerServices.CompilerGeneratedAttribute(), _
Global.Microsoft.VisualBasic.HideModuleNameAttribute()> _
......@@ -33,7 +33,7 @@ Namespace My.Resources
Private resourceCulture As Global.System.Globalization.CultureInfo
'''<summary>
''' Gibt die zwischengespeicherte ResourceManager-Instanz zurück, die von dieser Klasse verwendet wird.
''' Returns the cached ResourceManager instance used by this class.
'''</summary>
<Global.System.ComponentModel.EditorBrowsableAttribute(Global.System.ComponentModel.EditorBrowsableState.Advanced)> _
Friend ReadOnly Property ResourceManager() As Global.System.Resources.ResourceManager
......@@ -47,8 +47,8 @@ Namespace My.Resources
End Property
'''<summary>
''' Überschreibt die CurrentUICulture-Eigenschaft des aktuellen Threads für alle
''' Ressourcenzuordnungen, die diese stark typisierte Ressourcenklasse verwenden.
''' Overrides the current thread's CurrentUICulture property for all
''' resource lookups using this strongly typed resource class.
'''</summary>
<Global.System.ComponentModel.EditorBrowsableAttribute(Global.System.ComponentModel.EditorBrowsableState.Advanced)> _
Friend Property Culture() As Global.System.Globalization.CultureInfo
......
'------------------------------------------------------------------------------
' <auto-generated>
' Dieser Code wurde von einem Tool generiert.
' Laufzeitversion:4.0.30319.42000
' This code was generated by a tool.
' Runtime Version:4.0.30319.42000
'
' Änderungen an dieser Datei können falsches Verhalten verursachen und gehen verloren, wenn
' der Code erneut generiert wird.
' Changes to this file may cause incorrect behavior and will be lost if
' the code is regenerated.
' </auto-generated>
'------------------------------------------------------------------------------
......@@ -12,24 +12,24 @@ Option Strict On
Option Explicit On
Namespace My
Namespace DeficiencyCalculator.My_Project
<Global.System.Runtime.CompilerServices.CompilerGeneratedAttribute(), _
Global.System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "10.0.0.0"), _
Global.System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "17.2.0.0"), _
Global.System.ComponentModel.EditorBrowsableAttribute(Global.System.ComponentModel.EditorBrowsableState.Advanced)> _
Partial Friend NotInheritable Class MySettings
Inherits Global.System.Configuration.ApplicationSettingsBase
Private Shared defaultInstance As MySettings = CType(Global.System.Configuration.ApplicationSettingsBase.Synchronized(New MySettings()),MySettings)
#Region "Funktion zum automatischen Speichern von My.Settings"
#Region "My.Settings Auto-Save Functionality"
#If _MyType = "WindowsForms" Then
Private Shared addedHandler As Boolean
Private Shared addedHandlerLockObject As New Object
<Global.System.Diagnostics.DebuggerNonUserCodeAttribute(), Global.System.ComponentModel.EditorBrowsableAttribute(Global.System.ComponentModel.EditorBrowsableState.Advanced)> _
Private Shared Sub AutoSaveSettings(ByVal sender As Global.System.Object, ByVal e As Global.System.EventArgs)
Private Shared Sub AutoSaveSettings(sender As Global.System.Object, e As Global.System.EventArgs)
If My.Application.SaveMySettingsOnExit Then
My.Settings.Save()
End If
......@@ -64,9 +64,9 @@ Namespace My
Friend Module MySettingsProperty
<Global.System.ComponentModel.Design.HelpKeywordAttribute("My.Settings")> _
Friend ReadOnly Property Settings() As Global.DeficiencyCalculator.My.MySettings
Friend ReadOnly Property Settings() As Global.DeficiencyCalculator.DeficiencyCalculator.My_Project.MySettings
Get
Return Global.DeficiencyCalculator.My.MySettings.Default
Return Global.DeficiencyCalculator.DeficiencyCalculator.My_Project.MySettings.Default
End Get
End Property
End Module
......
LICENSE 0 → 100644
This diff is collapsed.
# Deficiency-Calculator
A small app to calculate the deficiency of two decimal values. <br>
A small app to calculate the deficiency of two decimal values.\
Made in a few minutes for the practical work of my and my fellow students' studies.
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment