版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、课程设计说明书 NO.20图书管理系统1.课程设计目的 VC+程序设计课程设计是计算机科学与技术专业的VC+程序设计课程的综合性实践环节。VC+程序设计是一门实用性很强的学科,是进行软件开发的主要工具,只有进行实际操作,才能将理论知识和实际应用有机的结合起来,锻炼学生分析解决实际问题的能力,提高学生实际运用的能力,为学生毕业设计,日后工作中的软件开发打下良好的基础。具体掌握如下技能:1 掌握VC+6.0开发环境开发软件的方法;2 掌握单文档应用程序结构,熟悉多文档和基于对话框应用程序的方法;3 掌握资源编辑器进行图标、光标、菜单、工具栏、对话框等资源的编辑,熟悉应用程序界面的设计方法;4 掌握
2、对话框,常用控件和Active控件的使用方法;5 熟悉文档结构试图,掌握文档和视图,视图与视图的数据传递技巧;6 熟悉切分窗口及一档多视的编程方法;7 实现视图和对话框控件等窗口中绘制图形的方法;8 掌握用MFC编写ODBC数据库应用程序的方法和技巧。2.系统需求分析系统开发的总体任务是实现图书信息管理。下面就其系统功能作简单的说明。主要完成的功能有:登录功能、图书管理、借阅信息、读者查询、新增图书。图书管理系统登陆功能图书管理借阅信息读者查询新增图书图1.系统总体设计3.设计方案论证3.1数据库设计1)逻辑结构图书管理系统数据模型:图书(编号,名称,作者,出版日期,登记日期)管理员(编号,姓
3、名,性别,年龄,工作时间)会员(编号,姓名,性别,家庭住址,联系方式)2)图书信息表字段名称数据类型说明tno文本图书编号tname文本图书名称twriter文本作者姓名tcbs文本出版社名称Tcbrq日期/时间出版日期tdgrq日期/时间登记日期表1.图书信息表1为图书信息数据表图书信息数据表记录了图书的基本信息,图书的编号,名称,作者姓名,出版社名称,出版日期,登记日期。3)管理员信息表字段名称数据类型说明gno数字管理员编号gname文本姓名gsex文本管理员性别gage数字管理员年龄ggztime数字工作时间表2管理员信息 表2为管理员信息数据表管理员信息数据表记录了管理员的基本信息,
4、管理员的编号,姓名,性别,年龄,工作时间。4)会员信息表字段名称数据类型说明hno数字会员编号hname文本会员姓名hsex文本会员性别haddress数字家庭住址htel数字联系方式表3.会员信息表3为会员信息数据表会员信息数据表记录了会员的基本信息,会员的编号,姓名,性别,家庭住址,联系方式。3.2模块设计图2.管理员模块、图2为管理员模块,在管理员模式下可以进行的修改密码,信箱管理,天家图书,新书入库,还书管理等管理员功能。图3.用户模块图3为用户模块,会员模式下用户的功能,如修改密码,信箱管理,个人信息,图书查询等。4应用软件的实现与运行结果4.1显示模块1登陆 输入账号密码时显示的界
5、面:图4.登录界面2进入图书管理系统图5.进入管理系统其中系统登录可以登录和退出系统,登录后可以查看图书资料、读者资料,进行图书馆里和读者管理;图书资料中可以增加、修改、删除、查询图书信息;读者资料中可以增加、修改、删除、查询读者信息;结束管理中可以借阅相关图书;还书管理可以归还借阅图书。3图书信息图6.图书信息4借阅信息图7.借阅信息5.借阅查询图8.借阅查询6. 读者信息管理图9.读者信息管理7.归还图书图10.归还图书8. 续借图书图11.续借图书9.新增图书图12.新增图书10.新增读者图13.新增读者4.2具体实现#include stdafx.h#include LMSystem.
6、h#include AddBookManage.h#ifdef _DEBUG#define new DEBUG_NEW#undef THIS_FILEstatic char THIS_FILE = _FILE_;#endif/ CAddBookManage dialogCAddBookManage:CAddBookManage(CWnd* pParent /*=NULL*/): CDialog(CAddBookManage:IDD, pParent)/AFX_DATA_INIT(CAddBookManage)m_actorEdit = _T();m_bookIDEdit = _T();m_bo
7、okNameEdit = _T();m_bookTypeEdit = _T();m_positionEdit = _T();m_yearEdit = _T();m_ISBNEdit = _T();/AFX_DATA_INITvoid CAddBookManage:DoDataExchange(CDataExchange* pDX)CDialog:DoDataExchange(pDX);/AFX_DATA_MAP(CAddBookManage)DDX_Control(pDX, IDC_POSITIONEDIT, m_ctrPosition);DDX_Control(pDX, IDC_YEARED
8、IT, m_ctrYear);DDX_Control(pDX, IDC_BOOKTYPEEDIT, m_ctrBookType);DDX_Control(pDX, IDC_BOOKNAMEEDIT, m_ctrBookName);DDX_Control(pDX, IDC_BOOKLIST, m_bookList);DDX_Control(pDX, IDC_BOOKIDEDIT, m_ctrBookIDEdit);DDX_Control(pDX, IDC_ACTOREDIT, m_ctrActorEdit);DDX_Text(pDX, IDC_ACTOREDIT, m_actorEdit);DD
9、X_Text(pDX, IDC_BOOKIDEDIT, m_bookIDEdit);DDX_Text(pDX, IDC_BOOKNAMEEDIT, m_bookNameEdit);DDX_Text(pDX, IDC_BOOKTYPEEDIT, m_bookTypeEdit);DDX_Text(pDX, IDC_POSITIONEDIT, m_positionEdit);DDX_Text(pDX, IDC_YEAREDIT, m_yearEdit);DDX_Text(pDX, IDC_ISBNEDIT, m_ISBNEdit);/AFX_DATA_MAPBEGIN_MESSAGE_MAP(CAd
10、dBookManage, CDialog)/AFX_MSG_MAP(CAddBookManage)ON_EN_KILLFOCUS(IDC_BOOKIDEDIT, OnKillfocusBookidedit)ON_BN_CLICKED(IDC_ADDBUTTON, OnAddbutton)/AFX_MSG_MAPEND_MESSAGE_MAP()/ CAddBookManage message handlersBOOL CAddBookManage:OnInitDialog() CDialog:OnInitDialog();/ TODO: Add extra initialization her
11、eiFlag=0;DBOpt.DBConnecte();m_bookList.SetExtendedStyle(LVS_EX_GRIDLINES);m_bookList.InsertColumn(0,ISBN编号,LVCFMT_LEFT,120);m_bookList.InsertColumn(1,书名编号,LVCFMT_LEFT,120);/m_bookList.InsertColumn(2,年代,LVCFMT_LEFT,120);/m_bookList.InsertColumn(3,作者,LVCFMT_LEFT,120);/m_bookList.InsertColumn(4,类型,LVCF
12、MT_LEFT,120);/m_bookList.InsertColumn(5,位置,LVCFMT_LEFT,120);return TRUE; / return TRUE unless you set the focus to a control / EXCEPTION: OCX Property Pages should return FALSEvoid CAddBookManage:OnKillfocusBookidedit() / TODO: Add your control notification handler code hereUpdateData(TRUE); m_bookL
13、ist.DeleteAllItems(); CString strSQL; m_bookIDEdit.TrimRight(); strSQL.Format(select * from booktype where ISBN_ID=+m_bookIDEdit+); DBOpt.BookTypeOperate(strSQL); if (DBOpt.curItem=1) m_bookNameEdit=DBOpt.strArrayOne.GetAt(0); m_yearEdit=DBOpt.strArrayTwo.GetAt(0); m_actorEdit=DBOpt.strArrayThree.Ge
14、tAt(0); m_bookTypeEdit=DBOpt.strArrayFour.GetAt(0);/ m_bookIDEdit=DBOpt.strArrayFive.GetAt(0); iFlag=1; m_ctrActorEdit.EnableWindow(FALSE); m_ctrBookName.EnableWindow(FALSE); m_ctrBookType.EnableWindow(FALSE); m_ctrYear.EnableWindow(FALSE); m_ctrPosition.EnableWindow(FALSE);elseiFlag=0;m_ctrActorEdi
15、t.EnableWindow(TRUE);m_ctrBookName.EnableWindow(TRUE);m_ctrBookType.EnableWindow(TRUE);m_ctrYear.EnableWindow(TRUE); m_ctrPosition.EnableWindow(TRUE);m_bookNameEdit=;m_yearEdit=;m_actorEdit=; m_bookTypeEdit=;m_positionEdit=; strSQL.Format(select * from bookid where ISBN_ID=+m_bookIDEdit+);DBOpt.Read
16、BookID(strSQL);for(int i=0;iDBOpt.curItem;i+) m_bookList.InsertItem(i,DBOpt.strArrayTwo.GetAt(i) ; m_bookList.SetItemText(i,1,DBOpt.strArrayOne.GetAt(i);strSQL.Format(select * from position where ISBN_ID=+m_bookIDEdit+);CString strAddress;strAddress=DBOpt.ReadPosition(strSQL); for( i=0;iDBOpt.curIte
17、m;i+)m_positionEdit=strAddress;UpdateData(FALSE);void CAddBookManage:OnAddbutton() / TODO: Add your control notification handler code hereUpdateData(TRUE);CString strSQL;if (m_ISBNEdit.GetLength()10)MessageBox(图书编号为空或长度太长!);return;if (m_bookIDEdit.GetLength()10)MessageBox(ISBN编号为空或长度太长!);return;if(i
18、Flag=0) if (m_bookNameEdit.GetLength()20)MessageBox(书名为空或长度太长,请重新输入!);return;if (m_positionEdit.GetLength()20)MessageBox(书名为空或长度太长,请重新输入!);return;if (m_yearEdit.GetLength()10|m_actorEdit.GetLength()20|m_bookTypeEdit.GetLength()20) MessageBox(年代、作者、图书类型或方位长度太长,请重新输入!);return; strSQL.Format(insert int
19、o booktype(ISBN_ID,book_name,yeartime,actor,book_type,allnumber,lastnumber)values(%s,%s,%s,%s,%s,1,1),m_bookIDEdit,m_bookNameEdit,m_yearEdit,m_actorEdit,m_bookTypeEdit);DBOpt.ReaderTypeOperate(strSQL); strSQL.Format(insert into position(ISBN_ID,book_position)values(%s,%s),m_bookIDEdit,m_positionEdit
20、); DBOpt.ReaderTypeOperate(strSQL);elsestrSQL.Format(select * from bookid where book_id=%s,m_ISBNEdit);DBOpt.ReadBookID(strSQL);if (DBOpt.curItem0)MessageBox(此书已经存在!);return; strSQL.Format(update booktype set allnumber=allnumber+1,lastnumber=lastnumber+1 where ISBN_ID=%s,m_bookIDEdit); DBOpt.ReaderT
21、ypeOperate(strSQL);strSQL.Format(insert into bookid(ISBN_ID,book_id)values(%s,%s),m_bookIDEdit,m_ISBNEdit);DBOpt.ReaderTypeOperate(strSQL);OnKillfocusBookidedit();#if _MSC_VER 1000#pragma once#endif / _MSC_VER 1000/ AddBookManage.h : header file/#include DBOperate.h/ CAddBookManage dialogclass CAddB
22、ookManage : public CDialog/ Constructionpublic:CAddBookManage(CWnd* pParent = NULL); / standard constructor CDBOperate DBOpt;int iFlag;/ Dialog Data/AFX_DATA(CAddBookManage)enum IDD = IDD_ADDBOOKDIALOG ;CEditm_ctrPosition;CEditm_ctrYear;CEditm_ctrBookType;CEditm_ctrBookName;CListCtrlm_bookList;CEdit
23、m_ctrBookIDEdit;CEditm_ctrActorEdit;CStringm_actorEdit;CStringm_bookIDEdit;CStringm_bookNameEdit;CStringm_bookTypeEdit;CStringm_positionEdit;CStringm_yearEdit;CStringm_ISBNEdit;/AFX_DATA/ Overrides/ ClassWizard generated virtual function overrides/AFX_VIRTUAL(CAddBookManage)protected:virtual void Do
24、DataExchange(CDataExchange* pDX); / DDX/DDV support/AFX_VIRTUAL/ Implementationprotected:/ Generated message map functions/AFX_MSG(CAddBookManage)virtual BOOL OnInitDialog();afx_msg void OnKillfocusBookidedit();afx_msg void OnAddbutton();/AFX_MSGDECLARE_MESSAGE_MAP();/AFX_INSERT_LOCATION/ Microsoft
25、Visual C+ will insert additional declarations immediately before the previous line.#endif / !defined(AFX_ADDBOOKMANAGE_H_CBF00BEE_87DD_4CD9_8B61_134915710C31_INCLUDED_)#include stdafx.h#include LMSystem.h#include AdminManage.h#ifdef _DEBUG#define new DEBUG_NEW#undef THIS_FILEstatic char THIS_FILE =
26、_FILE_;#endif/ CAdminManage dialogCAdminManage:CAdminManage(CWnd* pParent /*=NULL*/): CDialog(CAdminManage:IDD, pParent)/AFX_DATA_INIT(CAdminManage)m_editPassward = _T();/AFX_DATA_INITvoid CAdminManage:DoDataExchange(CDataExchange* pDX)/ Implementationprotected:/ Generated message map functions/AFX_
27、MSG(CAddBookManage)virtual BOOL OnInitDialog();afx_msg void OnKillfocusBookidedit();afx_msg void OnAddbutton();/AFX_MSGDECLARE_MESSAGE_MAP();/AFX_INSERT_LOCATION/ Microsoft Visual C+ will insert additional declarations immediately before the previous line.#endif / !defined(AFX_ADDBOOKMANAGE_H_CBF00B
28、EE_87DD_4CD9_8B61_134915710C31_INCLUDED_)#include stdafx.h#include LMSystem.h#include AdminManage.h#ifdef _DEBUG#define new DEBUG_NEW#undef THIS_FILEstatic char THIS_FILE = _FILE_;#endif/ CAdminManage dialogCAdminManage:CAdminManage(CWnd* pParent /*=NULL*/): CDialog(CAdminManage:IDD, pParent)/AFX_DA
29、TA_INIT(CAdminManage)m_editPassward = _T();/AFX_DATA_INIT void CAdminManage:DoDataExchange(CDataExchange* pDX)CDialog:DoDataExchange(pDX);/AFX_DATA_MAP(CAdminManage)DDX_Text(pDX, IDC_EDITPASSWARD, m_editPassward);/AFX_DATA_MAPBEGIN_MESSAGE_MAP(CAdminManage, CDialog)/AFX_MSG_MAP(CAdminManage)ON_BN_CL
30、ICKED(IDC_BTNOK, OnBtnok)/AFX_MSG_MAPEND_MESSAGE_MAP()/ CAdminManage message handlersvoid CAdminManage:OnBtnok() / TODO: Add your control notification handler code hereUpdateData();if (m_editPassward.GetLength()10)MessageBox(密码长度不能超过10个字符!);return;if (m_editPassward.GetLength() 1000#pragma once#endi
31、f / _MSC_VER 1000/ AdminManage.h : header file/#include DBOperate.h/ CAdminManage dialogclass CAdminManage : public CDialog/ Constructionpublic:CAdminManage(CWnd* pParent = NULL); / standard constructor CDBOperate DBOpt;CString strID;/ Dialog Data/AFX_DATA(CAdminManage)enum IDD = IDD_ADMINMANAGE ;CS
32、tringm_editPassward;/AFX_DATA/ Overrides/ ClassWizard generated virtual function overrides/AFX_VIRTUAL(CAdminManage)protected:virtual void DoDataExchange(CDataExchange* pDX); / DDX/DDV support/AFX_VIRTUAL/ Implementationprotected:/ Generated message map functions/AFX_MSG(CAdminManage)afx_msg void OnBtnok();/AFX_MSGDECLARE_MESSAGE_MAP();/AFX_INS
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年度旅游行业高级管理人才引进合同
- 2025年度税务局查账财务清算合同
- 2025年度智能新能源汽车合作协议转让股份合同模板
- 二零二五年度合同主体变更补充协议的履行与变更
- 二零二五年度茶楼转让及茶艺养生馆合作合同范本:茶楼与茶艺养生馆合作转让协议
- 二零二五年度行政事业单位国有房屋租赁合同(安全风险评估)
- 二零二五年度订车合同违约赔偿标准与汽车行业信用体系建设协议
- 二零二五年度商业秘密侵权违约赔偿合同样本
- 二零二五年度旅游行业连带担保合同
- 2025年旅游女性健康养生合同
- 2025年度高端商务车辆聘用司机劳动合同模板(专业版)4篇
- GB/T 45107-2024表土剥离及其再利用技术要求
- 2025长江航道工程局招聘101人历年高频重点提升(共500题)附带答案详解
- 2025年黑龙江哈尔滨市面向社会招聘社区工作者1598人历年高频重点提升(共500题)附带答案详解
- 维吾尔医优势病种
- 全国教学设计大赛一等奖英语七年级上册(人教2024年新编)《Unit 2 Were Family!》单元教学设计
- 【独家揭秘】2024年企业微信年费全解析:9大行业收费标准一览
- 1-1 拥抱梦想:就这样埋下一颗种子【2022中考作文最热8主题押题24道 构思点拨+范文点评】
- 职业暴露与防护
- 酒店行业客源渠道分析
- AVL-CRUISE-2019-整车经济性动力性分析操作指导书
评论
0/150
提交评论