C#面向对象实现图书管理系统

本文实例为大家分享了C#面向对象实现图书管理系统的具体代码,供大家参考,具体内容如下

这个系统需要两个类:class Book,class BookManager
首先先进行对Book类成员的声明。

class Book
    {
        //数据
        string id;
        public string Id
        {
            get { return id; }
            set { id = value;}
        }
        //使用了lamda表达式, 跟上面的get/set等价
        public string Name { get => name; set => name = value; }

        string name;
        string author;
        float price;
        int page;
        public int Page { get; set; }
        public void print()
        {
            string str = string.Format("书名是{0},作者是{1},编号是{2},价格{3},页数{4}",
                name,author,id,price,page);
            Console.WriteLine(str);
        }
    }

BookManager类的声明

//数据成员
int size;//容器的大小
        public int curIndex;//当前存储的位置
        Book[] books; //定义一个Book类型的数组
         //函数成员
        public BookManager(int size)
        {
            curIndex = 0;
            this.size = size;
            //申请了一个容器,目前里面还没有值
            books = new Book[size];
        }

实现添加的方法

1、curIndex一开始的位置是[0],将b的内存地址存入数组中的第0位后,curIndex+1,这样的话下一次存储时会将数据存储到第1位。
2、判断数组的游标是否大于容器大小, 大于则要进行数组扩容

public void addBook(Book b)//传入Book的一个引用 b
        {
            books[curIndex] = b;//将b存入数组 
            curIndex++;
            if (curIndex>=size)//判断数组的游标是否大于容器大小, 大于则要进行数组扩容
            {
                size = size + size / 2;//将容器的大小扩容增加原来的一半
                Book[] booksNew = new Book[size];//定义一个新的Book类型数组 booksNew
                Array.Copy(books,booksNew, books.Length);//使用Copy函数将books数组里面的值赋值给booksNew,长度为books的长度 
                books = booksNew;
            }
        }

重写删除的文本,通过ID遍历

public bool delBook(string id)
        {
            int findCurIndex = 0;
            bool isFind = false;
            for (int i = 0; i < curIndex; i++)//通过遍历比较两个id
            {
                if (books[i].Id.Equals(id))
                {
                    findCurIndex = i;
                    isFind = true;
                    break;
                }
            }
            return false;
        }

查找书籍方法

public Book find(string id)
        {
            if (string.IsNullOrEmpty(id))
            {
                return null;//返回空引用
            }
            for (int i = 0; i < curIndex; i++)//通过遍历比较两个id
            {
                if (books[i]!=null&&books[i].Id.Equals(id))
                {
                    return books[i];
                }
            }
            return null;
        }

显示所有书籍方法

public void showAllBook()
        {
            Console.WriteLine("所有的书籍信息如下");
            for (int i = 0; i < curIndex; i++)
            {
                books[i].print();
            }
        }

以上,书和管理器的类就写完了 接下来在主函数中运行测试:

using System;

namespace 图书管理系统
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine("欢迎进入图书管理软件");
            int num = 1;
            BookManager manager = new BookManager(2);//容器(数据库)
            while (true)
            {
                Console.Clear();//清理控制台信息
                Console.WriteLine("1、录入书籍\n2、查找书籍\n3、删除书籍\n4、显示所有书籍\n按对应的数字进入该功能,按Q退出");
                string str = Console.ReadLine();
                num = int.Parse(str);
                switch (num)
                {
                    case 1://录入书籍
                        Console.WriteLine("已经进入录入书籍功能");
                        Console.Write("输入编号:");
                        string id = Console.ReadLine();
                        Console.Write("输入书名:");
                        string name = Console.ReadLine();
                        Console.Write("输入作者名字:");
                        string authName = Console.ReadLine();
                        Console.Write("输入书的价格:");
                        float price = float.Parse(Console.ReadLine());
                        Console.Write("输入书的页数:");
                        int page = int.Parse(Console.ReadLine());
                        Book book = new Book(authName, price);//通过构造函数生成对象,并且赋值
                        //通过属性对对象赋值
                        book.Id = id;
                        book.Name = name;
                        book.Page = page;
                        //把书存储到管理器中
                        manager.addBook(book);
                        break;
                    case 2://查找书籍
                        if (manager.curIndex == 0)
                        {
                            Console.Write("系统里一本书都没有!");
                            break;
                        }
                        id = Console.ReadLine();
                        Book curBook = manager.find(id);
                        if (curBook != null)
                        {
                            Console.WriteLine("找到了书,信息如下:");
                            curBook.print();
                        }
                        else
                        {
                            Console.WriteLine("没有找到书");
                        }
                        break;
                    case 3://删除书籍
                        Console.Write("输入要删除的书籍编号:");
                        id = Console.ReadLine();
                        Book _curBook = manager.find(id);
                        if (_curBook != null)
                        {
                            Console.WriteLine("已删除{0}这本书", _curBook.Name);
                            manager.delBook(_curBook.Id);
                        }
                        else
                        {
                            Console.WriteLine("没有找到书");
                        }
                        break;
                    case 4://显示所有书籍
                        if (manager.curIndex != 0)
                        {
                            manager.showAllBook();
                        }
                        else
                        {
                            Console.WriteLine("系统里一本书都没有!");
                        }
                        break;
                }
                if (str.ToLower().Contains('q'))
                {
                    break;
                }
                Console.ReadKey();
            }

        }
    }
}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

(0)

相关推荐

  • C#图书管理系统 附源码下载

    用来练手还是不错的,分享大家看一下,还是一些新颖点的   !哈哈 就是自定义DataGridView,方便每个功能部分调用!简单!再次重申!!!后面源码会送上! 首先看一下登录,上图吧! 只有超级管理员跟管理员 接下来看一下主界面 更改DataGridView数据列 datagridView自定义类 using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.

  • C#面向对象实现图书管理系统

    本文实例为大家分享了C#面向对象实现图书管理系统的具体代码,供大家参考,具体内容如下 这个系统需要两个类:class Book,class BookManager首先先进行对Book类成员的声明. class Book     {         //数据         string id;         public string Id         {             get { return id; }             set { id = value;}      

  • python面向对象法实现图书管理系统

    本文实例为大家分享了python实现图书管理系统的具体代码,供大家参考,具体内容如下 需求: 图书管理系统 1.查询图书 2.增加图书 3.借阅图书 4.归还图书 5.退出系统 书:书名,作者,状态,位置 管理系统: 实现如下: class Book(object): def __init__(self, name, author, status, bookindex): self.name = name self.author = author self.status = status sel

  • C++实现图书管理系统课程设计(面向对象)

    本文实例为大家分享了C++实现图书管理系统课程设计,供大家参考,具体内容如下 1.题目: [1]:工作人员登录后,可以进行的操作 添加学生的信息(学号,姓名,院系,最大借阅的图书数量等):修改学生的信息(学号,姓名,院系,最大借阅的图书数量等):删除学生的信息(学号,姓名,院系,最大借阅的图书数量等):如果某个学生退学,就要清除他的信息:查看学生的信息:添加图书的信息(图书号,书名,作者,出版社,数量等):修改图书的信息(图书号,书名,作者,出版社,数量等):删除图书的信息(图书号,书名,作者,

  • python实现简单图书管理系统

    用python实现一个简单的图书管理系统 ,供大家参考,具体内容如下 1.工具:PyCharm3.6 社区版 我创建了一个工程叫fairy,把解释器换成Pytnon3.6 创建一个pytnon file:图书管理系统.py 2.实现简单界面如下: """ 图书管理系统 1.查询图书 2.增加图书 3.借阅图书 4.归还图书 5.退出系统 """ 3.代码实现 # 书的属性:书名,作者,状态,位置 # 管理系统: class Book(object

  • Java实战之基于I/O流设计的图书管理系统

    一.前言 当前,我还没有学到数据库相关的知识,想要完全通过Java来完成一个可以存储数据的图书馆管理系统就只能使用I/O流的知识,将内容都保存到文件中,再进行增删改查的操作,这就很考验我们的Java基础知识掌握能力. 二.项目介绍 Java基本语法的掌握 流程控制语句的熟练使用 面向对象思想的理解 能否熟练使用封装.继承.多态 接口.异常的熟悉 集合的使用 是否熟悉掌握I/O流相关操作 三.项目说明 传统的人工管理图书馆流程繁琐,我们需求设计一个图书馆管理系统来方便学生借书以及管理员管理书籍 系

  • 使用java springboot设计实现的图书管理系统(建议收藏)

    目录 前言 背景意义 数据库设计 功能截图 代码实现 前言 随着网络技术的发展.计算机应用水平广泛提高,原来系统的时效性.数据的正确性.操作的方便性上都存在不足,已影响到系统的正常使用.经过考察比较,决定自己对图书管理系统重新设计,使系统能利用软件开发技术的成果,方便图书的管理.图书管理系统是典型的信息管理系统.系统介绍了图书系统的开发过程,设计中遇到的问题及解决方法以及提高当前应用程序或系统开发进度和改善工作性能.利用其提供的各种面向对象的开发工具首先在短时间内建立系统应用原型然后对初始原型系

  • java实现简单的图书管理系统

    本文实例为大家分享了java实现简单的图书管理系统的具体代码,供大家参考,具体内容如下 一.项目分布 Book类: 定义了书的一些属性(书名,作者,价格,分类,状态)并且写了属性的get.set方法 Library类: 写了登录函数(1.普通用户,2.管理员,3.退出系统), Person类:定义的人的属性(姓名,性别,年龄)并且写了属性的get.set方法,定义了一些书. operate接口:操作的接口,操作方法:查询/查阅,删除/借阅,增加/还书,显示书籍列表 Root类:继承了Person

  • JAVA实现图书管理系统项目

    目录 前言 项目需求 设计前提 设计目标 设计结构图 功能解读 项目实现 基本对象的设置 通过IO流的写入写出 总结 前言 相信再每一个学生在学习编程的时候,应该都会写的一个小项目--图书管理系统.为什么这么说呢?因为我认为一个学校的氛围很大一部分可以从图书馆的氛围看出来,而图书管理系统这个不大不小的项目,学生接触的多,也算是比较熟悉,就不会有陌生感,能够练手,有有些难度,所以,今天,我的小小项目也来了. 项目需求 设计前提 掌握java基本语法 熟悉使用流程控制 理解面向对象思想 熟练封装,继

  • Java图书管理系统课程设计

    本文实例为大家分享了Java图书管理系统的具体代码,供大家参考,具体内容如下 大二上学期做的一个Java课程设计,总分为四个Java文件,AllBook,AllBorrow,AllStudent,Tushu. 本系统是一个面向图书馆的管理系统,具有一定的实用性.它主要完成了图书的基本操作功能,全校学生信息的相关基本操作,以及对图书的借阅归还管理.本系统采用当前流行的面向对象的JAVA语言开发工具eclipse来完成整个系统的设计.系统在设计过程中不可避免地遇到了各种各样的问题,由于整个系统完全都

  • C++图书管理系统程序源代码

    本文实例为大家分享了C++图书管理系统程序的具体代码,供大家参考,具体内容如下 大一期末c++综合实验,功能基本都实现了,但是代码写的有些繁琐,还有很大的优化空间,仅供参考. 实验要求 实验目的: 1.能够综合运用面向对象程序设计方法,设计实现一个相对完整信息管理应用程序.2.能够适当进行题目分析.实验设计.核心代码描述.实验结果分析等. 实验:设计并编写一个C++风格应用程序,模拟一个图书管理系统应用程序,支持系统用户的图书借阅.图书管理.用户管理等功能.图书借阅管理主要包括图书借阅.图书归还

随机推荐