C#窗体程序编写一个绘图程序,要求随机产生 10 个成绩,生成散点图并统计优良率、合格率与不合格率。
时间: 2024-03-24 15:36:34 浏览: 109
好的,下面是完整的代码实现:
```csharp
using System;
using System.Drawing;
using System.Windows.Forms;
namespace DrawingProgram
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
Random random = new Random();
int[] scores = new int[10];
for (int i = 0; i < 10; i++)
{
scores[i] = random.Next(0, 101);
int x = i * 30 + 30; // 计算点的横坐标
int y = this.canvas.Height - scores[i]; // 计算点的纵坐标(因为坐标轴的原点在左上角)
this.canvas.CreateGraphics().DrawEllipse(Pens.Blue, x, y, 5, 5); // 绘制点
}
int excellentCount = 0; // 优秀数
int goodCount = 0; // 良好数
int passCount = 0; // 合格数
int failCount = 0; // 不合格数
for (int i = 0; i < 10; i++)
{
if (scores[i] >= 90)
{
excellentCount++;
}
else if (scores[i] >= 80)
{
goodCount++;
}
else if (scores[i] >= 60)
{
passCount++;
}
else
{
failCount++;
}
}
int totalCount = excellentCount + goodCount + passCount + failCount; // 总人数
this.excellentLabel.Text = "优秀:" + excellentCount + "(" + (excellentCount * 100.0 / totalCount).ToString("0.00") + "%)";
this.goodLabel.Text = "良好:" + goodCount + "(" + (goodCount * 100.0 / totalCount).ToString("0.00") + "%)";
this.passLabel.Text = "合格:" + passCount + "(" + (passCount * 100.0 / totalCount).ToString("0.00") + "%)";
this.failLabel.Text = "不合格:" + failCount + "(" + (failCount * 100.0 / totalCount).ToString("0.00") + "%)";
}
}
}
```
记得在窗体上添加一个 Button 控件和一个 Panel 控件(用于绘制散点图),以及四个 Label 控件(用于显示统计结果)。然后在按钮的 Click 事件中调用上述代码即可。
希望以上代码能够帮到你!
阅读全文