C++语言程序设计论文.doc

上传人:精*** 文档编号:834371 上传时间:2023-09-07 格式:DOC 页数:21 大小:402.45KB
下载 相关 举报
C++语言程序设计论文.doc_第1页
第1页 / 共21页
C++语言程序设计论文.doc_第2页
第2页 / 共21页
C++语言程序设计论文.doc_第3页
第3页 / 共21页
C++语言程序设计论文.doc_第4页
第4页 / 共21页
C++语言程序设计论文.doc_第5页
第5页 / 共21页
点击查看更多>>
资源描述

1、蚌埠学院毕业大作业 摘要随着人类社会的发展,人类对知识的需求也不断地增长。在这种形势下,书籍就渐渐地成为人们获取并增长知识的主要途径,而图书馆、图书室就自然而然地成为人们获取知识的重要场所。如何更科学、更高效的管理图书信息就成为十分重要且迫在眉睫的工作, 因此开发图书信息管理系统就必不可少了。 本文介绍了利用C+语言,使用软件开发的工程化方法,依据软件的生存周期,按照自上而下,相互衔接,逐步完成的瀑布式开发过程,来完成本次毕业设计。 本系统分图书查询、借还图书、图书管理、用户管理等四大功能模块,针对目前社区机关、中小学等藏书在数万册以下的小型图书馆、图书室,从图书信息管理实际出发,在系统的开发

2、背景、需求分析、设计原则及开发过程等四个方面进行了全面的阐述。全文共分五章,第一章简要地介绍本系统的设计要求及设计目标;第二章需求设计和概要设计;第三章系统结构设计;第四章调试运行;第五章做简单的结论,并提出下一步提高方向。关键字:图书管理 系统设计 C+ 目录摘要1目录2第一章 系统设计总说明41.1设计目的41.2设计要求41.3设计内容51.4系统功能简介5第二章 分析与设计62.1需求分析62.1.1管理员功能:62.1.2读者功能:72.2概要设计72.2.1整体设计72.2.2系统层次结构图82.3流程图(部分示例)8第三章 详细设计103.1书籍结构体(Book)103.2书籍管

3、理结构体(BookManage)103.3读者结构体(Reader)113.4读者管理结构体(ReaderManage)113.5菜单结构体(Menu)12第四章 编码调试、测试144.1各界面菜单显示144.2登录验证164.3注册新读者用户174.4添加新的图书资料174.5 修改已有图书资料184.6删除已有图书资料184.7查找已有图书资料(以按书号查找为例)184.8显示所有图书资料19第五章 设计总结19参考文献20第一章 系统设计总说明1.1设计目的C/C+语言课程设计是信息管理与信息系统专业的重要实践性课程。课程设计为学生提供了一个手脑并用、独立实践的机会。目的在于培养学生分析

4、问题和解决问题的能力,将课本的理论知识与实际应用问题进行有机结合,提高学生程序设计、程序调试及项目开发能力。 通过本课程设计的实践,全面总结C+课程学习中的数据类型、程序结构、数组、函数、指针、结构体等基本概念,掌握其使用方法。培养使用面向过程的程序设计方法编写计算机程序的能力。 课题的目的主要是考查学生对C/C+语言的综合编程能力的掌握,培养学生的分析问题和解决问题的能力及逻辑思维能力。该课题主要考察学生对函数、结构体,指针,文件等的操作,以及C/C+语言基本规则和算法的掌握,所以完成本颗题目要求学生较强的设计能力,特别是要具有综合应用能力。如何调程序也非常重要,通过这个程序可以学习到以前调

5、试短程序没有的的经验。1.2设计要求问题分析和任务定义:根据设计题目的要求,充分地分析和理解问题,明确问题要求做什么(而不是怎么做),限制条件是什么。概要设计:对问题描述中涉及的操作对象定义相应结构体,并按照以设计需要为中心的原则,确定各个结构体之间的关系。逻辑设计的结果应写出每个结构体抽象数据结构体型的定义(包括数据结构的描述和每个基本操作的功能说明)、各个主要模块的算法,并画出模块之间的调用关系图。详细设计:定义相应的储存结构并写出各函数的伪码算法。在这个过程中,要综合考虑系统功能,使得系统结构清晰、合理、简单和易于调试,数据类型的实现尽可能做到数据封装,基本操作的规格说明尽可能做到明确具

6、体。详细设计的结果写出数据成员储存结构的码类型定义,写出函数形式的算法框架。程序编码:把详细设计的结果进一步求精为程序设计语言程序,同时加入一些注解使程序中逻辑概念清楚。程序调试与测试:采用自底向上,分模块进行,即先调试低层函数。能够熟练掌握调试工具的各种功能,设计测试数据确定疑点,通过修改程序来证实它或绕过它。调试正确后认真整理源程序及其注释,形成格式和风格良好的源程序清单和结果。结果分析:程序运行结果包括正确的输入及输出结果和含有错误的输入及其输出结果。1.3设计内容 设计一个小型图书借阅管理系统。1.4系统功能简介管理员功能 A.添加新的图书资料 B.修改已有图书资料 C.删除已有图书资

7、料 D.查找已有图书资料 E.查看所有图书资料 F.修改读者用户信息 G.删除读者用户信息 H.查看所有读者信息读者功能 A.借阅新的图书 B.归还已借图书 C.查找所需图书 D.查看借阅情况第二章 分析与设计2.1需求分析2.1.1管理员功能:登录:输入管理员密码,若密码错误则不得执行管理员操作。添加新书:增加新的图书资料,同时需检查新书的图书编号是否已存在于原图书资料中,若已存在则应取消添加或提示重新输入。修改图书:通过编号查询该图书资料,若该编号存在,则显示已有信息,允许修改,否则提示无该图书信息。删除图书:通过编号查询该图书资料,若该编号存在,则显示已有信息,允许删除,否则提示无该图书

8、信息。删除对象包括该图书资料 以及“图书状态”和“借阅人”中与此书相关的所有记录。查找图书: A.按书号查找:通过编号查询该图书资料,若该编号存在,则显示图书信息,否则提示无该图书信息。 B.按书名查找:通过书名查询该图书资料,若该编号存在,则显示图书信息,否则提示无该图书信息。 C.按作者查找:通过作者查询该图书资料,若该编号存在,则显示图书信息,否则提示无该图书信息。查看全部图书:显示所有图书资料,包括书号、书名、作者、状态和借阅人等信息。修改读者:通过姓名查询该读者信息,若该姓名存在,则显示已有信息允许修改,否则提示无该读者信息。删除读者:通过姓名查询该读者信息,若该姓名存在,则显示已有

9、信息,允许删除,否则提示无该读者信息。删除对象包括该读者姓名、班级、电话以及“图书状态”和“借阅人”中与此人相关的所有记录。查看所有读者:显示所有读者资料,包括姓名、班级、电话等信息。2.1.2读者功能:登录:输入读者姓名,若未经注册则不得进入读者服务界面。注册:新用户经注册方可登录系统并使用读者服务功能。借书: A.输入所需图书编号,判断该编号是否存在,若不存在则提示重新输入。 B.若所输入图书编号存在,则判断该书籍是否已被借出,若已借则不允许执行借书操作。 C.若所输入图书未借,则提示输入读者姓名,判断所输入读者姓名是否存在,若不存在则提示重新输入。 D.若读者姓名存在,则允许执行借书操作

10、。 E.借书处理包括在“图书状态”中加上“已借”标记。还书: A.输入所借书编号,判断该编号是否存在,若不存在则提示重新输入。 B.判断该书是否已借出,若未借则不允许执行还书操作。 C.借书处理包括在“图书状态”中加上“未借”标记。查询图书: A.按书号查找:通过编号查询该图书资料,若该编号存在,则显示图书信息,否则提示无该图书信息。 B.按书名查找:通过书名查询该图书资料,若该编号存在,则显示图书信息,否则提示无该图书信息。 C.按作者查找:通过作者查询该图书资料,若该编号存在,则显示图书信息,否则提示无该图书信息。查看借阅情况:输入读者姓名,若该姓名不存在则提示重新输入,若该姓名存在则显示

11、该读者借阅信息。 2.2概要设计2.2.1整体设计经过需求分析,本系统共设计了五个大模块,分别是书籍数据维护模块、书籍管理模块、读者数据维护模块、读者管理模块和菜单模块。接着相应定义了五个结构体,分别是书籍结构体(Book)、书籍管理结构体(BookManage)、读者结构体(Reader)、读者管理结构体(ReaderManage)和菜单结构体(Menu)。书籍结构体(Book)的功能在于存放和维护书籍的基本信息,包括书号、书名、作者、状态(已借/在架)和借阅人;书籍管理结构体(BookManage)的功能在于实现对书籍的相关操作,包括读取书籍文档文件(book.txt)、保存书籍文档文件、

12、添加图书、修改图书、删除图书、显示全部图书和查找图书;读者结构体(Reader)的功能在于存放和维护读者的基本信息,包括姓名、班级和电话;读者管理结构体(ReaderManage)的功能在于实现对读者的相关操作,包括读取读者文档文件(reader.txt)、保存读者文档文件、新读者注册、修改读者、删除读者、显示全部读者和查找读者;菜单结构体(Menu)的功能在于实现各界面的引导工作,包括主登录界面、系统管理界面、读者登录界面、读者服务界面、管理员书籍查找界面和读者书籍查找界面。2.2.2系统层次结构图 、2.3流程图(部分示例)1 管理员登录 2读者登录 3读者借阅图书 4管理员或读者按书名查

13、找图书 第三章 详细设计3.1书籍结构体(Book)私有数据 char bnum10; /书号 char bname20; /书名 char bauthor10; /作者 char rname10; /借阅人公有数据及公有函数 int tag; /状态标记判断指标(已借/在架) Book() /构造函数初始化信息 void set_bnum(char *no) /设置书号 char *get_bnum() /获得书号 void set_bname(char *n) /设置书名 char *get_bname() /获得书名 void set_bauthor(char *a) /设置作者 cha

14、r * get_bauthor() /获得作者姓名 void set_tag(int t) /状态设置 void set_rname(char *rn) /设置借阅人 char *get_rname() /获得借阅人姓名 void show_tag() /显示图书状态 void copy(Book m) /Book结构体copy函数 3.2书籍管理结构体(BookManage)私有数据及函数 Book books100; /定义Book书籍结构体数组对象,最大容量100本int length; /计数void saveFile() /保存书籍文件void readFile() /读取书籍文件

15、公有数据及函数 BookManage() /构造函数,读取磁盘文件 BookManage() /析构函数,保存磁盘文件 bool add(Book book) /添加图书资料int bnu_search(char *bnu) /按书号查找书籍 int bna_search(char *bna) /按书名查找书籍 int bau_search(char *bau) /按作者查找书籍 int rn_search(char *rn) /按借阅人查找书籍 void revise(Book book,int i)/带参的修改书籍函数 void deleteBook(int index)/带参的删除书籍资

16、料函数void show_book()/不带参的显示书籍函数 void show_book(int i)/带参的显示书籍函数 void br_book()/读者借、还书功能函数 bool in(int i) /判断图书是否在架函数 3.3读者结构体(Reader)私有数据及函数 char rname10; /读者姓名 char rclass10; /班级 char rtel10; /电话公有数据及函数 Reader() /构造函数,实现数据初始化 void set_rname(char *rn) /设置读者姓名 char * get_rname() /获得读者姓名 void set_rclas

17、s(char *rc) /设置班级 char *get_rclass() /获得班级 void set_rtel(char *rt) /设置电话 char *get_rtel() /获得电话 void copy(Reader m) /读者Reader结构体copy函数3.4读者管理结构体(ReaderManage)私有数据及函数Reader readers50; /定义读者结构体数组对象,最多50位int length; /计数 void readFile() /读取读者文件函数void saveFile() /保存读者文件公有数据及函数 ReaderManage() /构造函数,读取读者文件

18、ReaderManage() /析构函数,保存读者文件 void add_reader(Reader r) /添加读者用户函数int search(char *rn) /按姓名查找读者函数bool revise(Reader reader,int i) /修改读者资料函数 void delete_reader(int index) /删除读者函数 bool log_reader(Reader r) /登录时判断读者用户是否存在函数 void reg_reader() /注册用户函数void show_reader() /不带参的显示读者信息函数 void show_reader(int i)

19、/带参的显示读者信息函数3.5菜单结构体(Menu)私有数据及函数BookManage bm; /定义书籍管理结构体对象bmReaderManage rm; /定义读者管理结构体对象rmReader r; /定义读者结构体对象rint choice; /菜单序号选择 int key; /管理员密码公有数据及函数void header() /页眉void log_menu() /主界面登录菜单void admin_menu() /管理员管理菜单void reader_menu() /读者服务菜单void bsearch_menu() /读者查找书籍菜单 void absearch_menu()

20、/管理员查找书籍菜单 void reader_lr() /读者登录或注册菜单void log_admin() /管理员登录void rn_search() /按书号查找函数 void bnu_search() /按书号查找函数 void bna_search() /按书名查找函数 void bau_search() /按作者查找函数 void addBook() /新增书籍函数void reviseBook() /修改书籍函数 void delBook() /删除书籍函数 void reviseReader()/修改读者用户函数 void delReader() /删除读者用户函数 第四章 编

21、码调试、测试4.1各界面菜单显示主登录界面 系统管理界面读者登录界面读者注册界面读者服务界面书籍查找界面4.2登录验证管理员登录A. 输入错误密码 B.输入正确密码读者登录A.输入已注册姓名A. 输入已注册姓名 B. 输入未注册姓名4.3注册新读者用户 4.4添加新的图书资料输入已存在图书书号 输入未存在的图书书号4.5 修改已有图书资料输入不存在图书书号 输入已存在图书书号4.6删除已有图书资料输入不存在图书书号 输入已存在图书书号 4.7查找已有图书资料(以按书号查找为例)输入不存在图书书号 输入已存在的图书书号输入已存在图书书号4.8借阅图书输入不存在的图书号输入已存在的图书号4.9归还

22、图书输入不存在的图书号输入已存在的图书号5.0显示所有图书资料第五章 设计总结经过近一个星期的努力,前后修修改改,调试又调试,我的C+图书管理系统终于得以诞生!在这个过程中,我发现自己还有很多很多知识都没有学好,看别人的例子的时候好像很简单,自己一上机操作就有问题。调试的时候系统总是报错,还有很多警告,每添加一个函数,往往都要要调试很久,有时候仅仅只是少了一个大括号,却花上近半个小时才找到问题的瓶颈所在。系统虽然完成了,也可以运行,一些基本的功能也能够实现,但我知道,还有很多的不足。另外,我发现帮助文件真的很有用,每当我看别人例子看不懂的时候,都是去帮助文件搜索,如果里面的信息不够完整,再利用各大网站的搜索引擎来寻找答案,比如更改背景颜色的问题,之前试了很多次都不行,后来偶然发现一个MS-DOS命令大全,然后再去网上搜索color命令的使用语法,原来以为很复杂的代码,只需一句system(color fd),问题就迎刃而解了。以后还会有很多课程设计,一定要吸取这次的教训,知识不是看过就可以了,而是要把知识学透、学精,才能够真正做到为我所用。参考文献1.MS-DOS命令大全帮助文件/落雪飞花;网络资料2.C+函数库参考帮助文件;刘双印老师提供3.C+基础教程-从问题分析到程序设计专著(美)D. S. Malik著;清华大学出版社21

展开阅读全文
相关资源
相关搜索
资源标签

当前位置:首页 > 学术论文 > 大学论文

版权声明:以上文章中所选用的图片及文字来源于网络以及用户投稿,由于未联系到知识产权人或未发现有关知识产权的登记,如有知识产权人并不愿意我们使用,如有侵权请立即联系:2622162128@qq.com ,我们立即下架或删除。

Copyright© 2022-2024 www.wodocx.com ,All Rights Reserved |陕ICP备19002583号-1 

陕公网安备 61072602000132号     违法和不良信息举报:0916-4228922