图书库存管理系统
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
目录
一、需求与功能分析 2
二、系统总体框架 2
三、逻辑设计 3
四、类的设计与分析 7
五、数据库表结构设计 9
六、特色算法分析 9
七、功能测试 11
八、存在的不足与对策 13
九、使用说明 13
十、程序源代码 14
一.需求与功能分析
本系统为图书库存管理系统。其主要功能为让用户实现对图书库存的管理,包括查询图书信息,添加新的图书,更新图书信息,删除旧的图书。具体功能如下:查询图书信息:使用此功能,用户可以查看到所查图书的全部信息,包括图书编号,图书名字,图书作者姓名,库存量。
添加新的图书:使用此功能,用户可以向库存中插入新的图书,即向数据库中插入新的元组,包括输入图书编号,图书名字,图书作者姓名,库存量。
更新图书信息:使用此功能,用户可以对图书的信息进行更新,即更新图书名字,图书作者姓名,库存量。
删除旧的图书:使用此功能,用户可以删除旧的图书,该图书所在的元组将整个都被删除。
二、系统总体框架
三.逻辑设计
1.登陆系统
类图:
在该模块中,定义一个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 (pare(str)==0&&pare(str)==0)
{
Cchaxun dilog=new Cchaxun;
dilog.DoModal();
}
}
2.查询图书信息
类图:
在该模块中,定义一个Onselect()函数来实现对数据库中元组的查询,即查询图书信息.具体的代码如下:
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,"图书名称");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();
}
3.添加新的图书
类图:
在该模块中,定义一个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("添加成功");
}
}
4. 更新图书信息
类图: