VR引擎程序设计基础1021pm

90 阅读2分钟

回顾课后作业

例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();
            //更新subjects获取文件列表


            
            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();
        }

        
    }
}

image.png

image.png

创建一个图书类 不同的图书系统 科技类 ,儿童类,艺术类...

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);
            }
        }
        //录入图书  name书名 ,作者,价格,out参数  错误信息
        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;
                }

            }
        }


image.png

image.png

image.png