summary refs log tree commit diff
diff options
context:
space:
mode:
author​1970-01-01 00:00:00 +0000
committer​2025-01-08 04:43:57 +0000
commit0a3d85e2ca50e52b92578ed9e2c1df0548e06e39 (patch)
treef5ff076c3199e7963a5246e575a5f425c4d62b44
parenttodo list (diff)
downloadcs-0a3d85e2ca50e52b92578ed9e2c1df0548e06e39.tar
cs-0a3d85e2ca50e52b92578ed9e2c1df0548e06e39.tar.gz
cs-0a3d85e2ca50e52b92578ed9e2c1df0548e06e39.tar.bz2
cs-0a3d85e2ca50e52b92578ed9e2c1df0548e06e39.tar.xz
cs-0a3d85e2ca50e52b92578ed9e2c1df0548e06e39.zip
invoice total 1
-rw-r--r--invoice_total1/.vs/InvoiceTotal/FileContentIndex/008b1d23-164b-47fc-b034-755491132000.vsidxbin0 -> 44057 bytes
-rw-r--r--invoice_total1/.vs/InvoiceTotal/v17/.suobin0 -> 44544 bytes
-rw-r--r--invoice_total1/InvoiceTotal.sln22
-rw-r--r--invoice_total1/InvoiceTotal/InvoiceTotal.csproj138
-rw-r--r--invoice_total1/InvoiceTotal/Program.cs22
-rw-r--r--invoice_total1/InvoiceTotal/Properties/AssemblyInfo.cs33
-rw-r--r--invoice_total1/InvoiceTotal/Properties/Resources.Designer.cs63
-rw-r--r--invoice_total1/InvoiceTotal/Properties/Resources.resx117
-rw-r--r--invoice_total1/InvoiceTotal/Properties/Settings.Designer.cs26
-rw-r--r--invoice_total1/InvoiceTotal/Properties/Settings.settings7
-rw-r--r--invoice_total1/InvoiceTotal/app.config3
-rw-r--r--invoice_total1/InvoiceTotal/bin/Debug/InvoiceTotal.exebin0 -> 15872 bytes
-rw-r--r--invoice_total1/InvoiceTotal/bin/Debug/InvoiceTotal.exe.config3
-rw-r--r--invoice_total1/InvoiceTotal/bin/Debug/InvoiceTotal.pdbbin0 -> 28160 bytes
-rw-r--r--invoice_total1/InvoiceTotal/frmInvoiceTotal.Designer.cs421
-rw-r--r--invoice_total1/InvoiceTotal/frmInvoiceTotal.cs82
-rw-r--r--invoice_total1/InvoiceTotal/frmInvoiceTotal.resx120
-rw-r--r--invoice_total1/InvoiceTotal/obj/Debug/.NETFramework,Version=v4.8.AssemblyAttributes.cs4
-rw-r--r--invoice_total1/InvoiceTotal/obj/Debug/DesignTimeResolveAssemblyReferences.cachebin0 -> 137 bytes
-rw-r--r--invoice_total1/InvoiceTotal/obj/Debug/DesignTimeResolveAssemblyReferencesInput.cachebin0 -> 2284 bytes
-rw-r--r--invoice_total1/InvoiceTotal/obj/Debug/InvoiceTotal.Properties.Resources.resourcesbin0 -> 180 bytes
-rw-r--r--invoice_total1/InvoiceTotal/obj/Debug/InvoiceTotal.csproj.AssemblyReference.cachebin0 -> 6088 bytes
-rw-r--r--invoice_total1/InvoiceTotal/obj/Debug/InvoiceTotal.csproj.CoreCompileInputs.cache1
-rw-r--r--invoice_total1/InvoiceTotal/obj/Debug/InvoiceTotal.csproj.FileListAbsolute.txt10
-rw-r--r--invoice_total1/InvoiceTotal/obj/Debug/InvoiceTotal.csproj.GenerateResource.cachebin0 -> 146 bytes
-rw-r--r--invoice_total1/InvoiceTotal/obj/Debug/InvoiceTotal.exebin0 -> 15872 bytes
-rw-r--r--invoice_total1/InvoiceTotal/obj/Debug/InvoiceTotal.frmInvoiceTotal.resourcesbin0 -> 180 bytes
-rw-r--r--invoice_total1/InvoiceTotal/obj/Debug/InvoiceTotal.pdbbin0 -> 28160 bytes
-rw-r--r--invoice_total1/InvoiceTotal/obj/Debug/TempPE/Properties.Resources.Designer.cs.dllbin0 -> 4096 bytes
29 files changed, 1072 insertions, 0 deletions
diff --git a/invoice_total1/.vs/InvoiceTotal/FileContentIndex/008b1d23-164b-47fc-b034-755491132000.vsidx b/invoice_total1/.vs/InvoiceTotal/FileContentIndex/008b1d23-164b-47fc-b034-755491132000.vsidx
new file mode 100644
index 0000000..c869873
--- /dev/null
+++ b/invoice_total1/.vs/InvoiceTotal/FileContentIndex/008b1d23-164b-47fc-b034-755491132000.vsidx
Binary files differdiff --git a/invoice_total1/.vs/InvoiceTotal/v17/.suo b/invoice_total1/.vs/InvoiceTotal/v17/.suo
new file mode 100644
index 0000000..73940f1
--- /dev/null
+++ b/invoice_total1/.vs/InvoiceTotal/v17/.suo
Binary files differdiff --git a/invoice_total1/InvoiceTotal.sln b/invoice_total1/InvoiceTotal.sln
new file mode 100644
index 0000000..ced1066
--- /dev/null
+++ b/invoice_total1/InvoiceTotal.sln
@@ -0,0 +1,22 @@
+

+Microsoft Visual Studio Solution File, Format Version 12.00

+# Visual Studio 14

+VisualStudioVersion = 14.0.23107.0

+MinimumVisualStudioVersion = 10.0.40219.1

+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "InvoiceTotal", "InvoiceTotal\InvoiceTotal.csproj", "{ABFE3FFD-56CF-4B23-8ED5-EBBBAF6EFD39}"

+EndProject

+Global

+	GlobalSection(SolutionConfigurationPlatforms) = preSolution

+		Debug|Any CPU = Debug|Any CPU

+		Release|Any CPU = Release|Any CPU

+	EndGlobalSection

+	GlobalSection(ProjectConfigurationPlatforms) = postSolution

+		{ABFE3FFD-56CF-4B23-8ED5-EBBBAF6EFD39}.Debug|Any CPU.ActiveCfg = Debug|Any CPU

+		{ABFE3FFD-56CF-4B23-8ED5-EBBBAF6EFD39}.Debug|Any CPU.Build.0 = Debug|Any CPU

+		{ABFE3FFD-56CF-4B23-8ED5-EBBBAF6EFD39}.Release|Any CPU.ActiveCfg = Release|Any CPU

+		{ABFE3FFD-56CF-4B23-8ED5-EBBBAF6EFD39}.Release|Any CPU.Build.0 = Release|Any CPU

+	EndGlobalSection

+	GlobalSection(SolutionProperties) = preSolution

+		HideSolutionNode = FALSE

+	EndGlobalSection

+EndGlobal

diff --git a/invoice_total1/InvoiceTotal/InvoiceTotal.csproj b/invoice_total1/InvoiceTotal/InvoiceTotal.csproj
new file mode 100644
index 0000000..c67214c
--- /dev/null
+++ b/invoice_total1/InvoiceTotal/InvoiceTotal.csproj
@@ -0,0 +1,138 @@
+<?xml version="1.0" encoding="utf-8"?>

+<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ToolsVersion="12.0">

+  <PropertyGroup>

+    <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>

+    <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>

+    <ProductVersion>9.0.21022</ProductVersion>

+    <SchemaVersion>2.0</SchemaVersion>

+    <ProjectGuid>{ABFE3FFD-56CF-4B23-8ED5-EBBBAF6EFD39}</ProjectGuid>

+    <OutputType>WinExe</OutputType>

+    <AppDesignerFolder>Properties</AppDesignerFolder>

+    <RootNamespace>InvoiceTotal</RootNamespace>

+    <AssemblyName>InvoiceTotal</AssemblyName>

+    <FileUpgradeFlags>

+    </FileUpgradeFlags>

+    <OldToolsVersion>3.5</OldToolsVersion>

+    <UpgradeBackupLocation>

+    </UpgradeBackupLocation>

+    <IsWebBootstrapper>true</IsWebBootstrapper>

+    <TargetFrameworkVersion>v4.8</TargetFrameworkVersion>

+    <PublishUrl>http://localhost/InvoiceTotal/</PublishUrl>

+    <Install>true</Install>

+    <InstallFrom>Web</InstallFrom>

+    <UpdateEnabled>true</UpdateEnabled>

+    <UpdateMode>Foreground</UpdateMode>

+    <UpdateInterval>7</UpdateInterval>

+    <UpdateIntervalUnits>Days</UpdateIntervalUnits>

+    <UpdatePeriodically>false</UpdatePeriodically>

+    <UpdateRequired>false</UpdateRequired>

+    <MapFileExtensions>true</MapFileExtensions>

+    <ApplicationRevision>0</ApplicationRevision>

+    <ApplicationVersion>1.0.0.%2a</ApplicationVersion>

+    <UseApplicationTrust>false</UseApplicationTrust>

+    <BootstrapperEnabled>true</BootstrapperEnabled>

+    <TargetFrameworkProfile>

+    </TargetFrameworkProfile>

+  </PropertyGroup>

+  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">

+    <DebugSymbols>true</DebugSymbols>

+    <DebugType>full</DebugType>

+    <Optimize>false</Optimize>

+    <OutputPath>bin\Debug\</OutputPath>

+    <DefineConstants>DEBUG;TRACE</DefineConstants>

+    <ErrorReport>prompt</ErrorReport>

+    <WarningLevel>4</WarningLevel>

+    <Prefer32Bit>false</Prefer32Bit>

+    <LangVersion>8.0</LangVersion>

+  </PropertyGroup>

+  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">

+    <DebugType>pdbonly</DebugType>

+    <Optimize>true</Optimize>

+    <OutputPath>bin\Release\</OutputPath>

+    <DefineConstants>TRACE</DefineConstants>

+    <ErrorReport>prompt</ErrorReport>

+    <WarningLevel>4</WarningLevel>

+    <Prefer32Bit>false</Prefer32Bit>

+  </PropertyGroup>

+  <ItemGroup>

+    <Reference Include="Microsoft.CSharp" />

+    <Reference Include="System" />

+    <Reference Include="System.Core">

+      <RequiredTargetFramework>3.5</RequiredTargetFramework>

+    </Reference>

+    <Reference Include="System.Data" />

+    <Reference Include="System.Data.DataSetExtensions">

+      <RequiredTargetFramework>3.5</RequiredTargetFramework>

+    </Reference>

+    <Reference Include="System.Deployment" />

+    <Reference Include="System.Drawing" />

+    <Reference Include="System.Net.Http" />

+    <Reference Include="System.Windows.Forms" />

+    <Reference Include="System.Xml" />

+    <Reference Include="System.Xml.Linq">

+      <RequiredTargetFramework>3.5</RequiredTargetFramework>

+    </Reference>

+  </ItemGroup>

+  <ItemGroup>

+    <Compile Include="frmInvoiceTotal.cs">

+      <SubType>Form</SubType>

+    </Compile>

+    <Compile Include="frmInvoiceTotal.Designer.cs">

+      <DependentUpon>frmInvoiceTotal.cs</DependentUpon>

+    </Compile>

+    <Compile Include="Program.cs" />

+    <Compile Include="Properties\AssemblyInfo.cs" />

+    <EmbeddedResource Include="frmInvoiceTotal.resx">

+      <DependentUpon>frmInvoiceTotal.cs</DependentUpon>

+      <SubType>Designer</SubType>

+    </EmbeddedResource>

+    <EmbeddedResource Include="Properties\Resources.resx">

+      <Generator>ResXFileCodeGenerator</Generator>

+      <LastGenOutput>Resources.Designer.cs</LastGenOutput>

+      <SubType>Designer</SubType>

+    </EmbeddedResource>

+    <Compile Include="Properties\Resources.Designer.cs">

+      <AutoGen>True</AutoGen>

+      <DependentUpon>Resources.resx</DependentUpon>

+      <DesignTime>True</DesignTime>

+    </Compile>

+    <None Include="app.config" />

+    <None Include="Properties\Settings.settings">

+      <Generator>SettingsSingleFileGenerator</Generator>

+      <LastGenOutput>Settings.Designer.cs</LastGenOutput>

+    </None>

+    <Compile Include="Properties\Settings.Designer.cs">

+      <AutoGen>True</AutoGen>

+      <DependentUpon>Settings.settings</DependentUpon>

+      <DesignTimeSharedInput>True</DesignTimeSharedInput>

+    </Compile>

+  </ItemGroup>

+  <ItemGroup>

+    <BootstrapperPackage Include="Microsoft.Net.Client.3.5">

+      <Visible>False</Visible>

+      <ProductName>.NET Framework 3.5 SP1 Client Profile</ProductName>

+      <Install>false</Install>

+    </BootstrapperPackage>

+    <BootstrapperPackage Include="Microsoft.Net.Framework.2.0">

+      <Visible>False</Visible>

+      <ProductName>.NET Framework 2.0 %28x86%29</ProductName>

+      <Install>true</Install>

+    </BootstrapperPackage>

+    <BootstrapperPackage Include="Microsoft.Net.Framework.3.0">

+      <Visible>False</Visible>

+      <ProductName>.NET Framework 3.0 %28x86%29</ProductName>

+      <Install>false</Install>

+    </BootstrapperPackage>

+    <BootstrapperPackage Include="Microsoft.Net.Framework.3.5">

+      <Visible>False</Visible>

+      <ProductName>.NET Framework 3.5</ProductName>

+      <Install>false</Install>

+    </BootstrapperPackage>

+    <BootstrapperPackage Include="Microsoft.Net.Framework.3.5.SP1">

+      <Visible>False</Visible>

+      <ProductName>.NET Framework 3.5 SP1</ProductName>

+      <Install>false</Install>

+    </BootstrapperPackage>

+  </ItemGroup>

+  <Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />

+</Project>
\ No newline at end of file
diff --git a/invoice_total1/InvoiceTotal/Program.cs b/invoice_total1/InvoiceTotal/Program.cs
new file mode 100644
index 0000000..7f14579
--- /dev/null
+++ b/invoice_total1/InvoiceTotal/Program.cs
@@ -0,0 +1,22 @@
+using System;

+using System.Collections.Generic;

+using System.Linq;

+using System.Threading.Tasks;

+using System.Windows.Forms;

+

+namespace InvoiceTotal

+{

+	static class Program

+	{

+		/// <summary>

+		/// The main entry point for the application.

+		/// </summary>

+		[STAThread]

+		static void Main()

+		{

+			Application.EnableVisualStyles();

+            Application.SetCompatibleTextRenderingDefault(false);

+            Application.Run(new frmInvoiceTotal());

+		}

+	}

+}
\ No newline at end of file
diff --git a/invoice_total1/InvoiceTotal/Properties/AssemblyInfo.cs b/invoice_total1/InvoiceTotal/Properties/AssemblyInfo.cs
new file mode 100644
index 0000000..1d4eb9a
--- /dev/null
+++ b/invoice_total1/InvoiceTotal/Properties/AssemblyInfo.cs
@@ -0,0 +1,33 @@
+using System.Reflection;

+using System.Runtime.CompilerServices;

+using System.Runtime.InteropServices;

+

+// General Information about an assembly is controlled through the following 

+// set of attributes. Change these attribute values to modify the information

+// associated with an assembly.

+[assembly: AssemblyTitle("InvoiceTotal")]

+[assembly: AssemblyDescription("The solution to exercise 4-1 from 'Murach's C# 2005' by Joel Murach")]

+[assembly: AssemblyConfiguration("")]

+[assembly: AssemblyCompany("Mike Murach & Associates, Inc.")]

+[assembly: AssemblyProduct("InvoiceTotal")]

+[assembly: AssemblyCopyright("Copyright ©  2006")]

+[assembly: AssemblyTrademark("")]

+[assembly: AssemblyCulture("")]

+

+// Setting ComVisible to false makes the types in this assembly not visible 

+// to COM componenets.  If you need to access a type in this assembly from 

+// COM, set the ComVisible attribute to true on that type.

+[assembly: ComVisible(false)]

+

+// The following GUID is for the ID of the typelib if this project is exposed to COM

+[assembly: Guid("d7e81a3a-db10-47e8-9d34-9338f490ba9d")]

+

+// Version information for an assembly consists of the following four values:

+//

+//      Major Version

+//      Minor Version 

+//      Build Number

+//      Revision

+//

+[assembly: AssemblyVersion("1.0.0.0")]

+[assembly: AssemblyFileVersion("1.0.0.0")]

diff --git a/invoice_total1/InvoiceTotal/Properties/Resources.Designer.cs b/invoice_total1/InvoiceTotal/Properties/Resources.Designer.cs
new file mode 100644
index 0000000..1021f4b
--- /dev/null
+++ b/invoice_total1/InvoiceTotal/Properties/Resources.Designer.cs
@@ -0,0 +1,63 @@
+//------------------------------------------------------------------------------

+// <auto-generated>

+//     This code was generated by a tool.

+//     Runtime Version:4.0.30319.42000

+//

+//     Changes to this file may cause incorrect behavior and will be lost if

+//     the code is regenerated.

+// </auto-generated>

+//------------------------------------------------------------------------------

+

+namespace InvoiceTotal.Properties {

+    using System;

+    

+    

+    /// <summary>

+    ///   A strongly-typed resource class, for looking up localized strings, etc.

+    /// </summary>

+    // 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.

+    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "16.0.0.0")]

+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]

+    [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]

+    internal class Resources {

+        

+        private static global::System.Resources.ResourceManager resourceMan;

+        

+        private static global::System.Globalization.CultureInfo resourceCulture;

+        

+        [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]

+        internal Resources() {

+        }

+        

+        /// <summary>

+        ///   Returns the cached ResourceManager instance used by this class.

+        /// </summary>

+        [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]

+        internal static global::System.Resources.ResourceManager ResourceManager {

+            get {

+                if (object.ReferenceEquals(resourceMan, null)) {

+                    global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("InvoiceTotal.Properties.Resources", typeof(Resources).Assembly);

+                    resourceMan = temp;

+                }

+                return resourceMan;

+            }

+        }

+        

+        /// <summary>

+        ///   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)]

+        internal static global::System.Globalization.CultureInfo Culture {

+            get {

+                return resourceCulture;

+            }

+            set {

+                resourceCulture = value;

+            }

+        }

+    }

+}

diff --git a/invoice_total1/InvoiceTotal/Properties/Resources.resx b/invoice_total1/InvoiceTotal/Properties/Resources.resx
new file mode 100644
index 0000000..ffecec8
--- /dev/null
+++ b/invoice_total1/InvoiceTotal/Properties/Resources.resx
@@ -0,0 +1,117 @@
+<?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.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.

+    -->

+  <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">

+    <xsd:element name="root" msdata:IsDataSet="true">

+      <xsd:complexType>

+        <xsd:choice maxOccurs="unbounded">

+          <xsd:element name="metadata">

+            <xsd:complexType>

+              <xsd:sequence>

+                <xsd:element name="value" type="xsd:string" minOccurs="0" />

+              </xsd:sequence>

+              <xsd:attribute name="name" type="xsd:string" />

+              <xsd:attribute name="type" type="xsd:string" />

+              <xsd:attribute name="mimetype" type="xsd:string" />

+            </xsd:complexType>

+          </xsd:element>

+          <xsd:element name="assembly">

+            <xsd:complexType>

+              <xsd:attribute name="alias" type="xsd:string" />

+              <xsd:attribute name="name" type="xsd:string" />

+            </xsd:complexType>

+          </xsd:element>

+          <xsd:element name="data">

+            <xsd:complexType>

+              <xsd:sequence>

+                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />

+                <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />

+              </xsd:sequence>

+              <xsd:attribute name="name" type="xsd:string" msdata:Ordinal="1" />

+              <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />

+              <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />

+            </xsd:complexType>

+          </xsd:element>

+          <xsd:element name="resheader">

+            <xsd:complexType>

+              <xsd:sequence>

+                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />

+              </xsd:sequence>

+              <xsd:attribute name="name" type="xsd:string" use="required" />

+            </xsd:complexType>

+          </xsd:element>

+        </xsd:choice>

+      </xsd:complexType>

+    </xsd:element>

+  </xsd:schema>

+  <resheader name="resmimetype">

+    <value>text/microsoft-resx</value>

+  </resheader>

+  <resheader name="version">

+    <value>2.0</value>

+  </resheader>

+  <resheader name="reader">

+    <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>

+  </resheader>

+  <resheader name="writer">

+    <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>

+  </resheader>

+</root>
\ No newline at end of file
diff --git a/invoice_total1/InvoiceTotal/Properties/Settings.Designer.cs b/invoice_total1/InvoiceTotal/Properties/Settings.Designer.cs
new file mode 100644
index 0000000..8525954
--- /dev/null
+++ b/invoice_total1/InvoiceTotal/Properties/Settings.Designer.cs
@@ -0,0 +1,26 @@
+//------------------------------------------------------------------------------

+// <auto-generated>

+//     This code was generated by a tool.

+//     Runtime Version:4.0.30319.42000

+//

+//     Changes to this file may cause incorrect behavior and will be lost if

+//     the code is regenerated.

+// </auto-generated>

+//------------------------------------------------------------------------------

+

+namespace InvoiceTotal.Properties {

+    

+    

+    [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]

+    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "16.0.0.0")]

+    internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase {

+        

+        private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings())));

+        

+        public static Settings Default {

+            get {

+                return defaultInstance;

+            }

+        }

+    }

+}

diff --git a/invoice_total1/InvoiceTotal/Properties/Settings.settings b/invoice_total1/InvoiceTotal/Properties/Settings.settings
new file mode 100644
index 0000000..abf36c5
--- /dev/null
+++ b/invoice_total1/InvoiceTotal/Properties/Settings.settings
@@ -0,0 +1,7 @@
+<?xml version='1.0' encoding='utf-8'?>

+<SettingsFile xmlns="http://schemas.microsoft.com/VisualStudio/2004/01/settings" CurrentProfile="(Default)">

+  <Profiles>

+    <Profile Name="(Default)" />

+  </Profiles>

+  <Settings />

+</SettingsFile>

diff --git a/invoice_total1/InvoiceTotal/app.config b/invoice_total1/InvoiceTotal/app.config
new file mode 100644
index 0000000..99dca75
--- /dev/null
+++ b/invoice_total1/InvoiceTotal/app.config
@@ -0,0 +1,3 @@
+<?xml version="1.0"?>

+<configuration>

+<startup><supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.8"/></startup></configuration>

diff --git a/invoice_total1/InvoiceTotal/bin/Debug/InvoiceTotal.exe b/invoice_total1/InvoiceTotal/bin/Debug/InvoiceTotal.exe
new file mode 100644
index 0000000..d3ed08f
--- /dev/null
+++ b/invoice_total1/InvoiceTotal/bin/Debug/InvoiceTotal.exe
Binary files differdiff --git a/invoice_total1/InvoiceTotal/bin/Debug/InvoiceTotal.exe.config b/invoice_total1/InvoiceTotal/bin/Debug/InvoiceTotal.exe.config
new file mode 100644
index 0000000..99dca75
--- /dev/null
+++ b/invoice_total1/InvoiceTotal/bin/Debug/InvoiceTotal.exe.config
@@ -0,0 +1,3 @@
+<?xml version="1.0"?>

+<configuration>

+<startup><supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.8"/></startup></configuration>

diff --git a/invoice_total1/InvoiceTotal/bin/Debug/InvoiceTotal.pdb b/invoice_total1/InvoiceTotal/bin/Debug/InvoiceTotal.pdb
new file mode 100644
index 0000000..7b0e68d
--- /dev/null
+++ b/invoice_total1/InvoiceTotal/bin/Debug/InvoiceTotal.pdb
Binary files differdiff --git a/invoice_total1/InvoiceTotal/frmInvoiceTotal.Designer.cs b/invoice_total1/InvoiceTotal/frmInvoiceTotal.Designer.cs
new file mode 100644
index 0000000..83ec59b
--- /dev/null
+++ b/invoice_total1/InvoiceTotal/frmInvoiceTotal.Designer.cs
@@ -0,0 +1,421 @@
+namespace InvoiceTotal

+{

+	partial class frmInvoiceTotal

+	{

+		/// <summary>

+		/// Required designer variable.

+		/// </summary>

+		private System.ComponentModel.IContainer components = null;

+

+		/// <summary>

+		/// Clean up any resources being used.

+		/// </summary>

+		/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>

+		protected override void Dispose(bool disposing)

+		{

+			if (disposing && (components != null))

+			{

+				components.Dispose();

+			}

+			base.Dispose(disposing);

+		}

+

+		#region Windows Form Designer generated code

+

+		/// <summary>

+		/// Required method for Designer support - do not modify

+		/// the contents of this method with the code editor.

+		/// </summary>

+		private void InitializeComponent()

+		{

+            this.lblEnterSubtotal = new System.Windows.Forms.Label();

+            this.lblDiscountPercent = new System.Windows.Forms.Label();

+            this.lblDiscountAmount = new System.Windows.Forms.Label();

+            this.lblTotal = new System.Windows.Forms.Label();

+            this.label5 = new System.Windows.Forms.Label();

+            this.label6 = new System.Windows.Forms.Label();

+            this.label7 = new System.Windows.Forms.Label();

+            this.txtEnterSubtotal = new System.Windows.Forms.TextBox();

+            this.btnCalculate = new System.Windows.Forms.Button();

+            this.btnExit = new System.Windows.Forms.Button();

+            this.txtDiscountPercent = new System.Windows.Forms.TextBox();

+            this.txtDiscountAmount = new System.Windows.Forms.TextBox();

+            this.txtTotal = new System.Windows.Forms.TextBox();

+            this.btnClear = new System.Windows.Forms.Button();

+            this.txtSubtotal = new System.Windows.Forms.TextBox();

+            this.label8 = new System.Windows.Forms.Label();

+            this.lblSubtotal = new System.Windows.Forms.Label();

+            this.txtAvgInvoice = new System.Windows.Forms.TextBox();

+            this.txtInvoicesTotal = new System.Windows.Forms.TextBox();

+            this.txtNumInvoices = new System.Windows.Forms.TextBox();

+            this.label10 = new System.Windows.Forms.Label();

+            this.label11 = new System.Windows.Forms.Label();

+            this.lblAvgInvoice = new System.Windows.Forms.Label();

+            this.lblInvoicesTotal = new System.Windows.Forms.Label();

+            this.lblNumInvoices = new System.Windows.Forms.Label();

+            this.txtLargestInvoice = new System.Windows.Forms.TextBox();

+            this.txtSmallestInvoice = new System.Windows.Forms.TextBox();

+            this.label15 = new System.Windows.Forms.Label();

+            this.lblLargestInvoice = new System.Windows.Forms.Label();

+            this.lblSmallestInvoice = new System.Windows.Forms.Label();

+            this.SuspendLayout();

+            // 

+            // lblEnterSubtotal

+            // 

+            this.lblEnterSubtotal.AutoSize = true;

+            this.lblEnterSubtotal.Location = new System.Drawing.Point(16, 29);

+            this.lblEnterSubtotal.Name = "lblEnterSubtotal";

+            this.lblEnterSubtotal.Size = new System.Drawing.Size(77, 13);

+            this.lblEnterSubtotal.TabIndex = 0;

+            this.lblEnterSubtotal.Text = "Enter &Subtotal:";

+            this.lblEnterSubtotal.TextAlign = System.Drawing.ContentAlignment.MiddleLeft;

+            // 

+            // lblDiscountPercent

+            // 

+            this.lblDiscountPercent.AutoSize = true;

+            this.lblDiscountPercent.Location = new System.Drawing.Point(16, 82);

+            this.lblDiscountPercent.Name = "lblDiscountPercent";

+            this.lblDiscountPercent.Size = new System.Drawing.Size(92, 13);

+            this.lblDiscountPercent.TabIndex = 4;

+            this.lblDiscountPercent.Text = "Discount Percent:";

+            this.lblDiscountPercent.TextAlign = System.Drawing.ContentAlignment.MiddleLeft;

+            // 

+            // lblDiscountAmount

+            // 

+            this.lblDiscountAmount.AutoSize = true;

+            this.lblDiscountAmount.Location = new System.Drawing.Point(17, 109);

+            this.lblDiscountAmount.Name = "lblDiscountAmount";

+            this.lblDiscountAmount.Size = new System.Drawing.Size(91, 13);

+            this.lblDiscountAmount.TabIndex = 6;

+            this.lblDiscountAmount.Text = "Discount Amount:";

+            this.lblDiscountAmount.TextAlign = System.Drawing.ContentAlignment.MiddleLeft;

+            // 

+            // lblTotal

+            // 

+            this.lblTotal.AutoSize = true;

+            this.lblTotal.Location = new System.Drawing.Point(17, 135);

+            this.lblTotal.Name = "lblTotal";

+            this.lblTotal.Size = new System.Drawing.Size(34, 13);

+            this.lblTotal.TabIndex = 8;

+            this.lblTotal.Text = "Total:";

+            this.lblTotal.TextAlign = System.Drawing.ContentAlignment.MiddleLeft;

+            // 

+            // label5

+            // 

+            this.label5.AutoSize = true;

+            this.label5.Location = new System.Drawing.Point(124, 84);

+            this.label5.Name = "label5";

+            this.label5.Size = new System.Drawing.Size(0, 13);

+            this.label5.TabIndex = 4;

+            this.label5.TextAlign = System.Drawing.ContentAlignment.MiddleLeft;

+            // 

+            // label6

+            // 

+            this.label6.AutoSize = true;

+            this.label6.Location = new System.Drawing.Point(124, 114);

+            this.label6.Name = "label6";

+            this.label6.Size = new System.Drawing.Size(0, 13);

+            this.label6.TabIndex = 5;

+            this.label6.TextAlign = System.Drawing.ContentAlignment.MiddleLeft;

+            // 

+            // label7

+            // 

+            this.label7.AutoSize = true;

+            this.label7.Location = new System.Drawing.Point(124, 145);

+            this.label7.Name = "label7";

+            this.label7.Size = new System.Drawing.Size(0, 13);

+            this.label7.TabIndex = 6;

+            this.label7.TextAlign = System.Drawing.ContentAlignment.MiddleLeft;

+            // 

+            // txtEnterSubtotal

+            // 

+            this.txtEnterSubtotal.Location = new System.Drawing.Point(111, 26);

+            this.txtEnterSubtotal.Name = "txtEnterSubtotal";

+            this.txtEnterSubtotal.Size = new System.Drawing.Size(100, 20);

+            this.txtEnterSubtotal.TabIndex = 1;

+            // 

+            // btnCalculate

+            // 

+            this.btnCalculate.Location = new System.Drawing.Point(176, 176);

+            this.btnCalculate.Name = "btnCalculate";

+            this.btnCalculate.Size = new System.Drawing.Size(75, 23);

+            this.btnCalculate.TabIndex = 20;

+            this.btnCalculate.Text = "&Calculate";

+            this.btnCalculate.Click += new System.EventHandler(this.btnCalculate_Click);

+            // 

+            // btnExit

+            // 

+            this.btnExit.DialogResult = System.Windows.Forms.DialogResult.Cancel;

+            this.btnExit.Location = new System.Drawing.Point(338, 176);

+            this.btnExit.Name = "btnExit";

+            this.btnExit.Size = new System.Drawing.Size(75, 23);

+            this.btnExit.TabIndex = 22;

+            this.btnExit.Text = "E&xit";

+            this.btnExit.Click += new System.EventHandler(this.btnExit_Click);

+            // 

+            // txtDiscountPercent

+            // 

+            this.txtDiscountPercent.Location = new System.Drawing.Point(111, 79);

+            this.txtDiscountPercent.Name = "txtDiscountPercent";

+            this.txtDiscountPercent.ReadOnly = true;

+            this.txtDiscountPercent.Size = new System.Drawing.Size(100, 20);

+            this.txtDiscountPercent.TabIndex = 5;

+            this.txtDiscountPercent.TabStop = false;

+            // 

+            // txtDiscountAmount

+            // 

+            this.txtDiscountAmount.Location = new System.Drawing.Point(111, 106);

+            this.txtDiscountAmount.Name = "txtDiscountAmount";

+            this.txtDiscountAmount.ReadOnly = true;

+            this.txtDiscountAmount.Size = new System.Drawing.Size(100, 20);

+            this.txtDiscountAmount.TabIndex = 7;

+            this.txtDiscountAmount.TabStop = false;

+            // 

+            // txtTotal

+            // 

+            this.txtTotal.Location = new System.Drawing.Point(111, 132);

+            this.txtTotal.Name = "txtTotal";

+            this.txtTotal.ReadOnly = true;

+            this.txtTotal.Size = new System.Drawing.Size(100, 20);

+            this.txtTotal.TabIndex = 9;

+            this.txtTotal.TabStop = false;

+            // 

+            // btnClear

+            // 

+            this.btnClear.Location = new System.Drawing.Point(257, 176);

+            this.btnClear.Name = "btnClear";

+            this.btnClear.Size = new System.Drawing.Size(75, 23);

+            this.btnClear.TabIndex = 21;

+            this.btnClear.Text = "Clear";

+            this.btnClear.Click += new System.EventHandler(this.btnClear_Click);

+            // 

+            // txtSubtotal

+            // 

+            this.txtSubtotal.Location = new System.Drawing.Point(111, 52);

+            this.txtSubtotal.Name = "txtSubtotal";

+            this.txtSubtotal.ReadOnly = true;

+            this.txtSubtotal.Size = new System.Drawing.Size(100, 20);

+            this.txtSubtotal.TabIndex = 3;

+            this.txtSubtotal.TabStop = false;

+            // 

+            // label8

+            // 

+            this.label8.AutoSize = true;

+            this.label8.Location = new System.Drawing.Point(124, 65);

+            this.label8.Name = "label8";

+            this.label8.Size = new System.Drawing.Size(0, 13);

+            this.label8.TabIndex = 15;

+            this.label8.TextAlign = System.Drawing.ContentAlignment.MiddleLeft;

+            // 

+            // lblSubtotal

+            // 

+            this.lblSubtotal.AutoSize = true;

+            this.lblSubtotal.Location = new System.Drawing.Point(17, 55);

+            this.lblSubtotal.Name = "lblSubtotal";

+            this.lblSubtotal.Size = new System.Drawing.Size(49, 13);

+            this.lblSubtotal.TabIndex = 2;

+            this.lblSubtotal.Text = "Subtotal:";

+            this.lblSubtotal.TextAlign = System.Drawing.ContentAlignment.MiddleLeft;

+            // 

+            // txtAvgInvoice

+            // 

+            this.txtAvgInvoice.Location = new System.Drawing.Point(322, 104);

+            this.txtAvgInvoice.Name = "txtAvgInvoice";

+            this.txtAvgInvoice.ReadOnly = true;

+            this.txtAvgInvoice.Size = new System.Drawing.Size(100, 20);

+            this.txtAvgInvoice.TabIndex = 17;

+            this.txtAvgInvoice.TabStop = false;

+            // 

+            // txtInvoicesTotal

+            // 

+            this.txtInvoicesTotal.Location = new System.Drawing.Point(322, 130);

+            this.txtInvoicesTotal.Name = "txtInvoicesTotal";

+            this.txtInvoicesTotal.ReadOnly = true;

+            this.txtInvoicesTotal.Size = new System.Drawing.Size(100, 20);

+            this.txtInvoicesTotal.TabIndex = 19;

+            this.txtInvoicesTotal.TabStop = false;

+            // 

+            // txtNumInvoices

+            // 

+            this.txtNumInvoices.Location = new System.Drawing.Point(322, 26);

+            this.txtNumInvoices.Name = "txtNumInvoices";

+            this.txtNumInvoices.ReadOnly = true;

+            this.txtNumInvoices.Size = new System.Drawing.Size(100, 20);

+            this.txtNumInvoices.TabIndex = 11;

+            this.txtNumInvoices.TabStop = false;

+            // 

+            // label10

+            // 

+            this.label10.AutoSize = true;

+            this.label10.Location = new System.Drawing.Point(324, 34);

+            this.label10.Name = "label10";

+            this.label10.Size = new System.Drawing.Size(0, 13);

+            this.label10.TabIndex = 21;

+            this.label10.TextAlign = System.Drawing.ContentAlignment.MiddleLeft;

+            // 

+            // label11

+            // 

+            this.label11.AutoSize = true;

+            this.label11.Location = new System.Drawing.Point(324, 31);

+            this.label11.Name = "label11";

+            this.label11.Size = new System.Drawing.Size(0, 13);

+            this.label11.TabIndex = 20;

+            this.label11.TextAlign = System.Drawing.ContentAlignment.MiddleLeft;

+            // 

+            // lblAvgInvoice

+            // 

+            this.lblAvgInvoice.AutoSize = true;

+            this.lblAvgInvoice.Location = new System.Drawing.Point(221, 107);

+            this.lblAvgInvoice.Name = "lblAvgInvoice";

+            this.lblAvgInvoice.Size = new System.Drawing.Size(87, 13);

+            this.lblAvgInvoice.TabIndex = 16;

+            this.lblAvgInvoice.Text = "Invoice average:";

+            this.lblAvgInvoice.TextAlign = System.Drawing.ContentAlignment.MiddleLeft;

+            // 

+            // lblInvoicesTotal

+            // 

+            this.lblInvoicesTotal.AutoSize = true;

+            this.lblInvoicesTotal.Location = new System.Drawing.Point(221, 133);

+            this.lblInvoicesTotal.Name = "lblInvoicesTotal";

+            this.lblInvoicesTotal.Size = new System.Drawing.Size(88, 13);

+            this.lblInvoicesTotal.TabIndex = 18;

+            this.lblInvoicesTotal.Text = "Total of invoices:";

+            this.lblInvoicesTotal.TextAlign = System.Drawing.ContentAlignment.MiddleLeft;

+            // 

+            // lblNumInvoices

+            // 

+            this.lblNumInvoices.AutoSize = true;

+            this.lblNumInvoices.Location = new System.Drawing.Point(220, 29);

+            this.lblNumInvoices.Name = "lblNumInvoices";

+            this.lblNumInvoices.Size = new System.Drawing.Size(101, 13);

+            this.lblNumInvoices.TabIndex = 10;

+            this.lblNumInvoices.Text = "Number of invoices:";

+            this.lblNumInvoices.TextAlign = System.Drawing.ContentAlignment.MiddleLeft;

+            // 

+            // txtLargestInvoice

+            // 

+            this.txtLargestInvoice.Location = new System.Drawing.Point(322, 78);

+            this.txtLargestInvoice.Name = "txtLargestInvoice";

+            this.txtLargestInvoice.ReadOnly = true;

+            this.txtLargestInvoice.Size = new System.Drawing.Size(100, 20);

+            this.txtLargestInvoice.TabIndex = 15;

+            this.txtLargestInvoice.TabStop = false;

+            // 

+            // txtSmallestInvoice

+            // 

+            this.txtSmallestInvoice.Location = new System.Drawing.Point(322, 52);

+            this.txtSmallestInvoice.Name = "txtSmallestInvoice";

+            this.txtSmallestInvoice.ReadOnly = true;

+            this.txtSmallestInvoice.Size = new System.Drawing.Size(100, 20);

+            this.txtSmallestInvoice.TabIndex = 13;

+            this.txtSmallestInvoice.TabStop = false;

+            // 

+            // label15

+            // 

+            this.label15.AutoSize = true;

+            this.label15.Location = new System.Drawing.Point(324, 60);

+            this.label15.Name = "label15";

+            this.label15.Size = new System.Drawing.Size(0, 13);

+            this.label15.TabIndex = 27;

+            this.label15.TextAlign = System.Drawing.ContentAlignment.MiddleLeft;

+            // 

+            // lblLargestInvoice

+            // 

+            this.lblLargestInvoice.AutoSize = true;

+            this.lblLargestInvoice.Location = new System.Drawing.Point(221, 81);

+            this.lblLargestInvoice.Name = "lblLargestInvoice";

+            this.lblLargestInvoice.Size = new System.Drawing.Size(82, 13);

+            this.lblLargestInvoice.TabIndex = 14;

+            this.lblLargestInvoice.Text = "Largest invoice:";

+            this.lblLargestInvoice.TextAlign = System.Drawing.ContentAlignment.MiddleLeft;

+            // 

+            // lblSmallestInvoice

+            // 

+            this.lblSmallestInvoice.AutoSize = true;

+            this.lblSmallestInvoice.Location = new System.Drawing.Point(221, 55);

+            this.lblSmallestInvoice.Name = "lblSmallestInvoice";

+            this.lblSmallestInvoice.Size = new System.Drawing.Size(83, 13);

+            this.lblSmallestInvoice.TabIndex = 12;

+            this.lblSmallestInvoice.Text = "Smallest invoice";

+            this.lblSmallestInvoice.TextAlign = System.Drawing.ContentAlignment.MiddleLeft;

+            // 

+            // frmInvoiceTotal

+            // 

+            this.AcceptButton = this.btnCalculate;

+            this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);

+            this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;

+            this.CancelButton = this.btnExit;

+            this.ClientSize = new System.Drawing.Size(444, 221);

+            this.Controls.Add(this.txtLargestInvoice);

+            this.Controls.Add(this.txtSmallestInvoice);

+            this.Controls.Add(this.label15);

+            this.Controls.Add(this.lblLargestInvoice);

+            this.Controls.Add(this.lblSmallestInvoice);

+            this.Controls.Add(this.txtAvgInvoice);

+            this.Controls.Add(this.txtInvoicesTotal);

+            this.Controls.Add(this.txtNumInvoices);

+            this.Controls.Add(this.label10);

+            this.Controls.Add(this.label11);

+            this.Controls.Add(this.lblAvgInvoice);

+            this.Controls.Add(this.lblInvoicesTotal);

+            this.Controls.Add(this.lblNumInvoices);

+            this.Controls.Add(this.txtSubtotal);

+            this.Controls.Add(this.label8);

+            this.Controls.Add(this.lblSubtotal);

+            this.Controls.Add(this.btnClear);

+            this.Controls.Add(this.txtTotal);

+            this.Controls.Add(this.txtDiscountAmount);

+            this.Controls.Add(this.txtDiscountPercent);

+            this.Controls.Add(this.btnExit);

+            this.Controls.Add(this.btnCalculate);

+            this.Controls.Add(this.txtEnterSubtotal);

+            this.Controls.Add(this.label7);

+            this.Controls.Add(this.label6);

+            this.Controls.Add(this.label5);

+            this.Controls.Add(this.lblTotal);

+            this.Controls.Add(this.lblDiscountAmount);

+            this.Controls.Add(this.lblDiscountPercent);

+            this.Controls.Add(this.lblEnterSubtotal);

+            this.Name = "frmInvoiceTotal";

+            this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen;

+            this.Text = "Invoice Total";

+            this.ResumeLayout(false);

+            this.PerformLayout();

+

+		}

+

+		#endregion

+

+		private System.Windows.Forms.Label lblEnterSubtotal;

+		private System.Windows.Forms.Label lblDiscountPercent;

+		private System.Windows.Forms.Label lblDiscountAmount;

+		private System.Windows.Forms.Label lblTotal;

+		private System.Windows.Forms.Label label5;

+		private System.Windows.Forms.Label label6;

+		private System.Windows.Forms.Label label7;

+		private System.Windows.Forms.TextBox txtEnterSubtotal;

+		private System.Windows.Forms.Button btnCalculate;

+		private System.Windows.Forms.Button btnExit;

+		private System.Windows.Forms.TextBox txtDiscountPercent;

+		private System.Windows.Forms.TextBox txtDiscountAmount;

+		private System.Windows.Forms.TextBox txtTotal;

+        private System.Windows.Forms.Button btnClear;

+        private System.Windows.Forms.TextBox txtSubtotal;

+        private System.Windows.Forms.Label label8;

+        private System.Windows.Forms.Label lblSubtotal;

+        private System.Windows.Forms.TextBox txtAvgInvoice;

+        private System.Windows.Forms.TextBox txtInvoicesTotal;

+        private System.Windows.Forms.TextBox txtNumInvoices;

+        private System.Windows.Forms.Label label10;

+        private System.Windows.Forms.Label label11;

+        private System.Windows.Forms.Label lblAvgInvoice;

+        private System.Windows.Forms.Label lblInvoicesTotal;

+        private System.Windows.Forms.Label lblNumInvoices;

+        private System.Windows.Forms.TextBox txtLargestInvoice;

+        private System.Windows.Forms.TextBox txtSmallestInvoice;

+        private System.Windows.Forms.Label label15;

+        private System.Windows.Forms.Label lblLargestInvoice;

+        private System.Windows.Forms.Label lblSmallestInvoice;

+    }

+}

+

diff --git a/invoice_total1/InvoiceTotal/frmInvoiceTotal.cs b/invoice_total1/InvoiceTotal/frmInvoiceTotal.cs
new file mode 100644
index 0000000..8f7ed8d
--- /dev/null
+++ b/invoice_total1/InvoiceTotal/frmInvoiceTotal.cs
@@ -0,0 +1,82 @@
+using System;

+using System.Collections.Generic;

+using System.ComponentModel;

+using System.Data;

+using System.Drawing;

+using System.Linq;

+using System.Text;

+using System.Threading.Tasks;

+using System.Windows.Forms;

+

+namespace InvoiceTotal

+{

+	public partial class frmInvoiceTotal : Form

+	{

+        public frmInvoiceTotal()

+		{

+			InitializeComponent();

+		}

+

+		int numInvoices = 0;

+		decimal smallestInvoice = Decimal.MaxValue;

+		decimal largestInvoice = 0m;

+        decimal avgInvoice = 0m;

+        decimal invoicesTotal = 0m;

+

+        private void btnCalculate_Click(object sender, EventArgs e)

+		{

+			decimal subtotal = Decimal.Parse(txtEnterSubtotal.Text);

+			decimal discountPercent = .25m;

+			decimal discountAmount = Math.Round(subtotal * discountPercent, 2);

+			decimal invoiceTotal = Math.Round(subtotal - discountAmount, 2);

+

+            numInvoices++;

+            invoicesTotal += invoiceTotal;

+			avgInvoice = invoicesTotal / numInvoices;

+

+			if (invoiceTotal < smallestInvoice)

+				smallestInvoice = invoiceTotal;

+			if (invoiceTotal > largestInvoice)

+				largestInvoice = invoiceTotal;

+

+			txtSubtotal.Text = subtotal.ToString("c");

+            txtDiscountPercent.Text = discountPercent.ToString("p1");

+			txtDiscountAmount.Text = discountAmount.ToString("c");

+			txtTotal.Text = invoiceTotal.ToString("c");

+			txtNumInvoices.Text = numInvoices.ToString();

+            txtSmallestInvoice.Text = smallestInvoice.ToString("c");

+            txtLargestInvoice.Text = largestInvoice.ToString("c");

+            txtAvgInvoice.Text = avgInvoice.ToString("c");

+            txtInvoicesTotal.Text = invoicesTotal.ToString("c");

+

+            txtEnterSubtotal.Focus();

+		}

+

+		private void btnExit_Click(object sender, EventArgs e)

+		{

+			this.Close();

+		}

+

+        private void btnClear_Click(object sender, EventArgs e)

+        {

+            numInvoices = 0;

+            smallestInvoice = Decimal.MaxValue;

+            largestInvoice = 0m;

+            avgInvoice = 0m;

+            invoicesTotal = 0m;

+

+            txtEnterSubtotal.Text = "";

+			txtSubtotal.Text = "";

+			txtDiscountPercent.Text = "";

+			txtDiscountAmount.Text = "";

+			txtTotal.Text = "";

+			txtNumInvoices.Text = "";

+			txtInvoicesTotal.Text = "";

+			txtSmallestInvoice.Text = "";

+			txtLargestInvoice.Text = "";

+            txtAvgInvoice.Text = "";

+

+			txtEnterSubtotal.Focus();

+        }

+    }

+}
\ No newline at end of file
diff --git a/invoice_total1/InvoiceTotal/frmInvoiceTotal.resx b/invoice_total1/InvoiceTotal/frmInvoiceTotal.resx
new file mode 100644
index 0000000..c7e0d4b
--- /dev/null
+++ b/invoice_total1/InvoiceTotal/frmInvoiceTotal.resx
@@ -0,0 +1,120 @@
+<?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.

+    -->

+  <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">

+      <xsd:complexType>

+        <xsd:choice maxOccurs="unbounded">

+          <xsd:element name="metadata">

+            <xsd:complexType>

+              <xsd:sequence>

+                <xsd:element name="value" type="xsd:string" minOccurs="0" />

+              </xsd:sequence>

+              <xsd:attribute name="name" use="required" type="xsd:string" />

+              <xsd:attribute name="type" type="xsd:string" />

+              <xsd:attribute name="mimetype" type="xsd:string" />

+              <xsd:attribute ref="xml:space" />

+            </xsd:complexType>

+          </xsd:element>

+          <xsd:element name="assembly">

+            <xsd:complexType>

+              <xsd:attribute name="alias" type="xsd:string" />

+              <xsd:attribute name="name" type="xsd:string" />

+            </xsd:complexType>

+          </xsd:element>

+          <xsd:element name="data">

+            <xsd:complexType>

+              <xsd:sequence>

+                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />

+                <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />

+              </xsd:sequence>

+              <xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />

+              <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />

+              <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />

+              <xsd:attribute ref="xml:space" />

+            </xsd:complexType>

+          </xsd:element>

+          <xsd:element name="resheader">

+            <xsd:complexType>

+              <xsd:sequence>

+                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />

+              </xsd:sequence>

+              <xsd:attribute name="name" type="xsd:string" use="required" />

+            </xsd:complexType>

+          </xsd:element>

+        </xsd:choice>

+      </xsd:complexType>

+    </xsd:element>

+  </xsd:schema>

+  <resheader name="resmimetype">

+    <value>text/microsoft-resx</value>

+  </resheader>

+  <resheader name="version">

+    <value>2.0</value>

+  </resheader>

+  <resheader name="reader">

+    <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>

+  </resheader>

+  <resheader name="writer">

+    <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>

+  </resheader>

+</root>
\ No newline at end of file
diff --git a/invoice_total1/InvoiceTotal/obj/Debug/.NETFramework,Version=v4.8.AssemblyAttributes.cs b/invoice_total1/InvoiceTotal/obj/Debug/.NETFramework,Version=v4.8.AssemblyAttributes.cs
new file mode 100644
index 0000000..3cf0af3
--- /dev/null
+++ b/invoice_total1/InvoiceTotal/obj/Debug/.NETFramework,Version=v4.8.AssemblyAttributes.cs
@@ -0,0 +1,4 @@
+// <autogenerated />

+using System;

+using System.Reflection;

+[assembly: global::System.Runtime.Versioning.TargetFrameworkAttribute(".NETFramework,Version=v4.8", FrameworkDisplayName = ".NET Framework 4.8")]

diff --git a/invoice_total1/InvoiceTotal/obj/Debug/DesignTimeResolveAssemblyReferences.cache b/invoice_total1/InvoiceTotal/obj/Debug/DesignTimeResolveAssemblyReferences.cache
new file mode 100644
index 0000000..cae8fc6
--- /dev/null
+++ b/invoice_total1/InvoiceTotal/obj/Debug/DesignTimeResolveAssemblyReferences.cache
Binary files differdiff --git a/invoice_total1/InvoiceTotal/obj/Debug/DesignTimeResolveAssemblyReferencesInput.cache b/invoice_total1/InvoiceTotal/obj/Debug/DesignTimeResolveAssemblyReferencesInput.cache
new file mode 100644
index 0000000..c2fd230
--- /dev/null
+++ b/invoice_total1/InvoiceTotal/obj/Debug/DesignTimeResolveAssemblyReferencesInput.cache
Binary files differdiff --git a/invoice_total1/InvoiceTotal/obj/Debug/InvoiceTotal.Properties.Resources.resources b/invoice_total1/InvoiceTotal/obj/Debug/InvoiceTotal.Properties.Resources.resources
new file mode 100644
index 0000000..6c05a97
--- /dev/null
+++ b/invoice_total1/InvoiceTotal/obj/Debug/InvoiceTotal.Properties.Resources.resources
Binary files differdiff --git a/invoice_total1/InvoiceTotal/obj/Debug/InvoiceTotal.csproj.AssemblyReference.cache b/invoice_total1/InvoiceTotal/obj/Debug/InvoiceTotal.csproj.AssemblyReference.cache
new file mode 100644
index 0000000..b3072eb
--- /dev/null
+++ b/invoice_total1/InvoiceTotal/obj/Debug/InvoiceTotal.csproj.AssemblyReference.cache
Binary files differdiff --git a/invoice_total1/InvoiceTotal/obj/Debug/InvoiceTotal.csproj.CoreCompileInputs.cache b/invoice_total1/InvoiceTotal/obj/Debug/InvoiceTotal.csproj.CoreCompileInputs.cache
new file mode 100644
index 0000000..6621da8
--- /dev/null
+++ b/invoice_total1/InvoiceTotal/obj/Debug/InvoiceTotal.csproj.CoreCompileInputs.cache
@@ -0,0 +1 @@
+ddd884c7cc4fbc526b3c79f739672bb101481755939ee83704695fd42ac85f71

diff --git a/invoice_total1/InvoiceTotal/obj/Debug/InvoiceTotal.csproj.FileListAbsolute.txt b/invoice_total1/InvoiceTotal/obj/Debug/InvoiceTotal.csproj.FileListAbsolute.txt
new file mode 100644
index 0000000..e28a5c0
--- /dev/null
+++ b/invoice_total1/InvoiceTotal/obj/Debug/InvoiceTotal.csproj.FileListAbsolute.txt
@@ -0,0 +1,10 @@
+C:\Users\User\Documents\cs\Exercise Starts\Chapter 04\InvoiceTotalEnhanced\InvoiceTotal\bin\Debug\InvoiceTotal.exe.config

+C:\Users\User\Documents\cs\Exercise Starts\Chapter 04\InvoiceTotalEnhanced\InvoiceTotal\bin\Debug\InvoiceTotal.exe

+C:\Users\User\Documents\cs\Exercise Starts\Chapter 04\InvoiceTotalEnhanced\InvoiceTotal\bin\Debug\InvoiceTotal.pdb

+C:\Users\User\Documents\cs\Exercise Starts\Chapter 04\InvoiceTotalEnhanced\InvoiceTotal\obj\Debug\InvoiceTotal.csproj.AssemblyReference.cache

+C:\Users\User\Documents\cs\Exercise Starts\Chapter 04\InvoiceTotalEnhanced\InvoiceTotal\obj\Debug\InvoiceTotal.frmInvoiceTotal.resources

+C:\Users\User\Documents\cs\Exercise Starts\Chapter 04\InvoiceTotalEnhanced\InvoiceTotal\obj\Debug\InvoiceTotal.Properties.Resources.resources

+C:\Users\User\Documents\cs\Exercise Starts\Chapter 04\InvoiceTotalEnhanced\InvoiceTotal\obj\Debug\InvoiceTotal.csproj.GenerateResource.cache

+C:\Users\User\Documents\cs\Exercise Starts\Chapter 04\InvoiceTotalEnhanced\InvoiceTotal\obj\Debug\InvoiceTotal.csproj.CoreCompileInputs.cache

+C:\Users\User\Documents\cs\Exercise Starts\Chapter 04\InvoiceTotalEnhanced\InvoiceTotal\obj\Debug\InvoiceTotal.exe

+C:\Users\User\Documents\cs\Exercise Starts\Chapter 04\InvoiceTotalEnhanced\InvoiceTotal\obj\Debug\InvoiceTotal.pdb

diff --git a/invoice_total1/InvoiceTotal/obj/Debug/InvoiceTotal.csproj.GenerateResource.cache b/invoice_total1/InvoiceTotal/obj/Debug/InvoiceTotal.csproj.GenerateResource.cache
new file mode 100644
index 0000000..87753e5
--- /dev/null
+++ b/invoice_total1/InvoiceTotal/obj/Debug/InvoiceTotal.csproj.GenerateResource.cache
Binary files differdiff --git a/invoice_total1/InvoiceTotal/obj/Debug/InvoiceTotal.exe b/invoice_total1/InvoiceTotal/obj/Debug/InvoiceTotal.exe
new file mode 100644
index 0000000..d3ed08f
--- /dev/null
+++ b/invoice_total1/InvoiceTotal/obj/Debug/InvoiceTotal.exe
Binary files differdiff --git a/invoice_total1/InvoiceTotal/obj/Debug/InvoiceTotal.frmInvoiceTotal.resources b/invoice_total1/InvoiceTotal/obj/Debug/InvoiceTotal.frmInvoiceTotal.resources
new file mode 100644
index 0000000..6c05a97
--- /dev/null
+++ b/invoice_total1/InvoiceTotal/obj/Debug/InvoiceTotal.frmInvoiceTotal.resources
Binary files differdiff --git a/invoice_total1/InvoiceTotal/obj/Debug/InvoiceTotal.pdb b/invoice_total1/InvoiceTotal/obj/Debug/InvoiceTotal.pdb
new file mode 100644
index 0000000..7b0e68d
--- /dev/null
+++ b/invoice_total1/InvoiceTotal/obj/Debug/InvoiceTotal.pdb
Binary files differdiff --git a/invoice_total1/InvoiceTotal/obj/Debug/TempPE/Properties.Resources.Designer.cs.dll b/invoice_total1/InvoiceTotal/obj/Debug/TempPE/Properties.Resources.Designer.cs.dll
new file mode 100644
index 0000000..b3067e7
--- /dev/null
+++ b/invoice_total1/InvoiceTotal/obj/Debug/TempPE/Properties.Resources.Designer.cs.dll
Binary files differ