C 图书信息管理系统(含源码)_第1页
C 图书信息管理系统(含源码)_第2页
C 图书信息管理系统(含源码)_第3页
C 图书信息管理系统(含源码)_第4页
C 图书信息管理系统(含源码)_第5页
已阅读5页,还剩47页未读 继续免费阅读

下载本文档

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

文档简介

学号:20234303

计算机实习汇报

系别:管理系

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

班级:1043班

学生姓名:李优

指导教师:徐日

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

1需求分析

1.1选题任务

图书借阅管理系统

(1)编程工具

C++

(2)规定

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

的学习意识

(3)本题概述

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

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

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

(4)功能描述

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

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

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

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

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

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

文献(TXT文献)

(5)辅助阐明

基础规定:①+②

扩展规定:①+②+③

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

程序中包括口勺图书信息包括:

charbnum[20];//书号

charbname[20];//书名

charbauthor[10];〃作者

charrname[10];〃借阅人

charbdays[10];//借出日期

charbchac[10];〃超期天教

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

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

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

籍信息.txt)0

1.3测试数据及测试目的

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

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

2程序设计

2.1关键数据类型定义

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

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

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

};//cIassbook

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

cIassBookManage

private:

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

pubIic:

intlength;

BookManage()//构造函数,读取磁盘文献

intadd(Bookbook)//添加图书资料

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

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

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

intrn_search(char*rn)//按借阅人查找书籍

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

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

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

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

voidshow_bookhead()〃显示输出列表,表头。

voidshowbook(inti)〃显示书籍函数

voidsaveFiIeHead()///保留书籍文献口勺表头到txt

voidsaveFile(inti)//带参口勺输出书籍到txt

voidreadFiIe0//读取书籍文献

};//cIassBookManage

//**********菜单力勾造.体,实现界面弓|导**********

cIassMenu

(

BookManagebm;//定义书籍管理构造体对象bm

private:

intchoice;〃菜单序号选择

intkey;〃管理员密码

publie:

voidheader()〃首页欢迎界面

voidIog_menu()〃主界面登录菜单

voidadmin_menuC//管理菜单

voidabsearch_menu0//查找书籍菜单

voidIog_admin()〃密码登陆

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

voidbnu_searchC〃按书号查找函数

voidbna_searchC//按书名查找函数

voidbau_searchC//按作者查找函数

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

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

voidaddBook()〃添加新的书籍信息函数

voidreviseBookC//修改书籍函数

voiddeIBook()//删除书籍舀数

intmain()

2.2主程序流程图

2.3调用关系

1.书籍信息日勺录入:

voidsetbnum(char*no)〃设置书号

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

char*get_bnum()〃获得书号

returnbnum;}〃返回值为bnum

voidset_bname(char*n)〃设置书名

(strcpy(bname,n);}

char*get_bname()〃获得书名

{returnbname;)

voidset_bauthor(char*a)//设置作者

{strcpy(bauthor,a);)

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

{returnbauthor;}

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

(strcpy(bdays,d);)

char*get_bdays()//获得借出日期

{returnbdays;)

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

{strcpy(bchao,c);)

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

{returnbchao;}

voidset_rname(char*rn)//设置借阅人

{strcpy(rname,rn);}

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

{returnrname;}

2.书籍信息日勺添加:

intadd(Bookbook)

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

3.书籍信息的查找:

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

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

4.书籍信息日勺修改:

揄人想要修改口勺书籍编号,按照查找口勺措施,找到i,然后进行覆盖。完毕修改。

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

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

出(i为参数,循环)。

6.保留信息到txt文献:

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

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

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

structbooks

charnumb[10];〃书号

charnameb[20];〃书名

charauthorb[10];//作者

charnamer[10];//借阅人

chardaysb[10];〃借出日期

charchaob[10];〃超期天数

1;

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

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

3调试分析

3.1重要问题及处理方案:

1.界面颜色设定:

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

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

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

OLORLattrJ

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

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

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

黑色

0=8=色

19^蓝色

■蓝■

2=A=4色

3=B=^绿

4=C=^色

5D薯

=薯-_

6E色

==白

?白F

==亮

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

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

DefaultColor注册表值。

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

会将ERRORLEUEL饺叠为1。

图3.1

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

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

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

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

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

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

度。

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

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

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

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

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

4.读取数据函数:

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

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

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

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

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

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

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

5.有关字母纠错及错误谕入的处理:

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

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

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

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

好了。

4使用阐明

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

1.主界面:

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

2.系统操作界面:

,C:\DocsenrandSot*rator\京簿履实AI\用书缓…日回口]

学的改氽景近的改东紫景景※浓氽台景的改东氽※本

生生

※---”…”.系-统-吉”理”界-面一

派n部加勤的图书费料2;修改已有图书资料

,3:。赊已有图物料4:查找已有困书资科

生泉

卷5:SE看所有图节丧科6:快取指定位置TXT

W7K

般、,写入指定位置”!*返回系统叁录界面??•

聚聚

米8:退出图书管理系统派

案派

生密

•</«A/\*/'f/vz't/,Az\*/v/«zz•f/\*/\*/x1/v*«^z\f/'-t/'fy*A/<A/«AZ«A/\V\*Z<ZZ

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

直接输入数字选择功能。

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

*C:\Dncu»«ntKandS»ttinc«\A<ta>ni«trator\ftH\>UHitWMtc9*\MDI

诙1………■…・予"比-E',•注Ml界<M>J]••••••»•••M«

亲泉

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

Xf,J

5KJ«

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

双就案

系5>食所所有图书资料Ji哪指定位置w生

:<<

x<

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

双必能

亲•:退出图书*理照疑案

案娈

谪盘择好需要的服务序号,2

谓慵入密曼修改书篇的书写“i

谪验入更改后的书名.!«*

映入更改后的作者,孙军明志卿

落鲁您,书篇费T修改成动,请技任意健维续・・・

凄狗拼营丰)

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

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

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

•C:\Docaacat,aadS«ttin<x\Adaanavtrator\flH\*1XB^WMtt...BSD*C:\Porti»cat>aa4S«tt*n<s\Adainavtrator\flM\..BEC

555?±)2i按书名宜战553

2«按书名立技J条条।

3«按作者攻技

3,按fMlAft生祭」

48按日刚或我

4:»BMktt

5:按fflWfttt

5:按超期壹技张X<

6:返回上驶

6:返回上班生生

方•:£出新统

•:退出新统恕需

怒第

姬派旅※※浜※※淑愉张两避

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

谓忸入也需聂的段务序号,1

道・入金娶青我的书名,

―过至巫空号七__________一;巴匕一转一信一身一列一表———————

书号书名左堂僧日人借曲日期超明天践曾三瀛掰喘熙鹫8a明天-

!■三国演义罗费用第优2・12S,1

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

mwe*«二1mwrs¥■可

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

TBZ&*C:\t>ora»<At*a&dSctltncxVAdainavtrBtorX^IMXtfmitSM^^IXB^ttMtt.••BlZJW

“:季PW直找•••

.,2,按书名攻技生

J装

>«技fr*»n

■:■-3X校作书宣技生J

■,«日册佥我泉条

藏4:按BMttt条

$:找超期青技案条

来5:投SfiWfttt条

41iE0±»<•­张

6:返回上级

■:选出系统系:

装•:£出系城•••

袋※去※※败米※※购彩蹄疫逃

购修米的※浜※※瀚颍张购

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

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

谓泊人把曼西找的傕石,

次修人怒娶青孜蚪借出日明,2»1H2I2

黯震1a明金书写书名起朝天我

水潜传1MI

鹭严续・・・请接任意怪鞋续•・・

-re^nfi¥»

按超期天数查找:

,JiDucuBeQ,andSetQanr\Adaxa,Q.a\・・\MH途W•套》,、■书・森统..・日三臼

袋*

※2:长书名杳找

张九«作右食发J

•・m0»»n

s««fflWin

博修入您霹要的段符序号,S

电学)包《々呷性贺处%」96..

药号〜书名正堂僧国人借出日期图烟天熟

IM1水褥传W三2S1112121・

斡出“。蟹任意喇纯•・・

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

八・式簿,安>,、■统...日日口

•C:\DocZ,4dS«ttinC.\Ad*>ni«1r.tor\Mfll\B..QE20"C\Docua«ntxaa4S.tt»7Adaxiuxtr3or\K\IWst3)|»

・,漆加断的图书资料2,修过己百图书贵利*5,出节货"&I冽早m年但直IXY

13:刷*.已有图书聊4:IRt力图书资收点

」当会导人指定位置EB.逋西星线昼求界窗

奈$:查者所有超书货科6:i矣取指定位置1*1■:退出图书青事.革统

必装

卑7:耳入指定位・IXT8.返回展

温馨提示

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

评论

0/150

提交评论