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 ...
随机推荐
- 创建Mat
#include<opencv2/opencv.hpp> #include<iostream> #include<cassert> #include<vect ...
- (初学者)安装hadoop集群注意事项
1.关闭防火墙 2.所有的hadoop操作都是hadoop用户下面的,同时需要用hadoop用户登录之后,对于其他的机器的hadoop用户可以免密登录 3.hadoop用户在root组下面,不是附加组 ...
- PyTorch在64位Windows下的Conda包(转载)
PyTorch在64位Windows下的Conda包 昨天发了一篇PyTorch在64位Windows下的编译过程的文章,有朋友觉得能不能发个包,这样就不用折腾了.于是,这个包就诞生了.感谢@晴天14 ...
- ubuntu 12.10 apt-get 源
更改apt-get源配置文件/etc/apt/sources.list 用一下内容替换掉 deb http://mirrors.163.com/ubuntu/ precise main restric ...
- ssh加密访问
ssh 加密访问 telnet 开放访问需安装软件openssh-server $ssh akaedu@192.168.103.114 $ssh 192.168.103.114 附: ...
- CSS隐藏滚动条但又能滚动,不用js实现
隐藏多余的内容,但是可以滑动查看 原理就在于padding-right:17px;把滚动条挤出去隐藏了
- [浪风分享]App必死 Web永生 看Web的前世今生 必会卷土重来
当我们回顾技术的演变历史时,我们也应该关注技术演变的背后逻辑. 几年前,美国的<连线>杂志发表了“Web已死,Internet永生”的文章,由于作者之一是长尾理论的提出者克里斯.安德森(C ...
- SlidingMenu官方实例分析6——ResponsiveUIActivity
ResponsiveUIActivity 这个类实现的是一个响应适UI设计重点是布局的设计: layout布局如下: layout-large-land布局如下: layout-xlarge布局如下: ...
- FTP(File Transfer Protocol)是什么?
文件传输协议 FTP(File Transfer Protocol),是文件传输协议的简称.用于Internet上的控制文件的双向传输.同时,它也是一个应用程序(Application).用户可以通过 ...
- 如何在Java的Filter中注入Service???
今天在做用户使用cookie自动登录的时候,发现在LoginFilter中读取到cookie以后要进行查询数据库然后进行用户名和密码的比对,查询数据库肯定要用到Service和Dao,一开始我以为在s ...