C#基础第六天-作业答案-利用面向对象的思想去实现名片

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace day1
{
    class PersonCard
    {
            private string name;

            public string Name    //姓名
            {
                get { return name; }
                set { name = value; }
            }
            private int age;      //年龄

            public int Age
            {
                get { return age; }
                set
                {
                    if (value > 0 && value < 100)
                    {
                        age = value;
                    }
                    else
                    {
                        age = 18;
                    }
                }
            }
            private string sex;    //性别

            public string Sex
            {
                get { return sex; }
                set
                {
                    if (value == "男" || value == "女")
                    {
                        sex = value;
                    }
                    else
                    {
                        sex = "男";
                    }
                }
            }
            private string hobby;    //爱好

            public string Hobby
            {
                get { return hobby; }
                set { hobby = value; }
            }
            private string phone;     //电话

            public string Phone
            {
                get { return phone; }
                set { phone = value; }
            }
            private string state;     //状态

            public string State
            {
                get { return state; }
                set { state = value; }
            }
    }
}

    class Program
    {
        static void Main(string[] args)
        {
            string NAME = string.Empty;
            int AGE = 0;
            string SEX = string.Empty;
            string HOBBY = string.Empty;
            string PHONE = string.Empty;
            string STATE = string.Empty;   //(1.新增  2.修改)
            int i = 0;                     //Key值
            PersonCard personcard;         //人员信息类
            Dictionary<string, PersonCard> PersonCardList = new Dictionary<string, PersonCard>();    //人员信息表
            Dictionary<string, PersonCard> PersonCardListCopy = new Dictionary<string, PersonCard>();  //复制人员信息表
            while (true)
            {
                Console.WriteLine("请输入操作方案:1.新增;2.查询全部;3.单条查询;4.修改;5.删除;6.查询已删除信息");
                string type = Console.ReadLine();  //接收操作类型
                if (type == "1")                     //新增
                {
                    Console.WriteLine("姓名:");
                    NAME = Console.ReadLine();
                    Console.WriteLine("年龄:");
                    AGE = Convert.ToInt32(Console.ReadLine());
                    Console.WriteLine("性别:");
                    SEX = Console.ReadLine();
                    Console.WriteLine("爱好:");
                    HOBBY = Console.ReadLine();
                    Console.WriteLine("电话:");
                    PHONE = Console.ReadLine();
                    personcard = new PersonCard();   //实例化人员信息类
                    personcard.Name = NAME;
                    personcard.Age = AGE;
                    personcard.Sex = SEX;
                    personcard.Hobby = HOBBY;
                    personcard.Phone = PHONE;
                    personcard.State = "1";
                    PersonCardList.Add(i.ToString(), personcard);   //集合添加一行
                    i++;
                }
                if (type == "2")    //查询全部
                {
                    foreach (var item in PersonCardList)
                    {
                        Console.WriteLine("姓名:" + item.Value.Name + " " + "年龄:" + item.Value.Age + " " + "性别:" + item.Value.Sex + " " + "爱好:" + item.Value.Hobby + " " + "联系方式:" + item.Value.Phone + "状态:" + item.Value.State);
                    }
                }
                if (type == "3")    //单条查询
                {
                    Console.WriteLine("请输入您要查询的人员信息");
                    string NAMEFind = Console.ReadLine();
                    if (PersonCardList.Values.Where(o => o.Name == NAMEFind).Count() > 0)    //lingq   人名存在数大于零
                    {
                        IEnumerable<KeyValuePair<string, PersonCard>> abc = PersonCardList.Where(o => o.Value.Name == NAMEFind);
                        foreach (KeyValuePair<string, PersonCard> kk in abc)
                        {
                            Console.WriteLine("姓名:" + kk.Value.Name + " " + "年龄:" + kk.Value.Age + " " + "性别:" + kk.Value.Sex + " " + "爱好:" + kk.Value.Hobby + " " + "联系方式:" + kk.Value.Phone + "状态:" + kk.Value.State);
                        }

                    }
                    else
                    {
                        Console.WriteLine("对不起,没有您要查询的人员信息");
                    }
                }
                if (type == "4")    //修改
                {
                    Console.WriteLine("请输入您要修改的人员");
                    string NAMEUpdate = Console.ReadLine();
                    if (PersonCardList.Values.Where(o => o.Name == NAMEUpdate).Count() > 0)
                    {
                        IEnumerable<KeyValuePair<string, PersonCard>> abc = PersonCardList.Where(o => o.Value.Name == NAMEUpdate);
                        Console.WriteLine("请输入您要修改的信息(姓名,年龄,性别,爱好,电话)");
                        string message = Console.ReadLine();
                        Console.WriteLine("请输入修改后的内容");
                        string Message = Console.ReadLine();
                        foreach (KeyValuePair<string, PersonCard> kk in abc)
                        {
                            if (message == "姓名")
                            {
                                kk.Value.Name = Message;
                                kk.Value.State = "2";
                            }
                            if (message == "年龄")
                            {
                                kk.Value.Age = Convert.ToInt32(Message);
                                kk.Value.State = "2";
                            }
                            if (message == "性别")
                            {
                                kk.Value.Sex = Message;
                                kk.Value.State = "2";
                            }
                            if (message == "爱好")
                            {
                                kk.Value.Hobby = Message;
                                kk.Value.State = "2";
                            }
                            if (message == "电话")
                            {
                                kk.Value.Phone = Message;
                                kk.Value.State = "2";
                            }
                            Console.WriteLine("姓名:" + kk.Value.Name + " " + "年龄:" + kk.Value.Age + " " + "性别:" + kk.Value.Sex + " " + "爱好:" + kk.Value.Hobby + " " + "联系方式:" + kk.Value.Phone + "状态:" + kk.Value.State);
                        }

                    }
                    else
                    {
                        Console.WriteLine("对不起,没有您要修改的人员");
                    }
                }
                if (type == "5")    //删除信息
                {
                    Console.WriteLine("请输入您要删除的人员");
                    string NAMEDelete = Console.ReadLine();
                    if (PersonCardList.Values.Where(o => o.Name == NAMEDelete).Count() > 0)    //lingq   人名存在数大于零
                    {
                        List<KeyValuePair<string, PersonCard>> abc = PersonCardList.Where(o => o.Value.Name == NAMEDelete).ToList();
                        foreach (KeyValuePair<string, PersonCard> kk in abc)
                        {
                            PersonCardListCopy.Add(kk.Key, kk.Value);
                            PersonCardList.Remove(kk.Key);
                        }
                        foreach (var item in PersonCardList)
                        {
                            Console.WriteLine("姓名:" + item.Value.Name + " " + "年龄:" + item.Value.Age + " " + "性别:" + item.Value.Sex + " " + "爱好:" + item.Value.Hobby + " " + "联系方式:" + item.Value.Phone + "状态:" + item.Value.State);
                        }
                    }
                    else
                    {
                        Console.WriteLine("对不起,没有您要删除的人员");
                    }
                }
                if (type == "6")    //删除信息
                {

                    foreach (var item in PersonCardListCopy)
                    {
                        Console.WriteLine("姓名:" + item.Value.Name + " " + "年龄:" + item.Value.Age + " " + "性别:" + item.Value.Sex + " " + "爱好:" + item.Value.Hobby + " " + "联系方式:" + item.Value.Phone + "状态:" + item.Value.State);
                    }
                }
                Console.ReadKey();
            }

        }
    }
时间: 2024-08-28 21:11:07

C#基础第六天-作业答案-利用面向对象的思想去实现名片的相关文章

iOS开发OC基础:OC基础概念总结,OC面向对象的思想

一.什么是OOP: OOP(Object Oriented Programming):面向对象编程 二.面向对象和面向过程的区别: 面向过程编程:分析解决问题的步骤,实现函数,依次使用面向对象编程:分解问题组成的对象,协调对象间的联系和通信,解决问题. 面向过程是以事件为中心,关心的是完成这个事件的详细步骤:面向对象是以事物为中心,关心的是事物应该具备的功能,而完成一个事件只是事物所有功能里面的一个小功能(以过程为中心,以对象为中心) 三.类和对象 对象定义了解决问题的步骤中的行为,不刻意完成一

【大数据-第二期】java基础第六天作业

[作业1] ------------------------------------ 使用抽象类和接口实现适配器模式设计.涉及的类和接口分别为ButtonListener(接口), 其中含有click() / dbclick() / keyUp() / keyDown()等方法. ButtonAdapter(按钮适配器类),适配器中对非click()方法进行默认实现. Button类中添加addListener(ButtonListener l)方法. //按钮监听接口 interface Bu

大数据Java基础第六天作业

第一题: interface ButtonListener{     public void click();     public void dbclick();     public void keyup();     public void keydown(); } abstract class ButtonAdapter implements ButtonListener{     public void dbclick(){         //...空实现     }     pub

面向对象编程思想的介绍

1.面向对象的理解 面向对象(Object Oriented)是一种程序设计的思想. 说面向对象之前,我们先来说说面向过程.来最经典的例子,把大象放进冰箱,1.打开冰箱.2.把大象放进去.3.关上冰箱.嗯,看着很合理,但是需要增加一些新的需求,比如大象放进冰箱以前先转个圈.放进去以后只关一半冰箱门.不放大象了放狮子等等一系列需求时,就需要把代码都捋一遍,再去改逻辑,这样的需求越来越多,那么代码就会越来越乱,难以维护. 于是就诞生了面向对象思想,一切皆对象.我们再用面向对象的思想去看上面的问题,可

python基础周作业

python基础周作业 1.执行python脚本的两种方法 脚本前面直接指定解释器 在脚本开始前声明解释器 2.简述位,字节的关系 每一个字节占用八个比特位 3, 简述ascii.unicode.utf- ‐8.gbk的关系 utf--‐8 <-- unicode <-- gbk <-- ascii 按此方向兼容 4..请写出"李杰"分别用utf- ‐8和gbk编码所占的位数 "李杰" 占用utf -8 占6字节 , gbk 占用4字节 5.pyt

前端工程师基础课程作业

一.问答题: (1)139邮箱资源服务器与缓存相关的响应首部是怎么配置的? (2)登录139邮箱web2.3,在浏览器有缓存的情况下,刷新页面,浏览器会不会重新发送请求获取静态资源?如果会,请列出与缓存相关的请求首部以及响应状态码:如果不会,请说明原因. (3)请指出Cache-Control与Expires的区别 (4)新功能上线后,如何清空浏览器的缓存,让用户获取最新的资源文件? 问题1.问题2 可用Fiddler抓包然后截图说明. 二.编程题: 请写一个页面,并封装相应的JS代码,完成13

【Java面向对象基础(三)】面向对象思想

[喵"的Android之路][基础篇(三)][Java面向对象基础]面向对象思想 1 面向对象的WWH 1.1 What--什么是面向对象 首先,要理解“对象”.在Thinking in Java中提到“Everything is an object”,即万物皆对象.这里的“对象”指的是任何实体或者任何可以当作实体看待的“虚幻的事物”.比如现实中的人(男人.女人.老人.小孩而...).动物(大象.狮子.猴子...).桌子.凳子.汽车.ATM机等等,也可以使看不见摸不着的空气(氧气.二氧化碳.氮气

php面试题汇总二(基础篇附答案)

介绍一些php常见面试题及答案,都是平时面试的时候经常会遇到的,小伙伴们仔细了解下吧.接着上一篇php面试题汇总一(基础篇附答案) 1.在PHP中,当前脚本的名称(不包括路径和查询字符串)记录在预定义变量(1)中:而链接到当前页面的URL记录在预定义变量(2)中. 答:echo $_SERVER['PHP_SELF']; echo $_SERVER["HTTP_REFERER"]; 2:数组函数 arsort 的作用是(6):语句 error_reporting(2047)的作用是(7

拖拽系列二、利用JS面向对象OOP思想实现拖拽封装

接着上一篇拖拽系列一.JavaScript实现简单的拖拽效果这一篇博客将接着对上一节实现代码利用JS面向对象(OOP)思维对上一节代码进行封装; 使其模块化.避免全局函数污染.方便后期维护和调用:写到这里突然想起一句话“没有任何一个题目是彻底完成的.总还会有很多事情可做......” 我想这句话程序开发大概也适用吧,前端开发人员总是可以结合自己之前学到“拖拽”相关知识,不断扩展.完善.无穷无尽.......     利用匿名函数自执行实现封装 ;(function(){ //do somethi