Book.cs文件

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Collections; namespace Booklist
{
public class Book
{
/// <summary>
/// 作者
/// </summary>
public string Author
{
get;
set;
} /// <summary>
/// ISBN
/// </summary>
public string Isbn
{
get;
set;
} /// <summary>
/// 书名
/// </summary>
public string Name
{
get;
set;
} /// <summary>
/// 价格
/// </summary>
public double Price
{
get;
set;
} /// <summary>
/// 重载构造函数
/// </summary>
public Book()
{ } /// <summary>
/// 带参数的构造函数
/// </summary>
/// <param name="n">名称</param>
/// <param name="s">ISDN</param>
/// <param name="p">价格</param>
/// <param name="a">作者</param>
public Book(string n, string s, double p, string a)
{
Name = n;
Isbn = s;
Price = p;
Author = a;
}
} public class Store
{
private ArrayList booklist; /// <summary>
/// 图书列表
/// </summary>
public Store()
{
booklist = new ArrayList();
} /// <summary>
/// 获取图书列表
/// </summary>
public ArrayList Booklist
{
get
{
return booklist;
}
set
{
booklist = value;
}
} /// <summary>
/// 从仓库中获取指定书名的书籍
/// </summary>
/// <param name="name">名称</param>
/// <returns>书的信息</returns>
public Book GetBook(string name)
{
Book book = new Book();
foreach(Book b in booklist)
{
if (b.Name == name)
{
book = b;
}
} return book;
} /// <summary>
/// 判断指定书名的书籍是否存在
/// </summary>
/// <param name="n">书名</param>
/// <returns>存在返回true</returns>
public bool Exists(string n)
{
bool s = false;
foreach (Book b in booklist)
{
if (b.Name == n)
{
s = true;
}
}
return s;
} /// <summary>
/// 从列表中增加一个图书
/// </summary>
/// <param name="b">书的对象</param>
/// <returns>列表</returns>
public ArrayList AddBook(Book b)
{
booklist.Add(b);
return booklist;
} /// <summary>
/// 移除指定名称的图书
/// </summary>
/// <param name="b">要移除的图书名称</param>
/// <returns>处理的结果</returns>
public ArrayList Remove(Book b)
{
if (booklist.Contains(b))
booklist.Remove(b);
return booklist;
} /// <summary>
/// 移除指定书名的图书
/// </summary>
/// <param name="n">书名</param>
/// <returns>处理后的结果</returns>
public ArrayList Remove(string n)
{
ArrayList temp = (ArrayList)booklist.Clone(); foreach (Book b in temp)
{
if (b.Name == n)
{
booklist.Remove(b);
}
}
return booklist;
} }
}

form1.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; namespace Booklist
{
public partial class Form1 : Form
{
Store st; //声明一个仓库的全局变量,作为数据存储的变量
public Form1()
{
InitializeComponent(); Book b = new Book("神秘藏宝室开发板套件基础版","1122-334",134d,"小白");
Book b1 = new Book("神秘藏宝室开发板套件提高版", "1122-335", 134d, "小白");
Book b2 = new Book("神秘藏宝室开发板套件至尊版", "1122-336", 134d, "小白"); st = new Store(); st.AddBook(b);
st.AddBook(b1);
st.AddBook(b2); Bind();
} /// <summary>
/// 填充数据
/// </summary>
private void Bind()
{
cb_list.Items.Clear(); //清空下拉列表
cb_list.Text = "请选择一本书"; //显示一个默认值
foreach(Book b in st.Booklist)
{
cb_list.Items.Add(b.Name);
}
lb_output.Text = "当前仓库中共计" + st.Booklist.Count.ToString() + "本书";
} private void button1_Click(object sender, EventArgs e)
{
//出库
if (st.Exists(cb_list.Text))
{
st.Remove(cb_list.Text);
cb_list.Text = "删除成功";
tb_name.Text = "";
tb_isdn.Text = "";
tb_price.Text = "";
tb_author.Text = "";
} Bind(); //重新填充数据
} private void button2_Click(object sender, EventArgs e)
{
if (st.Exists(cb_list.Text))
{
Book b = st.GetBook(cb_list.Text);
lb_output.Text = string.Format("书名:{0},\n作者:{1},\n价格:{2},\nISBN:{3}", b.Name, b.Author, b.Price, b.Isbn);
}
else
{
lb_output.Text = "不存在的书籍";
}
} private void button3_Click(object sender, EventArgs e)
{
if (tb_name.Text != "" && tb_author.Text != "" && tb_price.Text != "" && tb_isdn.Text != "")
{
Book b = new Book(
tb_name.Text,
tb_isdn.Text,
double.Parse(tb_price.Text),
tb_author.Text
);
st.AddBook(b);
Bind();
}
} private void cb_list_SelectedIndexChanged(object sender, EventArgs e)
{
Book b = st.GetBook(cb_list.Text);
tb_name.Text = b.Name;
tb_isdn.Text = b.Isbn;
tb_price.Text = b.Price.ToString();
tb_author.Text = b.Author;
}
}
}

winform界面

最终运行界面:

C#编写图书列表winform的更多相关文章

  1. Django(五)1 - 4章实战:从数据库读取图书列表并渲染出来、通过url传参urls.py path,re_path通过url传参设置、模板语法

    一.从数据库读取图书数据并渲染出来 1)app1/views.py函数books编写 [1]从模型下导入bookinfo信息 [2]从数据库获取图书对象列表 [3]把获取到的图书对象赋值给books键 ...

  2. Android JSON解析库Gson和Fast-json的使用对比和图书列表小案例

    Android JSON解析库Gson和Fast-json的使用对比和图书列表小案例 继上篇json解析,我用了原生的json解析,但是在有些情况下我们不得不承认,一些优秀的json解析框架确实十分的 ...

  3. Vue+koa2开发一款全栈小程序(8.图书列表页)

    1.图书列表页获取数据 1.在server/routes/index.js中新增路由 router.get('/booklist',controllers.booklist) 2.在server/co ...

  4. 【WPF on .NET Core 3.0】 Stylet演示项目 - 简易图书管理系统(4) - 图书列表界面

    在前三章中我们完成了登录窗口, 并掌握了使用Conductor来切换窗口, 但这些其实都是在为我们的系统打基础. 而本章中我们就要开始开发系统的核心功能, 即图书管理功能了. 通过本章, 我们会接触到 ...

  5. [ABP教程]第二章 图书列表页面

    Web应用程序开发教程 - 第二章: 图书列表页面 关于本教程 在本系列教程中, 你将构建一个名为 Acme.BookStore 的用于管理书籍及其作者列表的基于ABP的应用程序. 它是使用以下技术开 ...

  6. 全栈项目|小书架|服务器端-NodeJS+Koa2实现首页图书列表接口

    通过上篇文章 全栈项目|小书架|微信小程序-首页水平轮播实现 我们实现了前端(小程序)效果图的展示,这篇文章来介绍服务器端的实现. 首页书籍信息 先来回顾一下首页书籍都有哪些信息: 从下面的图片可以看 ...

  7. 微信小程序之小豆瓣图书

    最近微信小程序被炒得很火热,本人也抱着试一试的态度下载了微信web开发者工具,开发工具比较简洁,功能相对比较少,个性化设置也没有.了解完开发工具之后,顺便看了一下小程序的官方开发文档,大概了解了小程序 ...

  8. php大力力 [016节] 兄弟连高洛峰php教程(2014年 14章数据库章节列表)

    2015-08-25 php大力力016 兄弟连高洛峰php教程(2014年 14章数据库章节列表) [2014]兄弟连高洛峰 PHP教程14.1.1 复习数据库  15:58 [2014]兄弟连高洛 ...

  9. XML DOM 循环(foreach)读取PHP数据 和 PHP 编写 XML DOM 【转载】

    用 PHP 读取和编写可扩展标记语言(XML)看起来可能有点恐怖.实际上,XML 和它的所有相关技术可能是恐怖的,但是用 PHP 读取和编写 XML 不一定是项恐怖的任务.首先,需要学习一点关于 XM ...

随机推荐

  1. mybatis学习笔记(14)-查询缓存之中的一个级缓存

    mybatis学习笔记(14)-查询缓存之中的一个级缓存 标签: mybatis mybatis学习笔记14-查询缓存之中的一个级缓存 查询缓存 一级缓存 一级缓存工作原理 一级缓存測试 一级缓存应用 ...

  2. atitit.跨语言执行cmd cli api的原理及兼容性设计草案

    atitit.跨语言执行cmd cli api的原理及兼容性设计草案 1. 标准输入,标准输出,标准错误与重新定向1 2. 常见问题2 2.1. 执行bat文件2 2.2. 执行bat文件  /c   ...

  3. 一、Core Animation简介

    一.Core Animation简介 * Core Animation,中文翻译为核心动画,它是一组非常强大的动画处理API,使用它能做出非常炫丽的动画效果,而且往往是事半功倍.也就是说,使用少量的代 ...

  4. HDU 5355 Cake(2015多校第六场,搜索 + 剪枝)

    Cake Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 131072/131072 K (Java/Others) Total Sub ...

  5. 我的 Android 开发实战经验总结

    我的 Android 开发实战经验总结 字数4440 阅读5137 评论43 喜欢250 曾经一直想写一篇总结 Android 开发经验的文章,预计当时的我还达不到某种水平,所以思路跟不上,下笔又捉襟 ...

  6. 什么是Web Services?

    什么是Web Services? Web Services 是应用程序组件 Web Services 使用开放协议进行通信 Web Services 是独立的(self-contained)并可自我描 ...

  7. android Splashy Flash小游戏

    今年刚開始学习android,自己在寝室捎带学习了下做APP,因为是刚開始学习,这个游戏仅仅注重了游戏的实现,实现了大概功能后.也没有实现游戏的细节,像分数图片的显示等.也没有注意代码的结构.一个字就 ...

  8. Android仿QQ复制昵称效果2

    本文同步自http://javaexception.com/archives/77 背景: 在上一篇文章中,给出了一种复制QQ效果的方案,今天就来讲讲换一种方式实现.主要依赖的是一个开源项目https ...

  9. java string 首字母大小写方法

    String字符串需要进行首字母大小写改写,查询google,就是将首字母截取,转化大小写 + 首字母后面字符串 //首字母小写 public static String captureName(St ...

  10. 26计算限制的异步操作02-CLR

    由CLR via C#(第三版) ,摘抄记录... 6 Parallel的静态For,ForEach和Invoke方法 在一些常见的编程情形中,使用任务也许会提升性能.为了简化编程,静态类System ...