1、实验二类及类的定义实验报告课程名称面向对象程序设计实验名称实验二、类及类的定义日期2015.10.16学生学号姓名班级实验目的:1熟悉C#类、对象、方法的概念与用法;2掌握编写简单的面向对象的应用程序;3熟悉并掌握C#构造方法及其重载方法的用法;4熟悉并掌握类和成员的访问修饰符的用法。实验要求:1.认真阅读、掌握和本实验相关的教材内容。2.设计并编写代码完成题目要求的任务。3.撰写实验报告。实验内容与步骤:1.很多软件都要求我们先输入用户名和密码才能使用,最常见的例子当属Windows操作系统,制作一个类,完成系统的登录验证工作。1)新建一个名为MySoftware的控制台应用程序2)在解决方
2、案资源管理器中选中该项目,点鼠标右键盘,在弹出的菜单中选择【添加】【类】3)在弹出的对话框中将类名改为Login4)在代码class Login前添加public关键字5)添加Login类的成员变量private string _userName;private string _password;6)添加Login类的属性public string UserName get return userName; set userName = value; public string Password get return password; set password = value; 7)添加Lo
3、gin类的方法/方法public bool IsValidateUser() if (userName.Equals(admin) & password.Equals(admin) return true; else return false;8)完整代码如下:using System;using System.Collections.Generic;using System.Text;namespace MySoftware public class Login /私有字段 private string userName; private string password; /属性 publi
4、c string UserName get return userName; set userName = value; public string Password get return password; set password = value; /方法 public bool IsValidateUser() if (userName.Equals(admin) & password.Equals(admin) return true; else return false; 9)双击Program.cs,在Main方法中输入如下代码:using System;using System.
5、Collections.Generic;using System.Text;namespace MySoftware class Program static void Main(string args) Login loginModule = new Login(); Console.WriteLine(#); Console.WriteLine( C# 之星V1.0 Beata 版 ); Console.WriteLine(#); Console.WriteLine(); Console.WriteLine(); Console.Write(请输入您的用户名:); string userN
6、ame = Console.ReadLine(); Console.Write(请输入您的密码:); string password = Console.ReadLine(); loginModule.UserName = userName; loginModule.Password = password; if (loginModule.IsValidateUser() Console.WriteLine(欢迎使用C#之星软件V1.0版本); else Console.WriteLine(您的用户名输入错误,系统拒绝登录!); 10)按Ctrl+F5运行程序,查看程序执行效果2扩展登录类,实
7、现以下功能:1)在命名空间中增加用户类型枚举,包括管理员、普通用户两种2)在Login类中添加枚举类型对应的成员变量,并将该变量封装成属性3)修改IsValidateUser()方法,对于不同的用户身份,进入不同的欢迎界面4)用户拥有5次登录尝试机会,如果5次登录都失败,程序结束,否则,允许用户重新输入用户名和密码。Login.cs代码如下:using System;using System.Collections.Generic;using System.Linq;using System.Text;namespace MySoftware public enum usertype admi
8、n,guest public class Login private string userName; private string password; private usertype user; public usertype User/属?性? get return user; set user = value; public string UserName get return userName; set userName = value; public string Password get return password; set password = value; public
9、int IsValidateUser() switch (user) case usertype.admin: if (userName.Equals(admin) & password.Equals(admin) return 0; else return 2; case usertype.guest: if (userName.Equals(guest) & password.Equals(guest) return 1; else return 2; default: return 2; ; Program.cs代码如下:using System;using System.Collect
10、ions.Generic;using System.Linq;using System.Text;namespace MySoftware class Program static void Main(string args) int num=5; while (num0) Login loginModule = new Login(); Console.WriteLine(#); Console.WriteLine( C# 之星V1.0 Beata 版 ); Console.WriteLine(#); Console.WriteLine(); Console.WriteLine(); Con
11、sole.WriteLine(请选择用户类型(0-管理员 1-普通用户):); usertype usertype = (usertype)Enum.Parse(typeof(usertype), Console.ReadLine(); Console.Write(请输入您的用户名:); string userName = Console.ReadLine(); Console.Write(请输入您的密码:); string password = Console.ReadLine(); loginModule.UserName = userName; loginModule.Password
12、= password; loginModule.User = usertype; int state = loginModule.IsValidateUser(); Console.WriteLine(); switch (state) case 0: Console.WriteLine( 尊敬的管理员 ); break; case 1: Console.WriteLine( 尊敬的用户 ); break; case 2: Console.WriteLine(您的用户名或密码输入错误系统拒绝登录!); break; num-; if (state = 2 & num 0) Console.Wr
13、iteLine(您还有0次机会输入登录信息,num); else Console.WriteLine(欢?迎使用C#之星软件V1.0版本?); break; Console.ReadKey(); 测试结果:1.身份为管理员,用户名和密码都正确,成功进入系统。 2.身份为管理员,用户名和密码都正确,成功进入管理员界面。 第一次没有成功输入,将会提示用户重新输入登录信息。而且提示剩余可输入信息次数。实验总结(结论或问题分析):本次实验,主要是在命名空间中增加用户类型枚举,并且在Login类中添加枚举类型对应的成员变量,并将该变量封装成属性。在完成这两步操作,并且将程序功能修改后发现在管理员模式下程序正确执行,但是在用户模式下,程序不能正确执行。之后检查发现缺了一句loginModule.User = usertype;这样就没有将选择的用户模式赋给loginModule.User,就不能选择用户模式,它的值是一直0,所以只能是在管理员模式下工作。实验成绩任课教师签名郭俊恩
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1