首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

一个简略的成绩统计,求平均分跟最低分出错,不知道为什么

2013-10-16 
一个简单的成绩统计,求平均分跟最低分出错,不知道为什么using Systemusing System.Collections.Genericu

一个简单的成绩统计,求平均分跟最低分出错,不知道为什么

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;

namespace test1
{
    /// <summary>
    /// MainWindow.xaml 的交互逻辑
    /// </summary>
    public partial class MainWindow : Window
    {
        public int num = 1;
        public double[] arr = new double[20];
        public int element;


        public MainWindow()
        {
            InitializeComponent();
            textBox1.Text = "1";
        }

        private void button1_输入成绩_Click(object sender, RoutedEventArgs e)
        {
            element = 0;
            arr[element] = Convert.ToDouble(textBox2.Text);
            element++; num++;
            textBox1.Text = Convert.ToString(num);
            textBox2.Text = "";


        }



        private void button2_平均分_Click(object sender, RoutedEventArgs e)
        {
            double s = 0;
            for (int i = 0; i < num - 1; i++)
                s += arr[i];
            textBox3.Text = Convert.ToString(s / (num - 1));
        }

       

        private void button4_最低分_Click(object sender, RoutedEventArgs e)
        {
            double low = 0;
            for (int i = 0; i < num - 1; i++)
                low = (arr[i] < low) ? arr[i] : low;
            textBox5_low.Text = Convert.ToString(low);

        }

        private void button3_最高分_Click(object sender, RoutedEventArgs e)
        {
            double top = 0;
            for (int i = 0; i < num - 1; i++)
                top = (arr[i] > top) ? arr[i] : top;
            textBox4_top.Text = Convert.ToString(top);
 
        }

    }
}

[解决办法]
        private void button1_输入成绩_Click(object sender, RoutedEventArgs e)
         {
             element = 0;
             arr[element] = Convert.ToDouble(textBox2.Text);
             element++; num++;


             textBox1.Text = Convert.ToString(num);
             textBox2.Text = "";


         }
你每次都设置的是第一个元素,后面24个始终是null
[解决办法]
你的arr里面只存了一个值吧,你在这个方法里面初始化了element ,每次点击输入成绩的时候你都重新初始化了。所以所有输入都是覆盖保存到arr[0]j里面去了。

引用:
        private void button1_输入成绩_Click(object sender, RoutedEventArgs e)
        {
            element = 0;
            arr[element] = Convert.ToDouble(textBox2.Text);
            element++; num++;
            textBox1.Text = Convert.ToString(num);
            textBox2.Text = "";


        }

[解决办法]
我建议你用 List<double>

代码修改如下:

public List<double> arr = new List<double>();
那两个变量就不要了

       private void button1_输入成绩_Click(object sender, RoutedEventArgs e)
         {
             arr.Add(Convert.ToDouble(textBox2.Text));
             textBox1.Text = arr.Count().ToString(); //不要TextBox1也可以。 
             textBox2.Text = "";
         }

        private void button2_平均分_Click(object sender, RoutedEventArgs e)
         {
             textBox3.Text = arr.Average().ToString();
         }

        private void button4_最低分_Click(object sender, RoutedEventArgs e)
         {
             textBox5_low.Text = Convert.ToString(arr.Min());
         }

热点排行