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 > && value < )
{
age = value;
}
else
{
age = ;
}
}
}
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 = ;
string SEX = string.Empty;
string HOBBY = string.Empty;
string PHONE = string.Empty;
string STATE = string.Empty; //(1.新增 2.修改)
int i = ; //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 == "") //新增
{
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 = "";
PersonCardList.Add(i.ToString(), personcard); //集合添加一行
i++;
}
if (type == "") //查询全部
{
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 == "") //单条查询
{
Console.WriteLine("请输入您要查询的人员信息");
string NAMEFind = Console.ReadLine();
if (PersonCardList.Values.Where(o => o.Name == NAMEFind).Count() > ) //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 == "") //修改
{
Console.WriteLine("请输入您要修改的人员");
string NAMEUpdate = Console.ReadLine();
if (PersonCardList.Values.Where(o => o.Name == NAMEUpdate).Count() > )
{
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 = "";
}
if (message == "年龄")
{
kk.Value.Age = Convert.ToInt32(Message);
kk.Value.State = "";
}
if (message == "性别")
{
kk.Value.Sex = Message;
kk.Value.State = "";
}
if (message == "爱好")
{
kk.Value.Hobby = Message;
kk.Value.State = "";
}
if (message == "电话")
{
kk.Value.Phone = Message;
kk.Value.State = "";
}
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 == "") //删除信息
{
Console.WriteLine("请输入您要删除的人员");
string NAMEDelete = Console.ReadLine();
if (PersonCardList.Values.Where(o => o.Name == NAMEDelete).Count() > ) //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 == "") //删除信息
{ 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();
} }
}

本系列教程:

C#基础总结之八面向对象知识点总结-继承与多态-接口-http://www.cnblogs.com/spring_wang/p/6113531.html

C#基础总结之七面向对象知识点总结1http://www.cnblogs.com/spring_wang/p/6113526.html

C#基础总结之六 DataTable (临时表/数据源) 和Datatable 名片练习http://www.cnblogs.com/spring_wang/p/6113520.html

C#基础总结之五Dictionary<string, string[]>和while循环http://www.cnblogs.com/spring_wang/p/6113514.html

C#基础总结之四List-Hashtable-冒泡排序http://www.cnblogs.com/spring_wang/p/6113504.html

C#基础总结之三循环控制-for-数组-乘法表-arraylisthttp://www.cnblogs.com/spring_wang/p/6113496.html

C#基础总结之二循环控制-运算符http://www.cnblogs.com/spring_wang/p/6113484.html

C#基础总结之一变量常量-if嵌套语句-witch结构-类型转换http://www.cnblogs.com/spring_wang/p/6113476.html

C#基础课程之六(临时表)DataTable使用方法http://www.cnblogs.com/spring_wang/p/6113454.html

C#基础课程之五集合(HashTable,Dictionary)http://www.cnblogs.com/spring_wang/p/6113404.html

C#基础课程之四集合(ArrayList、List<泛型>)http://www.cnblogs.com/spring_wang/p/6113396.html

C#基础课程之三循环语句http://www.cnblogs.com/spring_wang/p/6113383.html

C#基础课程之二变量常量及流程控制http://www.cnblogs.com/spring_wang/p/6113372.html

C#基础课程之一注释和控制台、一些常识http://www.cnblogs.com/spring_wang/p/6113361.html

C#基础第九天-作业答案-储蓄账户(SavingAccount)和信用账户(CreditAccount) http://www.cnblogs.com/spring_wang/p/6113291.html

C#基础第九天-作业-储蓄账户(SavingAccount)和信用账户(CreditAccount) http://www.cnblogs.com/spring_wang/p/6113285.html

C#基础第八天-作业答案-设计类-面向对象方式实现两个帐户之间转账http://www.cnblogs.com/spring_wang/p/6113274.html

C#基础第八天-作业-设计类-面向对象方式实现两个帐户之间转账http://www.cnblogs.com/spring_wang/p/6113258.html

C#基础第七天-作业答案-利用面向对象的思想去实现名片-动态添加http://www.cnblogs.com/spring_wang/p/6113232.html

C#基础第七天-作业-利用面向对象的思想去实现名片-动态添加http://www.cnblogs.com/spring_wang/p/6113224.html

C#基础第六天-作业-利用面向对象的思想去实现名片http://www.cnblogs.com/spring_wang/p/6113028.html

C#基础第六天-作业答案-利用面向对象的思想去实现名片http://www.cnblogs.com/spring_wang/p/6113033.html

C#基础第五天-作业答案-用DataTable制作名片集http://www.cnblogs.com/spring_wang/p/6113022.html

C#基础第五天-作业-用DataTable制作名片集http://www.cnblogs.com/spring_wang/p/6113013.html

C#基础第四天-作业答案-Hashtable-list<KeyValuePair>泛型实现名片http://www.cnblogs.com/spring_wang/p/6113005.html

C#基础第四天-作业-Hashtable-list<KeyValuePair>泛型实现名片http://www.cnblogs.com/spring_wang/p/6113000.html

C#基础第三天-作业答案-集合-冒泡排序-模拟名片http://www.cnblogs.com/spring_wang/p/6112888.html

C#基础第三天-作业-集合-冒泡排序-模拟名片http://www.cnblogs.com/spring_wang/p/6112885.html

C#基础第二天-作业答案-九九乘法表-打印星星http://www.cnblogs.com/spring_wang/p/6112881.html

C#基础第二天-作业-九九乘法表-打印星星http://www.cnblogs.com/spring_wang/p/6112875.html

C#基础第一天-作业答案http://www.cnblogs.com/spring_wang/p/6112872.html

C#基础第一天-作业http://www.cnblogs.com/spring_wang/p/6112867.html

C#-string.Format对C#字符串格式化http://www.cnblogs.com/spring_wang/p/6077098.html

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

  1. C#基础第七天-作业答案-利用面向对象的思想去实现名片-动态添加

    class Card { private string name; public string Name { get { return name; } set { name = value; } } ...

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

    1.利用面向对象的思想去实现: (增加,修改,删除,查询,查询全部)需求:根据人名去(删除/查询).指定列:姓名,年龄,性别,爱好,电话. 本系列教程: C#基础总结之八面向对象知识点总结-继承与多态 ...

  3. C#基础第七天-作业-利用面向对象的思想去实现名片-动态添加

    1.利用面向对象的思想去实现: (增加,修改,删除,查询,查询全部)需求:根据人名去(删除/查询).指定列:姓名,年龄,性别,爱好,电话. 多条添加 , 动态添加 名片 本系列教程: C#基础总结之八 ...

  4. 【Java并发基础】利用面向对象的思想写好并发程序

    前言 下面简单总结学习Java并发的笔记,关于如何利用面向对象思想写好并发程序的建议.面向对象的思想和并发编程属于两个领域,但是在Java中这两个领域却可以融合到一起.在Java语言中,面向对象编程的 ...

  5. C# 用面向对象的思想去编程

    再接上一篇博文,之前写的两篇博文虽然实现了功能,但是和控件之间的粘性太大,依赖于控件进行操作,所以这篇博文主要用面向对象的思想做一个Demo,将逻辑层与显示层剥离开 首先新建一个窗体文件,搭建界面完毕 ...

  6. python基础语法9 生成器,面向对象编程思想,三元表达式,列表生成式,生成器表达式(生成式),匿名函数,内置函数

    生成器 1.什么是生成器? 生成的工具. 生成器是一个 "自定义" 的迭代器, 本质上是一个迭代器. 2.如何实现生成器 但凡在函数内部定义了的yield, 调用函数时,函数体代码 ...

  7. C#基础第八天-作业答案-设计类-面向对象方式实现两个帐户之间转账

    using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.T ...

  8. C#基础第九天-作业答案-储蓄账户(SavingAccount)和信用账户(CreditAccount)

    class Bank { //Dictionary<long,Account> dictionary=new Dictionary<long,Account>(); DataT ...

  9. C#基础第八天-作业-设计类-面向对象方式实现两个帐户之间转账

    要求1:完成以下两种账户类型的编码.银行的客户分为两大类:储蓄账户(SavingAccount)和信用账户(CreditAccount),两种的账户类型的区别在于:储蓄账户不允许透支,而信用账户可以透 ...

随机推荐

  1. 使用Newtonsoft进行JSON序列化时将枚举序列化为字符串的方法

    一.实体书写 将枚举类型的属性前面加上[JsonConverter(typeof(StringEnumConverter))]即可. 二.举例 [JsonConverter(typeof(String ...

  2. Eclipse Java注释模板设置详解以及版权声明

    网上的Eclipse注释模板,在这里稍稍整理一些比较常用的. 编辑注释模板的方法:Window->Preference->Java->Code Style->Code Temp ...

  3. EL表达式学习笔记

     转载请注明原文地址:http://www.cnblogs.com/ygj0930/p/6684424.html  一:EL表达式的用途 1.获取数据:(某个web域 中的对象,访问javabean的 ...

  4. CDC方式及优缺点

    什么是数据抽取? 数据抽取是指从源数据源系统抽取目的数据源系统需要的数据.实际应用中,数据源较多采用的是关系数据库.数据抽取的方式分为全量抽取和增量抽取 全量抽取类似于数据迁移或数据复制,它将数据源中 ...

  5. Android 百度地图开发(一)

    在自己的Android项目中增加百度地图的功能. 一 申请API key 在使用百度地图之前,我们必须去申请一个百度地图的API key,申请地址http://lbsyun.baidu.com/api ...

  6. 【DB2】表函数监控数据库

    1.快照表函数 在DB2 V9中能够使用SQL表函数捕获快照,以下是部分表函数列表: 快照表函数                           返回的信息 SNAPSHOT_DBM        ...

  7. IIS 管理器无法验证此内置帐户是否有访问权

    解决办法:1.打开iss管理器2.点击网站——localhost3.点击右上角位置的"基本设置"——"链接为"——"特定用户"——" ...

  8. libvlc_new 调用产生段错误

    在调试程序的时候,碰到一个奇怪的段错误问题.只要链接的时候使用-Wl,-rpath=./vlc/lib就会产生段错误,如果链接的时候使用的是-Wl,-rpath=../../tool/vlc/lib则 ...

  9. 开启spring boot actuator 安全认证

    通过本文配置,会对actuator 除了health外的所有端点,开启用户名密码验证,对于自己开发的接口不会要求用户名密码验证. 版本: <parent> <groupId>o ...

  10. 常用bios flash闪存型号

    常用flash IC芯片厂商及型号 制造商 4M 8M 16M 32M Atmel AT25DF321AT25DF321A AT25DF641     EON (cFeon) EN25F32EN25P ...