C++语言程序设计课程设计报告图书借阅管理系统.docx
《C++语言程序设计课程设计报告图书借阅管理系统.docx》由会员分享,可在线阅读,更多相关《C++语言程序设计课程设计报告图书借阅管理系统.docx(35页珍藏版)》请在冰豆网上搜索。
本科生课程设计
课程名称:
C++语言程序设计课程编号:
设计题目:
图书借阅管理系统
姓名:
班级:
学号:
院 系:
信息学院网络技术系实验地点:
指导教师:
成 绩:
教师签字:
35
一.系统设计总说明
目 录
1.1设计目的 3
1.2设计要求 3
1.3设计内容 4
1.4系统功能简介 4
1.5设计平台 4
二.C++语言课程设计报告
2.1需求分析
2.1.1 管理员功能 5
2.1.2 读者功能 5
2.2概要设计
2.2.1 整体设计 6
2.2.2 系统层次结构图 7
2.2.3 流程图(部分示例) 7
2.3详细设计
2.3.1 书籍结构体(Book) 8
2.3.2 书籍管理结构体(BookManage) 8
2.3.3 读者结构体(Reader) 8
2.3.4 读者管理结构体(ReaderManage) 9
2.3.5 菜单结构体(Menu) 9
2.3.6 主函数(main) 9
2.4编码调试
2.4.1 各界面菜单显示 10
2.4.2 登录验证 13
2.4.3 注册新读者用户 13
2.4.4 添加新的图书资料 13
2.4.5 修改已有图书资料 13
2.4.6 删除已有图书资料 14
2.4.7 查找已有图书资料 14
2.4.8 显示全部图书资料 14
2.5参考文献 14
2.6设计总结 14
2.7附录:
C++图书管理系统源代码 15
系统设计总说明
1.1设计目的
《C/C++语言课程设计》是信息管理与信息系统专业的重要实践性课程。
课程设计为学生提供了一个手脑并用、独立实践的机会。
目的在于培养学生分析问题和解决问题的能力,将课本的理论知识与实际应用问题进行有机结合,提高学生程序设计、程序调试及项目开发能力。
通过本课程设计的实践,全面总结C++课程学习中的数据类型、程序结构、数组、函数、指针、结构体等基本概念,掌握其使用方法。
培养使用面向过程的程序设计方法编写计算机程序的能力。
课题的目的主要是考查学生对C/C++语言的综合编程能力的掌握,培养学生的分析问题和解决问题的能力及逻辑思维能力。
该课题主要考察学生对函数、结构体,指针,文件等的操作,以及C/C++语言基本规则和算法的掌握,所以完成本颗题目要求学生较强的设计能力,特别是要具有综合应用能力。
如何调程序也非常重要,通过这个程序可以学习到以前调试短程序没有的的经验。
1.2设计要求
①问题分析和任务定义:
根据设计题目的要求,充分地分析和理解问题,明确问题要求做
什么(而不是怎么做),限制条件是什么。
②概要设计:
对问题描述中涉及的操作对象定义相应结构体,并按照以设计需要为中心的原则,确定各个结构体之间的关系。
逻辑设计的结果应写出每个结构体抽象数据结构体型的定义(包括数据
结构的描述和每个基本操作的功能说明)、各个主要模块的算法,并画出模块之间的调用
关系图。
③详细设计:
定义相应的储存结构并写出各函数的伪码算法。
在这个过程中,要综合考虑系
统功能,使得系统结构清晰、合理、简单和易于调试,数据类型的实现尽可能做到数据封
装,基本操作的规格说明尽可能做到明确具体。
详细设计的结果写出数据成员储存结构的码类型定义,写出函数形式的算法框架。
④程序编码:
把详细设计的结果进一步求精为程序设计语言程序,同时加入一些注解,
使程序中逻辑概念清楚。
⑤程序调试与测试:
采用自底向上,分模块进行,即先调试低层函数。
能够熟练掌握调试工
具的各种功能,设计测试数据确定疑点,通过修改程序来证实它或绕过它。
调试正确后,
认真整理源程序及其注释,形成格式和风格良好的源程序清单和结果。
⑥结果分析:
程序运行结果包括正确的输入及输出结果和含有错误的输入及其输出结果。
1.3设计内容
设计一个小型图书借阅管理系统。
1.4系统功能简介
①管理员功能
A.添加新的图书资料
B.修改已有图书资料
C.删除已有图书资料
D.查找已有图书资料
E.查看所有图书资料
F.修改读者用户信息
G.删除读者用户信息
H.查看所有读者信息
②读者功能
A.借阅新的图书
B.归还已借图书
C.查找所需图书
D.查看借阅情况
1.5设计平台
本系统是在windows环境下开发的,使用软件为Microsoft公司的VisualC++6.0,并采用了面向过程的技术。
C++语言课程设计报告
信息管理与信息系统专业200811622233张媛媛指导教师:
2.1需求分析
2.1.1管理员功能:
①登录:
输入管理员密码,若密码错误则不得执行管理员操作。
②添加新书:
增加新的图书资料,同时需检查新书的图书编号是否已存在于
原图书资料中,若已存在则应取消添加或提示重新输入。
③修改图书:
通过编号查询该图书资料,若该编号存在,则显示已有信息,
允许修改,否则提示无该图书信息。
④删除图书:
通过编号查询该图书资料,若该编号存在,则显示已有信息,
允许删除,否则提示无该图书信息。
删除对象包括该图书资料
以及“图书状态”和“借阅人”中与此书相关的所有记录。
⑤查找图书:
A.按书号查找:
通过编号查询该图书资料,若该编号存在,则显示图书信
息,否则提示无该图书信息。
B.按书名查找:
通过书名查询该图书资料,若该编号存在,则显示图书信
息,否则提示无该图书信息。
C.按作者查找:
通过作者查询该图书资料,若该编号存在,则显示图书信
息,否则提示无该图书信息。
⑥查看全部图书:
显示所有图书资料,包括书号、书名、作者、状态和借阅
人等信息。
⑦修改读者:
通过姓名查询该读者信息,若该姓名存在,则显示已有信息,
允许修改,否则提示无该读者信息。
⑧删除读者:
通过姓名查询该读者信息,若该姓名存在,则显示已有信息,
允许删除,否则提示无该读者信息。
删除对象包括该读者姓名、
班级、电话以及“图书状态”和“借阅人”中与此人相关的所
有记录。
⑨查看所有读者:
显示所有读者资料,包括姓名、班级、电话等信息。
2.1.2读者功能:
①登录:
输入读者姓名,若未经注册则不得进入读者服务界面。
②注册:
新用户经注册方可登录系统并使用读者服务功能。
③借书:
A. 输入所需图书编号,判断该编号是否存在,若不存在则提示重新输入。
B. 若所输入图书编号存在,则判断该书籍是否已被借出,若已借则不允
许执行借书操作。
C.若所输入图书未借,则提示输入读者姓名,判断所输入读者姓名是否
存在,若不存在则提示重新输入。
D.若读者姓名存在,则允许执行借书操作。
E.借书处理包括在“图书状态”中加上“已借”标记。
④还书:
A.输入所借书编号,判断该编号是否存在,若不存在则提示重新输入。
B.判断该书是否已借出,若未借则不允许执行还书操作。
C.借书处理包括在“图书状态”中加上“未借”标记。
⑤查询图书:
A.按书号查找:
通过编号查询该图书资料,若该编号存在,则显示图书信
息,否则提示无该图书信息。
B.按书名查找:
通过书名查询该图书资料,若该编号存在,则显示图书信
息,否则提示无该图书信息。
C.按作者查找:
通过作者查询该图书资料,若该编号存在,则显示图书信
息,否则提示无该图书信息。
⑥查看借阅情况:
输入读者姓名,若该姓名不存在则提示重新输入,若该姓
名存在则显示该读者借阅信息。
2.2概要设计
2.2.1整体设计
经过需求分析,本系统共设计了五个大模块,分别是书籍数据维护模块、书籍管理模块、读者数据维护模块、读者管理模块和菜单模块。
接着相应定义了五个结构体,分别是书籍结构体(Book)、书籍管理结构体(BookManage)、读者结构体(Reader)、读者管理结构体(ReaderManage)和菜单结构体(Menu)。
书籍结构体(Book)的功能在于存放和维护书籍的基本信息,包括书号、书名、作者、状态(已借/在架)和借阅人;书籍管理结构体(BookManage)的功能在于实现对书籍的相关操作,包括读取书籍文档文件(book.txt)、保存书籍文档文件、添加图书、修改图书、
删除图书、显示全部图书和查找图书;读者结构体(Reader)的功能在于存放和维护读者的基本信息,包括姓名、班级和电话;读者管理结构体(ReaderManage)的功能在于实现对读者的相关操作,包括读取读者文档文件(reader.txt)、保存读者文档文件、新读者注册、修改读者、删除读者、显示全部读者和查找读者;菜单结构体(Menu)的功能在于实现各界面的引导工作,包括主登录界面、系统管理界面、读者登录界面、读者服务界面、管理员书籍查找界面和读者书籍查找界面。
2.2.2系统层次结构图
2.2.3流程图(部分示例)
①管理员登录
②读者登录
③读者借阅图书
④管理员或读者按书名查找图书
2.3详细设计
2.3.1书籍结构体(Book)
①私有数据
charbnum[10];// 书号
charbname[20];// 书名charbauthor[10];//作者charrname[10];//借阅人
②公有数据及公有函数
inttag;// 状态标记判断指标(已借/在架)
Book()// 构造函数初始化信息
voidset_bnum(char*no)// 设置书号
char*get_bnum()// 获得书号
voidset_bname(char*n)// 设置书名
char*get_bname()// 获得书名
voidset_bauthor(char*a)// 设置作者
char*get_bauthor()// 获得作者姓名
voidset_tag(intt)// 状态设置
voidset_rname(char*rn)// 设置借阅人
char*get_rname()// 获得借阅人姓名
voidshow_tag()// 显示图书状态
voidcopy(Bookm)//Book结构体copy函数
2.3.2书籍管理结构体(BookManage)
①私有数据及函数
Bookbooks[100];// 定义Book书籍结构体数组对象,最大容量100本
intlength;//计数
voidsaveF