回顾课后作业
例1
使用学到的文件操作,创建三个文件文件名分别是数学.txt,语文.txt,英语.txt,里面分别存放着50个学生的数学,语文,英语成绩,每一行放着名字和对应的分数,名字是小明1,小明2这样的规律显示,分数随机,每一行显示的完整内容是 科目+名字+分数,接下来用我们前面讲到的正则表达式,找出所有txt文件中的小明1的成绩逐行显示到1.txt文件中
例2
请利用面向对象分析实现图书管理系统,具有录入,查询 ,删除,显示所有图书信息功能。借助文件操作的方式存储数据,将书籍存放到图书文件夹下,每本书都是一个txt文件,文件名为该书的名字,书中的初始内容为书名,图书的数据有书名,作者,价格,删除的时候要输入书的名字来进行删除
我想创建不同科目很多科目->列表存起来 很多学生 分数不一样
using System.Security.Cryptography.X509Certificates;
using System.Text.RegularExpressions;
namespace ConsoleApp1021
{
internal class Program
{
private static void creatFiles(string subject, int num)
{
string path = $"./{subject}.TXT";
if (!File.Exists(path))
{
string str = "";
Random random = new Random();
StreamWriter fswrite = new StreamWriter(path);
for (int i= 1;i<= num; i++)
{
int score = random.Next(59, 101);
str = $"{subject} 小明{i} {score}";
fswrite.WriteLine(str);
}
fswrite.Close();
}
}
public static string getInfo(string subject,string name)
{
string path = $"./{subject}.TXT";
string pattern = $"{name} +";
StreamReader fsread = new StreamReader(path);
string[] strArray = fsread.ReadToEnd().Split("\n");
foreach (string i in strArray)
{
if (Regex.IsMatch(i, pattern)) return i;
}
fsread.Close();
return "";
}
static void Main(string[] args)
{
List<string> subjects = new List<string>();
subjects = File.ReadAllText("./subjects.TXT").Split(" ").ToList();
Console.Write($"初始科目为{string.Join(",",subjects)},是否要插入新科目(y/n):");
string res = Console.ReadLine();
while (true)
{
if (res == "y")
{
Console.WriteLine("请输入要插入的科目:");
string subject = Console.ReadLine();
subjects.Add(subject);
File.AppendAllText("./subjects.TXT"," "+subject);
}
else
{
break;
}
Console.WriteLine("是否继续插入新科目(y/n):");
res = Console.ReadLine();
}
foreach (string i in subjects)
{
creatFiles(i, 80);
}
Console.Write("请输入你要查找的人的名字:");
StreamWriter fsWrite = new StreamWriter("./1.TXT");
string name = Console.ReadLine();
foreach(string i in subjects)
{
string k = getInfo(i, name);
if (k.Trim()!= "")
{
fsWrite.Write(k);
Console.WriteLine(k);
}
}
fsWrite.Close();
}
}
}


创建一个图书类 不同的图书系统 科技类 ,儿童类,艺术类...
using System.Security.Cryptography.X509Certificates;
using System.Text.RegularExpressions;
namespace ConsoleApp1021
{
public class Book
{
public Book(string name)
{
this.name = name;
this.path = $"./{name}";
init();
}
public string name;
public string path;
public void init()
{
if (!Directory.Exists(path))
{
Directory.CreateDirectory(path);
}
}
public void creatBook(string name, string price, string author,out string msg)
{
string pathName = $"{path}/{name}.TXT";
if (!File.Exists(path) && name.Trim() != " ")
{
StreamWriter fsw = new StreamWriter(pathName);
fsw.Write($"书名:{name}\n作者:{author}\n价格:{price}");
fsw.Close();
msg = "添加成功";
}
else
{
msg = "添加出错";
}
}
public string findBook(string name)
{
string pathName = $"{path}/{name}.TXT";
if (!File.Exists(pathName)) return "";
string str = File.ReadAllText(pathName);
if(str.Trim()!=" ")
{
return str;
}
else
{
return "";
}
}
public void delBook(string name)
{
string pathName = $"{path}/{name}.TXT";
if (!File.Exists(pathName)){ Console.WriteLine("该图书不存在,不能删除");return; }
File.Delete(pathName);
Console.WriteLine("删除成功");
}
}
internal class Program
{
static void Main(string[] args)
{
Book book = new Book("科学类图书");
Console.WriteLine($"********欢迎来到{book.name}平台********");
string msg = "";
while (true)
{
Console.WriteLine("请输入1:【录入图书】 2:【查询图书】 3:【删除图书】4:【查看全部】5:【退出系统】");
string num = Console.ReadLine();
switch (num)
{
case "1":
Console.Write("请输入要录入的图书:");
string name = Console.ReadLine();
Console.Write("请输入价格:");
string price = Console.ReadLine();
Console.Write("请输入作者:");
string author = Console.ReadLine();
book.creatBook(name, price, author, out msg);
Console.WriteLine(msg);
break;
case "2":
Console.Write("请输入查询的图书:");
string findName = Console.ReadLine();
string res = book.findBook(findName);
if(res=="")
{
Console.WriteLine("该图书暂无信息");
}
else
{
Console.WriteLine(res);
}
break;
case "3":
Console.WriteLine("请输入要删除的图书");
string delName = Console.ReadLine();
book.delBook(delName);
break;
case "4":
string[] files = Directory.GetFiles(book.path);
string pattern = @".TXT$";
string patternPath = @"\\(?<name>\W+?)\.TXT";
foreach(string i in files)
{
Match match = Regex.Match(i,patternPath);
string bookName = match.Groups["name"].ToString();
Console.WriteLine(bookName);
}
break;
default:
Console.WriteLine("退出成功");
break;
}
}
}


