要求如下
我的答案仅供参考,未能实现按名字排序。写的也不好。23:00开始写,凌晨2:47才写完,我真拉胯啊。还有好长的路要走
using System;
namespace talkingbook
{
public class TalkingBook
{
//通讯录结构体
public enum sexs { 男 = 0, 女 = 1 };
struct talker{
public int bianhao;
public string name;
public sexs sex;
public string data;
public string phone;
}
//添加联系人函数
static void addt()
{
//初始化数组
talker[] talkers = new talker[10];
//读取联系人文件
StreamReader sr = File.OpenText("E:\\C#代码库\\talking book\\通讯录.txt");
string s = sr.ReadLine();
int max = 0;
while (s != null&&max <10)
{
string[] str = s.Split(new char[] { ',' });
talkers[max].bianhao = max + 1;
talkers[max].name = str[1];
//特殊处理,我讨厌enum
if (str[2] == "男")
{
talkers[max].sex = sexs.男;
}
else
{
talkers[max].sex = sexs.女;
}
talkers[max].data =str[3];
talkers[max].phone =str[4];
max++;
s = sr.ReadLine();
}
sr.Close();
//添加联系人
Console.WriteLine("请问需要添加几位联系人?");
int ad = Convert.ToInt16( Console.ReadLine());
for (int i = max; i < max+ad && i<10; i++)
{
Console.WriteLine("请依次输入通讯录里第{0}位联系人的姓名,性别(0男/1女),出生日期,手机,需分别回车",i+1);
talkers[i].bianhao = i + 1;
talkers[i].name = Console.ReadLine();
talkers[i].sex = (sexs)Convert.ToInt16(Console.ReadLine());
Console.WriteLine(talkers[i].sex);
talkers[i].data= Console.ReadLine();
talkers[i].phone= Console.ReadLine();
//提示信息
Console.WriteLine("添加{0}成功",talkers[i].name);
}
//自动创建文件,同时具有覆写功能
StreamWriter sw1 = File.CreateText("E:\\C#代码库\\talking book\\通讯录.txt");
sw1.Flush();
sw1.Close();
//写入
StreamWriter sw2 = File.AppendText("E:\\C#代码库\\talking book\\通讯录.txt");
for (int i = 0; i<max+ad && i<10; i++)
{
sw2.WriteLine(Convert.ToString(i)+ ","+ talkers[i].name + "," + talkers[i].sex + "," + talkers[i].data + "," + talkers[i].phone);
}
sw2.Flush();
sw2.Close();
}
//显示通讯录函数
static void show()
{
//输出信息
//初始化数组
talker[] talkers = new talker[10];
//读取联系人文件
StreamReader sr = File.OpenText("E:\\C#代码库\\talking book\\通讯录.txt");
string s = sr.ReadLine();
int max = 0;
while (s != null && max < 10)
{
string[] str = s.Split(new char[] { ',' });
talkers[max].bianhao = max + 1;
talkers[max].name = str[1];
//特殊处理,我讨厌enum
if (str[2] == "男")
{
talkers[max].sex = sexs.男;
}
else
{
talkers[max].sex = sexs.女;
}
talkers[max].data = str[3];
talkers[max].phone = str[4];
max++;
s = sr.ReadLine();
}
sr.Close();
Console.WriteLine("通讯录中共有{0}人",max);
for (int i = 0; i < max; i++)
{
Console.WriteLine("-----------------");
Console.WriteLine("姓名:{0}", talkers[i].name);
Console.WriteLine("性别:{0}",talkers[i].sex);
//换算年龄
string[] year =talkers[i].data.Split(new char[] { '.' });
int birthday = Convert.ToInt16(year[0]);
int age = 2022 - birthday;
Console.WriteLine("年龄:{0}岁",age);
Console.WriteLine("手机:{0}",talkers[i].phone);
}
}
static void Main()
{
//首页界面
Console.WriteLine("\v\t\t 通讯录软件\t\t\v");
Console.WriteLine("\v\t\t1-添加联系人\t\t\v");
Console.WriteLine("\v\t\t2-显示通讯录\t\t\v");
//功能选择
Console.WriteLine("请输入功能ID");
int id= Convert.ToInt16(Console.ReadLine());
//功能id=1,添加联系人;功能id=2,显示通讯录。
if (id == 1)
{
addt();
}
else
{
show();
}
}
}
}