感悟网 导航

100分!求一个 图书库存管理系统 在线等! 库存管理系统 在线等....

作者&投稿:大狐蚁 (若有异议请与网页底部的电邮联系)
用C语言编写大学图书库存管理系统 若答案合适 可再给100分~

好了,希望能够帮到您。
如果你真的要纯c的话,只需要改一下输入输出就可。
即:cin,cout改为scanf,printf。
//Memory Time// 1347K 0MS// by : Snarl_jsb#include#include#include#include#include#include#include#include#include#include#include#include#define N 1000010#define LL long longusing namespace std;#include#include#include#include#includeusing namespace std;const int Maxb=10000; //最多的图书class Book//图书类{int tag; //删除标记1:已删0:未删int number; //ISBN书号char name[20]; //书名char author[10]; //主编char number2[10];//版次char position[20];//出版社char time[20];//出版年int price;//定价int onshelf; //是否在架1:在架0:已借public:Book() {}char *getname() { return name; } //获取姓名int getnumber() { return number; } //获取ISBN书号int gettag() { return tag; } //获取删除标记char *getauthor() {return author;} //获取主编char *getnumber2() {return number2;} //获取版次char *getposition() {return position;} //获取出版社char *gettime() {return time;} //获取出版年char getprice() {return price;} //获取图书定价void delbook() { tag=1; } //删除图书void addbook(int n,char *na,char *au,char *n2,char *da,char *ti,int pr) //增加图书{tag=0;number=n;price=pr;strcpy(name,na);strcpy(author,au);strcpy(number2,n2);strcpy(position,da);strcpy(time,ti);onshelf=1;}void disp() //输出图书{cout >choice;while(choice!=1&&choice!=2&&choice!=3&&choice!=4&&choice!=5&&choice!=6&&choice!=0){ cout>choice;}switch (choice){case 1:cout > bookid; cout > bname; cout >editor;cout >banci;cout>position;cout>year;cout>value;addbook(bookid,bname,editor,banci,position,year,value);cout>choice4;while (choice4!=0&&choice4!=1){ cout>choice4;}switch (choice4){case 1:choice=1;break;case 0: choice=0; break;}break;case 3:cout > bookid;b=search1(bookid);if (b==NULL){cout delbook();break;case 4: cout>choice3;switch(choice3){case 1: {cout > bookid;b=search1(bookid);if (b==NULL){cout disp();}break;case 2:{ cout>bname; b=search2(bookid,bname); if(b==NULL) { coutdisp();} break;case 3: { cout>editor; b=search3(bookid,editor); if(b==NULL) { coutdisp();} break;}break;case 5:disp();break;case 6:clear();break;}}cout>w;if(w==0)BookDB.bookdata();system("pause");return 0;}

网上搜的其他库存软件的功能简介,可以参考下嘛!其实你这里问别人还不如搜索下然后下载共享版的库存软件参考下别人的功能,然后自己再进行各种功能上的优化精简和添加新功能之类。

管易通仓库管理系统是一款十分人性化的优秀管理软件,为您提供最简捷最明晰的仓库管理解决方案。

广泛适用于: 工厂中的材料采购入库、生产发料领料;批发零售公司的商品采购入库、出库记帐;办公室物品保管、分发、借出、归还等。软件免费试用,提供免费电话咨询服务,并且免费升级,也可以按照您的要求在一定范围内免费修改。

软件设置灵活,以适应不同行业不同单位的实际应用。功能模块可以自由拼装,您不需要的功能模块可以关闭,让系统以最简捷、最适合您工作习惯的方式运行。

功能模块包括:

基础数据: 供货商档案、内部部门档案、货品类别、货品档案、产品构成表等。

入库出库单据: 入库、出库、退货、盘点等单据一应俱全。 可以自由设定单据附加描述项,可以实现通过固定线索跟踪记录企业内部物流进程。

统计报表: 仓库存货统计、进出存明细表、进出存汇总表、货品收发对帐单、出库成本统计表。 允许根据多种条件查询、统计、汇总,支持精确查询、模糊查询。

数据导入导出: Excel导入基础数据功能、Excel导入出库单据功能、数据导出为Excel功能,表格导出为图片功能、系统数据备份与恢复功能。

系统安全: 采用多用户分权操作,每个操作员具有不同权限,系统自动记录制单人审核人,多人协同工作,各司其职、各负其责。

网络功能: 系统允许单机运行,也可以多台电脑联机运行,以实现无纸化办公、即时数据交流。

管易通软件一贯禀承“简捷易用”的特色,使您可以轻松上手、无忧管理。





--------------------------------------------------------------------------------


无须懂得财务知识,无须精通电脑。《管易通》实现了仓库进出存帐目的傻瓜化软件管理!支持多套帐,支持局域网内联机运行。具体功能包括:货品入库、出库、现存、盘点;灵活的统计报表、强大的进出存综合统计功能。

---------------------------------------------------
软件主要的功能模块:
A.基础数据 B.入库管理 C.库存管理 D.出库管理 E.报表中心
-------------------------------------------------------
下面介绍每个主模块的下属子模块:
A.基础数据
1.入库单位资料
所谓入库单位,就是货品的来源,可以是货品供应商、车间生产部门、总公司等。
在系统中,最少要有一条“入库单位”资料,因为在一张入库单中“入库单位”是必选的。
2.出库单位资料
所谓出库单位,就是货品的出库去向,可以是购买货品的客户、领料生产的车间、下属分公司等。
在系统中,最少要有一个“出库单位”资料,因为在一张出库单中“出库单位”是必选的。
3.货品类别资料
货品的分类,每一个类别有一个编码。这样方便在后面的统计报表中分类查询统计
如果您的管理中不需要对货品分类,那么,只规定一个大类就好了,比如“所有货品”。
3.货品编码资料
每个货品的编码、名称、规格、成本价、销售价、样图等基本资料,在后面的应用中,会自动调用这些数据
关于货品如何编码,请点击这里,关于货品条形码的请看这里
B.入库管理
1.货品入库单
货品入库开单,一张入库单中包括单号、时间、入库单位、录入人、审核人、金额合计等信息。
单据录入、保存后可以修改,但只有单据审核后才正式生效,生效后的单据已经事实,将不可以再修改。
意外情况,实在需要修改审核后的单据的,可以由管理员在[系统管理]---[系统数据清除]中操作。
2.货品入库明细
可以根据多种条件组合查询货品入库记录,并可以打印出历史入库列表。
同时可以打印出综合汇总的报表。
3.公司退货单
货品回退给入供应商或是其它入库单位,一张退货单中包括单号、时间、入库单位、录入人、审核人、金额合计等信息。
单据录入、保存后可以修改,但只有单据审核后才正式生效,生效后的单据已经事实,将不可以再修改。
意外情况,实在需要修改审核后的单据的,可以由管理员在[系统管理]---[系统数据清除]中操作。
4.公司退货明细
可以根据多种条件组合查询退货记录,并可以打印出历史退货列表。
同时可以打印出综合汇总的报表。
C.库存管理
1.仓库存货明细
可以根据多种条件组合查询货品库存数量、库存均价、销售均价及相应的金额数。
2.库存货品盘点
盘点库存数量,盘点期间不要发生入库或出库的操作。
盘点单据只有单据审核后才正式生效,系统自动根据实盘数量更新库存数。
3.货品盘点明细
可以根据多种条件组合查询货品盘点记录,并可以打印出历史盘点列表。
同时可以打印出综合汇总的报表。
D.出库管理
1.货品出库单
货品出库开单,一张出库单中包括单号、时间、出库单位、录入人、审核人、金额合计等信息。
单据录入、保存后可以修改,但只有单据审核后才正式生效,生效后的单据已经事实,将不可以再修改。
意外情况,实在需要修改审核后的单据的,可以由管理员在[系统管理]---[系统数据清除]中操作。
2.货品出库明细
可以根据多种条件组合查询货品出库记录,并可以打印出历史出库列表。
同时可以打印出综合汇总的报表。
3.货品退库单
已出库的货品退回仓库,一张退库单中包括单号、时间、出库单位、录入人、审核人、金额合计等信息。
单据录入、保存后可以修改,但只有单据审核后才正式生效,生效后的单据已经事实,将不可以再修改。
意外情况,实在需要修改审核后的单据的,可以由管理员在[系统管理]---[系统数据清除]中操作。
4.货品退库明细
可以根据多种条件组合查询退货记录,并可以打印出历史退货列表。
同时可以打印出综合汇总的报表。

1 本系统为图书库存管理系统。其主要功能为让用户实现对图书库存的管理,包括查询 图书信息,添加新的图书,更新图书信息,删除旧的图书。具体功能如下: 查询图书信息:使用此功能,用户可以查看到所查图书的全部信息,包括图书编号, 图书名字,图书作者姓名,库存量。 添加新的图书:使用此功能,用户可以向库存中插入新的图书,即向数据库中插入新的元组,包括输入图书编号,图书名字,图书作者姓名,库存量。 更新图书信息:使用此功能,用户可以对图书的信息进行更新,即更新图书名字,图书作者姓名,库存量。 删除旧的图书:使用此功能,用户可以删除旧的图书,该图书所在的元组将整个都被删除。 图书库存管理系统 查询图书信息 添加新的图书 更新图书信息 删除旧的图书 2 类图: 在该模块中,定义一个 Ontijiao()函数来实现登陆进入图书库存管理系统。其中登陆账号:admin,登陆密码:admin。具体代码如下: void Clogin::Ontijiao() { // TODO: Add your control notification handler code here CString id,no; CString str="admin"; m_id.GetWindowText(id); m_no.GetWindowText(no); if (id.Compare(str)==0&&no.Compare(str)==0) { Cchaxun dilog=new Cchaxun; dilog.DoModal(); } } 类图: 在该模块中,定义一个 Onselect()函数来实现对数据库中元组的查询,即查询图书信息.具体的代码如下: void Cchaxun::Onselect() { 3 if(sql.m_db.IsOpen()) { sql.m_db.Close(); } CString strnum,vSQL,vSQL1,strname,strat,strrem,j,k; int i; j=m_result.GetItemCount(); if(j>=1) { m_result.DeleteAllItems(); } m_num1.GetWindowText(strnum); vSQL="DRIVER={SQL Server};SERVER=(local);Database=StuCou;UID=sa;PWD="; k=m_result.GetHeaderCtrl()->GetItemCount(); if(k<4) { m_result.InsertColumn(0,"图书编号");m_result.InsertColumn(1,"图书名称 ");m_result.InsertColumn(2,"作者");m_result.InsertColumn(3,"库存量"); m_result.SetColumnWidth(0,100);m_result.SetColumnWidth(1,120);m_result.Se tColumnWidth(2,110);m_result.SetColumnWidth(3,120); } sql.m_db.OpenEx(vSQL,0); sql.rs.m_pDatabase=&sql.m_db; vSQL1="select * from book where num='"+strnum+"'"; sql.rs.Open(CRecordset::snapshot, vSQL1, CRecordset::readOnly); while(!sql.rs.IsEOF()) { i=0; sql.rs.GetFieldValue("num",strnum); m_result.InsertItem(i,strnum); sql.rs.GetFieldValue("bname",strname); m_result.SetItemText(i,1,strname); sql.rs.GetFieldValue("author",strat); m_result.SetItemText(i,2,strat); sql.rs.GetFieldValue("remain",strrem); m_result.SetItemText(i,3,strrem); sql.rs.MoveNext(); i++; } sql.rs.Close(); } 类图: 4 在该模块中,定义一个 Onadd()函数来实现向数据库中添加新的元组,即添加新的图书信息,包括图书编号,图书名字,作者名字,以及库存量.具体代码如下: void Cchaxun::Onadd() { // TODO: Add your control notification handler code here UpdateData(true); CString strnum2,strname2,strat2,strrem2,vSQL2; CString add,check; m_num2.GetWindowText(strnum2); m_name2.GetWindowText(strname2); m_author2.GetWindowText(strat2); m_remain2.GetWindowText(strrem2); if(sql2.m_db.IsOpen()) { sql2.m_db.Close(); } vSQL2="DRIVER={SQL Server};SERVER=(local);Database=StuCou;UID=sa;PWD="; sql2.m_db.OpenEx(vSQL2,0); sql2.rs.m_pDatabase=&sql2.m_db; sql2.rs.Close(); add="insert into book values('"+strnum2+"','"+strname2+"','"+strat2+"','"+strrem2+"')"; sql2.m_db.ExecuteSQL(add); if(sql2.m_db.CanUpdate()) { AfxMessageBox("添加成功"); } } 类图: 5 在该模块中,定义了一个 Onupdate()函数,用来实现对数据库中元组的更新,即对图书信息的更新, 包括图书名字,作者名字,以及库存量的更新.具体代码如下: void Cchaxun::Onupdate() { // TODO: Add your control notification handler code here CString strnum3,strname3,strat3,strrem3,vSQL3; CString update; m_num3.GetWindowText(strnum3); m_name3.GetWindowText(strname3); m_author3.GetWindowText(strat3); m_remain3.GetWindowText(strrem3); if(sql3.m_db.IsOpen()) { sql3.m_db.Close(); } vSQL3="DRIVER={SQL Server};SERVER=(local);Database=StuCou;UID=sa;PWD="; sql3.m_db.OpenEx(vSQL3,0); update="update book set bname='"+strname3+"',author='"+strat3+"',remain='"+strrem3+"' where num='"+strnum3+"'"; sql3.m_db.ExecuteSQL(update); if(sql3.m_db.CanUpdate()) { AfxMessageBox("更新成功"); } } 类图: 6 在该模块中,定义了一个 Ondelete()函数,用来实现对数据库中元组的删除,即删除某一图书,使用该功能时将删除该图书所在的整个元组.具体代码如下: void Cchaxun::Ondelete() { // TODO: Add your control notification handler code here CString strnum4,vSQL4; CString del; m_num4.GetWindowText(strnum4); if(sql4.m_db.IsOpen()) { sql4.m_db.Close(); return; } vSQL4="DRIVER={SQL Server};SERVER=(local);Database=StuCou;UID=sa;PWD="; sql4.m_db.OpenEx(vSQL4,0); sql4.rs.m_pDatabase=&sql4.m_db; del="delete from book where num='"+strnum4+"'"; sql4.m_db.ExecuteSQL(del); if(sql4.m_db.CanUpdate()) { AfxMessageBox("删除成功"); return; } } 在本系统中,一共有7 个类:CBOOKApp 类、CBOOKDoc 类、CBOOKView 类、Cchaxun 类、SQL 类、Clogin 类、CMainFrame 类。其中最核心类为 Cchaxun 类、SQL 类、Clogin 类.类Cchaxun 用来实现对图书库存的管理,包括:查询图书信息,添加新的图书,更新图书信息,删除旧的图书。类SQL 用来实现连接到数据库。类Clogin 用来实现用户登陆的功能。 1.Cchaxun 类: 7 class Cchaxun : public CDialog { public: Cchaxun(CWnd* pParent = NULL); void Onselect(); void Onadd(); void Onupdate(); void Ondelete() protected: DECLARE_MESSAGE_MAP(); }; 名称 属性 说明 Cchaxun() 成员方法 构造函数 Onselect() 成员方法 查询图书信息 Onadd() 成员方法 添加新的图书 Onupdate() 成员方法 更新图书信息 Ondelete 成员方法 删除图书 DECLARE_ MESSAGE_MAP() 成员方法 VC 已定义好的函数 2.SQL 类: class SQL{ public: CDatabase m_db; CRecordset rs; }; 名称 属性 说明 m_db 数据成员 用来实现连接到数据库 rs 数据成员 用来实现连接到数据库 2.Clogin 类: 8 class Clogin : public CDialog { public: Clogin(CWnd* pParent = NULL); void Ontijiao(); protected: DECLARE_MESSAGE_MAP() }; 名称 属性 说明 Clogin() 成员方法 构造函数 Ontijiao() 成员方法 用来实现用户登陆 DECLARE_MESSAGE_MAP() 成员方法 VC 已定义好的函数 book 表结构如下: book(num int, bname char(100), author char(50), remain int) 其中num:图书编号,bname:书名,author:图书作者姓名,remian:库存量 Cchaxun 类中的Onselect()方法 功能:根据用户输入的图书编号,向数据库中搜索相应的元组,并显示出结果,即输出所查询的图书的图书信息。 算法思路:首先先判断数据源是否开启,如果已经开启先关了它,这里用到IsOpen() 函数和Close()函数。然后用GetWindowText()函数获取用户输入的图书编号。接下来连接数据库,用SQL 语句来搜索找到相应元组,并将结果显示出来。用到GetFieldValue() 函数和SetItemText()函数等。 流程图: 9 代码: void Cchaxun::Onselect() { if(sql.m_db.IsOpen()) { sql.m_db.Close(); } CString strnum,vSQL,vSQL1,strname,strat,strrem,j,k; int i; j=m_result.GetItemCount(); if(j>=1) { m_result.DeleteAllItems(); } m_num1.GetWindowText(strnum); vSQL="DRIVER={SQL Server};SERVER=(local);Database=StuCou;UID=sa;PWD="; k=m_result.GetHeaderCtrl()->GetItemCount(); if(k<4) { m_result.InsertColumn(0,"图书编号");m_result.InsertColumn(1,"图书名称开 始 如果已经开启数据源则关了它 输入要查找的图书编号 连接数据库并查找到相应元组 结查询结果显示出来 结 束 10 ");m_result.InsertColumn(2,"作者");m_result.InsertColumn(3,"库存量"); m_result.SetColumnWidth(0,100);m_result.SetColumnWidth(1,120);m_result.Se tColumnWidth(2,110);m_result.SetColumnWidth(3,120); } sql.m_db.OpenEx(vSQL,0); sql.rs.m_pDatabase=&sql.m_db; vSQL1="select * from book where num='"+strnum+"'"; sql.rs.Open(CRecordset::snapshot, vSQL1, CRecordset::readOnly); while(!sql.rs.IsEOF()) { i=0; sql.rs.GetFieldValue("num",strnum); m_result.InsertItem(i,strnum); sql.rs.GetFieldValue("bname",strname); m_result.SetItemText(i,1,strname); sql.rs.GetFieldValue("author",strat); m_result.SetItemText(i,2,strat); sql.rs.GetFieldValue("remain",strrem); m_result.SetItemText(i,3,strrem); sql.rs.MoveNext(); i++; } sql.rs.Close(); } 11 图7-1 登陆界面测试图 图7-2 查询图书信息测试图 图7-3 添加图书测试图 12 图7-4 更新图书测试图 图7-5 删除图书测试图 由于设计者水平有限及时间等方面的原因,该系统的功能比较简单,查错能力也不强,对于一些不正确的输入可能会造成一些难以预料的结果,因此,请不要故意输入错误信息。这些不足请老师多多谅解。今后设计者会更多的学习编程技巧,不断的提高程序设计水平。 1,在登陆本系统时,由于能力有限,暂时设计不出让用户自己注册账号的功能,所以用户要登陆时统一采用同一账号密码,其中账号:admin,密码:admin。 2,在添加新的图书时,由于系统存在漏洞,所以添加的新图书是可以出现相同编号的,为了避免混乱,请在输入时输入不同的编号,不同的图书信息。 3,在更新,删除图书时,如果输入不存在的图书编号,它还是会提示“更新成功” 和“删除成功”,而实际上该操作是无效的,所以请输入确实在数据库中存在的图书编号。 13 1.登陆账号:admin ,密码:admin 。 2.查询图书请输入确实存在的正确的图书编号,然后点击“查询”即可。 3.添加图书请添加不同于已经存在的图书的新图书信息。 4. 更新图书则输入您要更新的图书编号和新的信息,然后点击“提交”即可。 5.删除图书则输入您要删除的图书编号,然后点击“删除”即可。 #if !defined(AFX_LOGIN_H__E4090B58_E195_42FA_9ADC_C346B139F6F0__INCLUDED_) #define AFX_LOGIN_H__E4090B58_E195_42FA_9ADC_C346B139F6F0__INCLUDED_ #if _MSC_VER > 1000 #pragma once #endif class Clogin : public CDialog { public: Clogin(CWnd* pParent = NULL); protected: DECLARE_MESSAGE_MAP() }; #endif #include "stdafx.h" #include "BOOK.h" #include "login.h" #include "chaxun.h" #ifdef _DEBUG #define new DEBUG_NEW 14 #undef THIS_FILE static char THIS_FILE[] = __FILE__; #endif Clogin::Clogin(CWnd* pParent /*=NULL*/) : CDialog(Clogin::IDD, pParent) { } void Clogin::DoDataExchange(CDataExchange* pDX) { CDialog::DoDataExchange(pDX); } BEGIN_MESSAGE_MAP(Clogin, CDialog) END_MESSAGE_MAP() void Clogin::Ontijiao() { CString id,no; CString str="admin"; m_id.GetWindowText(id); m_no.GetWindowText(no); if (id.Compare(str)==0&&no.Compare(str)==0) { Cchaxun dilog=new Cchaxun; dilog.DoModal(); } } #include"afxdb.h" class SQL{ 15 public: CDatabase m_db; CRecordset rs; }; #if !defined(AFX_CHAXUN_H__261FE414_5B2D_4D97_BB7D_00E6992FD7A0__INCLUDED_) #define AFX_CHAXUN_H__261FE414_5B2D_4D97_BB7D_00E6992FD7A0__INCLUDED_ #if _MSC_VER > 1000 #pragma once #endif // _MSC_VER > 1000 class Cchaxun : public CDialog { public: Cchaxun(CWnd* pParent = NULL); enum { IDD = IDD_manage }; CEdit m_num4; CEdit m_remain3; CEdit m_author3; CEdit m_name3; CEdit m_num3; CEdit m_remain2; CEdit m_author2; CEdit m_name2; CEdit m_num2; CListCtrl m_result; CEdit m_num1; protected: virtual void DoDataExchange(CDataExchange* pDX); protected: afx_msg void Onselect(); 16 afx_msg void Onadd(); afx_msg void Onupdate(); afx_msg void Ondelete(); DECLARE_MESSAGE_MAP() }; #include "stdafx.h" #include "BOOK.h" #include "chaxun.h" #include "lianjie.h" #ifdef _DEBUG #define new DEBUG_NEW #undef THIS_FILE static char THIS_FILE[] = __FILE__; #endif SQL sql,sql2,sql3,sql4; Cchaxun::Cchaxun(CWnd* pParent /*=NULL*/) : CDialog(Cchaxun::IDD, pParent) { } void Cchaxun::DoDataExchange(CDataExchange* pDX) { CDialog::DoDataExchange(pDX); DDX_Control(pDX, IDC_EDIT10, m_num4); DDX_Control(pDX, IDC_EDIT9, m_remain3); DDX_Control(pDX, IDC_EDIT8, m_author3); DDX_Control(pDX, IDC_EDIT7, m_name3); DDX_Control(pDX, IDC_EDIT6, m_num3); DDX_Control(pDX, IDC_EDIT5, m_remain2); 17 DDX_Control(pDX, IDC_EDIT4, m_author2); DDX_Control(pDX, IDC_EDIT3, m_name2); DDX_Control(pDX, IDC_EDIT2, m_num2); DDX_Control(pDX, IDC_LIST1, m_result); DDX_Control(pDX, IDC_EDIT1, m_num1); } BEGIN_MESSAGE_MAP(Cchaxun, CDialog) ON_BN_CLICKED(IDC_BUTTON1, Onselect) ON_BN_CLICKED(IDC_BUTTON2, Onadd) ON_BN_CLICKED(IDC_BUTTON3, Onupdate) ON_BN_CLICKED(IDC_BUTTON4, Ondelete) END_MESSAGE_MAP() void Cchaxun::Onselect() { if(sql.m_db.IsOpen()) { sql.m_db.Close(); } CString strnum,vSQL,vSQL1,strname,strat,strrem,j,k; int i; j=m_result.GetItemCount(); if(j>=1) { m_result.DeleteAllItems(); } m_num1.GetWindowText(strnum); 18 vSQL="DRIVER={SQL Server};SERVER=(local);Database=StuCou;UID=sa;PWD="; k=m_result.GetHeaderCtrl()->GetItemCount(); if(k<4) { m_result.InsertColumn(0,"图书编号");m_result.InsertColumn(1,"图书名称 ");m_result.InsertColumn(2,"作者");m_result.InsertColumn(3,"库存量"); m_result.SetColumnWidth(0,100);m_result.SetColumnWidth(1,120);m_result.Se tColumnWidth(2,110);m_result.SetColumnWidth(3,120); } sql.m_db.OpenEx(vSQL,0); sql.rs.m_pDatabase=&sql.m_db; vSQL1="select * from book where num='"+strnum+"'"; sql.rs.Open(CRecordset::snapshot, vSQL1, CRecordset::readOnly); while(!sql.rs.IsEOF()) { i=0; sql.rs.GetFieldValue("num",strnum); m_result.InsertItem(i,strnum); sql.rs.GetFieldValue("bname",strname); m_result.SetItemText(i,1,strname); sql.rs.GetFieldValue("author",strat); m_result.SetItemText(i,2,strat); sql.rs.GetFieldValue("remain",strrem); m_result.SetItemText(i,3,strrem); sql.rs.MoveNext(); i++; } sql.rs.Close(); } 19 void Cchaxun::Onadd() { // TODO: Add your control notification handler code here UpdateData(true); CString strnum2,strname2,strat2,strrem2,vSQL2; CString add,check; m_num2.GetWindowText(strnum2); m_name2.GetWindowText(strname2); m_author2.GetWindowText(strat2); m_remain2.GetWindowText(strrem2); if(sql2.m_db.IsOpen()) { sql2.m_db.Close(); } vSQL2="DRIVER={SQL Server};SERVER=(local);Database=StuCou;UID=sa;PWD="; sql2.m_db.OpenEx(vSQL2,0); sql2.rs.m_pDatabase=&sql2.m_db; sql2.rs.Close(); add="insert into book values('"+strnum2+"','"+strname2+"','"+strat2+"','"+strrem2+"')"; sql2.m_db.ExecuteSQL(add); if(sql2.m_db.CanUpdate()) { AfxMessageBox("添加成功"); } } void Cchaxun::Onupdate() { 20 CString strnum3,strname3,strat3,strrem3,vSQL3; CString update; m_num3.GetWindowText(strnum3); m_name3.GetWindowText(strname3); m_author3.GetWindowText(strat3); m_remain3.GetWindowText(strrem3); if(sql3.m_db.IsOpen()) { sql3.m_db.Close(); } vSQL3="DRIVER={SQL Server};SERVER=(local);Database=StuCou;UID=sa;PWD="; sql3.m_db.OpenEx(vSQL3,0); update="update book set bname='"+strname3+"',author='"+strat3+"',remain='"+strrem3+"' where num='"+strnum3+"'"; sql3.m_db.ExecuteSQL(update); if(sql3.m_db.CanUpdate()) { AfxMessageBox("更新成功"); } } void Cchaxun::Ondelete() { CString strnum4,vSQL4; CString del; m_num4.GetWindowText(strnum4); if(sql4.m_db.IsOpen()) { sql4.m_db.Close(); 21 return; } vSQL4="DRIVER={SQL Server};SERVER=(local);Database=StuCou;UID=sa;PWD="; sql4.m_db.OpenEx(vSQL4,0); sql4.rs.m_pDatabase=&sql4.m_db; del="delete from book where num='"+strnum4+"'"; sql4.m_db.ExecuteSQL(del); if(sql4.m_db.CanUpdate()) { AfxMessageBox("删除成功"); return; } }

我有图书管理系统的设计

   

返回顶部
本页内容来自于网友发表,若有相关事宜请照下面的电邮联系
感悟网