设计一个宠物注册登录信息系统。区分三类宠物:猫、狗、 蛇。界面布局美观合理自创 要求 1)定义抽象类Pet 2)由抽象类Pet派生出猫、狗、蛇类; 3)定义泛型Animal<T>,该类中包含一个List<T>泛型集 合,能够使用整型索引器、字符串索引器 4)初始状态下、包含2个动物信息:niuniu/123456和 wangcai/111111: 5)当输入正确的名称和密码时,系统进入宠物信息系统管 理界面(该界面的设计不做要求),否则提示相应的错误信息,当注册新的宠物时,出现新窗体,用于宠物信息的注册
时间: 2024-03-17 11:46:20 浏览: 87
好的,我来为您设计一个宠物注册登录信息系统,包括登录、注册和宠物信息管理。
首先,我们需要定义抽象类Pet和由抽象类Pet派生出猫、狗、蛇类。
1. 定义抽象类Pet
```
abstract class Pet
{
public string Name { get; set; } // 宠物名
public int Age { get; set; } // 年龄
public abstract string Type { get; } // 宠物类型(猫、狗、蛇)
public abstract void Eat(); // 吃东西
}
```
2. 由抽象类Pet派生出猫、狗、蛇类
```
class Cat : Pet
{
public override string Type => "猫";
public override void Eat()
{
Console.WriteLine("猫在吃鱼。");
}
}
class Dog : Pet
{
public override string Type => "狗";
public override void Eat()
{
Console.WriteLine("狗在啃骨头。");
}
}
class Snake : Pet
{
public override string Type => "蛇";
public override void Eat()
{
Console.WriteLine("蛇在吞食老鼠。");
}
}
```
接着,我们需要定义泛型Animal<T>,该类中包含一个List<T>泛型集合,能够使用整型索引器、字符串索引器。
3. 定义泛型Animal<T>
```
class Animal<T> where T : Pet
{
private List<T> pets = new List<T>();
public void Add(T pet)
{
pets.Add(pet);
}
public T this[int index]
{
get { return pets[index]; }
set { pets[index] = value; }
}
public T this[string name]
{
get { return pets.FirstOrDefault(p => p.Name == name); }
}
}
```
初始状态下,我们包含2个动物信息:niuniu/123456和wangcai/111111。
4. 初始化动物信息
```
Animal<Pet> animal = new Animal<Pet>();
animal.Add(new Cat { Name = "niuniu", Age = 2 });
animal.Add(new Dog { Name = "wangcai", Age = 3 });
```
接下来,我们创建一个Winform项目,设计登录界面、注册界面和宠物信息管理界面。
5. 登录界面
登录界面包含两个文本框(用于输入名称和密码)、一个登录按钮和一个注册按钮。当用户单击登录按钮时,触发以下事件处理程序:
```
private void btnLogin_Click(object sender, EventArgs e)
{
string name = txtName.Text;
string password = txtPassword.Text;
Pet pet = animal[name];
if (pet != null && password == "123456")
{
// 进入宠物信息系统管理界面
PetInfoForm petInfoForm = new PetInfoForm(pet);
petInfoForm.ShowDialog();
}
else
{
MessageBox.Show("名称或密码错误。");
}
}
```
6. 注册界面
注册界面包含一个下拉列表框(用于选择宠物类型)、两个文本框(用于输入名称和年龄)、一个确认按钮和一个取消按钮。当用户单击确认按钮时,触发以下事件处理程序:
```
private void btnOK_Click(object sender, EventArgs e)
{
string type = cboType.SelectedItem.ToString();
string name = txtName.Text;
int age = int.Parse(txtAge.Text);
if (type == "猫")
{
animal.Add(new Cat { Name = name, Age = age });
}
else if (type == "狗")
{
animal.Add(new Dog { Name = name, Age = age });
}
else if (type == "蛇")
{
animal.Add(new Snake { Name = name, Age = age });
}
MessageBox.Show("注册成功。");
this.Close();
}
```
7. 宠物信息管理界面
宠物信息管理界面用于显示宠物信息和进行相关操作。我们可以在构造函数中初始化宠物信息,并添加一些控件来显示宠物信息。同时,我们也可以添加一些按钮来实现宠物信息的修改、删除等操作。
```
public partial class PetInfoForm : Form
{
private Pet pet;
public PetInfoForm(Pet pet)
{
InitializeComponent();
this.pet = pet;
lblName.Text = pet.Name;
lblType.Text = pet.Type;
lblAge.Text = pet.Age.ToString();
}
private void btnEdit_Click(object sender, EventArgs e)
{
// TODO: 编辑宠物信息
}
private void btnDelete_Click(object sender, EventArgs e)
{
// TODO: 删除宠物信息
}
}
```
至此,一个简单的宠物注册登录信息系统设计完成。
阅读全文