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 ...
随机推荐
- Matlab:五点差分方法求解椭圆方程非导数边值问题
差分格式脚本文件: tic; clear clc M=32;%x的步数 N=16;%y的步数 h1=1/M;%x的步长 h2=1/N;%y的步长 x=0:h1:1; y=0:h2:1; u=zeros ...
- django内置的认证系统
Django自带的用户认证 我们在开发一个网站的时候,无可避免的需要设计实现网站的用户系统.此时我们需要实现包括用户注册.用户登录.用户认证.注销.修改密码等功能,这还真是个麻烦的事情呢. Djang ...
- IIS+NGINX 负载web服务器
Nginx是一款轻量级的Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,并在一个BSD-like 协议下发行.其特点是占有内存少,并发能力强,事实上nginx的并发能力确实在 ...
- 学习笔记-AngularJs(十)
前面一直在说自定义指令,但是却一直没有一次系统地去了解,现在需要我们一起来学习如何去使用自定义指令,去丰富html标签.属性,实现多元化.多功能的标签(或是属性).辣么,啥是指令?要了解指令,首先需要 ...
- python url 下载并保存
方法一:用urllib import jsonimport urllib url_model='{"version":"2","url":& ...
- extern介绍
存储类说明符extern.之前说过auto (auto int a:)extern的作用是:修饰变量/函数声明,表示是外部变量. e本身就是一个全局变量,所以在全局变量这个位置,加不加extern 都 ...
- Java库中的集合
集合类型 描述 ArrayList 一种可以动态增长和缩减的索引序列 LinkedList 一种可以在任何位置进行高效的插入和删除操作的有序序列 ArrayDeque 一种用循环数组实现的双端队列 H ...
- 分数化小数(decimal)
分数化小数 ①我的程序 #include<iostream>using namespace std;int main(void){ int a,b,c,kase=0; while(scan ...
- wpf-xaml-命名空间
xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns 为window控件的属性 代表声明引用 如同C ...
- Java学习笔记34(sql基础 :增删改查1)
create database qy97;/*创建数据库*/ use qy97; /*使用数据库 use 数据库名*/ show tables; /*查看所有的表*/ select database( ...