目录
录入账户信息
代码
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace ConsoleApp1
{
class people
{
public int age;
public int cardno;
public string name;
public people(int age_, int cardno_, string name_)
{
this.age = age_;
this.cardno = cardno_;
this.name = name_;
}
}
class Program
{
static void false_warn()
{
Console.WriteLine("输入不合法");
}
static void Main(string[] args)
{
Console.WriteLine("people number");
string a = Console.ReadLine();
int num = int.Parse(a);
people[] p = new people[num];
int temp = 0;
string li;
while (true)
{
if (temp >= num)
{
Console.WriteLine("输入完成");
break;
}
int tt = 1;//ok
//name
to_name:
Console.WriteLine("请输入第{0}位乘客的姓名", temp);
string name1 = Console.ReadLine();
foreach(char r in name1)
{
if (!char.IsLetter(r))
{
false_warn();
goto to_name;
}
}
to_age:
Console.WriteLine("请输入第{0}位乘客的年龄", temp);
li = Console.ReadLine();
foreach (char r in li)
{
if (!char.IsDigit(r))
{
false_warn();
goto to_age;
}
}
//年龄正确 转类型
int age1 = int.Parse(li);
//年龄小于0
if(age1<0)
goto to_age;
to_card:
Console.WriteLine("请输入第{0}位乘客的身份证号", temp);
li = Console.ReadLine();
foreach (char r in li)
{
if (!char.IsDigit(r))
{
false_warn();
goto to_card;
}
}
//年龄正确 转类型
int card1 = int.Parse(li);
p[temp] = new people(age1, card1, name1);
temp++;
}
for (int i = 0; i < p.Length; i++)
{
Console.WriteLine("请输入第" + (i + 1) + "位乘客的姓名" + p[i].name);
Console.WriteLine("请输入第" + (i + 1) + "位乘客的年龄" + p[i].age);
Console.WriteLine("请输入第" + (i + 1) + "位乘客的身份证号"+p[i].cardno);
}
}
}
}
检测字符串元素个数
代码
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace ConsoleApp1
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine("请输入语句");
string str=Console.ReadLine();
int letter_num = 0;
int num_num = 0;
int punctuate_num = 0;
foreach(char r in str)
{
if (char.IsLetter(r))
letter_num++;
else if (char.IsDigit(r))
num_num++;
else if (char.IsPunctuation(r))
punctuate_num++;
}
Console.WriteLine("字母数量:" + letter_num + " 数字数量:" + num_num + " 标点符号数量:" + punctuate_num);
}
}
}
心得与不足
心得:
1.用goto方法,能够很好地解决使用对象输入错误的情况。使用方法是:
Index:
Goto index;
2.c#的输出要运用{0},和c不同。{x}是占位符,逗号后面是参数列表。
3.C#的数组定义要用堆→new
4.Console.ReadLine()读取|Console.WriteLine()输出
5.输入,程序读取到的均为string,所以要判断,很重要的一环。
不足:
- 未实现姓名输入中文,未实现年龄要大于0,未实现身份证号的长度和后面存在“x”的情况;
- 统计标点符号中,特殊字符要用枚举。