界面设计
程序代码
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.Collections; //引入命名空间
namespace WindowsFormsApp11
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
class Student
{
private string sno;
private string name;
public Student(string sno, string name)
{
this.sno = sno;
this.name = name;
}
public string Sno
{
get
{
return sno;
}
}
public string Name
{
get
{
return name;
}
}
}
class ClassList
{
private Student[] students; //该数组用于存放学生
public ClassList(int index)
{
students = new Student[index];
}
//定义索引器
public Student this[int index]
{
get
{
if (index < 0 || index >= students.Length)
{
return null;
}
return students[index]; //对于有限索引,返回请求的信息
}
set
{
if (index < 0 || index >= students.Length)
{
return;
}
students[index] = value;
}
}
//重载索引器
public Student this[string name]
{
get
{
foreach (Student p in students)//遍历数组中的所有学生姓名
{
if (p.Name==name)//返回符合条件的第一个学生
{
return p;
}
}
return null;
}
}
}
ClassList classlist = new ClassList(3);
private void btnAdd__Click(object sender, EventArgs e) //添加功能
{
if (txtName.Text != "" && txtSno.Text != "" && txtIndex.Text != "") //判断是否为空
{
int index = Convert.ToInt32(txtIndex.Text) - 1; //索引从0开始
Student student = new Student(txtSno.Text, txtName.Text); //创建1本图书
classlist[index] = student; //向书架添加图书
lblShow.Text = string.Format("学生添加成功");
}
else
{
lblShow.Text = string.Format("请输入完整的学生信息及存放位置!"); //提示输入
}
}
private void btnShow_Click(object sender, EventArgs e) //查询
{
int index = Convert.ToInt32(txtIndex.Text) - 1;
Student student = classlist[index]; //按索引检索
if (student != null)
lblShow.Text = string.Format("第{0}位同学是{1}{2}", index + 1, student.Name, student.Sno);
else
lblShow.Text = string.Format("没有第{0}位同学",index+1);
}
private void btnSelect_Click(object sender, EventArgs e) //按姓名查找
{
Student student = classlist[txtName.Text]; //按名称查找
if (student != null)
{
lblShow.Text = string.Format("找到姓名为{0}", student.Name);
}
else
lblShow.Text = string.Format("没有找到姓名为{0}的同学",student.Name);
}
}
}
部分有些bug,比如数字不连贯时会产生异常,还有一些未知异常,欢迎讨论交流。