更新:只要在第 2 类中输入值,唯一显示的结果就是最后输入的结果。例如:如果在 class1 行和 class2 行中输入数据,则仅显示 class2 行的计算。有人可以告诉我为什么会这样吗?
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;
using System.IO;
namespace Grade_Point_Average_Calculator
{
public partial class GPA_Calculator : Form
{
SaveFileDialog saveFileDialog1;
public GPA_Calculator()
{
InitializeComponent();
}
private void GPA_Calculator_FormClosed(object sender, FormClosedEventArgs e)
{
Application.Exit();
}
// Closes application after exitToolStripMenuItem_Click
private void exitToolStripMenuItem_Click(object sender, EventArgs e)
{
this.Close();
}
// Displays information about the application version number and creator
private void aboutToolStripMenuItem_Click(object sender, EventArgs e)
{
MessageBox.Show("Version 1.0., "About");
}
private void calculateBtn_Click(object sender, EventArgs e)
{
int maskbox1, maskbox2, maskbox3, maskbox4, maskbox5, maskbox6;
CalculatorLogics oCalculatorLogics1 = new CalculatorLogics(this);
oCalculatorLogics1.SelectedGrade = double.Parse(comboBox1.SelectedValue.ToString());
if (!int.TryParse(maskedTextBox1.Text, out maskbox1))
{
maskbox1 = 0; // Assign zero is parse fails
}
else
{
oCalculatorLogics1.CourseCredit = int.Parse(maskedTextBox1.Text);
}
oCalculatorLogics1.performGpaCalculations();
answerLabel.Text = oCalculatorLogics1.CalcGrade.ToString();
CalculatorLogics oCalculatorLogics2 = new CalculatorLogics(this);
oCalculatorLogics2.SelectedGrade = double.Parse(comboBox2.SelectedValue.ToString());
if (!int.TryParse(maskedTextBox2.Text, out maskbox1))
{
maskbox2 = 0; // Assign zero is parse fails
}
else
{
oCalculatorLogics2.CourseCredit = int.Parse(maskedTextBox2.Text);
}
oCalculatorLogics2.performGpaCalculations();
answerLabel.Text = oCalculatorLogics2.CalcGrade.ToString();
}
}
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace Grade_Point_Average_Calculator
{
class CalculatorLogics
{
private double grade;
private double gradeValue;
private double calculateGrades;
private int credits;
private GPA_Calculator _GPA_Calculator;
// Pass form to CalculatorLogics constructor
public CalculatorLogics(GPA_Calculator theGPA_Calculator)
{
_GPA_Calculator = theGPA_Calculator;
}
public double SelectedGrade
{
get { return grade; }
set { grade = value; }
}
public int CourseCredit
{
get { return credits; }
set { credits = value; }
}
public double CalcGrade
{
get
{
return calculateGrades;
}
}
public void performGpaCalculations()
{
gradeVal = grade * credits;
totalCredits += credits; // Add the amount of credits
totalGradeValue += gradeVal;
calculateGrades = totalGradeValue/totalCredits; // Calculates gpa
return calculateGrades;
}
}
}