C#实现DVD借出归还管理系统

用C#写的一个DVD管理器,供大家参考,具体内容如下

(大神勿喷,初学者以借鉴为主)

一共分为三个类分别是:DVD(启动类),XinXi(信息类),GongNeng(功能类)

代码部分(如下):

DVD(启动类):

class DVD
    {
        static void Main(string[] args)
        {
            GongNeng gongNeng = new GongNeng();
            gongNeng.initial();  //初始化
            gongNeng.XianShi();  //遍历初始化信息
            gongNeng.CaiDan();  //选项菜单
        }
    }

XinXi(信息类):

class XinXi
    {
        private string _name;//名称
        private int state;//借出状态
        private string date;//时间

        //属性封装
        public string Name { get => _name; set => _name = value; }//名称
        public int State { get => state; set => state = value; }//借出状态
        public string Date { get => date; set => date = value; }//时间
    }

GongNeng(功能类):

因为功能类使用了正则表达式来判断日期格式,所以在使用的时候头部还需加上:

using System.Text.RegularExpressions;     // RegularExpressions为正则表达式,Text为文本

class GongNeng
    {
        XinXi[] xinxi = new XinXi[10];//对象数组存储数据
        //初始化信息
        #region  初始化信息
        public void initial() {
            xinxi[0] = new XinXi();
            xinxi[0].Name = "罗马假日";
            xinxi[0].State = 0;
            xinxi[0].Date = "2010-7-1";

            xinxi[1] = new XinXi();
            xinxi[1].Name = "风声鹤唳";
            xinxi[1].State = 1;
            xinxi[1].Date = "";

            xinxi[2] = new XinXi();
            xinxi[2].Name = "浪漫满屋";
            xinxi[2].State = 1;
            xinxi[2].Date = "";
        }
        #endregion

        //显示初始化信息
        #region  显示初始化信息
        public void XianShi() {
            Console.WriteLine("********初始化信息如下:********");
            foreach (XinXi item in xinxi) {
                if (item != null) {
                    Console.WriteLine(item.Name+"\t"+item.State+"\t"+item.Date);
                }
            }
            Console.WriteLine("********************************");
        }
        #endregion

        //DVD菜单
        #region  DVD菜单
        public void CaiDan()
        {
                Console.WriteLine("------------欢迎使用明宇迷你DVD管理器------------");
                Console.WriteLine("1.新增DVD\n2.查看DVD\n3.删除DVD\n4.借出DVD\n5.归还DVD\n6.退出");
                Console.WriteLine("-------------------------------------------------");
                Console.Write("请输入您的选择:");
                int xuanZe = int.Parse(Console.ReadLine());
                switch (xuanZe)
                {
                    case 1:
                    //新增DVD
                        XinZeng();
                        break;
                    case 2:
                    //查看DVD
                        ChaXun();
                        break;
                    case 3:
                    //删除DVD
                        ShanChu();
                        break;
                    case 4:
                    //借出DVD
                        JieChu();
                        break;
                    case 5:
                    //归还DVD
                        GuiHuan();
                        break;
                    case 6:
                        //退出
                        Console.WriteLine("欢迎下次光临!");
                        break;
                    default:
                        //无选项
                        Console.WriteLine("对不起,没有该选项!");
                        break;
                }
        }
        #endregion

        //输入0,返回
        #region  输入0,返回
        public void FanHui() {
            do {
                Console.WriteLine("输入0,返回:");
                string Ling = Console.ReadLine();
                if (Ling.Equals("0")) {
                    CaiDan();
                }
            } while (true);
        }
        #endregion

        //新增DVD
        #region  新增DVD
        public void XinZeng() {
            bool flag = true;
            Console.WriteLine("此处实现新增DVD----->");
            Console.WriteLine("请输入DVD名称:");
            string dvdName = Console.ReadLine();
            for (int i=0; i< xinxi.Length; i++) {
                if (xinxi[i] == null) {
                    flag = false;
                    xinxi[i] = new XinXi();
                    xinxi[i].Name = dvdName;
                    xinxi[i].State = 1;
                    xinxi[i].Date = "";
                    Console.WriteLine("名称为{0}的DVD添加成功!", xinxi[i].Name);
                    break;
                }
            }
            if (flag) {
                Console.WriteLine("对不起,存储空间已满");
            }
            FanHui();//返回
        }
        #endregion

        //查询DVD
        #region  查询DVD
        public void ChaXun() {
            Console.WriteLine("此处实现查询DVD----->");
            Console.WriteLine("{0,-8}{1,-10}{2,-8}", "名称","状态","时间");
            string zhuangTai = String.Empty;
            foreach (XinXi item in xinxi)
            {
                if (item != null)
                {
                    if (item.State == 0) {
                        zhuangTai = "以借出";
                    } else if (item.State == 1) {
                        zhuangTai = "未借出";
                    }
                    Console.WriteLine("{0,-8}{1,-10}{2,-8}",item.Name, zhuangTai, item.Date);
                }
            }
            FanHui();//返回
        }
        #endregion

        //判断对应下标
        #region  判断对应下标
        public XinXi Duan(string dvdName) {
            foreach (XinXi item in xinxi) {
                if (item != null && item.Name.Equals(dvdName)) {
                    return item;
                }
            }
            return null;
        }
        #endregion

        //删除DVD
        #region  删除DVD
        public void ShanChu() {
            Console.WriteLine("此处实现删除DVD----->");
            Console.WriteLine("请输入DVD名称:");
            string dvdName = Console.ReadLine();
            XinXi renWu = Duan(dvdName);
            if (renWu == null) {
                Console.WriteLine("对不起,没有该DVD");
                return;
            }
            for (int i=0; i< xinxi.Length; i++) {
                if (renWu == xinxi[i] && xinxi[i].State == 1) {
                    for (int j = i; j < xinxi.Length-1; j++) {
                        xinxi[j] = xinxi[j + 1];
                    }
                    int nu = xinxi.Length - 1;
                    xinxi[nu] = null;
                    Console.WriteLine("订单删除成功!");
                    break;
                } else if (renWu == xinxi[i] && xinxi[i].State == 0) {
                    Console.WriteLine("对不起,订单为以借出状态不能删除!");
                    break;
                }
            }
            FanHui();//返回
        }
        #endregion

        //借出DVD
        #region  借出DVD
        public void JieChu() {
            Console.WriteLine("此处实现借出DVD----->");
            Console.WriteLine("请输入DVD名称:");
            string dvdName = Console.ReadLine();
            XinXi renWu = Duan(dvdName);
            if (renWu == null)
            {
                Console.WriteLine("对不起,没有该DVD");
                FanHui();//返回
            }
            if (renWu.State == 0) {
                Console.WriteLine("对不起,该DVD以被人抢先借走了!");
                FanHui();//返回
            }
            Console.WriteLine("请输入借出日期(年-月-日):");
            string riQi = Console.ReadLine();
            bool flag = Money(riQi);
            if (!flag)
            {
                Console.WriteLine("对不起,您输入的日期不正确!");
                FanHui();//返回
            }
            else {
                renWu.State = 0;
                renWu.Date = riQi;
                Console.WriteLine("借出DVD成功!");
            }
            FanHui();//返回
        }
        #endregion

        //判断借出日期格式
        #region  判断借出日期格式
        public bool Money(string riQi)
        {
            string monval = @"^\d{4}-\d{1,2}-\d{1,2}$";
            return Regex.IsMatch(riQi, monval);
        }
        #endregion

        //归还DVD
        #region  归还DVD
        public void GuiHuan() {
            Console.WriteLine("此处实现归还DVD----->");
            Console.WriteLine("请输入DVD名称:");
            string dvdName = Console.ReadLine();
            XinXi renWu = Duan(dvdName);
            if (renWu == null)
            {
                Console.WriteLine("对不起,没有该DVD");
                FanHui();//返回
            }
            if (renWu.State == 1)
            {
                Console.WriteLine("对不起,该DVD还没有借出不可归还!");
                FanHui();//返回
            }
            Console.WriteLine("请输入归还日期(年-月-日):");
            string riQi = Console.ReadLine();
            bool flag = Money(riQi);
            if (!flag)
            {
                Console.WriteLine("对不起,您输入的日期不正确!");
                FanHui();//返回
            }
            else
            {
                string jieChu = renWu.Date;
                if (String.Compare(jieChu, riQi) < 0)
                {
                    //字符串转换为日期格式
                    DateTime dat1 = Convert.ToDateTime(jieChu);//借出
                    DateTime dat2 = Convert.ToDateTime(riQi);//日期
                    TimeSpan span = dat2.Subtract(dat1);

                    //求借出与归还之间的差值
                    int cha = span.Days + 1;

                    renWu.State = 1;
                    renWu.Date = "";
                    Console.WriteLine("\n归还《{0}》成功!", renWu.Name);
                    Console.WriteLine("借出日期为:{0}", dat1);
                    Console.WriteLine("归还日期为:{0}", dat2);
                    Console.WriteLine("应付租金为:{0}",cha);
                }
                else {
                    Console.WriteLine("对不起,归还日期不能小于借出日期!");
                    FanHui();//返回
                }
            }
            FanHui();//返回
        }
        #endregion
    }

代码展示完毕!

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

(0)

相关推荐

  • C#实现简单成绩管理系统的完整步骤

    前言 这周跟C#打了一周的交道(本周是学校安排的实验周,然后用到了C#实现想要的程序和功能) 一共七个实验,选择三个,我就选择我进步最大的一个来分析一下吧. 效果 先来看一下效果吧 从txt文本中读取数据后展示出来 点击目标后选中,然后点击"修改",弹出修改界面,然后进行编辑即可 点击"统计"按钮,弹出窗口显示各分数段的信息 点击"查询"后,弹出界面,输入后,点击"确定"即可显示信息 实现 一.准备工作 在写方法之前,首先就是

  • C#实现餐厅管理系统

    本文实例为大家分享了C#实现餐厅管理系统的具体代码,供大家参考,具体内容如下 部分代码: fm_change_password.cs using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms;

  • C#实现餐饮管理系统完整版

    完整版的C#餐饮管理系统,供大家一起共同分享学习. 部分代码: Dataoperator.cs using System; using System.Data; using System.Configuration; using System.Linq; using System.Web; using System.Web.Security; using System.Web.UI; using System.Web.UI.HtmlControls; using System.Web.UI.We

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

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

  • C#实现销售管理系统

    C#制作简易的的销售管理系统,供大家参考,具体内容如下 1.整体需求 1).具有简易的登录界面 2).能对商品信息进行快速查看.查询.添加.编辑.保存等功能. 2.设计的窗体界面 1).登录界面 2).商品信息的操作界面 3.所需的知识 1).C#基础语法  2).ADO.NET数据库 不太清楚的可以去看我主页的文章,都是关于C#基础的知识. 4.具体步骤及代码 1).创建项目 首先打开vs2017,选择"创建项目" ,选择"Windows窗体应用".详细的操作 可

  • C#实现餐饮管理系统

    本文实例为大家分享了C#实现餐饮管理系统的具体代码,供大家参考,具体内容如下 此系统采用C#语言的Winfrom和ADO.NET技术搭建的简单的CS系统. 部分代码: frmBook.cs using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text;

  • C#实现简单学生信息管理系统

    本文实例为大家分享了C#实现简单学生信息管理系统的具体代码,供大家参考,具体内容如下 一.运行环境windows,使用vs编译软件 二.主要功能 登录.添加学生信息.修改学生信息.删除学生信息.查询学生信息 三.实现步骤 1.登陆界面功能实现 老规矩,先贴下主要代码: //构造方法 public Login() { InitializeComponent(); this.label3.Parent = this; this.label1.BackColor = Color.Transparent

  • C#实现学员信息管理系统

    新手写一段学员信息管理系统,有代码冗余的情况请谅解,代码如下,请大神指点 //登陆入口页面 using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Data.SqlClient; using System.Drawing; using System.Linq; using System.Text; using System.Thread

  • C#实现DVD借出归还管理系统

    用C#写的一个DVD管理器,供大家参考,具体内容如下 (大神勿喷,初学者以借鉴为主) 一共分为三个类分别是:DVD(启动类),XinXi(信息类),GongNeng(功能类) 代码部分(如下): DVD(启动类): class DVD { static void Main(string[] args) { GongNeng gongNeng = new GongNeng(); gongNeng.initial(); //初始化 gongNeng.XianShi(); //遍历初始化信息 gong

  • C++实现图书馆管理系统

    本文实例为大家分享了C++实现图书馆管理系统的具体代码,供大家参考,具体内容如下 一.实验名称 图书馆管理系统 二.实验目的 利用C++语言设计开发一个小型的图书馆管理系统模拟程序,具有如下功能:退出系统.增加图书.删除图书.借阅图书.归还图书.显示图书信息.查询图书等功能.实验中应掌握继承结构,并掌握对象.类.链表的使用和成员函数.构造函数的定义及调用,并掌握使用实验设备的技能技巧和程序的调试方法. 三.实验平台 运行环境:VC++6.0 四.问题分析 图书馆管理系统模拟程序可划分为7个模块:

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

    今天再为大家介绍另一个常用的管理系统--图书管理系统,希望大家可以亲自动手实践一下,下面就与大家一起分享我的劳动成果. 图书信息包括:登录号.书名.作者名.分类号.出版单位.出版时间.价格等.试设计一图书信息管理系统,使之能提供以下功能: (1)图书信息录入功能(图书信息用文件保存) (2)图书信息浏览功能 (3)查询和排序功能:(至少一种查询方式)         .按书名查询         .按作者名查询 (4)图书信息的删除与修改 分享代码如下 #include<iostream.h>

  • C语言链表实现图书管理系统

    之前参照网上的资料用链表实现了图书管理系统,包括简单的增删改查功能以及借书还书功能,我是VC6.0下写的一个控制台程序,格式参照的网上的.在动手编码之前,你需要理清自己的思路.首先,需要确定图书馆里系统中主要有那几个对象,这里我写了学生对象和图书对象.不妨在纸上写出或画出它们主要包括哪些属性以及其可能的对应关系,这里根据不同人的要求会有所不同.清楚这些之后,就可以设计学生和图书的数据结构,比如这里我用的结构体存储其信息.然后就需要考虑,我想要哪些功能,除了基本的增删改查之外,我还想要哪些功能?比

  • python图书管理系统

    本文实例为大家分享了python图书管理系统的具体代码,供大家参考,具体内容如下 实现语言:python 图形框架:DTK+2.0 数据库框架:SQLite 3.0 本程序需要以下部件运行: Python2.5.0.GTK+2.16.Pygtk 2.16.PyGobject 2.14.Pycairo 1.4 LibiaryManager.py #!/usr/bin/python # -*- coding: utf-8 -*- import pygtk pygtk.require('2.0') i

  • 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

  • Java实现租车管理系统

    需求: 完成一个和用户互动的租车管理系统,当中包括基础的增删改查,以及输出实时地热度排行榜! 功能设计: 在工程的包com.Test02中,搭建4个类,分别是程序启动(carSysStart).控制台(carConsole).数据存储内存库(carData_base).系统的功能类(carFunction) 具体代码如下: 1.程序启动 package com.Test02; public class carSysStart { public static void main(String[]

  • java控制台输出图书馆管理系统

    java控制台输出图书馆管理系统(只用java代码不用数据库和GUI,java入门的新手秒懂) 在个项目中,我只用数组保存数据,和只用for循环和if条件语句来完成,连数组工具类都没用,所以导致要用到很多的条件语句,虽然比较局限,但可以让新手快速体验一下做小项目的乐趣,也可以练练for和if这些语句,练练一下它们之间嵌套的逻辑关系等,因为时间有限所以没有去优化了,主要还是让新手们体验下做java项目的面向对象编程思想(OOP),给新手们体验一下做项目的乐趣,嘿嘿! 话不多说了,直接切入正题. 设

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

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

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

    今天博主再给大家分享一个小项目:MiNi图书管理系统.用的是Java语言开发的,代码不多,大概260行左右吧,系统是实现图书的新增图书.删除图书.借阅图书.归还图书.查看图书等简单的功能(后附源代码)! 首先展示一下运行界面效果图:运行代码后,会在控制台显示如下界面: 然后让用户选择,如果用户不小心或者误输入了错误的数,会再次让用户进行输入. 当用户输入2后,可以查看图书,会显示已有的图书:包括图书书名.借阅状态.借阅次数.借阅日期等信息. 当用户输入1后,可以新增图书,再次让用户输入新增的图书

随机推荐