C 编写的图书信息管理系统附带源码_第1页
C 编写的图书信息管理系统附带源码_第2页
C 编写的图书信息管理系统附带源码_第3页
C 编写的图书信息管理系统附带源码_第4页
C 编写的图书信息管理系统附带源码_第5页
已阅读5页,还剩45页未读 继续免费阅读

下载本文档

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

文档简介

学号:20234303

计算机实习汇报

系别:管理系

专业:信息管理与信息系统专业

班级:1043班

学生姓名:李优

指导教师:徐日

日期:2023-09-03〜2023-09-14

1需求分析

1.1选题任务

图书借阅管理系统

(1)编程工具

C++

(2)规定

选题学生应具有端正的学习态度、正常的交流能力,应有积极积极、克服困难

的学习意识

(3)本题概述

以学院图书馆为例,图书借与管理是一项常常性工作,为使图书借阅管理工作

精确高效,提供图书借阅记录日勺添加、修改、删除、查询、浏览、汇总等,用

图书借阅关系软件,能有效提高工作效率,具有较强的实际意义。

(4)功能描述

①能度日外部提供的包括图书借阅信息的文本文献(TXT文献);

②能在程序中录入图书借阅信息(可参照我院图书馆网上图书借阅信息的各个项

目),并将信息写入文本文献(TXT文献);

③能对所有图书借阅信息,按条件(按图书名、图书编号、借阅日期、借阅人、

超期与否、超期天数等)查询浏览,能汇总记录计算出符合某条件日勺图书借阅

记录日勺数量并浏览这些借阅信息,能将查询、浏览、汇总欧I成果输出成果文本

文献(TXT文献)

(5)辅助阐明

基础规定:①+②

扩展规定:①+②+③

1.2输入数据和输出数据形式:

程序中包括的图书信息包括:

charbnum[20];〃书号

charbname[20];〃书名

charbauthor[10];〃作者

charrname[10];〃借阅人

charbdays[10];〃借出日期

charbchac[10];〃超期天数

为了以便,我所有设置成了char型。

而程序中包括两种输入方式和两种输出方式,对应题目规定,分别是:单个图书信

息H勺增删查改;TXT文档的导入(图书数据库.txt);屏幕的打印;TXT文档的导出(书

籍信息.txt)0

1.3测试数据及测试目的

字母测试,错误数据测试,反复数据测试

目的:产看本程序的纠错能力和与否人性化。

2程序设计

2.1关键数据类型定义

〃********书籍构造体,用于寄存书籍基本信息********

char*get_rname()〃获得借阅人姓名

voidcopy(Bookm)//Book构造体copy函数

);//classbook

〃**********书籍管理构造体,实现管理书籍功能**********

classBookManagc

private:

Bookbooks[100];〃定义Book书籍构造体数组对象,最大容量100本

public:

intlength;

BookManagc()〃构造函数,读取磁盘文献

intadd(Bookbook)〃添加图竹资料

intbnu_search(char*bnu)〃按书号查找书籍

intbnasearch(char*bna)〃按书名查找书籍

intbau_search(char*bau)〃按作者查找书籍

intrn_search(char*rn)〃按借阅人杳找书籍

intbd_search(char*bd)〃按借出口期查找书籍

intbc_search(char*bc)〃按超期天数查找书籍

voidrevise(Bookbook,inti)〃修改书籍函数

voiddeleteBook(intindex)〃删除书籍资料函数

voidshowbookhead()//显示输出列表,表头。

voidshowbook(inti)〃显示书籍函数

voidsaveFileHead()/〃保留书籍文献H勺表头到txt

voidsaveFile(inti)〃带参的)输出书籍到txt

voidreadFileO〃读取书籍文献

);//classBookManage

//木木木木木木木木木木菜单构造体,实现界面引导木木木木木木木木木木

classMenu

(

BookManagebm;〃定义书籍管理构造体对象bin

private:

intchoice;〃菜单序号选择

intkey;〃管理员密码

public:

voidheader()〃首页欢迎界面

voidloginenuO〃主界面登录菜单

voidadminmenu(;〃管理菜单

voidabsearch_menu()〃查找书籍菜单

voidlogadmin()//密码登陆

voidrn_search()〃按借阅人姓名查找函数

voidbnusearch(;〃按书号查找函数

voidbnasearch()〃按书名查找函数

voidbausearch()〃按作者查找函数

voidbd_search()〃按借阅日期查找函数

voidbc_search()〃按超期天数查找函数

voidaddBookO〃添加新的书籍信息函数

voidreviseBook(;〃修改书籍函数

voiddclBookO〃删除书籍函数

intmain()

2.2主程序流程图

2.3调用关系

1.书籍信息的J录入:

voidset_bnum(char*no)〃设置书号

{strcpy(bnum,nc);}〃把字符串no中的字符复制到字符串bnum中

char*getbnum()〃获得书号

{returnbnum;}〃返回值为bnum

voidset_bname(char*n)〃设置书名

(strcpy(bname,n);}

char*get_bname()〃获得书名

{returnbname;)

voidsetbauthor(char*a)〃设置作者

{strcpy(bauthor,a);}

char*get_bauthor()〃获得作者姓名

{returnbauthor;}

voidset_bdays(char*d)〃设置借Hl日期

{strcpy(bdays,d);}

char*gelbdays0〃获得借出日期

{returnbdays;}

voidset_bchao(char*c)〃设置超过天数

{strcpy(bchao,c);)

char*get_bchao()〃获得超过天数

{returnbchao;)

voidsetrname(char*rn)〃设置借阅人

{strcpy(rname,rn);}

char*getrname()〃获得借阅人姓名

{returnrname;}

2.书籍信息日勺添加:

intadd(Bookbook)

判断length与否到达最大值,假如没有则进行添加。

3.书籍信息的查找:

无论是按照书号、书名、作者、借阅人、借出日期、超期天数来进行查找都是进行

挨个比较,假如碰到相似则返回书籍的i值,进行返回输出。

4.书籍信息日勺修改:

输入想要修改的书籍编号,按照杳找的措施,找到i,然后进行覆盖。完毕修改。

5.书籍的屏幕打印输出:

分两部分输出,首先打印一种头信息,相称于列表的头;然后运用循环语句带参输

出(i为参数,循环)。

6.保留信息到txt文献:

同分为两部分,类似屏幕打印的措施,先存入表头,然后带参循环存入书籍信息。

带参的意义就是,可以无限调用该语句,只要懂得书H勺序号i。

7.从信息中读取txt文献:

structbooks

charnumb[10];〃书号

charnameb[20];〃书名

charauthorb[10];〃作者

charnamer[10];〃借阅人

chardaysb[10];〃借出日期

charchaob[10];〃超期天数

};

定义构造体。运用fscanf()语句讲读取的数据按次序存入构造体中。然后直接运

用书籍添加函数直接写入系统。

3调试分析

3.1重要问题及处理方案:

1.界面颜色设定:

一直抛弃黑底白字这种默认形式,换一种颜色给人特殊日勺感觉,在网上找到有关日勺

代码为systcm(〃color**〃);语句。不过也是没有头绪不懂得怎么调试,后来一不小心

设置错误,系统就弹出了提醒界面,我就明白了界面颜色的设置措施(图3.1):

印'C:\DocuMents

,OLORLattrJ

attr指定控撒台输出的颜色属性

颜色属性由两个十六进制数字指定一第一个为背景,第二个则为

扇景。每个数字可以为以下任何值之一:

黑色

8=色

9^蓝色

蓝■

A=4色

B=^绿

C=^色

D薯

薯-_

E色

=白

白F

=亮

如果没有给定任何参数,该命令会将颜色还原别CMD.EXE启动时

的颜色。这个值来月当前控制各窗口、”开关或

efaultColor注册表值。

如果用相同的前景和背景颜色来执行COLOR命令,COLOR命令

会将ERRORLEUEL设置为1。

图3.1

2.有关书籍日勺cout输出:

最开始设计输出模块时候,仅仅是想到了不带参日勺book信息输出,show_book()函

数中自带了一种for语句循环输出所有书籍信息,是为显示所有书籍设计日勺。不过后来

发现假如要单显示筛选信息就要从新写一种带参show_book(inti),虽然函数重载容许

这样做,不过却无意义的增长了代码长度。我选择删除了不带参的show_book(),把for

语句循环写在外面。这样就增长了show_book(inti)函数的运用率,精简了函数口勺和长

度。

3.书籍信息日勺txt写入:

综合了屏幕打印H勺经验,鉴于fwrite和cout使用措施和显示效果类似,我决定

将txt欧J写入语句也设置成带参形式saveFile(inti),原理与show_book(inti)基本

一致。完毕这些就能实现。后来发现文献总是覆盖,每次写入都会将上一次的覆盖,也

就是只有最终一行,后来才想起了ios::app追加模式,才最终算完整实现。

4.读取数据函数:

这个函数是我编辑最久日勺,由于使用的不纯熟,我先查找了诸多资料•,并且写了某

些单独的小程序去测试效果,不过感觉都不理想。后来选择了一种最笨的措施,运用

fseek函数一格一格的挑开空格和无用信息。不过这样做最大的缺陷就是,我的txt导

入文档鼻息保持固定格式,一格空格都不能多,假如多了就会导致错位。后来与徐老师

交流时,老师也说这种输入措施不可取,由于实现了功能不过意义不大。规格太死,不

够人性化。于是我就退后开始,重新选择语句。最终决定定义构造体,把txt中信息读

取之后直接存入构造体,随即就把构造体中的数据运用set_xxxx函数存入。

5.有关字母纠错及错误输入日勺处理:

字母输入本来都是用fflush(stdin);来清空缓存来防止程序进入死循环,不过我这

次编程想到了一种愈加简朴有效日勺措施:运用char来存储选择,随即强转为int型,

其实就是讲所有日勺字符转为了asc2码,由于acs2码日勺唯一性,我就可以用switch直

接跳过了字母部分,例如我要判断i的输入与否唯1,我就将L48写入switch判断就

好了。

4使用阐明

4.1重要功能简介及操作环节:

1.主界面:

选择1登陆,密码为1043,按任意键进入系统。

2.系统操作界面:

•C:\D©cim«nt«andSottinc*\Adainistrator\ft*i\*\H^tt..BSGl

,系“统”管-理”界”面,

添加新的图书我科2:脩改已有图书资料

・除已有图节资料尔查找已有图书货料

查看所有图书资料6>谀取指定位置TXT

写人指定铉置7”T•,迈回乐蛇唇录叼面

退出图书管理系统

支W7>1/vz\yvz*&/々W叱WW”>yMzxy

请选择您需要的服务序号,.

直接输入数字选择功能。

1:添加新的图书资料:2:修改已经有图书资料:

*C:\Dncu»«ntKandS»ttin(«\A<taini«trator\ftB\••BEJEj*C:\Dncu»«ntKandS»ttinc«\A<ta>ni«trator\ftH\>UHit*\MDI

•:ifi出图书昔理原线3承“————比-E••界•M»如——.

米生泉

宗生I生«'添加新的图书寅科21修汶己有函书货科条

生※※球※※然&※※※

«jjys^J5K5K

»3:蟀已有图书资料4:田t已有图书贲科生

谓法择好寄要的服务序号•1欢就皴

5>食所所有图书资料3谀取指定位置W系

g入新的书号“ax<公

生7:写入指定位置TXT■.退回簟线登录界面

系统目前黄无议节记录,您可以独线操作,把忽能

生B:退出图书*理照妓案

谓*入新书书名,大竽物理生生

泉案

谓城入新书作者,林学明

调看人借倜人,李优调送择您需具的8g务序号.2

谓*入借出B期,zaiiiaiH谓*入15要修劭书籍的书号:11

谓输入明期天数,,。谓看入更改后的书名,ie»

2名,新书费衿术人成功,谓接任意慢维第•.•・谓修入更改石的ft:者,孙军明专卿

格&您,书籍境内作改成功,请按任意慢缎续••.

SfiWff辛,山

3:删除已经有图书资料:

*C:\Dncu»«ntKand$»ttin(«\A<ta>n>«trator\ftB\..BEE]

?本加新的图书资料2:修过已有图书资料

.,f«已有图书资料4,金女己有密

?壹看所有由书资料,:液用指定位置TM

SXffiT^lTXT«.1SE).《候量6见面

谡出图书音理不战

清选择场宾曼的般务序号,7

谓总入经更t除刁籍代书号,1-

您馈定突务称说书记票马〈”Q

搜闻弁音堂成动'谓技任意健地续・,*

▼J

4:查找已经有图书资料:

根据序号选择功能:按书名查找:

"C:\E>oruBcat>*A4S«ttincsVAdainivtrBtorXflMV'MflitSm^^llXlB^ttMtt.••BQQieC:\PoniBcat>aa4S«ttin<s\Ada>n>vtrBtor\flM\•.BSE

32l按书名宜技%.3

21按书名攻技条条条

装3«按作者攻技

3:按作力宣技条J生祭

条48按日刚或我

4:按日期・我条

条5:按fflWfttt

5:投fflWfttt生张X<

较温6:返回上驶

6:返回上级•••生生

方•:£出新统

恕需

•:£出系统「

壁涣嫡修※瀚侬3@@@掇循

道愉人位需要的媵务序号,2

请帔入代班的僵务序号,1

道・入金娶青我的书名,

次恰人一娶毁臂号;巴匕一转一信一身一列一表———————

书名借出日期超期天数曾三瀛掰喘熙鹫8a明天-

三国演义2ei2mm

造特住母油切优・・.可咕仟#♦»<»<«...

依史妍仔石ZJmwrs*■zJ

按作者查找:按借出日期查找:

"C:\Ducu»e»t>andSettin<八Adaax,”■“八・・\IllVIit,\■书・,+统...日三日*C:\t>ora»<At*a&dSctltncxVAdainavtrBtorX^IMXtfmitSM^^IXB^ttMtt.••BlZJW

»:投恋±]IS.

求.一女21按心名立技

求”钱作者点我生生条

泉米」3«按作者攻技

■,校日期佥我密

4:按BMkft

$:技超期青技

5:投超期查技

。运©上级

船返回上级

•:退出系统

»城•:退出系统

»篇

购修案浜※浜※※※斑长※痴如

・输入您需要的鼓务序号,>

道愉人位班的僵务序号,4

谓检入您发查我的4・

请修人怒娶青孜蚪倡出臂|2HH12I2

一用一》一£1M一袅—-------T-H一僖••一9.

书号〜麹,正4信其人借出日期圆朋天数书名作击僧8人超明天践

leei水出每叫W版三2S111212199水涛传醐庵&三2・11:2121M

次命森任意X.…0请接任意怪鞋续•・・

re^nfi¥»

按超期天数查找:

aC:\DocuBe«taandSetttn<a\AdaaatstKat9r\AM\.BZC

※来*

※匕技书名杳技※

泉※

泉3•钱作者我※

4•我案

※※

泉%:快相期杳发※

淞※

谓输入怎为更的皎务序号,5

____三::三?汇溪生第二,■士上■…巧―r

水箫送《信腔黯器

a蟹任邑喇纯.一

眼狗橹日曲d

5:查看所有图书资料:6:读取指定位置TXT:

•C:\0ocuxat.idS.ttinC.\A<U>n>xtr.tor\AflM<r)4WM«^l\IBBW^tt...BQC'"C\Dacua«ntxaa4S««taak<>\A4Binavtrator\HM\IftRif!\HBW♦ft...Bt3E3

※2:4仪二a出节负九※.」

※※水i

划依已有图书资料4:青我?有图书资相

篡※J7,写人担定<1置》»*.5SSS»1»»E奈

生查看所有超书货科6:i矣取格定位置nn

生•:iR出图书百日系统

S泉

K写人指定位置TXT•.返回紧统至宋界而

ifl出图野管理累统

亲※

瑞为蜂熊需笑的喙[号,■:■化

f间

lf借出日期想用天找

仇借出8期起期天代

Z01ZHV01Z・AZ5・A

2B1112121»

毒£

2012883B2B12M30

281288122012M12

-n示兄毕,请按任羽煲缎“•・・•显示宪毕,涓技任复健城建.・・■

•J财1楮*i

7:写入指定位置TXT:

5测试成果

5.1测试数据

1.A4asdfasdf(多字母):

*C:\DocuaentaandSettint9\Ad*ini9tratI.BSE

XBEST!:匕京电子科技学院派

‘"菌…石…、…初…言…近…及…三二,X

(请选择是否进入>

1:进入系我

。:退出

在的速择是,4

生的操倬有误.清重新选择<—1>:,

您的操作有误,清重新选择<・一1>:二J

温馨提示

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

评论

0/150

提交评论