C# 简单管理系统模板 控制台应用程序

前言 【文末代码链接】有不足的地方请多多包涵

C# 实现控制台应用程序【管理系统】模板

  • 2020下学期C#大作业总结(2021大家多多加油)
  • 实现的数据存储分类:1.数组实现【对象数组】、 2.ArrayList实现数据的存储【ArrayList存储对象 】
  • 无论是ArrayList 还是 List 都是可以根据使用方法可以相互替换的
  • 不建议直接用、虽然功能不少,但是有很多可以完善的。毕竟本人水平有限

需求:

1.数据的存储为:(1)对象数组、(2)ArrayList对象数组

  • 如:图书管理系统
  • 可以实现对图书数据的录入
  • 对图书的查找【根据需求查找,比如按名称、按图书编号查找】
  • 对图书的删除【同样根据需求、书名、图书编号等进行删除】
  • 修改图书数据【根据需求、如按是否以借阅等方式进行查找再删除:这里的查找方式如果跟查找方式相同的话可以进行复用】
  • 对数据的保存【存储到文件夹中】
  • 退出系统

思路:

根据需求与个人的想法不同,都可以实现都可以不同的代码,比如添加用户管理页面、比如可以关联学生系统等

  • 创建一个书对象
  • 创建一个管理图书对象:实现对图书数据的管理,比如添加数据、删除数据、查找数据、等等用途的数据
  • main函数实现循环对用户的交互操作、调用管理图书类:这些操作也可以实现在对象当中
  • 我实现的是在main函数当中再去调用想用的函数处理对象【比较繁琐,可以根据自己的思路进行改变】

程序截图:

  • 使用界面
  • 添加图书页面
    在这里插入图片描述
  • 查找图书页面
    在这里插入图片描述
  • 保存图书新页面
    在这里插入图片描述
  • 退出图书页面
    在这里插入图片描述

代码:

数组存储对象

  • 创建图书类
	///<summary>
	///创建图书类
	///<summary>
    public class book
    {
        private String nNameBook;//书名

        ///<summary>
		///NameBook的 get 与 set 方法
		///<summary>
        public String NameBook
        {
            get
            {
                //返回图书书名
                return this.nNameBook;
            }
            set
            {
                //赋值图书书名
                if(value != null)
                {
                    this.nNameBook = value;
                }
            }
        }
  • 创建图书管理类
public class library
    {
        private book[] liBook = new book[100];
        
        ///<summary>
		///构造方法
		///<summary>
        public library()
        {
            //初始化数组对象
            for (int i = 0; i < 100; i++)
            {
                this.liBook[i] = new book();
            }
            this.liBook[i].NameBook = "C#";
        }
	///<summary>
	///打印图书信息
	///<summary>
    public void PrintBook()
    {
     	Console.WriteLine(this.liBook[i].NameBook);
    }
 }

ArrayList[存储对象]实现学生管理系统

  • 学生类
///<summary>
	///创建学生管理类
	///<summary>
    public class Student
    {
        private String nameid;  //学号

        ///<summary>
		///NameId 的 set 方法
		///赋值学生学号
		///<summary>
		///<param name="_NameId">学生id</param>
		///<returns>bool类型,判断是否添加信息成功<returns>
        public bool SetNameId(String _NameId)
        {
			//学号长度为12为正确的学号
            if (_NameId.Length == 12)
            {
                this.nameid = _NameId;
                return true;
            }
            else
            {
                Console.WriteLine("  请输入长度正确的学号");
                return false;
            }
        }

        ///<summary>
		///NameId 的 Get 方法
		///<summary>
		///<returns>返回学生学号<returns>
        public String GetNameId()
        {
            return this.nameid;
        }
        
    }
  • 班级类
///<summary>
	///创建学生管理类
	///<summary>
    public class Cla
    {
        private ArrayList claStu = new ArrayList();///ArrayList学生对象
        private int index;///记录学生查找下标

		///<summary>
		///构造方法
		///<summary>
        public Cla()
        {
               Student s = new Student();//student 对象
               s.SetNameId("123456789012");
              this.claStu.Add(s);//将元素方到ArrayList数组中
        }
        
		///<summary>
		///打印学生信息
		///<summary>
        public void ValueClaS()
        {
            int x = this.claStu.Count;//直接取最末元素

            if (x==0)
            {
                Console.WriteLine("无学生信息");
            }
            
            //循环取出内容
            for (int i = 0; i < x; i++)
            {
                Student s = this.claStu[i] as Student;

                Console.WriteLine(s.GetNameId());
                
            }
        }

源码

  • 图书管理系统使用ArrayList比较合适,而学生管理系统使用数组比较合适
    学生的人数是固定的【使用数组比较合适】,而图书的个数是不固定了【使用arrayList比较合适】
  • 数组功能上的实现跟数据结构顺序表差不多
  • ArrayLisr数组实现【1】无退出保存请求
    链接:https://pan.baidu.com/s/1tRV3je50WB_VVAUHCsa6kg
    提取码:syky
    复制这段内容后打开百度网盘手机App,操作更方便哦
  • 最后带有请求保存
    链接:https://pan.baidu.com/s/1OQxhbsGZR5NR4diqFZMnOA
    提取码:iroy
    复制这段内容后打开百度网盘手机App,操作更方便哦
  • CSDN下载链接【学生管理系统打包】https://download.csdn.net/download/qq_40127080/14017988
  • CSDN下载链接【图书管理系统打包 数组对象实现】
    https://download.csdn.net/download/qq_40127080/14020875

总结

  • 对文件读取的时候 注意判断是否打开成功,否则会出现记事本文件一直打开
  • 此方案的可扩展性很大 可以在添加对学生成绩的统计、对学生成绩的排名等等的数据加工
  • 代码可以加深优化,简洁各种代码
  • 可以更换成各种管理系统:如健身管理系统、图书管理系统等等
  • 主要是了解各种基础知识的实现与操作
  • 希望大家不要一味的直接用源码、而是读懂源码

下节分享一下C#桌面应用程序,实现图书管理系统【分层为三层架构】、简单版的无三层架构的。使用数据库为SQL Server

第2章 QQ企业通    2.1 设计思路 28   2.2 关键技术 28   2.2.1 INI文件的应用 28   2.2.2 线程的应用 30   2.2.3 在Socket中发送大容量的消息 30   2.2.4 将流序列化或反序列化为对象 31   2.2.5 用InnerList列表记录信息 31   2.3 设计过程 32   2.3.1 类库的设计 33   2.3.2 客户端注册模块设计 40   2.3.3 客户端登录模块设计 42   2.3.4 客户端QQ模块设计 43   2.3.5 客户端消息发送模块设计 48   2.3.6 服务器端控制台模块设计 52 第3章 SQL数据表提取器模块    3.1 概述 56   3.2 关键技术 56   3.2.1 如何备份数据库 56   3.2.2 如何还原数据库 57   3.2.3 如何附加数据库 58   3.2.4 如何分离数据库 59   3.2.5 设置数据库模式 59   3.3 设计过程 61   3.3.1 主窗体 61   3.3.2 获取服务器名称 62   3.3.3 获取所有数据库 63   3.3.4 获取所有数据表 64   3.3.5 备份数据库 66   3.3.6 还原数据库 67   3.3.7 附加数据库 68   3.3.8 分离数据库 70   3.3.9 导出表结构 71   3.3.10 导出数据 74 第4章 万能搜索模块    4.1 设计思路 80   4.2 关键技术 80   4.2.1 如何制作一个接口程序 80   4.2.2 实现接口程序的信息互传 80   4.2.3 如何将接口程序加载到其他程序中 82   4.2.4 怎样操作RichtextBox控件的选择文本 82   4.2.5 如何获取数据表中字段的描述信息 83   4.3 设计过程 83   4.3.1 获取数据表中字段的中文信息 84   4.3.2 添加数据表的查询条件 86   4.3.3 向SQL语句中添加括号 89   4.3.4 查询生成后的SQL语句 90   4.3.5 主程序获得接口信息 92 第5章 万能打印模块    5.1 设计思路 94   5.2 关键技术 94   5.2.1 打印设置(PrintDocument类) 94   5.2.2 打印预览对话框(PrintPreview Dialog) 95   5.2.3 打印对话框(PrintDialog) 96   5.2.4 获取指定颜色值和字体样式 97   5.2.5 DataGridView控件的相关应用 97   5.3 设计过程 98   5.3.1 打印信息的设置 98   5.3.2 表格样式的设置 100   5.3.3 打印类的设置 101   5.3.4 打印数据信息 108 第6章 决策分析模块    6.1 设计思路 112   6.2 关键技术 112   6.2.1 游标的基本操作 112   6.2.2 存储过程的基本操作 115   6.2.3 透视表的基本概念 117   6.2.4 统计表的基本操作 117   6.2.5 单击显示右键菜单 118   6.3 设计过程 118   6.3.1 主窗体的初始化 119   6.3.2 透视表的筛选 127   6.3.3 透视表的设计 130   6.3.4 统计表的设计 132 第7章 自定义图表控件    7.1 设计思路 136   7.2 关键技术 137   7.2.1 控件的生成 137   7.2.2 如何在项目中添加控件 137   7.2.3 在“属性”对话框中添加属性 137   7.2.4 用GDI+绘制图形 139   7.2.5 如何在控件上绘制图形 143   7.2.6 获取扇形外弧中心点的位置 143   7.3 设计过程 144   7.3.1 向自定义控件中添加属性 144   7.3.2 获取绘制图表的初始值数据 149   7.3.3 绘制标签框 153   7.3.4 绘制图表中的表格 157   7.3.5 绘制条形图 163   7.3.6 绘制面形图 170   7.3.7 绘制饼形图 174 第8章 电子邮件收发模块    8.1 概述 180   8.2 关键技术 180   8.2.1 Base64编码格式 180   8.2.2 SMTP服务 181   8.2.3 POP3协议 184   8.2.4 使用Jmail组件接收邮件 186   8.2.5 邮件发送类的使用 188   8.2.6 使用正则表达式验证邮件格式 190   8.3 设计过程 191   8.3.1 数据库设计 191   8.3.2 系统登录 191   8.3.3 邮件发送实现 192   8.3.4 为邮件上传多个附件 193   8.3.5 邮件接收实现 194   8.3.6 查看邮件详细信息 196   8.3.7 下载附件的实现 197   8.3.8 删除邮件实现 198   8.3.9 用户管理 198 第9章 短信群发模块    9.1 设计思路 202   9.2 关键技术 202   9.2.1 短信猫中API函数的使用 202   9.2.2 短信猫中的短信接收格式 205   9.2.3 窗体间的互操作 205   9.2.4 锁定模块主窗体 206   9.2.5 使用ADO.NET连接Access数据库 206   9.3 设计过程 207   9.3.1 数据库设计 207   9.3.2 群发短信实现 209   9.3.3 已发送短信管理 213   9.3.4 接收短信实现 215   9.3.5 常用联系人管理 219   9.3.6 常用短语管理 221 第10章 桌面精灵模块    10.1 概述 226   10.2 关键技术 226   10.2.1 阴阳历转换算法 226   10.2.2 调用系统API实现鼠标穿透效果 230   10.2.3 修改注册表控制程序开机自启动 231   10.2.4 通过控制窗体透明度实现日历透明显示效果 231   10.2.5 拖动无标题栏窗体 232   10.2.6 将窗体的关闭位置写入到注册表中 232   10.2.7 将程序图标写入到托盘 232   10.3 设计过程 233   10.3.1 桌面精灵模块公共类设计 233   10.3.2 当前日期的农历、天干地支年、节日及星座显示 235   10.3.3 定时提醒的实现 240   10.3.4 日历窗体效果控制 242   10.3.5 转到某天、某周、某月及某年的实现 243   10.3.6 节日管理 245   10.3.7 提醒管理 249 第11章 文件批量处理器    11.1 概述 256   11.2 关键技术 256   11.2.1 文件流技术 256   11.2.2 文件解压缩技术 258   11.2.3 获取系统文件及文件夹图标 262   11.2.4 获取指定目录下的所有文件及文件夹 265   11.2.5 Word操作技术 266   11.2.6 进度条的显示 266   11.2.7 对ListView控件中的项进行排序 267   11.3 设计过程 267   11.3.1 主窗体预览 267   11.3.2 批量复制、剪切文件 268   11.3.3 批量复制、剪切文件夹 270   11.3.4 批量重命名文件 271   11.3.5 批量删除文件及文件夹 275   11.3.6 搜索文件及文件夹 276   11.3.7 批量压缩、解压文件 278   11.3.8 分割、合并文件 280 第12章 图片管理工具模块    12.1 概述 286   12.2 关键技术 286   12.2.1 上下移动ListBox选中项 286   12.2.2 将文件复制到剪切板 287   12.2.3 格式转换 288   12.2.4 图片幻灯片 288   12.2.5 图片旋转 289   12.3 设计过程 290   12.3.1 主窗体 290   12.3.2 打开图片目录 291   12.3.3 图片格式转换 292   12.3.4 设为桌面背景 294   12.3.5 图片特效 296   12.3.6 图片调节 300   12.3.7 图片水印 304   12.3.8 幻灯片放映 306   12.3.9 图片打印 308 、
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值