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 On
33、Btnok();/AFX_MSGDECLARE_MESSAGE_MAP();/AFX_INSERT_LOCATION/ Microsoft Visual C+ will insert additional declarations immediately before the previous line.#endif / !defined(AFX_ADMINMANAGE_H_433F88A2_8B7D_4ED0_A537_1D4A2485C49B_INCLUDED_)5设计体会计算机具有强大的功能,它现已应用于各行各业,在人们生活的各个领域起着非常重要的作用。它的高速运算能力极大的提高了工作效
34、率,把人们从浩瀚的计算中解放出来,并且在高、尖的大型科学计算和大型信息处理及运算需求高的领域发挥着重要的作用。计算机在人们的日常生活中能帮助人们发送邮件,网上购物,远程学习,休闲娱乐,使人们的生活变得快捷方便,它推动了人类社会的发展与进步,对人类社会生产生活的各个领域产生了极其深刻的影响。正是因为计算机有这些强大的功能,学习计算机知识与计算机交流才显得尤为重要。因此学习VC+语言就显得更为重要,VC+语言作为国际上广泛流行的通用程序设计语言,在计算机的研究和应用中已展现出强大的生命力。VC+语言兼顾了诸多高级语言的特点。通过此次图书管理系统的设计,使我对VC+程序设计有了深一步的了解,对系统设
35、计及开发有了比较全面的思路。首先,通过对系统进行需求分析,确定各个功能函数;然后一个个具体地对他们进行编程,并且仔细检查看是否有错;在完成这一步之后才开始构造主函数,通过主函数把各个功能函数联系起来,编译修改错误和不足之处 在实际编程过程中会遇到很多不同的错误,有时候是一些很明显很细节的语法错误,这些可以通过编译来查找错误的所在,然而那些并不明显难以查找的隐性错误却真让人头痛。同时我翻阅了大量的书籍,也在网上查了很多资料。 总之,此次系统设计给我们提供了一个既动手又动脑、自学、独立实践的机会,使我们养成了勤翻阅各种相关资料的习惯,将书本上的理论知识和实际有机地结合起来,锻炼了实际分析问题和解决
36、问题的能力,提高了适应实际、实践编程的能力,为今后的学习和实践打下了良好的基础。6参考文献1 郑阿奇 visual c+实训 M. 北京:清华大学出版社,20052 韩存兵 visual c+数据库编程实战M. 北京: 科学出版社, 20033 原奕 visual c+实践与提高M. 北京: 中国铁道出版社, 20064 求是科技 visual c+数据库通用模块及典型系统开发M. 北京: 人民邮电出版社, 2006合同管理制度1 范围本标准规定了龙腾公司合同管理工作的管理机构、职责、合同的授权委托、洽谈、承办、会签、订阅、履行和变更、终止及争议处理和合同管理的处罚、奖励;本标准适用于龙腾公司
37、项目建设期间的各类合同管理工作,厂内各类合同的管理,厂内所属各具法人资格的部门,参照本标准执行。2 规范性引用中华人民共和国合同法龙腾公司合同管理办法3 定义、符号、缩略语无4 职责4.1 总经理:龙腾公司经营管理的法定代表人。负责对厂内各类合同管理工作实行统一领导。以法人代表名义或授权委托他人签订各类合法合同,并对电厂负责。4.2 工程部:是发电厂建设施工安装等工程合同签订管理部门;负责签订管理基建、安装、人工技术的工程合同。4.3 经营部:是合同签订管理部门,负责管理设备、材料、物资的订购合同。4.5 合同管理部门履行以下职责:4.5.1 建立健全合同管理办法并逐步完善规范;4.5.2 参
38、与合同的洽谈、起草、审查、签约、变更、解除以及合同的签证、公证、调解、诉讼等活动,全程跟踪和检查合同的履行质量;4.5.3 审查、登记合同对方单位代表资格及单位资质,包括营业执照、经营范围、技术装备、信誉、越区域经营许可等证件及履约能力(必要时要求对方提供担保),检查合同的履行情况;4.5.4 保管法人代表授权委托书、合同专用章,并按编号归口使用;4.5.5 建立合同管理台帐,对合同文本资料进行编号统计管理;4.5.6 组织对法规、制度的学习和贯彻执行,定期向有关领导和部门报告工作;4.5.7 在总经理领导下,做好合同管理的其他工作,4.6 工程技术部:专职合同管理员及材料、燃料供应部兼职合同管理员履行以下职责:4.6.1 在主任领导下,做好本部门负责的各项合同的管理工作,负责保管“法人授权委托书”;4.6.2 签订合同时,检查对方的有关证件,对合同文本内容依照法规进行检查,检查合同标的数量、金额、日期、地点、质量要求、安全责任、违约责任是否明确,并提出补充及修改意见。重大问题应及时向有关领导报告,提出解决方案;4.6.3 对专业对口的合同统一编号、登记、建立台帐,分类整理归档。对合同承办部门提供相关法规咨询和日常协作服务工作;4.6.4 工程技术部专职合同管理员负责收集整理各类合同,建立合同统计台帐,并负责沈 阳 大 学
©2010-2025 宁波自信网络信息技术有限公司 版权所有
客服电话:4008-655-100 投诉/维权电话:4009-655-100