(完整版)C++毕业课程设计图书管理系统

合集下载

c语言书籍管理系统课程设计

c语言书籍管理系统课程设计

c语言书籍管理系统课程设计一、课程目标知识目标:1. 学生能理解C语言在书籍管理系统中的应用,掌握基本的数据类型、运算符、控制结构等知识;2. 学生能掌握文件操作、指针等C语言高级特性,并应用于书籍管理系统的开发;3. 学生了解并掌握书籍管理系统中的模块划分,如用户模块、书籍模块、借阅模块等。

技能目标:1. 学生能运用C语言编写简单的书籍管理系统程序,实现用户注册、登录、查询书籍、借阅书籍等功能;2. 学生能通过调试和优化程序,提高书籍管理系统的稳定性和性能;3. 学生能运用所学知识解决实际编程问题,具备一定的编程实践能力。

情感态度价值观目标:1. 学生通过本课程的学习,培养对计算机编程的兴趣和热情,提高自主学习能力和团队协作能力;2. 学生在学习过程中,养成认真、严谨、求实的科学态度,勇于面对和解决问题;3. 学生通过书籍管理系统项目实践,培养创新意识,认识到计算机技术在现实生活中的重要作用。

课程性质:本课程为C语言编程实践课程,以项目驱动的方式进行教学,注重培养学生的编程能力和实际应用能力。

学生特点:学生为高中年级,已具备一定的C语言基础,对编程有一定的兴趣,但实践能力有待提高。

教学要求:教师应注重理论与实践相结合,引导学生主动参与项目实践,培养其分析问题、解决问题的能力。

同时,关注学生的个体差异,给予个性化的指导和帮助。

通过课程目标的分解,确保学生达到预期的学习成果。

二、教学内容1. C语言基础回顾:数据类型、变量、常量、运算符、表达式、控制结构(顺序、选择、循环)。

2. 函数与模块化编程:函数定义、调用、参数传递;模块化编程思想,编写功能独立的模块。

3. 文件操作:文件的打开、关闭、读写操作;文件的随机访问。

4. 指针与数组:指针的概念、运算;指针与数组的关系;动态内存分配。

5. 结构体与共用体:定义和使用结构体、共用体;结构体数组;结构体指针。

6. 书籍管理系统需求分析:分析系统功能模块,如用户管理、书籍管理、借阅管理等。

图书管理系统的设计C课程设计

图书管理系统的设计C课程设计

图书管理系统的设计C 课程设计一、教学目标本课程的设计目标是使学生掌握图书管理系统的设计与实现。

具体目标如下:1.理解图书管理系统的需求和功能。

2.掌握常用的数据结构和算法,并能够应用于图书管理系统的设计。

3.了解数据库的基本概念,并能够使用数据库进行图书管理。

4.能够使用C语言进行程序设计,包括编码、调试和测试。

5.能够使用数据库管理系统进行数据的存储和管理。

情感态度价值观目标:1.培养学生对计算机科学和编程的兴趣和热情。

2.培养学生解决问题的能力和团队合作的精神。

二、教学内容教学内容将按照以下大纲进行:1.图书管理系统需求分析:介绍图书管理系统的功能和需求,包括图书的增删查改等操作。

2.数据结构的选择:介绍常用的数据结构,如数组、链表、树等,并分析其在图书管理系统中的应用。

3.算法的选择:介绍常用的算法,如搜索、排序等,并分析其在图书管理系统中的应用。

4.数据库的设计:介绍数据库的基本概念,并学习如何使用数据库管理系统进行数据的存储和管理。

5.图书管理系统的实现:使用C语言进行图书管理系统的编码、调试和测试。

三、教学方法将采用多种教学方法进行教学,以激发学生的学习兴趣和主动性:1.讲授法:用于讲解基本概念和理论知识。

2.案例分析法:通过分析实际案例,使学生更好地理解和应用所学知识。

3.实验法:通过实际操作和实验,使学生掌握图书管理系统的实现和测试。

四、教学资源将选择和准备以下教学资源:1.教材:选用《C程序设计》作为主教材,用于学习C语言编程基础。

2.参考书:选用《数据结构与算法分析》和《数据库原理》作为参考书,用于深入学习数据结构和算法以及数据库的知识。

3.多媒体资料:制作PPT和教学视频,用于讲解理论知识。

4.实验设备:准备计算机和数据库管理系统,用于实际操作和实验。

五、教学评估教学评估将采用多种方式进行,以全面反映学生的学习成果:1.平时表现:评估学生的课堂参与度、提问回答和小组讨论的表现,以考察学生的学习态度和积极性。

c图书管理系统课程设计

c图书管理系统课程设计

c图书管理系统课程设计一、课程目标知识目标:1. 理解图书管理系统的基本概念和功能,掌握其在我国图书馆的应用现状。

2. 学会使用数据库管理图书信息,掌握基本的SQL查询语句。

3. 了解并掌握C语言编程在图书管理系统中的应用。

技能目标:1. 能够运用所学知识设计并实现一个简单的图书管理系统。

2. 提高问题分析能力,通过C语言编程解决图书管理中的实际问题。

3. 培养团队协作能力,通过分组讨论、共同开发完成课程项目。

情感态度价值观目标:1. 培养学生对图书管理工作的兴趣,提高对图书馆工作的认识。

2. 增强学生的信息素养,使其认识到信息管理在现代图书馆工作中的重要性。

3. 培养学生积极参与、乐于探究的学习态度,激发创新意识。

课程性质:本课程为实践性较强的课程,以C语言为基础,结合数据库知识,让学生在实际操作中掌握图书管理系统的设计与实现。

学生特点:学生具备一定的C语言基础和数据库知识,对实际应用有较高的兴趣,喜欢动手实践。

教学要求:注重理论与实践相结合,以学生为主体,鼓励学生主动参与、积极思考、动手实践。

通过课程学习,使学生能够独立设计并实现一个简单的图书管理系统,提高其编程能力和问题解决能力。

二、教学内容1. 理论知识:- 图书管理系统概述:介绍图书管理系统的基本概念、功能及在我国图书馆的应用现状。

- 数据库基础:回顾数据库的基本概念、数据模型、关系数据库及其设计方法。

- C语言编程:复习C语言基础知识,强调其在图书管理系统中的应用。

2. 实践操作:- 数据库设计:学习设计图书管理系统的数据库,包括表结构设计、数据完整性约束等。

- C语言编程实践:运用C语言编写图书管理系统的主要功能模块,如图书信息录入、查询、删除等。

- 项目开发:分组进行项目实践,培养学生团队协作能力,完成一个简单的图书管理系统。

3. 教学大纲:- 第一周:图书管理系统概述,复习C语言基础知识。

- 第二周:数据库基础,设计图书管理系统的数据库。

c图书管理系统课程设计

c图书管理系统课程设计

c图书管理系统课程设计一、教学目标本课程旨在让学生了解和掌握图书管理系统的基本原理和操作方法,培养学生运用计算机技术管理图书的能力。

具体目标如下:1.知识目标:使学生了解图书管理系统的起源、发展及其基本组成部分,掌握图书管理系统的主要功能和操作方法。

2.技能目标:培养学生能够熟练使用图书管理系统,进行图书的录入、查询、修改和删除等操作,并能进行简单的系统维护。

3.情感态度价值观目标:培养学生对图书管理工作的热爱和敬业精神,提高学生服务于社会、服务于他人的意识。

二、教学内容本课程的教学内容主要包括以下几个部分:1.图书管理系统的基本概念:介绍图书管理系统的发展历程、基本功能和组成部分。

2.图书管理系统的操作方法:讲解图书的录入、查询、修改和删除等基本操作,以及系统的维护和升级。

3.图书管理系统的应用案例:分析实际工作中的图书管理案例,让学生了解图书管理系统在实际工作中的应用。

4.图书管理系统的开发:介绍图书管理系统的开发流程,让学生了解图书管理系统的开发过程。

三、教学方法为了提高教学效果,本课程将采用以下几种教学方法:1.讲授法:通过讲解教材,使学生掌握图书管理系统的基本概念和原理。

2.案例分析法:分析实际工作中的图书管理案例,让学生了解图书管理系统的应用。

3.实验法:让学生亲自动手操作图书管理系统,提高学生运用所学知识解决实际问题的能力。

4.讨论法:学生进行分组讨论,培养学生的团队协作能力和解决问题的能力。

四、教学资源为了支持本课程的教学,我们将准备以下教学资源:1.教材:选用国内权威出版社出版的图书管理系统相关教材。

2.参考书:提供相关的参考书籍,丰富学生的知识体系。

3.多媒体资料:制作精美的PPT,辅助讲解和展示图书管理系统的操作界面及功能。

4.实验设备:准备计算机及相关设备,让学生进行实际操作。

五、教学评估为了全面、客观地评估学生的学习成果,本课程将采用以下几种评估方式:1.平时表现:通过观察学生在课堂上的参与程度、提问回答等情况,评估学生的学习态度和理解程度。

C 课程设计图书管理系统-(完整版)

C  课程设计图书管理系统-(完整版)

课程设计报告课程名称C++课程设计课题名称图书管理系统设计专业班级学号姓名指导教师年月日题目三:图书管理系统设计(一)、课程设计题目:图书管理系统设计(二)、要求:使用二进制文件方式存储数据,系统以菜单方式工作(三)、设计方法和基本原理:1、功能描述:(1)新进图书基本信息的输入。

(2)图书基本信息的查询。

(3)对撤消图书信息的删除。

(4)为借书人办理注册。

(5)办理借书手续。

(6)办理还书手续。

2、问题的解决方案:根据系统功能要求,可以将问题解决分为以下步骤:(1)应用系统分析,建立该系统的功能模块框图以及界面的组织和设计;(2)分析系统中的各个实体及它们之间的关系包括属性和行为;(3)根据问题描述,设计系统的类层次;(4)完成类层次中各个类的描述(包括属性和方法);(5)完成类中各个成员函数的定义;(6)完成系统的应用模块;(7)功能调试;(8)完成系统总结报告以及系统使用说明书一、设计内容与设计要求1.课程设计目的:从课程设计的实践活动中获得知识提高。

要求学生达到熟练掌握C++语言的基本知识和技能;基本掌握面向对象程序设计的思想和方法;能够利用所学的基本知识和技能,解决简单的面向对象程序设计问题,从而提高动手编程解决实际问题的能力。

2.总体设计2.1 系统功能分析:系统通过调用函数来实现删除图书、读者信息,添加图书、读者信息等功能。

delbook( )函数用于删除图书信息;addbook( )函数用于增加图书信息;borrowbook( )函数用于实现借书操作;returnbook( )函数用于实现还书操作等等;主函数用于掉用这些函数。

2.2系统功能模块划分与设计本系统定义了Book类、BDatebase类、Reader类、RDatebase类这四个类,定义了addbook ( )、addreader( )、borrowbook ( )、setname( )等函数来实现系统所需功能。

2.3 系统功能模块图:3.3.详细设计3.1 读者类的设计该类定义了借书操作,还书操作,设置读者姓名等功能。

c语言课程设计报告图书管理系统

c语言课程设计报告图书管理系统

c语言课程设计报告图书管理系统一、教学目标本课程的目标是使学生掌握C语言的基本语法,熟悉图书管理系统的开发流程,培养学生运用C语言解决实际问题的能力。

具体目标如下:1.知识目标:–掌握C语言的基本语法和数据结构。

–理解图书管理系统的需求和设计原理。

2.技能目标:–能够使用C语言编写简单的程序。

–学会使用C语言实现图书管理系统的功能。

3.情感态度价值观目标:–培养学生的团队协作意识和沟通能力。

–增强学生对计算机科学和编程的兴趣和热情。

二、教学内容本课程的教学内容主要包括C语言的基本语法、数据结构以及图书管理系统的开发。

具体安排如下:1.C语言的基本语法:–变量和数据类型–运算符和表达式–函数和数组–指针和引用2.数据结构:3.图书管理系统的开发:–系统测试和优化三、教学方法本课程采用多种教学方法,以激发学生的学习兴趣和主动性。

具体方法如下:1.讲授法:用于讲解C语言的基本语法和数据结构。

2.案例分析法:通过分析具体的图书管理系统案例,使学生更好地理解系统设计和功能实现。

3.实验法:让学生动手编写程序,巩固所学知识,提高实际操作能力。

4.小组讨论法:鼓励学生分组讨论,培养团队协作意识和沟通能力。

四、教学资源本课程所需的教学资源包括:1.教材:《C语言程序设计》2.参考书:《C Primer Plus》、《数据结构与算法分析》3.多媒体资料:教学PPT、视频教程4.实验设备:计算机、网络设备以上教学资源将用于支持教学内容和教学方法的实施,丰富学生的学习体验。

五、教学评估本课程的评估方式包括平时表现、作业、考试等。

评估方式应客观、公正,能够全面反映学生的学习成果。

具体安排如下:1.平时表现:包括课堂参与度、提问回答、小组讨论等,占总评的20%。

2.作业:包括编程练习和理论作业,占总评的30%。

3.考试:包括期中和期末考试,占总评的50%。

期中和期末考试将涵盖C语言基本语法、数据结构以及图书管理系统的开发内容。

C语言课程设计-书店管理系统精选全文

C语言课程设计-书店管理系统精选全文

计算机程序设计(C语言)课程设计报告题目:图书管理系统学院:专业:班级:学号:姓名:指导教师:设计日期:2013年06月24日一、选题背景:设计一个图书管理系统,管理员通过登陆账号来进行下一步,使用错误账号和密码会被视为非法登陆。

图书信息包括:每种图书都有书名、ISBN、一名或多名作者(译者)、出版社、定价和内容简介等;读者信息包括:借书证记录有借阅者的姓名、密码、所在单位和类别等;读者凭借书证借书二、设计思想:(1)整个系统除了主函数外,另外还有各种功能子函数,利用无限次循环语句while()和选择语句swithch()实现各个子函数的调用,系统根据输入的数字选项来调用相应的函数,以实现相应的功能。

主要实现了图书的录入、存储、查询、添加、删除、修改、借书、还书等功能。

(2)、Cbook();这是一个指针函数,它主要实现了链表的创建,并且在创建过程中从文件读取信息到链表中,以用于后面其他函数的操作。

它返回的时一个单向链表的头。

其他函数调用时只需调用它返回的头即可。

(3)、mainmenu();、menu1();、glm enu();、cxmenu();、jhmenu();这五个函数时整个图书管理系统的全部菜单函数,mainmenu();为系统主界面,进入时可选择进入程序和退出程序。

menu1();为进程序时显示的功能菜单,在此菜单可以选择录入、保存图书信息,也可选择进入其他子系统。

glmenu();此菜单为进入图书管理系统的菜单,在此可以选择添加、删除、修改图书等操作。

cxmenu();为查询系统的菜单,在此可以选择按书名、编号、作者等方式进行查询图书。

jhmenu();为借书还书的子菜单,在此可以选择借书还书操作。

操作完成后按提示信息进行文件的保存操作。

三、程序流程图会员登陆系统系统管理界面收银系统管理系统报表系统退出系统四、主要解决问题的方法及技术关键通过自己定义的函数和声明一个结构,主要方法是先使用int函数定义,不同的选择进入不同的定义函数,通过for语句进行判断,然后使用heart数组的各种方式打开此文件,然后通过while函数和for函数关闭文件,在不同的取用数值里,分别使用for,while语句进行判断是否进行下条语句。

c语言课程设计图书管理系统

c语言课程设计图书管理系统

c语言课程设计图书管理系统一、教学目标本课程的教学目标是使学生掌握C语言基础知识,学会使用C语言进行程序设计,能够运用C语言实现图书管理系统的功能。

具体分为以下三个部分:1.知识目标:学生需要掌握C语言的基本语法、数据类型、运算符、控制结构、函数等基础知识,理解图书管理系统的业务流程和需求。

2.技能目标:学生能够运用C语言编写程序,实现图书管理系统的各个功能模块,如图书信息的添加、删除、修改和查询等。

3.情感态度价值观目标:培养学生对计算机编程的兴趣和热情,增强学生的自主学习能力和团队协作精神,使学生在解决实际问题时能够积极思考、勇于尝试。

二、教学内容本课程的教学内容分为五个部分:1.C语言基础知识:包括基本语法、数据类型、运算符、控制结构等。

2.函数与模块化编程:学习函数的定义、声明和调用,掌握模块化编程的方法和技巧。

3.图书管理系统需求分析:了解图书管理系统的业务流程,明确系统需求。

4.图书管理系统功能实现:使用C语言编写程序,实现图书管理系统的各个功能模块。

5.程序调试与优化:学习使用调试工具,掌握调试和优化程序的方法。

三、教学方法本课程采用多种教学方法,以激发学生的学习兴趣和主动性:1.讲授法:教师讲解C语言基本语法和概念,引导学生掌握知识要点。

2.案例分析法:分析实际编程案例,让学生学会将理论知识应用于实际问题。

3.实验法:学生动手编写程序,实现图书管理系统的功能,培养实际操作能力。

4.讨论法:分组讨论问题,培养学生的团队协作能力和解决问题的能力。

四、教学资源本课程所需教学资源包括:1.教材:《C程序设计语言》或《C语言入门教程》等。

2.参考书:《C语言编程实例解析》、《C语言常用算法解析》等。

3.多媒体资料:教学PPT、视频教程、编程案例等。

4.实验设备:计算机、编程环境(如Visual Studio、Code::Blocks等)。

5.在线资源:编程论坛、博客、教程等。

五、教学评估本课程的评估方式包括以下几个方面:1.平时表现:评估学生在课堂上的参与程度、提问回答情况、团队合作表现等,占总评的30%。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

课程设计报告课程名称面向对象程序设计课题名称图书管理系统专业计算机科学与技术班级计算机0981学号姓名谭俐莎指导教师李珍辉邓作杰2010年12 月05 日湖南工程学院湖南工程学院课程设计任务书课程名称面向对象程序设计课题图书管理系统专业班级计算机0981学生姓名谭俐莎学号指导老师李珍辉邓作杰审批李珍辉任务书下达日期2010 年12 月05 日任务完成日期2011 年01 月15 日一、设计内容与设计要求1.课程设计目的:面向对象程序设计课程设计是集中实践性环节之一,是学习完《面向对象程序设计》课程后进行的一次全面的综合练习。

要求学生达到熟练掌握C++语言的基本知识和技能;基本掌握面向对象程序设计的思想和方法;能够利用所学的基本知识和技能,解决简单的面向对象程序设计问题,从而提高动手编程解决实际问题的能力。

2.课题题目1)公司库存管理系统2)高校学籍管理系统3)高校工资管理系统4)高校人事管理系统5)通讯录程序设计6)学生成绩管理系统7) 图书管理系统8)文本编辑器的设计与实现9)学生考勤管理系统10)公司人员管理系统3.设计要求:⑴设计课题题目:每位同学根据自己学号除以9所得的余数加一选择相应题号的课题。

换题者不记成绩。

(课题10只做为参考课题)⑵根据自己对应的课题完成以下主要工作:①完成系统需求分析:包括系统设计目的与意义;系统功能需求(系统流程图);输入输出的要求。

②完成系统总体设计:包括系统功能分析;系统功能模块划分与设计(系统功能模块图)。

③完成系统详细设计:包括数据库需求分析;数据库概念结构设计(E -R图);数据库逻辑结构设计;类层次图;界面设计与各功能模块实现。

④系统调试:调试出现的主要问题,编译语法错误及修改,重点是运行逻辑问题修改和调整。

⑤使用说明书及编程体会:说明如何使用你编写的程序,详细列出每一步的操作步骤。

⑥关键源程序(带注释)⑶按规定格式完成课程设计报告,将其打印稿(A4纸)上交给老师存档。

⑷不得抄袭他人程序、课程设计报告,每个人应体现自己的个性设计。

二、进度安排第 18 周星期一 8:00——12:00星期二 8:00——12:00星期四 8:00——12:00第 19 周星期一 8:00——12:00星期二 14:00——18:00星期三 8:00——12:00三、参考书籍1.《C++程序设计课程设计》刘振安编著 TP312C5632.《C++ Builder和Delphi课程设计与系统开发案例》伍俊良清华大学出版社 X3.Visual C++课程设计案例精编严华峰中国水利水电出版社 1 20044.Visual C++课程设计与系统开发案例伍俊良清华大学出版社 3 20025.Visual C++语言课程设计 : 案例精选与编程指导陈清华朱红东南大学出版社 4 20036.VisualC++课程设计案例精编中国水利水电出版社 1 20027.数据结构课程设计案例精编 : 用CC++描述李建学李光元吴春芳清华大学出版社 9 2007(编程平台不限,vc++, c++ Builder等等。

)课题8:图书管理系统(一)、课程设计题目:图书管理系统(二)、目的与要求:1、目的:(1)要求学生达到熟练掌握C++语言的基本知识和技能;(2)基本掌握面向对象程序设计的基本思路和方法;(3)能够利用所学的基本知识和技能,解决简单的面向对象程序设计问题。

2、基本要求:(1)要求利用面向对象的方法以及C++的编程思想来完成系统的设计;(2)要求在设计的过程中,建立清晰的类层次;(3)在系统中至少要定义四个类,每个类中要有各自的属性和方法;(4)在系统的设计中,至少要用到面向对象的一种机制。

3、创新要求:在基本要求达到后,可进行创新设计,如根据查找结果进行修改的功能。

4、写出设计说明书(三)、设计方法和基本原理:1、问题描述(功能要求):在图书管理系统中,要为每个借阅者建立一个账户,并给借阅者发放借阅卡(借阅卡可以提供借阅卡号、借阅者名),账户中存储借阅者的个人信息、借阅信息以及预定信息。

持有借阅卡的借阅者可以借阅书刊、返还书刊、查询书刊信息、预定书刊并取消预定,但这些操作都是通过图书管理员进行的,也即借阅者不直接与系统交互,而是图书管理员充当借阅者的代理与系统交互。

在借阅书刊时,需要输入所借阅的书刊名,书刊的ISBNISSN号,然后输入借阅者的图书卡号和借阅者名,完成后提交所填表格,系统验证借阅者是否有效(在系统中存在账户),若有效,借阅请求被接受,系统查询数据库系统,看借阅者所借阅的书刊是否存在,若存在,则借阅者可借出书刊,建立并在系统中存储借阅记录。

借阅者还书后,删除关于所还书刊的借阅记录。

如果借阅者所借的书刊已被借出,借阅者还可预定该书刊,一旦借阅者预定的书刊可以获得,就将书刊直接寄给预定人(为了简化系统,预定书刊可获得时就不通知借阅者了)。

另外,为了简化系统,也不考虑书刊的最长借阅期限,假设借阅者可以无限期地保存所借阅的书刊。

2、问题的解决方案:根据系统功能要求,可以将问题解决分为以下步骤:(1)应用系统分析,建立该系统的功能模块框图以及界面的组织和设计;(2)分析系统中的各个实体及它们之间的关系包括属性和行为;(3)根据问题描述,设计系统的类层次;(4)完成类层次中各个类的描述(包括属性和方法);(5)完成类中各个成员函数的定义;(6)完成系统的应用模块;(7)功能调试;(8)完成系统总结报告以及系统使用说明书目录1. 系统需求分析 (8)1.1系统设计的目的与意义 (8)1.2系统功能需求 (8)2. 总体设计 (8)2.1系统功能分析 (8)2.2系统功能模块划分与设计 (8)2.3系统功能模块图 (9)3. 详细设计 (9)3.1读者类的设计 (9)3.2读者库类的设计 (10)3.3图书类的设计 (10)3.4图书库类的设计 (11)4. 系统调试 (11)5. 结果分析 (13)6. 总结 (14)6.1感想与体会 (14)7. 附录 (14)7.1源程序清单 (14)1.系统需求分析1.1系统设计的目的与意义:图书系统在生活中运用相当广泛,因此需要很多程序对他进行管理。

1.2 系统功能需求:本系统有四个类,Book类,BDatebase类、Reader类、RDatebase类,存储借阅者的个人信息、借阅信息以及预定信息。

持有借阅卡的借阅者可以借阅书刊、返还书刊、查询书刊信息、预定书刊并取消预定等功能。

2.总体设计2.1 系统功能分析:系统通过调用函数来实现删除图书、读者信息,添加图书、读者信息等功能。

delbook( )函数用于删除图书信息;addbook( )函数用于增加图书信息;borrowbook( )函数用于实现借书操作;returnbook( )函数用于实现还书操作等等;主函数用于掉用这些函数。

2.2系统功能模块划分与设计本系统定义了Book类、BDatebase类、Reader类、RDatebase类这四个类,定义了addbook ( )、addreader( )、borrowbook ( )、setname( )等函数来实现系统所需功能。

2.3 系统功能模块图:3.详细设计3.1 读者类的设计该类定义了借书操作,还书操作,设置读者姓名等功能。

图 3.13.2 读者库类类的设计该类实现了建立读者的个人资料,删除读者信息,输出读者信息等功能。

图 3.23.3 图书类的设计图书类,可以实现对图书的描述,图书的编号,书名,借出,还入等操作。

图 3.33.4 图书库类的设计图 3.44.系统调试在调试过程中,出现了一些错误。

1、输入数据时,输错了数据的类型会造成死循环,因此输入时需要注意。

2、一开始主界面输入非正确数字时,没有提示错误。

容易造成用户误解图4.1在主函数的switch语句结束处加上default:cout<<"输入错误,请从新输入:";就可以了,修改后:图4.2具体调试过程。

主界面图4.3 图书维护图4.4读者维护图4.15.结果分析本程序总共设计了四个类,满足了课题对类的要求,在设计的过程中,建立了较为清晰的类层次,也利用了面向对象的方法以及C++的编程思想来完成系统的设计,做到了每个借阅者建立一个账户,账户中存储借阅者的个人信息、借阅信息等要求。

而且界面美观,容易操作。

但是程序太长,不够简练,导致出现错误很难发现和修改。

6.总结6.1 感想和体会:通过这次的课程设计,让我充分的感觉到了要自己设计一个程序是多么的难,以及学习好c++是多么的重要。

在这个程序的设计过程中,我清楚的意识到自己的水平有多么的薄弱,课程的知识学得有多么的不扎实。

看网上的例子好像觉得也没那么难,自己一上机实际操作就出现了很多问题,调试的时候系统总是在报错,还有很多警告,每增加一个函数就要调试好久,有时候应为少了一个大括号或是分号,导致要找很久很久。

虽然系统可以运行,也具有了一些基本的功能,但我意识到了自己有太多的不足。

以后还会有很多的课程设计,一定要吸取这次的教训,把知识学懂学透学精,真正的为我所用,这样走上社会我才能真正的发挥所长。

7、附录7.1 源程序清单:#include <iostream>#include <iomanip>#include <string>#include <fstream>using namespace std;const int Maxr=100;const int Maxb=100;const int Maxbor=5;class Reader{private:int tag;int no;char name[10];int borbook[Maxbor]; public:Reader() {}char *getname() {return name;} int gettag() {return tag;}int getno() {return no;}void setname(char na[]){strcpy(name,na);}void delbook(){ tag=1; }void addreader(int n,char *na) {tag=0;no=n;strcpy(name,na);for(int i=0;i<Maxbor;i++) borbook[i]=0;}void borrowbook(int bookid) {for(int i=0;i<Maxbor;i++){if (borbook[i]==0){borbook[i]=bookid;return;}}}int retbook(int bookid){for(int i=0;i<Maxbor;i++){if(borbook[i]==bookid){borbook[i]=0;return 1;}}return 0;}void disp(){cout << setw(5) << no <<setw(10) << name<<"借书编号:["; for(int i=0;i<Maxbor;i++)if(borbook[i]!=0)cout << borbook[i] << "|";cout << "]"<<endl;}};class RDatabase{private:Reader read[Maxr];public:RDatabase(){Reader s;top=-1;fstream file("reader.txt",ios::in); while (1){file.read((char *)&s,sizeof(s));if (!file)break;top++;read[top]=s;}file.close();}void clear(){top=-1;}int addreader(int n,char *na) {Reader *p=query(n);if (p==NULL){top++;read[top].addreader(n,na); return 1;}}Reader *query(int readerid){for (int i=0;i<=top;i++)if (read[i].getno()==readerid &&read[i].gettag()==0){return &read[i];}return NULL;}void disp(){for (int i=0;i<=top;i++)read[i].disp();}void readerdata();~RDatabase(){fstream file("reader.txt",ios::out);for (int i=0;i<=top;i++)if (read[i].gettag()==0)file.write((char *)&read[i],sizeof(read[i])); file.close();}};void RDatabase::readerdata(){char choice;char rname[20];int readerid;Reader *r;while (choice!='0'){cout <<"\n\n\t\t\t读者维护\n\n\n\t\t 1 新增\n\n\t\t 2 更改\n\n\t\t 3 删除\n\n\t\t 4 查找\n\n\t\t 5 显示\n\n\t\t 6 全删\n\n\t\t 0 退出"<<endl;cin >> choice;switch (choice){case '1':cout << "输入读者编号:";cin >> readerid;cout << "输入读者姓名:";cin >> rname;addreader (readerid,rname);break;case '2':cout << "输入读者编号:";cin >> readerid;r=query(readerid);if (r==NULL){cout << " 该读者不存在"<<endl;break;}cout << "输入新的姓名:";cin >> rname;r->setname(rname);break;case '3':cout << " 输入读者编号:";cin >> readerid;r=query(readerid);if (r==NULL){cout <<" 该读者不存在" << endl;break;}r->delbook();break;case '4':cout << "读入读者编号:";cin >> readerid;r=query(readerid);if (r==NULL){cout <<"该读者不存在"<< endl;break;}r->disp();break;case '5':disp();break;case '6':clear();break;default:cout<<"输入错误,请从新输入:";break; }}}class Book{private:int tag;int no;char name[20];int onshelf;public:Book(){}char *getname() { return name; } int getno(){ return no; }int gettag(){ return tag; }void setname(char na[]){strcpy(name,na);}void delbook(){ tag=1;}void addbook(int n,char *na) {tag=0;no=n;strcpy(name,na);onshelf=1;}int borrowbook(){if (onshelf==1){onshelf=0;return 1;}return 0;}void retbook(){onshelf=1;}void disp(){cout << setw(6) << no << setw(18) << name << setw(10) <<(onshelf==1? "在架":"已借") <<endl;}};class BDatabase{private:int top;Book book[Maxb];public:BDatabase(){Book b;top=-1;fstream file("book.txt",ios::in);while (1){file.read((char *)&b,sizeof(b));if (!file) break;top++;book[top]=b;}file.close();}void clear(){top=-1;}int addbook(int n,char *na){Book *p=query(n);if (NULL==p){top++;book[top].addbook(n,na);return 1;}return 0;}Book *query(int bookid){for (int i=0;i<=top;i++)if (book[i].getno()==bookid &&book[i].gettag()==0) {return &book[i];}return NULL;}void bookdata();void disp(){for (int i=0;i<=top;i++)if (book[i].gettag()==0)book[i].disp();}~BDatabase(){fstream file("book.txt",ios::out);for (int i=0;i<=top;i++)if (book[i].gettag()==0)file.write((char *)&book[i],sizeof(book[i]));file.close();}};void BDatabase::bookdata(){char choice;char bname[40];int bookid;Book *b;while (choice!='0'){cout <<"\n\n\n\t\t\t图书维护"<<endl<<endl;cout<<"\t\t1 新增\n \t\t2 更改\n\t\t3 删除\n\t\t4 查找\n\t\t5 显示\n\t\t6 全删\n\t\t0 退出"<<endl;cin >> choice;switch (choice){case '1':cout << "输入图书编号:"<<endl; cin >> bookid;cout << "输入图书书名:"<<endl; cin >> bname;addbook(bookid,bname); break;case '2':cout << "输入图书编号:"<<endl; cin >> bookid;b=query(bookid);if (b==NULL){cout << " 该图书不存在"<<endl; break;}cout << "输入新的书名:"<<endl; cin >> bname;b->setname(bname);break;case '3':cout <<" 读入图书编号:"<<endl; cin >> bookid;b=query(bookid);if (b==NULL){cout <<" 该图书不存在" << endl; break;}b->delbook();break;case '4':cout << " 读入图书编号:"<<endl;cin >> bookid;b=query(bookid);if (b==NULL){cout <<" 该图书不存在"<< endl; break;}b->disp();break;case '5':disp();break;case '6':clear();break;default:cout<<"输入错误,请从新输入:"; }}}void main(){char choice;int bookid,readerid;RDatabase ReaderDB;Reader *r;BDatabase BookDB;Book *b;while(choice!='0'){cout <<endl<<endl<<"\t\t\t 图书管理系统\n\n\n";cout <<"\t\t\t1 借书\n\n\t\t\t2 还书\n\n\t\t\t3 图书维护\n\n\t\t\t4 读者维护\n\n\t\t\t0 离开"<<endl;cin >> choice;switch (choice){case '1':cout <<" 借书读者编号:";cin >>readerid;cout <<" 图书编号:";cin >>bookid;r=ReaderDB.query(readerid);if (NULL==r){cout <<" 不存在该读者,不能借书"<< endl;break;}b=BookDB.query(bookid);if (b==NULL){cout <<" 不存在该图书,不能借书"<< endl;break;}if (b->borrowbook()==0){cout << " 该图书已借出,不能借书"<< endl;break;}r->borrowbook(b->getno());break;case '2':cout<<"还书\n 读者编号:";cin >>readerid;cout << " 图书编号:";cin >>bookid;r=ReaderDB.query(readerid);if (r==NULL){cout <<" 不存在该读者,不能还书" << endl; break;}b=BookDB.query(bookid);if (b==NULL){cout <<" 不存在该图书,不能还书" <<endl; break;}b->retbook();r->retbook(b->getno());break;case '3':BookDB.bookdata();break;case '4':ReaderDB.readerdata();break;default:cout<<"输入错误,请从新输入:"; }}。

相关文档
最新文档