C++图书管理系统课程设计.doc_第1页
C++图书管理系统课程设计.doc_第2页
C++图书管理系统课程设计.doc_第3页
C++图书管理系统课程设计.doc_第4页
C++图书管理系统课程设计.doc_第5页
已阅读5页,还剩26页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

C+程序设计课程设计说明书题 目图书信息管理系统学 号姓 名指导教师日 期27内蒙古科技大学课程设计任务书课程名称面向对象程序设计A课程设计设计题目图书信息管理系统指导教师时间一、教学要求1. 巩固和加深学生对C语言课程的基本知识的理解和掌握2. 掌握C语言编程和程序调试的基本技能3. 利用C语言进行基本的软件设计4. 掌握书写程序设计说明文档的能力5. 提高运用C语言解决实际问题的能力二、设计资料及参数每个学生在教师提供的课程设计题目中任意选择一题,独立完成,题目选定后不可更换。图书信息管理系统图书信息包括:登录号、书名、作者名、分类号、出版单位、出版时间、价格等。试设计一图书信息管理系统,使之能提供以下功能:v 图书信息录入功能(图书信息用文件保存)输入v 图书信息浏览功能输出v 查询或排序功能:(至少两种种查询方式)算法按书名查询 按作者名查询v 图书信息的删除与修改v 图书的借出与归还三、设计要求及成果1. 分析课程设计题目的功能需求(可选用数组或链表实现,可多人(最多3人)协作完成一个题目)2. 写出详细设计说明(至少包括功能实现分析和模块流程图)3. 编写程序代码,调试程序使其能正确运行(代码书写要规范,标示符要见名知意,要有必要的注释,每人至少3个函数,每人至少200行代码,不包括注释和花括号)4. 设计完成的软件要便于操作和使用5. 设计完成后提交课程设计报告(请严格按照模板进行排版)四、进度安排第一天 选择课程设计题目,分析课题的要求第二天 编程第三天 编程及调试第四天 写课程设计报告第五天 提交课程设计报告(打印稿及电子稿)五、评分标准1. 根据平时上机考勤、表现和进度,教师将每天点名和检查2. 根据课程设计完成情况,必须有可运行的软件。3. 根据课程设计报告的质量,如有雷同,则所有雷同的所有人均判为不及格。六、建议参考资料1C语言程序设计,谭浩强,清华大学出版社2C语言程序设计课程设计,刘振安,机械工业出版社目录内蒙古科技大学课程设计任务书I第1章 需求分析1第2章 总体设计1第3章 类的设计23.1 date类的设计(第一个类)23.2 book类的设计(第二个类)33.3 library类的设计(第三个类)4第4章 详细设计54.1 工程视图54.2 类图视图54.3 主程序流程图74.4 主要算法的流程图8第5章 测试12第6章 总结17附录:程序代码17第1章 需求分析用C+设计一个图书信息管理系统图书信息管理系统图书信息包括:登录号、书名、作者名、分类号、出版单位、出版时间、价格等。试设计一图书信息管理系统,使之能提供以下功能:v 图书信息录入功能(图书信息用文件保存)输入v 图书信息浏览功能输出v 查询或排序功能:(至少两种种查询方式)算法按书名查询 按作者名查询v 图书信息的删除与修改v 图书的借出与归还第2章 总体设计1.用结构框图表示各个功能之间的关系。图2.12. 将框图中系统的各个功能用文字详细的描述。图书信息管理系统功能:图书信息添加功能:向图书信息管理系统内添加图书信息,图书信息包括图书登录名、图书书名、图书作者名、图书类别、图书出版单位、图书出版时间、图书价格、图书数量等信息。图书信息浏览功能:将图书管理系统的图书全部显示出来。图书信息查询功能:分为两个功能。第一个为书名查询功能,通过输入要查询图书书名来对图书信息库进行搜索查询,如果有该书则显示该书的信息,如果没有该书则显示“没有找到该书”。第二个为作者查询,通过输入要查询图书作则名来对图书信息库进行搜索查询,如果有该书则显示该书的信息,如果没有该书则显示“没有找到该书”。图书信息删除功能:通过输入的图书登录号对图书信息库的该书进行删除操作,该书的信息将会在图书信息库中删除,以后无法找到。图书信息修改功能:通过输入图书登录号来查找该书,如果图书信息库中有该书,则通过输入图书的每一项信息来修改图书的信息,如果图书信息库中没有该书则显示“没有该图书信息”。图书借出功能:通过输入图书登录号来查找该书,如果图书信息库中没有该书,则显示“没有该书”,如果有该书则显示“借阅成功”,并且该书的数量减1,如果该书的数量为0,则显示“该书全部借出”,借阅不成功。图书归还功能:通过输入图书登录号来查找该书,如果图书信息库中没有该书,则显示“没有该书”,如果有该书则显示“归还成功”,如果该书的数量为图书信息库中原始数量,则显示“该书没有借出”。退出图书信息管理系统功能:退出图书信息管理系统程序。第3章 类的设计3.1 date类的设计(第一个类)1. 画出类图表3.1dateint yearint monthdate(int y=2000,int m=1)date()void set(int y=2000,int m=1)int gety()int getm()2.对类的函数成员的说明 date(int y=2000,int m=1)说明:输入参数时间年和参数时间月。构造函数,对时间进行构造,方便数据的录入。将用户输入的数据进行录入并赋值给类的数据成员。 date() 说明:析构函数,对构造函数申请的内存空间进行释放。 void set(int y=2000,int m=1) 说明:输入数据时间年和数据时间月。 成员函数,对时间年月的输入进行赋值。 int gety() 说明:返回数据时间年。 int get() 说明:返回数据时间月。3.2 book类的设计(第二个类)1. 画出类图 表3.2bookchar id20char bookname20char author20char classnum20char publisher20double priceint numint num1date timebook()book()void set()void printout()friend class library()2.对类的函数成员的说明book(char *i=100000,char *b=noname,char *a=noname,char *c=noname,char *p=noname,double money=0.0,int y=2000,int m=1,int number=0):date(y,m) 说明:输入参数登录名,书名,作者名,类别,出版单位,出版时间,价格,数量。 构造函数,对登录名等图书信息进行构造,方便数据的录入。 将用户输入的数据进行录入并赋值给类的数据成员。book() 说明:析构函数,对构造函数申请的内存空间进行释放。void set(char *i=100000,char *b=noname,char *a=noname,char *c=noname,char *p=noname,double money=0.0,int y=2000,int m=1,int number=0) 说明:输入数据登录名,书名,作者名,类别,出版单位,出版时间,价格,数量。 成员函数,对图书信息登录名,书名,作者名,类别,出版单位,出版时间,价格,数量进行赋值。void printout() 说明:对图书信息数据登录名,书名,作者名,类别,出版单位,出版时间,价格,数量进行输出。 成员函数,对图书信息进行输出的函数。friend class library 说明:将类library声明为类book的友元类。3.3 library类的设计(第三个类)1. 画出类图 表3.3librarybook *book1library()library()int idSeek()void NameSeek()void Author()void judge()void judge1()void delee1()2.对类的函数成员的说明 library() 说明:申请分配动态内存空间,申请book1N数组。 构造函数,申请分配动态内存空间。 library() 说明:动态内存分配空间的撤销,将book1N占有的空间撤销。 析构函数,动态内存分配空间的撤销。 int idSeek(char *i) 说明:查找函数,将形参传给该函数并对图书信息库进行查询,如果查到返回数组的序号值,没有查到则显示“没有该书”。 成员函数,对传递的形参值进行查询。 void NameSeek() 说明:书名查找函数,输入待查询值,通过与图书信息库进行对比,如果有该书则输出图书信息,否则显示“没有该书”。 成员函数,输入书名进行查询。 void AuthorSeek() 说明:作者名查找函数,输入待查询值,通过与图书信息库进行对比,如果有该书则输出图书信息,否则显示“没有该书”。 void judge(int a) 说明:判断图书借阅是否成功函数,通过形参传入借阅图书的数组序号值,如果该书的库存数量大于0,则能够借阅,并显示“该书借阅成功”,否则显示“该书已经全部借出”。 成员函数,判断借阅的图书是否借阅成功。 void judge1(int a) 说明:判断图书归还是否成功函数,通过形参传入归还图书的数组序号值,如果该书的库存量小于该书信息录入时的库存量,则显示该书归还成功,否则显示“该书没有借出”。 void delete1(int a) 说明:图书信息删除函数,确定删除图书的数组序号值,并将数组序号值+1的值赋值给数组序号值来进行删除的操作。 成员函数,对给定的图书信息进行删除。第4章 详细设计4.1 工程视图 图4.14.2 类图视图 图4.2.1图4.2.2 图4.2.34.3 主程序流程图是输出结果添加借出输入功能建立文件录入数据输入文件名存在?否浏览查找归还修改删除结束开始 图4.34.4 主要算法的流程图1. 添加算法输入数据输入数据添加继续?是结束否 图4.4.12. 查找算法(1)书名查询输入书名输出数据书名查找存在是结束否 图4.4.2-1 (2)作者查询输入作者输出数据作者查找存在是结束否 图4.4.2-23. 浏览功能显示数据浏览结束 图4.4.34. 删除功能删除数据删除结束 图4.4.45. 修改功能输入登录号输入修改数据修改存在是结束否 图4.4.56. 借出功能借书失败输入登录号借书成功借出存在结束 图4.4.67. 归还功能归还成功输入登录号归还失败归还存储量?结束 图4.4.7第5章 测试5.1信息录入图5.15.2功能界面 图5.25.3添加功能 图5.35.4浏览功能 图5.45.5查找功能 图5.55.5.1书名查找图5.5.1 5.5.2作者查找图5.5.25.6删除功能图5.65.7修改功能 图5.7.1 图5.7.25.8借出功能 图5.8.1 图5.8.25.9归还功能 图5.9.1 图5.9.25.10退出系统 图5.10第6章 总结总结:老师很早就把题目公布了,很早就做C+的课程设计了,时间非常的充足。总共算起来大概花了20多天的时间进行构思和编写代码,在编写代码的过程中曾经遇到过各种各样的问题,例如:C+中主函数如何定义对象并且使输入的数据怎样通过类中的函数进行增删改查等一系列的操作。还有就是如何将输入的数据写入到文件中,在一开始都觉得有些难,不知道如何下手,自己在图书馆里借了又关这方面的书进行阅读,在网上搜索相关的程序代码进行阅读,并且去理解消化,模仿着写出自己的程序代码,在问题没有解决之前是各种苦恼,心情是各种烦躁,但是当问题解决了之后心情是非常的愉悦,经过自己的不断努力去寻找解决的办法并且最终解决了问题。特别有成就感,虽然这个过程是痛苦的,但成功的愉悦是多么的快乐。在整个课程设计的过程中还是很感谢身边的一群同学,当遇到困难时,他们给予帮助,给予灵感,才让这次课程设计能够顺利的完成。也很感谢老师课堂的教育,大学课堂里老师的教就是为了不教,老师教给我们的是基础知识,是以后向更深领域学习的基础,是垫脚石。老师教给我们的是一种态度一种学习方法,让我们以后能够自主的去学习。当一个人去完成一项课程设计时,里面会遇到各种各样的事情,老师在课堂上讲解的一些情况我们会遇到,只要我们上课听讲了,就能解决,但是一些老师没有提及的问题就要靠我们自己去解决。我们该如何去解决呢?有很多种途径,去图书馆查找相关的资料,在网上进行搜索,都会找到相关的资料,这时我们就得运用老师教给我们的方法去理解并且消化。最先开始可能只是进行模仿,模仿多了之后才会有我们自己的创造。所以学习都是这样的一个过程,在大学里的学习是人生很重要的一门课。感谢所有教授我知识和方法的老师,谢谢你们的辛勤的劳动。附录:程序代码#include#include#include#include#define N 10#define FNAMELEN 40char stufFNAMELEN;class datepublic:int year;int month;public:date(int y=2000,int m=1)year=y;month=m;date()void set(int y=200,int m=1)year=y;month=m;int gety()return year;int getm()return month;class book:public dateprivate:char id20;char bookname20;char author20;char classnum20;char publisher30;double price;int num;int num1;date time;public:book(char *i=100000,char *b=noname,char *a=noname,char *c=noname,char *p=noname,double money=0.0,int y=2000,int m=1,int number=0):time(y,m)strcpy(id,i);strcpy(bookname,b);strcpy(author,a);strcpy(classnum,c);strcpy(publisher,p);price=money;num=number;num1=number;book() void set(char *i=100000,char *b=noname,char *a=noname,char *c=noname,char *p=noname,double money=0.0,int y=2000,int m=1,int number=0)date:set(y,m);strcpy(id,i);strcpy(bookname,b);strcpy(author,a);strcpy(classnum,c);strcpy(publisher,p);price=money;num=number;num1=number;void printout()cout登录号: idendl;cout书名: booknameendl;cout作者名: authorendl;cout类别: classnumendl;cout出版单位: publisherendl;cout出版时间: time.gety()年time.getm()月endl;cout价格: priceendl;cout数量: numendl; friend class libary;class libarypublic: book *book1;public:libary()book1=new bookN;libary()delete book1;int idSeek(char *i)int j,flag=1;for(j=0;jN;j+)if(strcmp(book1j.id,i)=0)flag=0;return j;if(flag)cout没有该书!;return flag;void NameSeek()char i20;couti;int j,flag=1;for(j=0;jN;j+)if(strcmp(book1j.bookname,i)=0)flag=0;book1j.printout();if(flag)cout没有该书!;getchar();void AuthorSeek()char i20;couti;int j,flag=1;for(j=0;jN;j+)if(strcmp(book1j.author,i)=0)flag=0;book1j.printout();if(flag)cout 0)cout该书借阅成功!;book1a.num-; elsecout该书已全部借出!;void judge1(int a)if(book1a.numbook1a.num1)cout该书归还成功!; book1a.num+;elsecout该书没有借出!;void delete1(int a)/book1a.set(book1a+1.id,book1a+1.bookname,book1a+1.author,book1a+1.classnum,book1a+1.publisher,book1a+1.price,book1a+1.year,book1a+1.month,book1a+1.num);strcpy(book1a.id,book1a+1.id); strcpy(book1a.bookname,book1a+1.bookname);strcpy(book1a.author,book1a+1.author);strcpy(book1a.classnum,book1a+1.classnum);strcpy(book1a.publisher,book1a+1.publisher);book1a.price=book1a+1.price;book1a.year=book1a+1.year;book1a.month=book1a+1.month;book1a.num=book1a+1.num;void main()char id20;char bookname20;char author20;char classnum20;char publisher30;char c;double price;int num,year,month,n,m,j,i=0;libary l1; FILE *fp;char cn;system(cls);coutstuf;if(fp=fopen(stuf,r)=NULL)cout该文件stufcn;if(cn=Y | cn=y)fp=fopen(stuf,w); docoutid; coutbookname; coutauthor; coutclassnum; coutpublisher; coutprice; coutnum; coutyearmonth; l1.book1i.set(id,bookname,author,classnum,publisher,price,year,month,num); i+;n=i;m=i;fprintf(fp,%st%st%st%st%st%6.2ft%dt%dt%dn,id,bookname,author,classnum,publisher,price,year,month,num); coutc;while(c=y | c=Y); coutendl;fclose(fp);int a;dosystem(cls);coutnnnnntttt图书管理系统ttttn;couttt*n;coutttt1-图书信息添加n;coutttt2-图书信息浏览n;coutttt3-图书信息查询n;coutttt4-图书信息删除n;coutttt5-图书信息修改n;coutttt6-图书借出n;coutttt7-图书归还n;coutttt0-退出影碟信息系统n;couttt*n;couta;switch(a)case 1:system(cls);fp=fopen(stuf,w);docoutid; coutbookname; coutauthor; coutclassnum; coutpublisher; coutprice; coutnum; coutyearmonth; l1.book1m.set(id,bookname,author,classnum,publisher,price,year,month,num); m+;fprintf(fp,%st%st%st%st%st%6.2ft%dt%dt%dn,id,bookname,author,classnum,publisher,price,year,month,num); coutc;while(c=y | c=Y);getchar();break;case 2:system(cls);for(j=0;jm;j+)l1.book1j.printout();coutendl;fflush(stdin);getc

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论