




已阅读5页,还剩14页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
摘要图书管理系统是典型的信息管理系统(MIS),其开发主要包括后台数据库的建立和维护以及前端应用程序的开发两个方面。对于前者要求建立起数据一致性和完整性强、数据安全性好的库。而对于后者则要求应用程序功能完备,易使用等特点。采用C+作为开发工具,通过对C+进行深入的学习和应用,主要完成利用图书管理系统对图书记录进行统一管理,包括新增图书记录,更改图书记录,删除图书记录等功能,实现图书管理工作的系统化,规范化和自动化,为图书管理提供便利。同时是学习完面向对象程序设计课程后进行的一次全面的综合练习。有助于加深对面向对象程序设计中基础理论和基本知识的理解,培养了实践能力,促进理论与实践的结合。关键字:图书管理系统 C+ 信息管理系统 AbstractBooks management system management system is the typical information management system (MIS), its development mainly includes the setting and maintenance of database and the programming of the frontend application. The former required establish data consistency and integrality, data security good storehouse. For the latter requires the application program function complete, easy to use, etc. Using c + + as development tools through in-depth study of c + + and applications, mainly completes use books management system management system of book records, including new unified management, change book record books record, delete, realize functions such as book record books management work of the systematic, standardization and automation, provides the convenience for the books management. Meanwhile is after studying the object-oriented program design course of time after comprehensive practice. Help deepen our understanding of the object-oriented programming basic theory and basic knowledge understanding, cultivate the practice ability, promoting the combination of theory with practice. Key word: books management system management system c + + information management system 第一章 绪论1.1图书管理系统概述随着社会的发展,人们生活水平的提高,物质文化的发展已经远远满足不了人们的需求,精神文明有了飞速的发展,因此图书事业的发展就成为精神文明进步的一个动力。在迈入二十一世纪的今天,对图书管理显得极其重要,合理的管理不仅反映一个国家的科技水平,而且影响人们对知识掌握的速度和质量。在知识经济到来的今天,用计算机控制图书馆的工作由自动化系统运行而完成。这不仅省了人力,而且还提高了工作效率和服务质量,而且还加速了图书的流通。1.2图书管理的目的和意义随着各高等院校的规模不断扩大,图书馆的藏书、管理人员、读者的数量也越来越多,图书管理涉及到大量的数据处理,传统的人工系统已经不能完成庞大的数据处理,因为图书的情况是随时改变的,因此必须对图书进行动态的管理,而这对于管理人员来说是一件比较复杂的事情。因此,为方便对图书馆书籍、读者资料、借还书等进行高效的管理。提高业务流程效率,让管理员从繁重的工作中解脱出来,使管理员在使用一个软件以后能极其容易地对所有图书进行管理,并且准确无误,轻松自如。因此开发一个图书管理系统是当务之急,也是本论文选题的重要意义和研究宗旨。总之,建立图书馆的计算机自动化管理系统,不但可以大大提高图书流通率,而且推动了社会文化生活的进步。第二章 系统相关技术2.1 C+ 概述C+语言是一种应用较广的面向对象的程序设计语言,使用它可以实现面向对象的程序设计。面向对象的设计与面向过程的设计是有很大区别的,面向对象的程序设计是在面向过程的程序设计的基础上一个质的飞跃。要学会面向对象的程序设计,首先要学会一种面向对象的语言,即要学会用VC编程,就要先有C+的基础,而学习C+语言首先要认识它面向对象的特性和实现面向对象的方法。2.11 C+程序结构的基本组成部分 预处理命令,C+提供了三类预处理命令:宏定义命令、文件包含命令、条件编译命令。 输入输出,C+程序中总是少不了输入和输出的语句,实现与程序内部的信息交流。特别是屏幕输出的功能,几乎每个程序都要用到,使用它把计算机的结果显示在屏幕上。 函数,C+的程序是由若干个文件组成的,每个文件又是由若干个函数组成,因此,可以认为C+的程序就是函数串,即由若干个函数组成,函数与函数之间是相对的,并且是并行的,函数之间可以调用。在组成一个程序的若干个函中,必须有一个main()。 语句,语句是组成程序的基本单元。函数是由若干条语句组成的。但是,空函数是没有语句的。语句是由单词组成,单词间用空格符分隔,C+程序中的语句又是以以分号结束。语句除了有表达式语句和空语句之外,还有复合语句、分支语句、循环语句和转向语句等若干类。 变量,多数程序都需要说明和使用变量。广义讲,对象包含了变量,即将变量也称为一种对象,狭义讲,将对象看作是类的实例,对象是指某个类的对象。 其他,除了以上讲述的5个部分以外,还有其他组成部分。例如,符号常量和注释信息也是程序的一部分。C+中都尽量把常量定义为符号常量,在C+的程序中出现的是符号常量,该符号常量代表着某个确定的常量值。2.12 C+程序的实现 C+源程序的实现与其他高级语言源程序实现的原理是一样的。一般都要经过编辑、编译、运行。其中最要的是编译过程,C+是以编译方式实现的高级语言。C+程序的实现,必须要使用某种C+语言的编译器对程序进行编译。编译器的功能是将程序的源代码转换成为机器代码的形式,称为目标代码;然后,再使目标代码进行连接,生成可执行文件。该过程可分为三个子过程:预处理过程、编译过程(词法分析、语法分析、符号表、错误处理程序、生成目标代码)、连接过程。第三章 系统分析1.图书管理系统设计任何一个软件的开始都是进行系统的需求分析。需求分析要根据用户的功能要求、界面以及其他要求进行分析,当然在此需求分析是根据我自己对图书管理系统的基本了解以及系统所需要的基本功能来进行的。其次制作的各个流程图才是真正的系统设计,是在完成需求分析的基础上进行的。2.用户的功能需求分析 图书管理系统需要的功能分析如下:管理系统具有多个管理员,管理员可以使用不同的用户名和密码进入管理系统,并可以修改自己的密码;(一) 进入系统后可以重新登录该系统;(二) 在系统中可以对数据库进行简单的操作;(三) 最基本的功能还应具有可以编辑图书录入、删除图书资料。图书分类信息的添加、修改、删除和查询。此功能为图书的分类管理提供依据。(四) 图书基本信息的添加、修改、删除和查询。(五) 借阅证件分类信息的添加、修改、删除和查询。不同类型的借阅证件可以借阅的最大数量、最大天数和续借天数不同。(六) 图书借阅证件的添加、修改、删除、挂失和查询。(七) 图书借阅管理,包括图书借阅、图书归还、图书续借、图书挂失和图书催还等。3.系统运作流程该系统涉及到用户以及管理员,在两者之间进行一系列的操作。管理员对图书进行录入、删除等操作,和用户之间的交流则是进行借阅图书操作。运作流程图如图:第四章 系统的实现1、类的设计Book类的设计:BookNamestrNum:charnumberstrNum:charkindtype:charint tag;int num;int addBook() getkind():chargetname():chargetnum():intgettag():intsetnumber(char num):voidsetname(char na):voidsetkind(char kin):voiddelbook():voidaddbook(int n,char *na,char *kin):voiddisp():void(1)数据成员char nameStrNum; 用来存放书名。char numberStrNum; 用来存放图书的编号。char kindType; 用来存放图书的类型。int tag; 定义删除标记。int num; 定义图书编号为整形。int add; 增加标记。(2)函数成员Book() 无参构造函数,用于为书名和作者姓名设置默认值。char getkind() 用于获取图书类型。 char getname() 用于获取书名。int getnum() 用于获取图书编号。 int gettag() 用于获取删除标记。void setname(char na) 用于设置书名。void setkind(char kin) 用于设置类型。void delbook() 用于删除图书。void addbook(int n,char *na,char *kin) 用于增加图书。void disp() 用于输出图书。2.主程序的设计:(1)函数的设计:class BDatabase 图书管理类的设置,实现对图书的添加,查找,删除等。int top; 设置图书记录指针。Book bookMaxb; 设置图书记录(Maxb定义为最多可存储的图书数,定义为整形)。void clear() 清空图书记录。int addbook(int n,char *na,char *kin) 增加图书记录。Book *query(int bookid) 查找图书记录。void bookdata(); 定义图书库。void disp() 输出。BDatabase() 设置析构函数,将book写到book.txt文件中void BDatabase:bookdata() 由此函数开始对图书管理系统的主菜单进行调用与功能的实现。(界面参看执行界面部分)最后用main() 函数的实现,程序的主界面的引导3. 源代码分析:/*/#define StrNum 20#define Type 20#include #include #include #include /输入/输出文件流类using namespace std;const int Maxb=100; /最多可存储的图书class Bookprivate: int tag; /删除标记int num; /图书编号int add; /增加标记char numberStrNum; /编号char nameStrNum; /书名char kindType; /图书类型public:Book()char getkind() /获取图书类型return kindType; char getname() /获取书名 return nameStrNum; int getnum() /获取图书编号 return num; int gettag() /获取删除标记 return tag;void setname(char na) /设置书名strcpy(name,na);void setkind(char kin) /设置类型strcpy(kind,kin);void delbook() /删除图书tag=1;void addbook(int n,char *na,char *kin) /增加图书tag=0;num=n;strcpy(name,na);strcpy(kind,kin);void disp() /输出图书cout.flags (ios:left); /设置对齐的标志位为左coutsetw(15)numsetw(20)namesetw(15)kindendl;/*/class BDatabaseprivate: int top; /图书记录指针Book bookMaxb; /图书记录public:BDatabase() /构造函数,将book.txt读到book中 Book b;top=-1;fstream file(book.txt,ios:in);while (1)file.read(char *)&b,sizeof(b);if (!file) break;top+;booktop=b;file.close(); void clear() /全删top=-1; int addbook(int n,char *na,char *kin) /增加图书Book *p=query(n);if(NULL=p)top+;booktop.addbook(n,na,kin);return 1;return 0;Book *query(int bookid) /查找图书for (int i=0;i=top;i+)if (booki.getnum()=bookid &booki.gettag()=0)return &booki;return NULL;void bookdata(); /图书库void disp() for (int i=0;i=top;i+) if (booki.gettag()=0) booki.disp();BDatabase() /析构函数,将book写到book.txt文件中fstream file(book.txt,ios:out); for (int i=0;i=top;i+)if (booki.gettag()=0)file.write(char *)&booki,sizeof(booki);file.close();void BDatabase:bookdata() char choice;char bname40;char bkind40;char newType20;int bookid;Book *b;while (choice!=0) coutt*n;cout nn;coutttt图 书 管 理 系 统nn;coutttt1 新增图书记录n; coutttt2 更改图书记录n; coutttt3 删除图书记录n;coutttt4 查找图书记录n;coutttt5 显示图书记录n;coutttt6 清空全部记录(慎用)n;coutttt0 退出系统n;cout nn;coutt*n; coutchoice;switch (choice) case 1:cout输入图书编号:bookid;cout输入图书类型:newType; cout输入图书书名:bname;addbook(bookid,bname,newType);break; case 2:cout输入图书编号:bookid;b=query(bookid);if(b=NULL)cout该图书不存在endl; break;cout输入新的书名:bname;b-setname(bname);cout输入新的类型:bkind;b-setkind(bkind); break; case 3: cout读入图书编号:bookid;b=query(bookid);if(b=NULL) cout该图书不存在endl; break;char tg1;cout确定要删除此记录吗?(Y/N)tg1;if(tg1!=n&tg1!=N)b-delbook();cout已成功删除该书记录!endl;break;case 4:cout读入图书编号:bookid;b=query(bookid);if (b=NULL)cout该图书不存在endl;break;coutdisp();break;case 5:cout图书编号 图书名称 图书类型 n;disp();break;case 6: char tg2;cout确定要清空所有记录吗?(Y/N)tg2;if(tg2!=n&tg2!=N)clear(); cout已成功清空记录!endl;break;case 0:break;default:cout输入错误,请从新输入(数字为06):;/main() 函数的实现,程序的主界面的引导void main() char choice;BDatabase BookDB;while(choice!=0) coutt*n; cout nn; coutnnttt欢迎使用图书管理系统nn;coutendlendlttt图 书 管 理 系 统nnnn;coutsetw(83)by (姓名)nnnn;cout nn;coutt*n; coutttt1 进 入 系 统nnttt0 离 开endl;coutchoice;switch(choice)case 1:BookDB.bookdata();break; case 0: coutnnttt欢迎再次使用图书管理系统nn; break;default:cout输入错误,请从新输入:;4.3执行界面:1. 主菜单界面,包括制作成员以及系统提示。(由于此图含有本人姓名,出于隐私考虑,删除此图,使用者直接运行即可得到结果)2.进入系统后,出现子菜单,用户可根据需要进行操作3.新增图书记录界面:新增图书后返回操作菜单。4.更改图书记录:5.删除图书记录:选择N后返回主菜单;选择Y后,删除记录,并返回主菜单。6. 查找图书记录:如果没有该书编号,则显示此书不存在。7.显示图书记录:8.清空图书记录:选择N,返回主菜单;选择Y,则清空所有记录。9.退出系统总结:本系统实现了图书管理系统的典型功能,包括查询所有记录的信息,添加查找等功能,而且具有较高的安全性。但是因为自己独立完成且能力有限,还有部分功能未能完善,例如对书名,编号的排序等等,这些局限性都是有待逐步完善的方面。而且通过这次课程设计,我培养了自己对C+编程的兴趣,编程能力也有所提高,但仍存在许多不足,不能独自写出功能很齐全的代码,写代码要参考很多资料,所以今后应培养自己独立写代码的能力。参考文献:1 谭浩强. C+面向对象程序设计.北京:清华大学出版社,20062 谭浩强. C+程序设计实践指导.北京:清华大学出版社,20053 刘玉英,张怡芳等. C+实验指导与课程设计。人民邮电出版社,2007袁节膅薂羄肅蒃薁蚃芀荿薀螆肃芅蕿袈芈膁蚈羀肁蒀蚇蚀袄莆蚇螂肀莂蚆羅袂芈蚅蚄膈膄蚄螇羁蒂蚃衿膆莈蚂羁罿芄螁蚁膄膀螁螃羇葿螀袅膃蒅蝿肈羆莁螈螇芁芇莄袀肄膃莄羂艿蒂莃蚂肂莈蒂螄芈芄蒁袆肀膀蒀罿袃薈葿螈聿蒄葿袁羁莀蒈羃膇芆蒇蚃羀膂蒆螅膅蒁薅袇羈莇薄罿膄芃薃虿羆艿薃袁节膅薂羄肅蒃薁蚃芀荿薀螆肃芅蕿袈芈膁蚈羀肁蒀蚇蚀袄莆蚇螂肀莂蚆羅袂芈蚅蚄膈膄蚄螇羁蒂蚃衿膆莈蚂羁罿芄螁蚁膄膀螁螃羇葿螀袅膃蒅蝿肈羆莁螈螇芁芇莄袀肄膃莄羂艿蒂莃蚂肂莈蒂螄芈芄蒁袆肀膀蒀罿袃薈葿螈聿蒄葿袁羁莀蒈羃膇芆蒇蚃羀膂蒆螅膅蒁薅袇羈莇袄芈蒇袇螀芇蕿蚀聿芆艿蒃肅芅蒁螈羁芄薃薁袆芃芃螆螂芃莅蕿肁节蒈螅羇莁薀薈袃莀艿螃蝿荿莂薆膈莈薄袁肄莇蚆蚄羀莇莆袀袆羃蒈蚂螂羂薁袈肀肁芀蚁羆肁莃袆袂肀薅虿袈聿蚇蒂膇肈莇螇肃肇葿薀罿肆薂螆袅肅芁薈螁膅莃螄聿膄蒆薇羅膃蚈螂羁膂莈蚅袇膁蒀袀螃膀薂蚃肂腿节衿羈腿莄蚂袄芈蒇袇螀芇蕿蚀聿芆艿蒃肅芅蒁螈羁芄薃薁袆芃芃螆螂芃莅蕿肁节蒈螅羇莁薀薈袃莀艿螃蝿荿莂薆膈莈薄袁肄莇蚆蚄羀莇莆袀袆羃蒈蚂螂羂薁袈肀肁芀蚁羆肁莃袆袂肀薅虿袈聿蚇蒂膇肈莇螇肃肇葿薀罿肆薂螆袅肅芁薈螁膅莃螄聿膄蒆薇羅膃蚈螂羁膂莈蚅袇膁蒀袀螃膀薂蚃肂腿节衿羈腿莄蚂袄芈蒇袇螀芇蕿蚀聿芆艿蒃肅芅蒁螈羁芄薃薁袆芃芃螆螂芃莅蕿肁节蒈螅羇莁薀薈袃莀艿螃蝿荿莂薆膈莈薄袁肄莇蚆蚄羀莇莆袀袆羃蒈蚂螂羂薁袈肀肁芀蚁羆肁莃袆袂肀薅虿袈聿蚇蒂膇肈莇螇肃肇葿薀罿肆薂螆袅肅芁薈螁膅莃螄聿膄蒆薇羅膃蚈螂羁膂莈蚅袇膁蒀袀螃膀薂蚃肂腿节衿羈腿莄蚂袄芈蒇袇螀芇蕿蚀聿芆艿蒃肅芅蒁螈羁芄薃薁袆芃芃螆螂芃莅蕿肁节蒈螅羇莁薀薈袃莀艿螃蝿荿莂薆膈莈薄袁肄莇蚆蚄羀莇莆袀袆羃蒈蚂螂羂薁袈肀肁芀蚁羆肁莃袆袂肀薅虿袈聿蚇蒂膇肈莇螇肃肇葿薀罿肆薂螆袅肅芁薈螁膅莃螄聿膄蒆薇羅膃蚈螂羁膂莈蚅袇膁蒀袀螃膀薂蚃肂腿节衿羈腿莄蚂袄芈蒇袇螀芇蕿蚀聿芆艿蒃肅芅蒁螈羁芄薃薁袆芃芃螆螂芃莅蕿肁节蒈螅羇莁薀薈袃莀艿螃蝿荿莂薆膈莈薄袁肄莇蚆蚄羀莇莆袀袆羃蒈蚂螂羂薁袈肀肁芀蚁羆肁莃袆袂肀薅虿袈聿蚇蒂膇肈莇螇肃肇葿薀罿肆薂螆袅肅芁薈螁膅莃螄聿膄蒆薇羅膃蚈螂羁膂莈蚅袇膁蒀袀螃膀薂蚃肂腿节衿羈腿莄蚂袄芈蒇袇螀芇蕿蚀聿芆艿蒃肅芅蒁螈羁芄薃薁袆芃芃螆螂芃莅蕿肁节蒈螅羇莁薀薈袃莀艿螃蝿荿莂薆膈莈薄袁肄莇蚆蚄羀莇莆袀袆羃蒈蚂螂羂薁袈肀肁芀蚁羆肁莃袆袂肀薅虿袈聿蚇蒂膇肈莇螇肃肇葿薀罿肆薂螆袅肅芁薈螁膅莃螄聿膄蒆薇袁节膅薂羄肅蒃薁蚃芀荿薀螆肃芅蕿袈芈膁蚈羀肁蒀蚇蚀袄莆蚇螂肀莂蚆羅袂芈蚅蚄膈膄蚄螇羁蒂蚃衿膆莈蚂羁罿芄螁蚁膄膀螁螃羇葿螀袅膃蒅蝿肈羆莁螈螇芁芇莄袀肄膃莄羂艿蒂莃蚂肂莈蒂螄芈芄蒁袆肀膀蒀罿袃薈葿螈聿蒄葿袁羁莀蒈羃膇芆蒇蚃羀膂蒆螅膅蒁薅袇羈莇薄罿膄芃薃虿羆艿薃袁节膅薂羄肅蒃薁蚃芀荿薀螆肃芅蕿袈芈膁蚈羀肁蒀蚇蚀袄莆蚇螂肀莂蚆羅袂芈蚅蚄膈膄蚄螇羁蒂蚃衿膆莈蚂羁罿芄螁蚁膄膀螁螃羇葿螀袅膃蒅蝿肈羆莁螈螇芁芇莄袀肄膃莄羂艿蒂莃蚂肂莈蒂螄芈芄蒁袆肀膀蒀罿袃薈葿螈聿蒄葿袁羁莀蒈羃膇芆蒇蚃羀膂蒆螅膅蒁薅袇羈莇薄罿膄芃薃虿羆艿薃袁节膅薂羄肅蒃薁蚃芀荿薀螆肃芅蕿袈芈膁蚈羀肁蒀蚇蚀袄莆蚇螂肀莂蚆羅袂芈蚅蚄膈膄蚄螇羁蒂蚃衿膆莈蚂羁罿芄螁蚁膄膀螁螃羇葿螀袅膃蒅蝿肈羆莁螈螇芁芇莄袀肄膃莄羂艿蒂莃蚂肂莈蒂螄芈芄蒁袆肀膀蒀罿袃薈葿螈聿蒄葿袁羁莀蒈羃膇芆蒇蚃羀膂蒆螅膅蒁薅袇羈莇薄罿膄芃薃虿羆艿薃袁节膅薂羄肅蒃薁蚃芀荿薀螆肃芅蕿袈芈膁蚈羀肁蒀蚇蚀袄莆蚇螂肀莂蚆羅袂芈蚅蚄膈膄蚄螇羁蒂蚃衿膆莈蚂羁罿芄螁蚁膄膀螁螃羇葿螀袅膃蒅蝿肈羆莁螈螇芁芇莄袀肄膃莄羂艿蒂莃蚂肂莈蒂螄芈芄蒁袆肀膀蒀罿袃薈葿螈聿蒄葿袁羁莀蒈羃膇芆蒇蚃羀膂蒆螅膅蒁薅袇羈莇薄罿膄芃薃虿羆艿薃袁节膅薂羄肅蒃薁蚃芀荿薀螆肃芅蕿袈芈膁蚈羀肁蒀蚇蚀袄莆蚇螂肀莂蚆羅袂芈蚅蚄膈膄蚄螇羁蒂蚃衿膆莈蚂羁罿芄螁蚁膄膀螁螃羇葿螀袅膃蒅蝿肈羆莁螈螇芁芇莄袀肄膃莄羂艿蒂莃蚂
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- GB/T 44851.14-2025道路车辆液化天然气(LNG)燃气系统部件第14部分:压差式液位计
- GB/T 21794-2025化学品体外哺乳动物细胞染色体畸变试验方法
- GB/T 46076-2025自动真空贴体包装机通用技术要求
- GB/T 46122.11-2025烟花爆竹特定化学物质检测方法第11部分:磷含量的测定电感耦合等离子体原子发射光谱法(ICP-OES)
- 应急安全培训中心附近宾馆课件
- 应急处理安全知识培训课件
- 2025年自考专业(工商企业管理)题库检测试题打印及1套参考答案详解
- 做销售工作计划和目标
- 2024-2025学年度医师定期考核检测卷及答案详解【名师系列】
- 2025年建筑工地安全管理信息化技术规范解读报告001
- 九一八警钟长鸣强国有我+课件-2025-2026学年高一上学期爱国主义主题班会教育+-
- 反洗钱可疑交易识别课件
- 人教部编版小学三年级语文上册课后习题参考答案
- 光伏运维安全培训总结课件
- 2025年第九届全国中小学“学宪法、讲宪法”活动知识竞赛题库及答案
- 山东省汽车维修工时定额(T-SDAMTIA 0001-2023)
- 体育原理课件
- DB23∕T 1019-2020 黑龙江省建筑工程资料管理标准
- fy13及on动手实验中文版factorytalk historian基础mi
- 电弧跟踪介绍
- 豆制品创新集聚产业园生产、加工、销售建设项目建议书写作模板-定制
评论
0/150
提交评论