C#编写图书列表winform
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的更多相关文章
- Django(五)1 - 4章实战:从数据库读取图书列表并渲染出来、通过url传参urls.py path,re_path通过url传参设置、模板语法
一.从数据库读取图书数据并渲染出来 1)app1/views.py函数books编写 [1]从模型下导入bookinfo信息 [2]从数据库获取图书对象列表 [3]把获取到的图书对象赋值给books键 ...
- Android JSON解析库Gson和Fast-json的使用对比和图书列表小案例
Android JSON解析库Gson和Fast-json的使用对比和图书列表小案例 继上篇json解析,我用了原生的json解析,但是在有些情况下我们不得不承认,一些优秀的json解析框架确实十分的 ...
- Vue+koa2开发一款全栈小程序(8.图书列表页)
1.图书列表页获取数据 1.在server/routes/index.js中新增路由 router.get('/booklist',controllers.booklist) 2.在server/co ...
- 【WPF on .NET Core 3.0】 Stylet演示项目 - 简易图书管理系统(4) - 图书列表界面
在前三章中我们完成了登录窗口, 并掌握了使用Conductor来切换窗口, 但这些其实都是在为我们的系统打基础. 而本章中我们就要开始开发系统的核心功能, 即图书管理功能了. 通过本章, 我们会接触到 ...
- [ABP教程]第二章 图书列表页面
Web应用程序开发教程 - 第二章: 图书列表页面 关于本教程 在本系列教程中, 你将构建一个名为 Acme.BookStore 的用于管理书籍及其作者列表的基于ABP的应用程序. 它是使用以下技术开 ...
- 全栈项目|小书架|服务器端-NodeJS+Koa2实现首页图书列表接口
通过上篇文章 全栈项目|小书架|微信小程序-首页水平轮播实现 我们实现了前端(小程序)效果图的展示,这篇文章来介绍服务器端的实现. 首页书籍信息 先来回顾一下首页书籍都有哪些信息: 从下面的图片可以看 ...
- 微信小程序之小豆瓣图书
最近微信小程序被炒得很火热,本人也抱着试一试的态度下载了微信web开发者工具,开发工具比较简洁,功能相对比较少,个性化设置也没有.了解完开发工具之后,顺便看了一下小程序的官方开发文档,大概了解了小程序 ...
- php大力力 [016节] 兄弟连高洛峰php教程(2014年 14章数据库章节列表)
2015-08-25 php大力力016 兄弟连高洛峰php教程(2014年 14章数据库章节列表) [2014]兄弟连高洛峰 PHP教程14.1.1 复习数据库 15:58 [2014]兄弟连高洛 ...
- XML DOM 循环(foreach)读取PHP数据 和 PHP 编写 XML DOM 【转载】
用 PHP 读取和编写可扩展标记语言(XML)看起来可能有点恐怖.实际上,XML 和它的所有相关技术可能是恐怖的,但是用 PHP 读取和编写 XML 不一定是项恐怖的任务.首先,需要学习一点关于 XM ...
随机推荐
- mybatis学习笔记(14)-查询缓存之中的一个级缓存
mybatis学习笔记(14)-查询缓存之中的一个级缓存 标签: mybatis mybatis学习笔记14-查询缓存之中的一个级缓存 查询缓存 一级缓存 一级缓存工作原理 一级缓存測试 一级缓存应用 ...
- atitit.跨语言执行cmd cli api的原理及兼容性设计草案
atitit.跨语言执行cmd cli api的原理及兼容性设计草案 1. 标准输入,标准输出,标准错误与重新定向1 2. 常见问题2 2.1. 执行bat文件2 2.2. 执行bat文件 /c ...
- 一、Core Animation简介
一.Core Animation简介 * Core Animation,中文翻译为核心动画,它是一组非常强大的动画处理API,使用它能做出非常炫丽的动画效果,而且往往是事半功倍.也就是说,使用少量的代 ...
- HDU 5355 Cake(2015多校第六场,搜索 + 剪枝)
Cake Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 131072/131072 K (Java/Others) Total Sub ...
- 我的 Android 开发实战经验总结
我的 Android 开发实战经验总结 字数4440 阅读5137 评论43 喜欢250 曾经一直想写一篇总结 Android 开发经验的文章,预计当时的我还达不到某种水平,所以思路跟不上,下笔又捉襟 ...
- 什么是Web Services?
什么是Web Services? Web Services 是应用程序组件 Web Services 使用开放协议进行通信 Web Services 是独立的(self-contained)并可自我描 ...
- android Splashy Flash小游戏
今年刚開始学习android,自己在寝室捎带学习了下做APP,因为是刚開始学习,这个游戏仅仅注重了游戏的实现,实现了大概功能后.也没有实现游戏的细节,像分数图片的显示等.也没有注意代码的结构.一个字就 ...
- Android仿QQ复制昵称效果2
本文同步自http://javaexception.com/archives/77 背景: 在上一篇文章中,给出了一种复制QQ效果的方案,今天就来讲讲换一种方式实现.主要依赖的是一个开源项目https ...
- java string 首字母大小写方法
String字符串需要进行首字母大小写改写,查询google,就是将首字母截取,转化大小写 + 首字母后面字符串 //首字母小写 public static String captureName(St ...
- 26计算限制的异步操作02-CLR
由CLR via C#(第三版) ,摘抄记录... 6 Parallel的静态For,ForEach和Invoke方法 在一些常见的编程情形中,使用任务也许会提升性能.为了简化编程,静态类System ...