mfc界面的图书管理系统(共29页).doc
《mfc界面的图书管理系统(共29页).doc》由会员分享,可在线阅读,更多相关《mfc界面的图书管理系统(共29页).doc(29页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、精选优质文档-倾情为你奉上目录专心-专注-专业数据结构课程设计图书管理1.设计目的“数据结构”是计算机科学与技术专业一门十分重要的专业技术基础课,计算机科学各领域及有关的应用软件都要使用到各种数据结构。对于从事计算机科学及其应用的科技工作者来说,数据结构与算法是必须透彻地掌握的重要基础。学习数据结构与算法的最终目的是解决实际的应用问题,特别是非数值计算类型的应用问题。课程设计是加强学生实践能力的一个强有力手段。课程设计所安排的题目,在难度和深度方面都大于平时的上机训练,要求同学在完成设计和编写中小型软件的过程中,深化对数据结构与算法课程中基本概念、理论和方法的理解;训练综合运用所学知识处理实际
2、问题的能力,强化面向对象的程序设计理念;使同学的程序设计与调试水平有一个明显的提高。课程设计要求学生在完成程序设计的同时能够撰写比较规范的设计报告。严格实施课程设计这一环节,对于学生基本程序设计素养的培养和软件工作者工作作风的训练,将起到显著的促进作用。2.问题描述采用Visual C+编程语言开发工具和MFC,设计并实现图书管理系统。该系统实现了图书管理中的添加,查询,删除,全部查询,退出等功能,以及汇总图书清单,包括对书籍各项信息的汇总。3.需求分析3.1 数据需求图书信息:书名,所属类型,作者,定价,出版日期以及ISBN。3.2 基本功能需求1.汇总图书清单,包括对书籍各项信息的汇总;(
3、各项信息包括书名,所属类型,作者,定价,出版日期以及ISBN。)2.对书籍信息的增、删、查、全部查询等功能。其中删除功能主要依靠第一无二的ISBN,查询功能可以依靠任何一种图书信息(即书名,所属类型,作者,定价,出版日期以及ISBN任意一种)。3.3 非功能性需求用户界面需求:简洁、易用、易懂、友好的用户界面。硬件要求:装有Visual C+6.0的计算机。可靠性需求:保证用户在正常使用本系统时,用户的操作或误操作不会产生数据的丢失。4.概要设计4.1 数据结构用结构struct定义图书信息,用链表实现对图书信息的存储及维护。以文件的形式保存图书信息到硬盘。4.2 系统包含的函数函数原型:vo
4、id CAddDlg:OnButtonAdd()功能:在链表结尾添加一个结点并将链表信息存入文件“图书管理.txt”函数原型:void CChaxunDlg: OnButtonChaxun()功能: 完成查找用户信息的功能并在编辑框和用户列表中显示出来函数原型:void CDelDlg:OnButton1()功能: 删除链表和用户列表的当前结点函数原型:void CLookDlg:OnButtonDialog()功能: 在编辑框和用户列表中显示全部书籍出来4.3 函数间的关系1.进入程序调用booklist()从硬盘读取数据,并将信息放入链表中。2.用函数CDelDlg:OnButton1()
5、删除链表和用户列表的当前结点。3.可用函数CAddDlg:OnButtonAdd()在链表结尾添加一个结点并在用户列表中显示4.CChaxunDlg: OnButtonChaxun()可实现按不同方式进行图书查询。5.CLookDlg:OnButtonDialog()在编辑框和用户列表中显示全部书籍出来。按书名按从书类型按作者按出版日期按价格按ISBN图书管理系统添加书目查询书目删除书目查询全部书籍退出系统4.4 系统功能模块图图4-1 系统功能模块图5.详细设计5.1 结构体的详细定义class booklistpublic:CString bookname;/书名CString congs
6、huname;/丛书种类CString writer;/作者CString price;/价格CString dateyear;/出版年份CString datemonth;/出版月份CString ISBN;booklist *next;5.2 系统函数详细介绍增加书籍:void CAddDlg:OnButtonAdd() / TODO: Add your control notification handler code hereUpdateData();extern booklist *head_book;if(m_bookname=|m_congshuname=|m_isbn=|m_m
7、onth=|m_price=|m_writer=|m_year=)MessageBox(请填写完整图书信息);else booklist *p=head_book;booklist *Book=new booklist;Book-next=NULL;Book-bookname=m_bookname;Book-congshuname=m_congshuname;Book-datemonth=m_month;Book-dateyear=m_year;Book-ISBN=m_isbn;Book-price=m_price;Book-writer=m_writer;if(head_book=NULL)
8、head_book=Book;else if(p-ISBNm_isbn)Book-next=head_book;head_book=Book;elsewhile(p-next)if(p-next-ISBNm_isbn)Book-next=p-next;p-next=Book;break;p=p-next;if(p-next=NULL)p-next=Book;MessageBox(添加成功);char* pszFileName = .data.txt;CStdioFile myFile;CFileException fileException;CString str;if(!myFile.Ope
9、n(pszFileName,CFile:modeCreate|CFile:modeReadWrite,&fileException)MessageBox(打开失败);TRACE(Cannotopenfile%s,error=%un,pszFileName,fileException.m_cause);myFile.SeekToEnd();myFile.WriteString(书名,丛书名,作者,定价(元),出版年月, ISBN );myFile.WriteString(n);/extern booklist *head_book;for(p=head_book;p;p=p-next)str.F
10、ormat(%s,%s,%s,%s,%s.%s,%s,p-bookname,p-congshuname,p-writer,p-price,p-dateyear,p-datemonth,p-ISBN);myFile.SeekToEnd();myFile.WriteString(str);myFile.WriteString(n);/DestroyWindow(this); CDialog:OnCancel();BOOL CAddDlg:OnInitDialog() CDialog:OnInitDialog();/ TODO: Add extra initialization herem_isbn
11、=978-7-115-;UpdateData(FALSE);return TRUE; / return TRUE unless you set the focus to /a control / EXCEPTION: OCX Property Pages should /return FALSEvoid CAddDlg:OnCancel2() / TODO: Add your control notification handler code herem_bookname=;m_congshuname=;m_isbn=;m_month=;m_price=;m_writer=;m_year=;U
12、pdateData(FALSE);查询书籍:BOOL CChaxunDlg:OnInitDialog() CDialog:OnInitDialog();LONG lStyle;lStyle = GetWindowLong(m_list.m_hWnd, GWL_STYLE);/获/取当前窗口stylelStyle &= LVS_TYPEMASK; /清除显示方式位lStyle |= LVS_REPORT; /设置styleSetWindowLong(m_list.m_hWnd, GWL_STYLE, lStyle);/设置/styleDWORD dwStyle = m_list.GetExten
13、dedStyle();dwStyle |= LVS_EX_FULLROWSELECT;/选中某行使整行高亮 /(只适用与report风格的listctrl)dwStyle |= LVS_EX_GRIDLINES;/网格线(只适用与report /风格的listctrl)/ dwStyle |= LVS_EX_CHECKBOXES;/item前生成checkbox控件m_list.SetExtendedStyle(dwStyle); /设置扩展风格m_list.InsertColumn( 0, 书名, LVCFMT_LEFT, 190 ); /插入列 m_list.InsertColumn( 1
14、, 丛书名, LVCFMT_LEFT, 100 ); m_list.InsertColumn( 2, 作者, LVCFMT_LEFT, 120 ); m_list.InsertColumn( 3, 定价, LVCFMT_LEFT, 50 ); m_list.InsertColumn( 4, 出版日期, LVCFMT_LEFT, 80 ); m_list.InsertColumn( 5, ISBN, LVCFMT_LEFT, 140 ); / TODO: Add extra initialization here m_bookname=不限; m_isbn=不限; m_price=不限; m_y
15、ear=不限; m_month=不限; m_writer=不限; m_congshuname=不限; UpdateData(FALSE); return TRUE; / return TRUE unless you set the focus /to a control / EXCEPTION: OCX Property Pages should return FALSEvoid CChaxunDlg:OnButtonChaxun() / TODO: Add your control notification handler code herem_list.DeleteAllItems( );
16、int i=0;/标记查找到的本数CString str;extern booklist *head_book;/m_ListBox.ResetContent();UpdateData();int nRow;for(booklist *p=head_book;p;p=p-next)if(m_bookname=|m_bookname=不限|m_bookname=p-bookname)if(m_congshuname=|m_congshuname=不限|m_congshuname=p-congshuname)if(m_writer=|m_writer=不限|m_writer=p-writer)if
17、(m_price=|m_price=不限|m_price=p-price)if(m_isbn=|m_isbn=不限|m_isbn=p-ISBN)if(m_year=|m_year=不限|m_year=p-dateyear)if(m_month=|m_month=不限|m_month=p-datemonth|m_month=p-datemonth.Left(2)|(m_month=p-datemonth.Left(1)&p-datemonth.Mid(1,1)=()str.Format(%s,p-bookname);m_ListBox.AddString(str);str.Format(%s.%
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- mfc 界面 图书 管理 系统 29
限制150内