Disclaimer: This dissertation has been written by a student and is not an example of our professional work, which you can see examples of here.

Any opinions, findings, conclusions, or recommendations expressed in this dissertation are those of the authors and do not necessarily reflect the views of UKDiss.com.

Exchange Rate Calculation System Development

Info: 9640 words (39 pages) Dissertation
Published: 11th Dec 2019

Reference this

Tagged: Information SystemsTechnology

1. INTRODUCTION   1.1 Purpose of the system: Employees request the application in which he/she holds his/her savings amount to convert it into the currency of his/her respective country. In order to do that, this application has a scope to check for current currency exchange rates. He/she has to register in ERCS module and can apply for the currency conversion. This application will be used by any bank to compute the value of respective currency and it can change for user specified foreign currency. Then the employee can view his/her required currency converted details. 1.2 Scope: Scope of the system is to provide Exchange Rate Calculation System. This application is being developed only for the purpose of Currency Conversion and it is developed in such a way that it makes the user to convert his/her savings to their respective foreign currency easily.       Disadvantages:      1.The Administrator(s) has the authority to change the conversion rate.       2. SYSTEM REQUIREMENTS

2.1 H/W System Configuration:-

Processor                             -    Core 4 duo

Speed                                  -    2.5 GHz RAM                                    -    2 GB(min) Hard Disk                            -   70 GB Key Board                           -    Standard Windows Keyboard Mouse                                 -    Two or Three Button Mouse Monitor                                -    SVGA

2.2 S/W System Configuration:-

Operating System             : Windows95/98/2000/XP Software                           : Visual Studio 2010 Database Connectivity       :   MySQL. 2.3 MODULES OF THE SYSTEM
  1. Rate
  2. Convert
  3. Get rates
  4. Get currency
2.3.1  Rate: To get the rate to convert a currency to another. For example, if you need the rate to convert Canadian Dollars to Euros we need to know the rate of conversion of the country. The currency conversion rates will vary fromo country to country. Based on these rates the coversion takes place. 2.3.2 Convert: This is used to convert an amount from one currency to another. For example, if you need to convert 500 American dollars to Indian rupees. This module is responsible for the conversion of the amount into other currencies. 2.3.3 Get rate: This module is used to get a list of all the rate conversions from a base currency. Currently the base currency is always US Dollar. The amount of money is converted from any currency to any other using these rates of conversion.   2.3.4 Get currency: This module is used to get a list of all the available currencies. Currently there are more than 170 out of which few are used in the project.           3. SYSTEM STUDY  FEASIBILITY STUDY The feasibility of the project is analyzed in this phase and business proposal is put forth with a very general plan for the project and some cost estimates. During system analysis the feasibility study of the proposed system is to be carried out. This is to ensure that the proposed system is not a burden to the company.  For feasibility analysis, some understanding of the major requirements for the system is essential. Three key considerations involved in the feasibility analysis are
  1.   ECONOMICAL FEASIBILITY
  2.   TECHNICAL FEASIBILITY
  3.   SOCIAL FEASIBILITY
3.1 ECONOMICAL FEASIBILITY This study is carried out to check the economic impact that the system will have on the organization. The amount of fund that the company can pour into the research and development of the system is limited. The expenditures must be justified. Thus the developed system as well within the budget and this was achieved because most of the technologies used are freely available. Only the customized products had to be purchased. 3.2 TECHNICAL FEASIBILITY This study is carried out to check the technical feasibility, that is, the technical requirements of the system. Any system developed must not have a high demand on the available technical resources. This will lead to high demands on the available technical resources. This will lead to high demands being placed on the client. The developed system must have a modest requirement, as only minimal or null changes are required for implementing this system. 3.3 SOCIAL FEASIBILITY The aspect of study is to check the level of acceptance of the system by the user. This includes the process of training the user to use the system efficiently. The user must not feel threatened by the system, instead must accept it as a necessity. The level of acceptance by the users solely depends on the methods that are employed to educate the user about the system and to make him familiar with it. His level of confidence must be raised so that he is also able to make some constructive criticism, which is welcomed, as he is the final user of the system.                 4. SOFTWARE ENVIRONMENT

4.1 .NET

The .NET Framework (pronounced dot net) is a software framework acquired by Microsoft that runs mainly on Microsoft Windows. It consists a big class library known as Framework Class Library (FCL) and has  language ability(each language can use code written in other languages) across various programming languages. Programs composed for .NET Framework carry out in a software environment (as contrested to hardware environment), acknowledged as Common Language Runtime (CLR), an application virtual machine that allows services such as protection, memory management, and exception handling. FCL and CLR together constitute .NET Framework.   4.2 Design Goals For .NET:
  • Leverage current ActiveX Data Objects (ADO) knowledge.
  •  Support the n-tier programming model
  • Integrate XML support
            5. CODING Home Page: namespace BankApp_ERCS { partial class frmHomePage { private System.ComponentModel.IContainer components = null; protected override void Dispose(bool disposing) { if (disposing && (components != null)) { components.Dispose(); } base.Dispose(disposing); } #region Windows Form Designer generated code private void InitializeComponent() { System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(frmHomePage)); this.pictureBox1 = new System.Windows.Forms.PictureBox(); this.menuStrip1 = new System.Windows.Forms.MenuStrip(); this.homePageToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.loginToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.vIEWEXCHANGEToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.rEGISTERToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.cONTACTUSToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.aBOUTUSToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.eXITToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.panel2 = new System.Windows.Forms.Panel(); this.lblWelcomeMsg = new System.Windows.Forms.Label(); this.panel1 = new System.Windows.Forms.Panel(); this.label1 = new System.Windows.Forms.Label(); ((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).BeginInit(); this.menuStrip1.SuspendLayout(); this.panel2.SuspendLayout(); this.panel1.SuspendLayout(); this.SuspendLayout(); // // pictureBox1 // this.pictureBox1.BackColor = System.Drawing.Color.White; this.pictureBox1.Image = ((System.Drawing.Image)(resources.GetObject("pictureBox1.Image"))); this.pictureBox1.Location = new System.Drawing.Point(3, 3); this.pictureBox1.Name = "pictureBox1"; this.pictureBox1.Size = new System.Drawing.Size(149, 126); this.pictureBox1.SizeMode = System.Windows.Forms.PictureBoxSizeMode.StretchImage; this.pictureBox1.TabIndex = 0; this.pictureBox1.TabStop = false; this.pictureBox1.Click += new System.EventHandler(this.pictureBox1_Click); // // menuStrip1 // this.menuStrip1.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(192)))), ((int)(((byte)(192)))), ((int)(((byte)(255))))); this.menuStrip1.Dock = System.Windows.Forms.DockStyle.Left; this.menuStrip1.Items.AddRange(new System.Windows.Forms.ToolStripItem[] { this.homePageToolStripMenuItem, this.loginToolStripMenuItem, this.vIEWEXCHANGEToolStripMenuItem, this.rEGISTERToolStripMenuItem, this.cONTACTUSToolStripMenuItem, this.aBOUTUSToolStripMenuItem, this.eXITToolStripMenuItem}); this.menuStrip1.Location = new System.Drawing.Point(0, 0); this.menuStrip1.Name = "menuStrip1"; this.menuStrip1.Size = new System.Drawing.Size(195, 504); this.menuStrip1.TabIndex = 5; this.menuStrip1.Text = "menuStrip1"; // // homePageToolStripMenuItem // this.homePageToolStripMenuItem.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(255)))), ((int)(((byte)(192)))), ((int)(((byte)(192))))); this.homePageToolStripMenuItem.ImageTransparentColor = System.Drawing.Color.FromArgb(((int)(((byte)(255)))), ((int)(((byte)(192)))), ((int)(((byte)(192))))); this.homePageToolStripMenuItem.Margin = new System.Windows.Forms.Padding(5); this.homePageToolStripMenuItem.Name = "homePageToolStripMenuItem"; this.homePageToolStripMenuItem.Padding = new System.Windows.Forms.Padding(4, 4, 4, 30); this.homePageToolStripMenuItem.Size = new System.Drawing.Size(172, 53); this.homePageToolStripMenuItem.Text = "HOME"; this.homePageToolStripMenuItem.Click += new System.EventHandler(this.homePageToolStripMenuItem_Click); // // loginToolStripMenuItem // this.loginToolStripMenuItem.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(255)))), ((int)(((byte)(255)))), ((int)(((byte)(128))))); this.loginToolStripMenuItem.Margin = new System.Windows.Forms.Padding(5); this.loginToolStripMenuItem.Name = "loginToolStripMenuItem"; this.loginToolStripMenuItem.Padding = new System.Windows.Forms.Padding(4, 4, 4, 30); this.loginToolStripMenuItem.Size = new System.Drawing.Size(172, 53); this.loginToolStripMenuItem.Text = "LOGIN "; this.loginToolStripMenuItem.Click += new System.EventHandler(this.loginToolStripMenuItem_Click_1); // // vIEWEXCHANGEToolStripMenuItem // this.vIEWEXCHANGEToolStripMenuItem.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(128)))), ((int)(((byte)(255)))), ((int)(((byte)(128))))); this.vIEWEXCHANGEToolStripMenuItem.Margin = new System.Windows.Forms.Padding(5); this.vIEWEXCHANGEToolStripMenuItem.Name = "vIEWEXCHANGEToolStripMenuItem"; this.vIEWEXCHANGEToolStripMenuItem.Padding = new System.Windows.Forms.Padding(4, 4, 0, 30); this.vIEWEXCHANGEToolStripMenuItem.Size = new System.Drawing.Size(172, 53); this.vIEWEXCHANGEToolStripMenuItem.Text = "VIEW EXCHANGE RATE CHART"; this.vIEWEXCHANGEToolStripMenuItem.Click += new System.EventHandler(this.vIEWEXCHANGEToolStripMenuItem_Click); // // rEGISTERToolStripMenuItem // this.rEGISTERToolStripMenuItem.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(255)))), ((int)(((byte)(192)))), ((int)(((byte)(128))))); this.rEGISTERToolStripMenuItem.Margin = new System.Windows.Forms.Padding(5); this.rEGISTERToolStripMenuItem.Name = "rEGISTERToolStripMenuItem"; this.rEGISTERToolStripMenuItem.Padding = new System.Windows.Forms.Padding(4, 4, 4, 30); this.rEGISTERToolStripMenuItem.Size = new System.Drawing.Size(172, 53); this.rEGISTERToolStripMenuItem.Text = "REGISTER "; this.rEGISTERToolStripMenuItem.Click += new System.EventHandler(this.rEGISTERToolStripMenuItem_Click); // // cONTACTUSToolStripMenuItem // this.cONTACTUSToolStripMenuItem.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(128)))), ((int)(((byte)(255)))), ((int)(((byte)(255))))); this.cONTACTUSToolStripMenuItem.Margin = new System.Windows.Forms.Padding(5); this.cONTACTUSToolStripMenuItem.Name = "cONTACTUSToolStripMenuItem"; this.cONTACTUSToolStripMenuItem.Padding = new System.Windows.Forms.Padding(4, 4, 4, 30); this.cONTACTUSToolStripMenuItem.Size = new System.Drawing.Size(172, 53); this.cONTACTUSToolStripMenuItem.Text = "CONTACT US"; this.cONTACTUSToolStripMenuItem.Click += new System.EventHandler(this.cONTACTUSToolStripMenuItem_Click); // // aBOUTUSToolStripMenuItem // this.aBOUTUSToolStripMenuItem.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(128)))), ((int)(((byte)(128)))), ((int)(((byte)(255))))); this.aBOUTUSToolStripMenuItem.Margin = new System.Windows.Forms.Padding(5); this.aBOUTUSToolStripMenuItem.Name = "aBOUTUSToolStripMenuItem"; this.aBOUTUSToolStripMenuItem.Padding = new System.Windows.Forms.Padding(4, 4, 4, 30); this.aBOUTUSToolStripMenuItem.Size = new System.Drawing.Size(172, 53); this.aBOUTUSToolStripMenuItem.Text = "ABOUT US"; this.aBOUTUSToolStripMenuItem.Click += new System.EventHandler(this.aBOUTUSToolStripMenuItem_Click); // // eXITToolStripMenuItem // this.eXITToolStripMenuItem.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(255)))), ((int)(((byte)(128)))), ((int)(((byte)(255))))); this.eXITToolStripMenuItem.Margin = new System.Windows.Forms.Padding(5); this.eXITToolStripMenuItem.Name = "eXITToolStripMenuItem"; this.eXITToolStripMenuItem.Padding = new System.Windows.Forms.Padding(4, 4, 4, 30); this.eXITToolStripMenuItem.Size = new System.Drawing.Size(172, 53); this.eXITToolStripMenuItem.Text = "EXIT"; this.eXITToolStripMenuItem.Click += new System.EventHandler(this.eXITToolStripMenuItem_Click); // // panel2 // this.panel2.AutoSize = true; this.panel2.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(255)))), ((int)(((byte)(192)))), ((int)(((byte)(192))))); this.panel2.BackgroundImage = ((System.Drawing.Image)(resources.GetObject("panel2.BackgroundImage"))); this.panel2.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Stretch; this.panel2.Controls.Add(this.lblWelcomeMsg); this.panel2.Dock = System.Windows.Forms.DockStyle.Fill; this.panel2.Location = new System.Drawing.Point(0, 0); this.panel2.Name = "panel2"; this.panel2.Size = new System.Drawing.Size(1252, 504); this.panel2.TabIndex = 8; this.panel2.Paint += new System.Windows.Forms.PaintEventHandler(this.panel2_Paint); // // lblWelcomeMsg // this.lblWelcomeMsg.AutoSize = true; this.lblWelcomeMsg.BackColor = System.Drawing.Color.White; this.lblWelcomeMsg.Font = new System.Drawing.Font("Modern No. 20", 18F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); this.lblWelcomeMsg.Location = new System.Drawing.Point(208, 162); this.lblWelcomeMsg.Name = "lblWelcomeMsg"; this.lblWelcomeMsg.Size = new System.Drawing.Size(592, 25); this.lblWelcomeMsg.TabIndex = 4; this.lblWelcomeMsg.Text = "Welcome To Foreign Exchange Currency Converter !!!!"; // // panel1 // this.panel1.BackColor = System.Drawing.Color.White; this.panel1.Controls.Add(this.label1); this.panel1.Controls.Add(this.pictureBox1); this.panel1.Dock = System.Windows.Forms.DockStyle.Top; this.panel1.Location = new System.Drawing.Point(195, 0); this.panel1.Name = "panel1"; this.panel1.Size = new System.Drawing.Size(1057, 132); this.panel1.TabIndex = 10; // // label1 // this.label1.AutoSize = true; this.label1.BackColor = System.Drawing.Color.White; this.label1.Font = new System.Drawing.Font("Microsoft Sans Serif", 26.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); this.label1.Location = new System.Drawing.Point(390, 23); this.label1.Name = "label1"; this.label1.Size = new System.Drawing.Size(362, 39); this.label1.TabIndex = 5; this.label1.Text = "S&H FOREX Pvt.Ltd."; this.label1.UseMnemonic = false; // // frmHomePage // this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; this.BackColor = System.Drawing.Color.LightCyan; this.ClientSize = new System.Drawing.Size(1252, 504); this.Controls.Add(this.panel1); this.Controls.Add(this.menuStrip1); this.Controls.Add(this.panel2); this.IsMdiContainer = true; this.MainMenuStrip = this.menuStrip1; this.Name = "frmHomePage"; this.Text = "S&H FOREX Pvt.Ltd."; this.WindowState = System.Windows.Forms.FormWindowState.Maximized; ((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).EndInit(); this.menuStrip1.ResumeLayout(false); this.menuStrip1.PerformLayout(); this.panel2.ResumeLayout(false); this.panel2.PerformLayout(); this.panel1.ResumeLayout(false); this.panel1.PerformLayout(); this.ResumeLayout(false); this.PerformLayout(); } #endregion private System.Windows.Forms.PictureBox pictureBox1; private System.Windows.Forms.MenuStrip menuStrip1; private System.Windows.Forms.ToolStripMenuItem homePageToolStripMenuItem; private System.Windows.Forms.ToolStripMenuItem loginToolStripMenuItem; private System.Windows.Forms.Panel panel2; private System.Windows.Forms.ToolStripMenuItem vIEWEXCHANGEToolStripMenuItem; private System.Windows.Forms.ToolStripMenuItem rEGISTERToolStripMenuItem; private System.Windows.Forms.ToolStripMenuItem cONTACTUSToolStripMenuItem; private System.Windows.Forms.ToolStripMenuItem aBOUTUSToolStripMenuItem; private System.Windows.Forms.ToolStripMenuItem eXITToolStripMenuItem; private System.Windows.Forms.Panel panel1; private System.Windows.Forms.Label label1; private System.Windows.Forms.Label lblWelcomeMsg; } } Admin Home Page: using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; namespace BankApp_ERCS { public partial class frmAdminHome : Form { public static bool isAdmin = false; public frmAdminHome() { InitializeComponent(); } private void btnViewUsers_Click(object sender, EventArgs e) { frmRegisteredUsers regUser = new frmRegisteredUsers(); regUser.Show(); //this.Hide(); } private void btnViewChart_Click(object sender, EventArgs e) { isAdmin = true; frmViewChart viewChart= new frmViewChart(); viewChart.Show(); } private void btnUpdateChart_Click(object sender, EventArgs e) { } private void btnAddAdmin_Click(object sender, EventArgs e) { this.Close(); } } }     User Home Page: using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; using System.Data.SqlClient; namespace BankApp_ERCS { public partial class frmUserHomePage : Form { public static string var; string addressLoad; SqlCommand sCommand; SqlDataAdapter sAdapter; SqlCommandBuilder sBuilder; DataSet dataSet; // DataTable dataTable; SqlDataReader dataReader; public frmUserHomePage() { InitializeComponent(); } private void menuStrip1_ItemClicked(object sender, ToolStripItemClickedEventArgs e) { } //private void frmUserHomePage_Load(object sender, EventArgs e) //{ //    addressLoad = textBox1.Text; //} private void vIEWCHARTToolStripMenuItem_Click(object sender, EventArgs e) { panel2.Controls.Clear(); frmViewChart frmView = new frmViewChart(); frmView.TopLevel = false; panel2.Controls.Add(frmView); frmView.Show(); } private void panel2_Paint(object sender, PaintEventArgs e) { txtLOUser.Text = frmLoginPage.mobileNumber; } private void lOGOUTToolStripMenuItem_Click(object sender, EventArgs e) { this.Close(); } private void hOMEToolStripMenuItem_Click(object sender, EventArgs e) { frmUserHomePage frm = new frmUserHomePage(); frm.Show(); } private void btnConvert_Click(object sender, EventArgs e) { frmCurrencyConversion cur = new frmCurrencyConversion(); cur.Show(); } private void btnRetrieve_Click(object sender, EventArgs e) { } private void frmUserHomePage_Load(object sender, EventArgs e) { txtLOUser.Enabled = false; string connectionString = @"Data Source=SS\SQLEXPRESS;Initial Catalog=FOREX;Integrated Security=true"; string sql = "SELECT MobileNo,Employee_Name,Bank_AC_No, Addrss,balance FROM tblUserDetails where MobileNo='" + txtLOUser.Text + "'"; SqlConnection connection = new SqlConnection(connectionString); connection.Open(); sCommand = new SqlCommand(sql, connection); sAdapter = new SqlDataAdapter(sCommand); sBuilder = new SqlCommandBuilder(sAdapter); dataSet = new DataSet(); dataReader = sCommand.ExecuteReader(); bool temp = false; while (dataReader.Read()) { txtName.Text = dataReader.GetString(1); txtAC.Text = dataReader.GetDecimal (2).ToString (); textBox1.Text = dataReader.GetString(3); textBox2.Text = dataReader.GetDecimal(4).ToString(); txtName.Enabled = false; txtAC.Enabled = false; textBox1.Enabled = false; textBox2.Enabled = false; var = textBox2.Text; temp = true; addressLoad = textBox1.Text; } if (temp == false) MessageBox.Show(" Data Not Found!!!", "Data Not Found", MessageBoxButtons.OK, MessageBoxIcon.Error); connection.Close(); //connection.Open(); //dataSet = new DataSet(); //sAdapter = new SqlDataAdapter("select * from Table2", con); //sAdapter.Fill(dataSet, "Table2"); //connection.Close(); } private void toolStripMenuItem1_Click(object sender, EventArgs e) { button1.Visible = true; textBox1.Enabled = true; textBox1.ReadOnly = false; } private void textBox1_TextChanged(object sender, EventArgs e) { //SqlConnection conn = new SqlConnection( @"Data Source=XS42-0QFIN5E\SQLEXPRESS;Initial Catalog=FOREX;Integrated Security=true"); //        conn.Open(); //        string sql2 = "UPDATE tblUserDetails SET Addrss = " + textBox1.Text + " WHERE MobileNo=" + txtLOUser.Text + ";"; //        SqlCommand myCommand2 = new SqlCommand(sql2, conn); //        try //        { //            conn.Open(); //            myCommand2.ExecuteNonQuery(); //        } //        catch (Exception ex) //        { //            Console.WriteLine("Error: " + ex); //        } //        finally //        { //            conn.Close(); //        } } private void toolStripMenuItem2_Click(object sender, EventArgs e) { frmCurrencyConversion cur = new frmCurrencyConversion(); cur.Show(); } private void toolStripMenuItem3_Click(object sender, EventArgs e) { this.Close(); } private void button1_Click(object sender, EventArgs e) { string addressChanged = textBox1.Text; if (addressChanged != addressLoad) { SqlConnection conn = new SqlConnection(@"Data Source=SS\SQLEXPRESS;Initial Catalog=FOREX;Integrated Security=true"); conn.Open(); string sql2 = "UPDATE tblUserDetails SET Addrss = '" + textBox1.Text + "' WHERE MobileNo='" + txtLOUser.Text + "'"; SqlCommand myCommand2 = new SqlCommand(sql2, conn); try { myCommand2.ExecuteNonQuery(); } catch (Exception ex) { Console.WriteLine("Error: " + ex); } finally { conn.Close(); MessageBox.Show("Address updated successfully"); } } else { MessageBox.Show("No Changes to save"); } } private void panel1_Paint(object sender, PaintEventArgs e) { } private void textBox1_TextChanged_1(object sender, EventArgs e) { } } }     View Chart: using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; using System.Data.SqlClient; namespace BankApp_ERCS { public partial class frmViewChart : Form { //SqlCommand sCommand; SqlDataAdapter sAdapter; SqlCommandBuilder sBuilder; DataSet dataSet; DataTable dataTable; public frmViewChart() { InitializeComponent(); } private void frmViewChart_Load_1(object sender, EventArgs e) { SqlConnection obj1 = new SqlConnection(@"Data Source=SS\SQLEXPRESS;Initial Catalog=FOREX;Integrated Security=true"); obj1.Open(); string selQuery = "select SerialNo,Country,ExchangeRate from tblExchangeRates"; SqlCommand obj2 = new SqlCommand(selQuery, obj1); sAdapter = new SqlDataAdapter(obj2); dataSet = new DataSet(); sAdapter.Fill(dataSet, "UserDetails"); dataTable = dataSet.Tables["UserDetails"]; obj1.Close(); dataGridViewChart.DataSource = dataSet.Tables["UserDetails"]; dataGridViewChart.SelectionMode = DataGridViewSelectionMode.FullRowSelect; if (frmAdminHome.isAdmin) { dataGridViewChart.ReadOnly = false; dataGridViewChart.AllowUserToAddRows = true; frmAdminHome.isAdmin = false; } else { btnUpdate.Visible = false; dataGridViewChart.ReadOnly = true; dataGridViewChart.AllowUserToAddRows = false; } } private void btnUpdate_Click(object sender, EventArgs e) { sBuilder = new SqlCommandBuilder(sAdapter); sAdapter.Update(dataSet, "UserDetails"); MessageBox.Show("Exhange rates updated successfully !!", "Update", MessageBoxButtons.OK, MessageBoxIcon.Information); } } } Currency Conversion: using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; using System.Data.SqlClient; namespace BankApp_ERCS { public partial class frmCurrencyConversion : Form { SqlCommand sCommand; SqlDataAdapter sAdapter; //SqlCommandBuilder sBuilder; DataSet dataSet; //DataTable dataTable; //SqlDataReader dataReader; public frmCurrencyConversion() { InitializeComponent(); } private void button1_Click(object sender, EventArgs e) { //float num = (float)textBox2.Text; // float num = (float)Convert.ToDouble(textBox2.Text); float num = float.Parse(frmUserHomePage.var); float selectedCountryValue = (float)comboBox1.SelectedValue; float result = num * selectedCountryValue; textBox3.Text = result.ToString() + " "+ comboBox1.Text; } private void frmCurrencyConversion_Load(object sender, EventArgs e) { textBox2.Text = frmUserHomePage.var + " " + "USD"; string connectionString = @"Data Source=SS\SQLEXPRESS;Initial Catalog=FOREX;Integrated Security=true"; string sql = "SELECT * FROM tblExchangeRates "; SqlConnection connection = new SqlConnection(connectionString); connection.Open(); sCommand = new SqlCommand(sql, connection); sAdapter = new SqlDataAdapter(sCommand); //sBuilder = new SqlCommandBuilder(sAdapter); dataSet = new DataSet(); //DataTable table = new DataTable(); sAdapter.Fill(dataSet); comboBox1.DataSource = dataSet.Tables[0]; comboBox1.ValueMember = dataSet.Tables[0].Columns[2].ColumnName; comboBox1.DisplayMember = dataSet.Tables[0].Columns[1].ColumnName; connection.Close(); } private void textBox2_TextChanged(object sender, EventArgs e) { } } }   Form Registration Page: using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; using System.Data.SqlClient; namespace BankApp_ERCS { public partial class frmRegistrationPage : Form { SqlCommand sCommand; SqlDataAdapter sAdapter; SqlCommandBuilder sBuilder; DataSet dataSet; DataTable dataTable; SqlConnection conObj = new SqlConnection(@"Data Source=SS\SQLEXPRESS;Initial Catalog=FOREX;Integrated Security=true"); public frmRegistrationPage() { InitializeComponent(); } private void frmRegistrationPage_Load(object sender, EventArgs e) { conObj.Open(); } private void btnSubmit_Click(object sender, EventArgs e) { Random random = new Random(); float randomNumber = random.Next(10000, 100000); String query = "insert into tblUserDetails(Employee_Name,Company_Name,Bank_AC_No,BankName,SecurityQuestion,Answer,Passwd,MobileNo,Addrss,Balance) values('" + txtEmpName.Text + "','" + txtCmpnyName.Text + "','" + txtAC.Text + "','" + txtBankName.Text + "','" + cmbQuestion.Text + "','" + txtAns.Text + "','" + txtPswd.Text + "','" + txtMob.Text + "','" + txtAddr.Text + "','"+randomNumber+"')"; SqlCommand cmd = new SqlCommand(query, conObj); cmd.ExecuteNonQuery(); MessageBox.Show("Registered Successfully!!! ", "SUCCESS", MessageBoxButtons.OK, MessageBoxIcon.Information); //string sql = "SELECT User_id from tblUserDetails where Employee_Name='" + txtEmpName.Text + "' "; ////SqlConnection connection = new SqlConnection(conObj); ////connection.Open(); //sCommand = new SqlCommand(sql, conObj); //sAdapter = new SqlDataAdapter(sCommand); //sBuilder = new SqlCommandBuilder(sAdapter); //dataSet = new DataSet(); //sAdapter.Fill(dataSet, "UserDetails"); //dataTable = dataSet.Tables["UserDetails"]; //conObj.Close(); //dataGridMsg.DataSource = dataSet.Tables["UserDetails"]; //dataGridMsg.ReadOnly = true; //dataGridMsg.SelectionMode = DataGridViewSelectionMode.FullRowSelect; } private void btnClear_Click(object sender, EventArgs e) { txtEmpName.Clear(); txtCmpnyName.Clear(); txtBankName.Clear(); txtAC.Clear(); txtPswd.Clear(); txtRePswd.Clear(); txtMob.Clear(); txtAddr.Clear(); } private void txtBankName_TextChanged(object sender, EventArgs e) { } private void dataGridMsg_CellContentClick(object sender, DataGridViewCellEventArgs e) { } } }   Registered Users:   using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; using System.Data.SqlClient; namespace BankApp_ERCS { public partial class frmRegisteredUsers : Form { SqlCommand sCommand; SqlDataAdapter sAdapter; SqlCommandBuilder sBuilder; DataSet dataSet; DataTable dataTable; public frmRegisteredUsers() { InitializeComponent(); } private void frmRegisteredUsers_Load(object sender, EventArgs e) { string connectionString = @"Data Source=SS\SQLEXPRESS;Initial Catalog=FOREX;Integrated Security=true"; string sql = "SELECT Employee_Name, Bank_AC_No, MobileNo, Balance FROM tblUserDetails"; SqlConnection connection = new SqlConnection(connectionString); connection.Open(); sCommand = new SqlCommand(sql, connection); sAdapter = new SqlDataAdapter(sCommand); sBuilder = new SqlCommandBuilder(sAdapter); dataSet = new DataSet(); sAdapter.Fill(dataSet, "UserDetails"); dataTable = dataSet.Tables["UserDetails"]; connection.Close(); dataGridViewUsers.DataSource = dataSet.Tables["UserDetails"]; dataGridViewUsers.ReadOnly = true; dataGridViewUsers.SelectionMode = DataGridViewSelectionMode.FullRowSelect; } } } Form login page: using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; using System.Data.SqlClient; namespace BankApp_ERCS { public partial class frmLoginPage : Form { public frmLoginPage() { InitializeComponent(); } public static string mobileNumber; private void linkReg_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e) { frmRegistrationPage f3 = new frmRegistrationPage(); f3.Show(); this.Hide(); } private void btnUserLogin_Click(object sender, EventArgs e) { mobileNumber = txtUser.Text; if (txtUser.Text == "Admin" || txtUser.Text == "admin" || txtUser.Text == "ADMIN") { btnUserLogin.Enabled = false; MessageBox.Show("Please Select the Admin Tab ", "LOGIN ERROR", MessageBoxButtons.OK, MessageBoxIcon.Error); txtUser.Clear(); btnUserLogin.Enabled = true; } else { string mobileNo = txtUser.Text; string pwd = txtPswd.Text; SqlConnection obj1 = new SqlConnection(@"Data Source=SS\SQLEXPRESS;Initial Catalog=FOREX;Integrated Security=true"); obj1.Open(); string selQuery = "select MobileNo,Passwd from tblUserDetails where MobileNo='" + txtUser.Text + "'"; SqlCommand obj2 = new SqlCommand(selQuery, obj1); SqlDataReader obj3 = obj2.ExecuteReader(); if (obj3.HasRows) { while (obj3.Read()) { string mblNo = obj3["MobileNo"].ToString(); string pswd = obj3["Passwd"].ToString(); if (mblNo == mobileNo && pswd == pwd) { mobileNumber = mblNo; frmUserHomePage userHome = new frmUserHomePage(); userHome.Show(); this.Hide(); } else { MessageBox.Show("Invalid Credentials ", "LOGIN ERROR", MessageBoxButtons.OK, MessageBoxIcon.Error); } } } else { MessageBox.Show("Invalid Credentials ", "LOGIN ERROR", MessageBoxButtons.OK, MessageBoxIcon.Error); } } } private void btnUserClear_Click(object sender, EventArgs e) { txtUser.Clear(); txtPswd.Clear(); } private void btnAdminLogin_Click(object sender, EventArgs e) { if ((txtAdmin.Text == "Admin" || txtAdmin.Text == "admin" || txtAdmin.Text == "ADMIN") &&(txtAdPswd.Text == "Ad123$") ) { frmAdminHome adminHome = new frmAdminHome(); adminHome.Show(); this.Hide(); } else { btnAdminLogin.Enabled = false; MessageBox.Show("Please Enter Valid Credentials ","WARNING",  MessageBoxButtons.OK,MessageBoxIcon.Warning); txtAdmin.Clear(); btnAdminLogin.Enabled = true; } } private void btnAdClear_Click(object sender, EventArgs e) { txtAdmin.Clear(); txtAdPswd.Clear(); } private void linkForgot_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e) { mobileNumber = txtUser.Text; frmForgotPassword forgot = new frmForgotPassword(); forgot.Show(); } private void frmLoginPage_Load(object sender, EventArgs e) { } private void linkViewChart_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e) { frmViewChart view = new frmViewChart(); view.Show(); } private void tabPage1_Click(object sender, EventArgs e) { } } }   Forgot password page: using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; using System.Data.SqlClient; namespace BankApp_ERCS { public partial class frmForgotPassword : Form { public static int ss; string secQue; string secAns; string pswd; public frmForgotPassword() { InitializeComponent(); } private void frmForgotPassword_Load(object sender, EventArgs e) { } private void button3_Click(object sender, EventArgs e) { string mobNo = textBox4.Text; SqlConnection obj1 = new SqlConnection(@"Data Source=SS\SQLEXPRESS;Initial Catalog=FOREX;Integrated Security=true"); obj1.Open(); string selQuery = "select SecurityQuestion,Answer,Passwd from tblUserDetails where MobileNo='" + mobNo + "'"; SqlCommand obj2 = new SqlCommand(selQuery, obj1); SqlDataReader obj3 = obj2.ExecuteReader(); if (obj3.HasRows) { while (obj3.Read()) { secQue = obj3["SecurityQuestion"].ToString(); secAns = obj3["Answer"].ToString(); pswd = obj3["Passwd"].ToString(); textBox1.Text = secQue.ToString(); } } panel1.Visible = true; } private void button1_Click_1(object sender, EventArgs e) { string mobNo = textBox4.Text; if (textBox3.Text == secAns) { textBox2.Text = pswd.ToString(); } else { MessageBox.Show("Invalid Credentials ", "LOGIN ERROR", MessageBoxButtons.OK, MessageBoxIcon.Error); } } private void button2_Click_1(object sender, EventArgs e) { this.Close(); } } }   Contact us page: using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; namespace BankApp_ERCS { public partial class frmContactUs : Form { public frmContactUs() { InitializeComponent(); } } }                                 6. SYSTEM DESIGN   6.1 INPUT DESIGN The input design is the link between the information system and the user. It comprises the developing allotment and action for data preparation and those acts are needed to put transaction data in to an accessible form for cococt can be accomplished by checking the computer to read data from a written or printed document or it can occur by having others keying the data direct into system. The design of input focuses on governing the amount of the input needed, administering the errors, preventing adjournment, preventing unnessesary acts and putting the process easy. The input is arranged in such a way so that it provides security and ease of use with confining the privateness.   OBJECTIVES 1. Input Design is the action of changing a user-oriented description of the input into a computer-established system. This design is crucial to avert faults in the data input process and show the correct centering to the direction for acquiring correct data from the computerized system. 2. It is accomplished by making user-friendly screens for the data entry to address big volume of data. The destination of designing input is to attain data entry more comfortable and to be free from faults. The data entry screen is contrived in such a way that all the data controls can be executed. It also allows record considering facilities. 3. When the data is acceded it will assure for its cogency. Data can be enrolled with the aid of screens. Appropriate messages are allowed as when asked so that the user will not be in maize of instant. Thus the aim of input design is to create an input range that is comfortable to follow     6.2 OUTPUT DESIGN A caliber output is one, which assembles the demands of the end user and confronts the data distinctly. In any system consequences of actioning are conveyed to the users and to other system through outputs. In output design it is decided how the data is to be displaced for immediate need and also the hard copy output. It is the most crucial and aim source data to the user. Effective and healthy output design amends the system’s relationship to aid user deciding. 1. Planning computer output should continue in an coordinated, thoughtful manner; the right output must be acquired while assuring that each output component is planned so that people will find the system can use well and efficaciously. When analytic thinking design computer output, they should Name the particular output that is asked to conform to the necessaries. 2. Select methods for delivering data. 3. Create written document, report, or other data format that comprise data acquired by the organization. The end product form of an data system should attain one or more of the following aims.
  • Carry data about past actions, present condition or expulsions of the
Future.
  • Signal crucial cases, chances, troubles, or admonitions.
  • Activate an action.
  • Affirm an action.
6.4 UML Concepts The Unified Modelling Language (UML) is a standard language for composing software blue prints. The UML is a language for
  • Visualizing
  • Specifying
  • Constructing
  • Documenting the artifacts of a software intensifier system.
The UML is a language which provides vocabulary and the rules for blending words in that vocabulary for the aim of communicating. A modeling language is a language whose vocabulary and the rules focus on the concession and physical representation of a organization. Modeling affords an agreement of a system. 6.4.1 Building Blocks of the UML The vocabulary of the UML encompasses three kinds of building blocks:
  • Things
  • Relationships
  • Diagrams
Things are the generalizations that are first-class subjects in a example; relationships tie these things together; plots group concerning accumulations of things. 1. Things in the UML There are four kinds of things in the UML:
  • Structural things
  • Behavioral things
  • Grouping things
  • Annotational things
  Structural things are the nouns of UML models. The structural things applied in the project plan are: First, a class is a description of a set of objects that contribution the similar attributes, functionings, relationships and meaning.
Window
Origin Size
open() close() move() display()
         
Fig: Classes
Second, a use case is a description of set of succession of accomplishes that a system does that affords an evident result of assess to detail actor. Fig: Use Cases Third, a node is a physical component that subsists at runtime and comprises a computational imagination, in general having at least some computer memory and frequently actioning capacity. Fig: Nodes Behavioral things are the dynamic parts of UML models. The behavioral thing used is: Interaction: An interaction is a behaviour that contains a set of contents changed amidst a set of objects amongst a detail circumstance to achieve a particular aim. An interaction involves an amount of other components, including messages, activity sequences (the behavior invoked by a message, and links (the connection between objects). Fig: Messages 2. Relationships in the UML: There are four kinds of relationships in the UML:
  • Dependency
  • Association
  • Generalization
  • Realization
A dependency is a semantic relationship between two things in which a change to one thing may affect the semantics of the other thing (the dependent thing). Fig: Dependencies An association is a structural relationship that describes a set associates, a associate being a connecter among objects. Aggregation is a special kind of association, being a structural relationship amongst a whole and its parts. Fig: Association A generalization is a specialization/ generalization relationship in which objects of the differentiated component (the child) are commutable for objects of the generalized component (the parent). Fig: Generalization A realization is a semantic relationship amongst classifiers, whereas in one classifier assigns a abbreviate that some other word assures to accomplish. Fig: Realization                 6.4.2 UML DIAGRAMS: 1. USE CASE Diagram                                                                                                           FIG 6.4.2.1 USE CASE DIAGRAM The above diagram is Use Case diagram of our system. It shows the set of actions performed by various users. In our system we have 3 types of users. They are 1) Administrator 2) Registered User and 3) Unregistered User. As described earlier, the content in the Ovals are actions performed in the system and those actors are like symbols represent users in system. Those dashed lines from user to action means users are performing those actions respectively.   2. COMPONENT DIAGRAM Screenshot (8) FIG 6.4.2.2 COMPONENT DIAGRAM A component diagram shows various components invoked in system at time of execution of various functions in the system.       3.Deployment Diagram:                              Screenshot (7)                                                       FIG 6.4.2.3 DEPLOYMENT DIAGRAM The deployment diagram shows the architechture of the system as deployment of software artifacts to deployment targets.           Sequence Diagrams:                                            FIG 6.4.2.4 SEQUENCE DIAGRAM 1 This shows the sequence of actions performed in cases of loggin into the application and loggin out.                                           FIG 6.4.2.5 SEQUENCE DIAGRAM 2 This sequence diagram shows the sequence of actions performed when the conversion takes place.                  FIG 6.4.2.6  SEQUENCE DIAGRAM 3 This sequence diagram shows the sequence of actions performed in order to enter registration details of new users and to submit the registration and add the new user details to the database used.                                            7. SYSTEM TESTING The motive of testing is to find out errors. Testing is the sequence of trying to find out every possible fault or weakness in a work product. It gives a way to check the functionality of components, sub-assemblies, assemblies and/or a finished product It is the process of utilizing software with the intention of ensuring that the Software system meets its requirements and user expectations and doen’t fail in an deniable manner. There are various types of tests. Each test type defines a specific testing requirement.   7.1 TYPES OF TESTS   1. Unit testing Unit testing includes the design of test cases that validate that the internal program logic is working correctly, and that program inputs produce valid and required outputs. All decision branches and internal code flow should be checked. It is the testing of each and every software units of the application . It is done after the completion of an individual unit before integration. This is a structural testing, that depends on understanding of its creation and is invasive. Unit tests perform primary tests at component level and test a particular business process, application, and system configuration. Unit tests check for each unique path of a business process functions accurately to the documented requirements and contains clearly defined inputs and expected results.   2Integration testing Integration tests are structured to test integrated software components to check if they actually run as one single program.  Testing is event driven and is more bothered about the primary outcome of screens or fields. Integration tests depict that despite the fact that the components were individually satisfied, as shown by successfully unit testing, the combination of components is correct and homogeneous. Integration testing is specially aimed at finding out the problems that come up from the combination of components.     3Functional test Functional tests gives systematic demonstrations that functions tested are obtained as specified by the business and technical requirements, system documentation, and user guides. Functional testing concentrates on the following items: ·         Valid Input               :  recognised classes of valid input must be accepted. ·         Invalid Input             : recognized classes of invalid input must be rejected. ·         Functions                  : recognised functions must be executed. ·         Output                       : recognized classes of application outputs must be exercised. ·         Systems/Procedures: interfacing systems or procedures must be implored. Organization and preparation of functional tests is concentrated on requirements, key functions, or special test cases. In addition, systematic coverage involved to identify Business process flows; data fields, predefined processes, and successive processes must be appraised for testing. Before functional testing is completed, additional tests are found out and the effective value of current tests is determined.   4. System Test System testing checks that the whole integrated software system meets requirements. It tests a configuration to check the known and predictable results. An example of system testing is the configuration oriented system integration test. System testing is based on process descriptions and flows, focusing pre-driven process links and integration points.   5. White Box Testing White Box Testing is a testing in which the software tester has resourceful knowledge of the internal workings, architecture and language of the software, or at least its purpose. It is purposeIt is used to check areas that can’t be reachedand tested  from a black box level.   6. Black Box Testing Black Box Testing is checking the software without any understanding of the internal functions, design architecture or language of the module being tested. Black box tests, as most other kinds of tests, must be written from a most reliable source document, such as specification or requirements document, such as specification or requirements document. It is a testing in which the software under test is considered, as a black box .You cannot “see” inside the box. The test gives inputs to the software and responds to outputs without bothering about how the software actually works. 7.2 Unit Testing: Unit testing is usually performed as part of a combination of code and unit test phases of the software lifecycle, inspite of it it is not uncommon for coding and unit testing to be conducted as two distinct phases. Test procedure and approach Field testing will be conducted manually and functional tests will be written in detail. Test objectives • All field entries must function correctly properly. • Pages must be operated from the indicated link. • The initial screen, messages/promts and responses/outputs must not be delayed. Features to be tested • Verify that the inputs are of the appropriate format • No duplicate/equivalent inputs should be allowed • All links should take the user to the correct specified page.     7.3 Integration Testing Software integration testing is the progressive integration testing of two or more integrated software components on a single platform to produce errors caused by interface flaws. The task of the integration test is to validate that components or software applications, e.g. components in a software system or – one step up – software applications at the company level – interplay without fail. Test Results: All the test cases mentioned above passed successfully. No flaws encountered.   7.4 Acceptance Testing User Acceptance Testing is a crucial phase of any project and requires noteworthy participation by the end user. It also safeguards that the system meets the functional requirements. Test Results: All the test cases mentioned above passed successfully. No flaws encountered.                           8. OUTPUT SCREENS   FIG 8.1 MAIN HOME PAGE FIG 8.2 USER LOGIN PAGE FIG 8.3 USER LOGIN CREDENTIALS PAGE FIG 8.4 ADMIN LOGIN PAGE FIG 8.5 USER HOME PAGE FIG 8.6 USER DETAILS PAGE FIG 8.7 USER EDIT DETAILS PAGE C:\Users\d\AppData\Local\Microsoft\Windows\INetCache\Content.Word\Screenshot (30).png FIG 8.8 CONVERSION PAGE FIG 8.9 CONERSION PAGE WITH CONVERTED AMOUNT FIG 8.10 VIEW EXCHANGE RATE CHART PAGE FIG 8.11 REGISTRATION  PAGE FIG 8.12 CONTACT US PAGE FIG 8.13 ABOUT US PAGE FIG 8.14 ADMIN HOME PAGE FIG 8.15 ADMIN VIEW USERS PAGE FIG 8.16 ADMIN’S UPDATING CURRENCY RATE PAGE FIG 8.17 FOR FORGOT PASSWORD C:\Users\d\AppData\Local\Microsoft\Windows\INetCache\Content.Word\Screenshot (39).png FIG 8.18 MOBILE NUMBER ENTERED IN FORGOT PASSWORD POPUP FIG 8.19 SECURITY QUESTION IN FORGOT PASSWORD POPUP FIG 8.20 PASSWORD OBTAINED                       9. CONCLUSION This application helps employees to convert their savings into homeland currency. The users can create ids and link their bank accounts to their id. This would make it easy for the user to have an overall idea about his savings. The admin handles the currency rates and has a record of the registered users and their details.         10. BIBLIOGRAPHY  Sites references Made From: 1)https://msdn.microsoft.com/en-us/library/h43ks021(v=vs.110).aspx 2)http://www.codeproject.com/Articles/1564/ADO-NET-Programmer-s-Reference-Chapter-COM-Inte 3) http://www.informit.com/guides/content.aspx?g=dotnet&seqNum=72 4) http://www.proitonlinetraining.com/online-asp-dot-net-training.html 5)http://msdn.microsoft.com/en-us/library 6)http://www.xe.com/currencyconverter/  

Cite This Work

To export a reference to this article please select a referencing stye below:

Reference Copied to Clipboard.
Reference Copied to Clipboard.
Reference Copied to Clipboard.
Reference Copied to Clipboard.
Reference Copied to Clipboard.
Reference Copied to Clipboard.
Reference Copied to Clipboard.

Related Services

View all

Related Content

All Tags

Content relating to: "Technology"

Technology can be described as the use of scientific and advanced knowledge to meet the requirements of humans. Technology is continuously developing, and is used in almost all aspects of life.

Related Articles

DMCA / Removal Request

If you are the original writer of this dissertation and no longer wish to have your work published on the UKDiss.com website then please: