pj2--图书管理系统
这一次做得是图书管理系统。
下面是功能框图
下面是流程图
实际在做这个项目的时候根据相应的实际情况对功能流程等等做了一些小小的改变。
下面是一些值得记一笔的地方。
1、借用系统自带的导航控件(BindingNavigator)
自定义数据来源---先定义一个BindingSource对象,再设置这个对象的datasource属性(需要绑定的数据源).
需要注意的一点是判断Bindingsource是否为空是通过他的list的count属性来判断的,他自带的count属性我理解的是数据源的个数。
之所以使用这个控件是因为Bindingsource对象里面自带move(next、first等),可以很方便的实现下一页上一页等操作。
2、使用用户控件和多层架构,第三方控件
使用用户控件可以大量减少Form的数量,以前没用过,这一次使用了,感觉不错。
再就是多层架构,说是多层架构,但是个人觉得很简略粗糙。我写我的部分的时候我的顺序是:先写datahelper->entity->dal->Ibll->Bll->UI
datahelper和entity是组内通用的,不赘述。在写dal层的时候由于不知道ui会使用到那些数据,所以一开始设计的时候,是直接就获取了全部的数据,后来做到后面发现用不到那么多东西,没有规划好(也许是写各层顺序不对)。之所以设计IBLL层开始是以为可以组内复用的,结果,组内都没做这个工作,以致于我们的代码里面有很多冗余,本来可以复用的地方,都没有去考虑复用(分开个人写的坏处,没有充分交流)。不过设计IBLL的好处是可以省略写好多代码(继承接口直接实现,感觉很棒,写具体 代码的时候很有条理)。。。。。。
BLL层大部分没有做什么数据处理,直接就返回给ui使用。
UI层我在很多地方本来是该BLL层做得事情,由于太懒,直接就在UI层处理了,这也是分层的弊端----增加了码农的工作负担
第三方控件我们是直接使用了一个第三方的皮肤包。在找控件的时候我也发现了一些好的资源,待会儿上传到一并网盘保存
3、读取Excel
方式与SqlServer时一样的。下面写一下不同的地方
strConn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + path + ";Extended Properties='Excel 8.0;HDR=No;IMEX=1'";
//HDR的YES和NO表示第一行是否是行标题(即无数据)IMEX有0、1、2三种参数分别表示write、read、writeANDread(读写权限)
String sql = "SELECT * FROM [Sheet1$]";
//Sheet1是名称,包括数据域是可以更改的,这个要参考对excel的单元格操作
4、调用豆瓣提供的API获取图书信息
豆瓣提供的API返回的是XML文档,这里主要需要做的就是利用XML分析返回的文档,获取到相应的数据。
关键代码
XmlDocument xml = new XmlDocument();
xml.LoadXml(xmldetail);
XmlNamespaceManager nsmgr = new XmlNamespaceManager(xml.NameTable);
nsmgr.AddNamespace("db", "http://www.w3.org/2005/Atom");
XmlElement root = xml.DocumentElement;
XmlNodeList nodes = root.SelectNodes("/db:entry", nsmgr);
然后就是遍历nodes了。
附件:http://yunpan.cn/cgnCaG4dPsTbT (提取码:8ffa)
pj2--图书管理系统的更多相关文章
- 基于jsp+servlet图书管理系统之后台万能模板
前奏: 刚开始接触博客园写博客,就是写写平时学的基础知识,慢慢发现大神写的博客思路很清晰,知识很丰富,非常又价值,反思自己写的,顿时感觉非常low,有相当长一段时间没有分享自己的知识.于是静下心来钻研 ...
- [入门级] 基于 visual studio 2010 mvc4 的图书管理系统开发初步 (二)
[入门级] 基于 visual studio 2010 mvc4 的图书管理系统开发初步 (二) Date 周六 10 一月 2015 By 钟谢伟 Category website develop ...
- 基于TXT文本的简单图书管理系统
1 ////////////////////////////////////////////////////////////////////////////////////// //SqList.h ...
- struts2+hibernate 项目实战:图书管理系统
经典项目,练手必备. 图书管理系统 需求分析(大致,并不专业):1.需要有用户管理: 1.1 用户注册: 1.2 用户登录: 1.3 用户信息修改: 1.4 用户修改密码: 2.需要有书本管理: 2. ...
- 图书管理系统——APP平台开发
http://www.w3school.com.cn/php/ 初步计划采用PHP 开发网站. 一定要独立建立一套图书管理系统, 尤其唯一性质的概念,整合,甚至中英文图书概念的而整合.一本书一个页. ...
- Java swing项目-图书管理系统(swing+mysql+jdbc)
(一)项目功能分析 该项目是设计一个图书管理系统,主要包含的内容有: (1)管理员登陆界面 ->信息录入 ->登录 ->重置 (2)图书管理系统总界面 ->子界面菜单: 1)图 ...
- 作业六—图书管理系统(SPEC)系统性能评估测试
一.图书管理系统的典型用户和场景: 该系统是为各类学校图书馆和社会各大图书馆和书店管理者使用的图书管理系统.但是我们还是已北京工业大学耿丹学院图书馆为典型用户进行主要设计的! 二.SPEC测试的目标: ...
- 基于jsp+servlet图书管理系统之后台用户信息查询操作
上一篇的博客写的是插入操作,且附有源码和数据库,这篇博客写的是查询操作,附有从头至尾写的代码(详细的注释)和数据库! 此次查询操作的源码和数据库:http://download.csdn.net/de ...
- 基于jsp+servlet图书管理系统之后台用户信息修改操作
上一篇的博客写的是查询操作,且附有源码和数据库,这篇博客写的是修改操作,附有从头至尾写的代码(详细的注释)和数据库! 此次修改操作的源码和数据库:http://download.csdn.net/de ...
- 基于jsp+servlet图书管理系统之后台用户信息删除操作
上一篇的博客写的是修改操作,且附有源码和数据库,这篇博客写的是删除操作,附有从头至尾写的代码(详细的注释)和数据库! 此次删除操作的源码和数据库:http://download.csdn.net/de ...
随机推荐
- python中的模块调用
1.简介 在python中经常需要各模块相互调用,此时会出现以下几种情况: (1)同一目录下文件的调用 (2)父目录调用子目录中的文件 (3)同级目录下文件的调用 2.示例 现有该目录结构:AB中有A ...
- jvm回收器回收过程一:CMS和 G1的初认知(持续更新中)
CMS:介绍: 1.CMS(Concurrent Mark-Sweep)是以牺牲吞吐量为代价来获得最短回收停顿时间的垃圾回收器.对于要求服务器响应速度的应用上,这种垃圾回收器非常适合. 在启动JVM参 ...
- [uva P1601] The Morning after Halloween
[uva P1601] The Morning after Halloween 题目链接 非常经典的一道题目,lrj的书上也有(貌似是紫书?). 其实这题看起来就比较麻烦.. 首先要保证小鬼不能相遇, ...
- atom插件安装失败解决方法
在atom 上下载插件失败,可以用下面的方法. 1.找到C:/Users/你的用户名/.atom/packages/文件夹内 2.在.atom packages 目录下 使用gitbash 3.git ...
- python笔记9-字符串操作
1.定义字符串 字符串有下标从0开始,用[]可以来取下标 2.字符串读取 字符串可以使用循环for,每次取一个取出,循环对象的每个元素 3.字符串修改-字符串不可修改 字符串是不可变变量,一旦定义就不 ...
- Opencv undefined reference to `cv::imread() Ubuntu编译
Ubuntu下编译一个C++文件,C++源程序中使用了opencv,opencv的安装没有问题,但是在编译的过程中出现如下错误: undefined reference to `cv::imread( ...
- python中类的创建和实例化
python中同样使用关键字class创建一个类,类名称第一个字母大写,可以带括号也可以不带括号: python中实例化类不需要使用关键字new(也没有这个关键字),类的实例化类似函数调用方式: # ...
- Mac + PyCharm 安装 Opencv3 + python2.7
本文地址:http://www.cnblogs.com/QingHuan/p/7354074.html 转载请注明本文地址,方便读者查看本文更新,谢谢! 今天要在Mac上安装OpenCV,过程非常曲折 ...
- 百度前端代码规范:CSS
1.代码风格 1.1 文件 [建议] CSS 文件使用无 BOM 的 UTF-8 编码. 1.2 缩进 [强制] 使用 4 个空格做为一个缩进层级,不允许使用 2 个空格 或 tab 字符. 1.3 ...
- 学习笔记TF038:实现估值网络
Q-Learning,学习Action对应期望值(Expected Utility).1989年,Watkins提出.收敛性,1992年,Watkins和Dayan共同证明.学习期望价值,从当前一步到 ...