设计一个宠物注册登录信息系统,区分三类宠物:猫、狗、蛇。界面布局美观合理自创。 要求: 1)定义抽象类Pet; 2)由抽象类Pet派生出猫、狗、蛇类; 3)定义泛型Animal<T>,该类中包含一个List<T>泛型集合,能够使用整型索引器、字符串索引器; 4)初始状态下,包含2个动物信息: niuniu/123456和wangcai/111111; 5)当输入正确的名称和密码时,系统进入宠物信息系统管理界面(该界面的设计不做要求),否则提示相应的错误; 6)当注册新的宠物时,出现新的窗体,用于宠物信息的注册(该界面需要详细的设计,宠物需要注册的信息自己设计)需要注册成功宠物的信息。用c sharp
时间: 2024-03-17 15:46:14 浏览: 161
以下是一个简单的宠物注册登录信息系统的实现示例,仅供参考:
```csharp
using System;
using System.Collections.Generic;
using System.Windows.Forms;
namespace PetRegistrationSystem
{
public partial class LoginForm : Form
{
private List<Pet> pets;
public LoginForm()
{
InitializeComponent();
// 初始状态下,包含2个动物信息
pets = new List<Pet>();
pets.Add(new Cat("niuniu", "123456"));
pets.Add(new Dog("wangcai", "111111"));
}
private void loginButton_Click(object sender, EventArgs e)
{
string username = usernameTextBox.Text;
string password = passwordTextBox.Text;
// 遍历动物列表查找对应的宠物
foreach (Pet pet in pets)
{
if (pet.Username == username && pet.Password == password)
{
// 登录成功,打开宠物信息管理界面
new MainForm(pet).Show();
Hide();
return;
}
}
// 登录失败,提示错误
MessageBox.Show("用户名或密码错误!", "错误", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
private void registerButton_Click(object sender, EventArgs e)
{
// 打开宠物注册窗口
new RegisterForm(pets).ShowDialog();
}
}
public partial class RegisterForm : Form
{
private List<Pet> pets;
public RegisterForm(List<Pet> pets)
{
InitializeComponent();
this.pets = pets;
}
private void registerButton_Click(object sender, EventArgs e)
{
// 解析表单数据
string type = typeComboBox.SelectedItem.ToString();
string username = usernameTextBox.Text;
string password = passwordTextBox.Text;
string name = nameTextBox.Text;
int age = (int)ageNumericUpDown.Value;
// 根据不同的宠物类型创建对应的实例
switch (type)
{
case "猫":
pets.Add(new Cat(username, password, name, age));
break;
case "狗":
pets.Add(new Dog(username, password, name, age));
break;
case "蛇":
pets.Add(new Snake(username, password, name, age));
break;
}
// 注册成功,关闭窗口
MessageBox.Show("注册成功!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
Close();
}
}
public partial class MainForm : Form
{
private Pet pet;
public MainForm(Pet pet)
{
InitializeComponent();
this.pet = pet;
// 显示宠物信息
titleLabel.Text = pet.Name + "的信息";
typeLabel.Text = pet.Type;
usernameLabel.Text = pet.Username;
passwordLabel.Text = pet.Password;
nameLabel.Text = pet.Name;
ageLabel.Text = pet.Age.ToString();
}
}
public abstract class Pet
{
public string Username { get; }
public string Password { get; }
public string Name { get; set; }
public int Age { get; set; }
public abstract string Type { get; }
public Pet(string username, string password, string name, int age)
{
Username = username;
Password = password;
Name = name;
Age = age;
}
}
public class Cat : Pet
{
public override string Type { get { return "猫"; } }
public Cat(string username, string password) : base(username, password, "", 0)
{
}
public Cat(string username, string password, string name, int age) : base(username, password, name, age)
{
}
}
public class Dog : Pet
{
public override string Type { get { return "狗"; } }
public Dog(string username, string password) : base(username, password, "", 0)
{
}
public Dog(string username, string password, string name, int age) : base(username, password, name, age)
{
}
}
public class Snake : Pet
{
public override string Type { get { return "蛇"; } }
public Snake(string username, string password) : base(username, password, "", 0)
{
}
public Snake(string username, string password, string name, int age) : base(username, password, name, age)
{
}
}
public class Animal<T>
{
private List<T> items = new List<T>();
public T this[int index]
{
get { return items[index]; }
set { items[index] = value; }
}
public T this[string index]
{
get
{
foreach (T item in items)
{
if (item.ToString().StartsWith(index))
{
return item;
}
}
return default(T);
}
set
{
for (int i = 0; i < items.Count; i++)
{
if (items[i].ToString().StartsWith(index))
{
items[i] = value;
return;
}
}
items.Add(value);
}
}
public void Add(T item)
{
items.Add(item);
}
public void Remove(T item)
{
items.Remove(item);
}
}
}
```
这个系统中,Pet 是一个抽象类,代表宠物,包含用户名、密码、名字和年龄等属性;Cat、Dog、Snake 是 Pet 的三个子类,分别表示猫、狗和蛇。Animal<T> 是一个泛型类,包含一个 List<T> 泛型集合,能够使用整型索引器、字符串索引器。LoginForm 是登录窗口,RegisterForm 是注册窗口,MainForm 是宠物信息管理界面。在登录时,遍历动物列表查找对应的宠物,如果用户名和密码匹配,则进入宠物信息管理界面;否则提示错误。在注册时,根据不同的宠物类型创建对应的实例,注册成功后关闭窗口。在宠物信息管理界面中,显示宠物的信息。
阅读全文