图书管理系统 c++ 数据结构实验报告
c图书管理系统实验报告
c图书管理系统实验报告C图书管理系统实验报告摘要:本实验报告通过对C图书管理系统的设计、实现和测试,展示了该系统的功能和性能。
实验结果表明,C图书管理系统具有良好的稳定性和高效性,能够满足图书管理的需求。
1. 引言图书管理系统是一个用于管理图书信息、借阅记录和读者信息的软件系统。
随着图书馆规模的扩大和信息化的发展,图书管理系统的重要性日益凸显。
C图书管理系统是一个基于C语言开发的图书管理软件,具有良好的稳定性和高效性。
2. 设计与实现C图书管理系统的设计和实现主要包括以下几个方面:(1)数据库设计:设计图书信息、读者信息和借阅记录等数据库表结构,确保数据存储的有效性和完整性。
(2)功能实现:实现图书信息的录入、查询和修改功能,实现读者信息的管理和借阅记录的管理功能。
(3)界面设计:设计用户友好的界面,方便用户进行操作和查询。
3. 功能测试在实验中,我们对C图书管理系统进行了功能测试,主要包括以下几个方面:(1)图书信息管理:测试图书信息的录入、查询和修改功能,确保信息的准确性和完整性。
(2)读者信息管理:测试读者信息的录入、查询和修改功能,确保信息的准确性和完整性。
(3)借阅记录管理:测试借阅记录的录入、查询和修改功能,确保记录的准确性和完整性。
4. 性能测试在实验中,我们对C图书管理系统进行了性能测试,主要包括以下几个方面:(1)系统稳定性:测试系统在长时间运行中是否会出现崩溃或卡顿现象,确保系统的稳定性。
(2)响应速度:测试系统在查询和操作时的响应速度,确保系统的高效性。
5. 实验结果经过功能测试和性能测试,我们得出了以下实验结果:(1)C图书管理系统具有良好的稳定性,长时间运行中未出现崩溃或卡顿现象。
(2)C图书管理系统具有较快的响应速度,在查询和操作时能够快速响应用户的需求。
6. 结论C图书管理系统在设计、实现和测试中表现出良好的功能和性能,能够满足图书管理的需求。
通过本实验报告的展示,我们相信C图书管理系统将会成为图书馆管理的重要工具,为图书馆的信息化建设提供有力支持。
C语言图书管理系统实验报告
程序设计实践信息类 1110开辟一个图书信息管理系统,图书信息包括:图书编号、书名、作者、出版社、类别、出版时间、价格等基本信息(也可以根据自己情况进行扩充,比如是否借出、库存量等)(1)图书信息录入功能(图书信息用文件保存)--输入(2)图书信息浏览功能--输出(3)查询功能(至少一种查询方式)、排序功能(至少一种排序方式):①按书名查询②按作者名查询③ 按照价钱排序④按出版时间排序等等(4)图书信息的删除与修改(1)简单的权限处理 (2)报表打印功能(3)甚至根据自己情况,可以加之学生信息,并扩充为图书借阅系统。
(4) 含糊查询 (5)综合查询 (6)统计功能比如统计处某一类别的图书信息或者筛选出小于指定数量库存的图书信息等等,总之,可以根据自己需求进行分析功能。
一、提交材料应包括: (1)系统源代码 (2)课程报告二、整个设计过程具体要求(1要求学生对案例系统进行分析,设计出需要完成的功能,完善各个模块的调用关系;(2要求学生进一步明确各模块调用关系,进一步完善模块函数细节(函数名、参数、返回值等)(3要求学生养成良好的编码习惯、完成各个模块并进行测试,最终完成系统整体测试;(4按照要求完成系统设计和实现报告,并进行总结、答辩。
1 需求分析这是一个能简单管理图书的小型图书管理系统,其中图书信息包括:书名,作者名,书编号,分类,出版单位,出版时间,价格等。
通过这些信息使之提供以下功能:(1)图书信息创建功能。
其中图书信息包括:书名,作者名,书编号,分类,出版单位,出版时间,价格等。
(图书信息用文件保存)。
(2)图书信息查看功能。
用来查看各项图书信息。
(3)图书信息查找功能。
通过已知信息来查找想要的图书。
(4)图书信息的删除。
可以删除特定图书。
(5)图书信息的修改。
可以修改图书的各项信息。
(6)图书信息的排序功能。
按图书信息对录入的图书进行排序。
(7)菜单选择功能,此功能也是图书信息信息管理系统的入口,用户所要进行的各种操作均需在此模块中进行选择并进而调用其他模块实现相应的功能2 概要设计图书管理系统中主要的数据结构包含书名、图书书号、作者名、分类、出版社、出版时间、价格等;在处理过程中各项可以作为一本图书的不同属性来进行处理。
c语言图书管理系统实践报告
北京师大学分校C程序设计实践报告题目:图书管理系统学院信息技术学院专业计算机科学与技术学生姓名龙海恩,少彬,鑫,麦淑玲指导教师姓名肖红玉指导教师单位信息技术学院2013 年 4 月11 日1、题目与要求编写一个图书管理系统,除了书上的功能之外,还要能做到读者借书还书,查看书籍排行榜,看到书籍的借阅记录和分类状况。
2、系统总体设计(要给出必要的文字说明及图示)本报告中蓝色字体为我们小组新增的图书信息。
2.1功能需求分析(明确系统的功能需求)(1)用户登录(2)系统主控平台(3)新增图书信息处理(4)浏览图书信息处理(5)查询图书信息处理(6)删除图书信息(7)保存图书信息处理(8)普通用户借书信息处理(9)普通用户还书信息处理(10)普通用户可查看已借书籍(11)查看排行榜(12)新增用户信息(13)查找用户(14)查看所有用户(15)保存用户信息(16)退出2.2系统功能模块划分(要给出系统功能模块图)(1)登录系统(2)增加图书信息(3)浏览图书信息(4)查找图书信息((1))按书名查找((2))按作者查找((3))按出版社查找((4))按出版日期查找((5))按ISBN查找((6))按图书类型查找(5)删除图书信息保存图书信息(6)图书排行榜(7)新增用户信息(8)查找用户信息(9)更新用户信息(10)删除用户信息(11)保存用户信息(12)退出系统((1))管理员退出系统((2))普通用户退出系统3、详细设计本系统包括图书信息管理和用户管理两大面,程序有三大模块,有三个源程序文件(management.c、book.c、user.c)和三个头文件(management.h、book.h、user.h)。
其中book.c完成的是图书信息的管理,包括新增图书、浏览图书、查询图书、删除图书、保存图书功能。
user.c完成的是用户信息的管理,包括新增用户、用户查询、保存用户等功能。
management.c完成的是用户登录,用户退出等功能。
C语言图书管理系统实验报告完整版
C语言图书管理系统实验报告HEN system office room 【HEN16H-HENS2AHENS8Q8-HENH1688】课程报告课程名称:程序设计实践专业班级:信息类1110 学生姓名:学号:任课教师:学期:20101-2012学年第二学期课程报告任务书成绩评定教师:1 需求分析这是一个能简单管理图书的小型图书管理系统,其中图书信息包括:书名,作者名,书编号,分类,出版单位,出版时间,价格等。
通过这些信息使之提供以下功能:(1)图书信息创建功能。
其中图书信息包括:书名,作者名,书编号,分类,出版单位,出版时间,价格等。
(图书信息用文件保存)。
(2)图书信息查看功能。
用来查看各项图书信息。
(3)图书信息查找功能。
通过已知信息来查找想要的图书。
(4)图书信息的删除。
可以删除特定图书。
(5)图书信息的修改。
可以修改图书的各项信息。
(6)图书信息的排序功能。
按图书信息对录入的图书进行排序。
(7)菜单选择功能,此功能也是图书信息信息管理系统的入口,用户所要进行的各种操作均需在此模块中进行选择并进而调用其他模块实现相应的功能2 概要设计⑴数据结构图书管理系统中主要的数据结构包含书名、图书书号、作者名、分类、出版社、出版时间、价格等;在处理过程中各项可以作为一本图书的不同属性来进行处理。
菜单函数的原型:void menu()函数的功能:调用菜单,使用各项功能 程序: void menu(){printf("\n\n*******************************<图书信息管理系统>*******************************\n");printf("-------------------------------------主菜单------------------------------------- \n");printf("\t\t\t <1;创建图书信息 > \n");printf("\t\t\t <2;查找图书信息 > \n");printf("\t\t\t <3;删除图书信息 > \n");printf("\t\t\t <4;修改图书信息 > \n");printf("\t\t\t <5;显示图书信息 > \n");printf("\t\t\t <6;按出版时间排序> \n");printf("\t\t\t <0;退出 > \n");printf("-------------------------------------------------------------------------------- \n");}2.新建文件函数的原型:int ReadinfoFromFile()函数的功能:建立文件储存数据程序int ReadinfoFromFile() f",&p->price);fscanf(fp,"%d",&p->type);if(p->type==1){if(head==NULL){head=p;p->next=NULL;}else{p->next=head;head=p;}}else{if(head_==NULL){head_=p;p->next=NULL;}else{p->next=head_;head_=p;}}}fclose(fp);return 0;}3.创建图书信息函数的原型:int chuangjian()函数的功能:记录图书的各项信息程序:int chuangjian() 找图书信息函数的原型:void chazhao()函数的功能:通过书名查找、作者查找、组合查找三种方式查找图书信息。
图书管理系统C语言程序设计实验报告
books[i].price=f;
i++;
flushall();
printf("is Continue(y/n)?:");
scanf("%c",&isCon);
}
printf("\n --%d种图书信息输入完毕!--\n",i);
printf("\n按任意键返回主菜单!");
{
FILE*fp;
int i;
char filename[40];
//clrscr();
printf("\n input SAVE filename=");
scanf("%s",filename);
if ( (fp=fopen(filename, "w")) == NULL)
{
printf("\n %s file NOT open! press any key exit system.");
printf("\n input READ filename=");
scanf("%s",filename);
if ( (fp=fopen(filename, "r")) == NULL)
{
printf("\n %s file NOT open! press any key exit system.");
〔2〕执行编译操作,并根据提示调试此程序,排除所有的错误和警告。直到编译成功为止。
〔3〕执行运行操作,逐一对每个模块进行调试,直到全部程序运行成功为止。
C语言图书管理系统实验报告
课程报告课程名称:程序设计实践专业班级:信息类1110学生姓名:学号:任课教师:学期:20101-2012学年第二学期课程报告任务书开发一个图书信息管理系统,图书信息包括:图书编号、书名、作者、出版社、类别、出版时间、价格等基本信息(也可以根据自己情况进行扩充,比如是否借出、库存量等)。
使之能提供以下基本功能:(1)图书信息录入功能(图书信息用文件保存)--输入(2)图书信息浏览功能--输出(3)查询功能(至少一种查询方式)、排序功能(至少一种排序方式):①按书名查询②按作者名查询③按照价钱排序④按出版时间排序等等(4)图书信息的删除与修改扩展功能:可以按照自己的程度进行扩展。
比如(1)简单的权限处理(2)报表打印功能(3)甚至根据自己情况,可以加上学生信息,并扩充为图书借阅系统。
(4)模糊查询(5)综合查询(6)统计功能比如统计处某一类别的图书信息或筛选出小于指定数量库存的图书信息等等,总之,可以根据自己需求进行分析功能。
成绩评定教师:1 需求分析这是一个能简单管理图书的小型图书管理系统,其中图书信息包括:书名,作者名,书编号,分类,出版单位,出版时间,价格等。
通过这些信息使之提供以下功能:(1)图书信息创建功能。
其中图书信息包括:书名,作者名,书编号,分类,出版单位,出版时间,价格等。
(图书信息用文件保存)。
(2)图书信息查看功能。
用来查看各项图书信息。
(3)图书信息查找功能。
通过已知信息来查找想要的图书。
(4)图书信息的删除。
可以删除特定图书。
(5)图书信息的修改。
可以修改图书的各项信息。
(6)图书信息的排序功能。
按图书信息对录入的图书进行排序。
(7)菜单选择功能,此功能也是图书信息信息管理系统的入口,用户所要进行的各种操作均需在此模块中进行选择并进而调用其他模块实现相应的功能2 概要设计⑴数据结构图书管理系统中主要的数据结构包含书名、图书书号、作者名、分类、出版社、出版时间、价格等;在处理过程中各项可以作为一本图书的不同属性来进行处理。
c语言图书管理系统实验报告
c语言图书管理系统实验报告《C语言图书管理系统实验报告》摘要:本实验报告旨在介绍C语言图书管理系统的设计与实现过程。
通过对图书管理系统的需求分析、系统设计、程序编码以及系统测试等环节的详细介绍,展示了C语言图书管理系统的完整实现过程。
通过本次实验,我们深入理解了C语言在实际项目中的应用,同时也提升了我们的编程能力和系统设计能力。
一、引言图书管理系统是一种常见的信息管理系统,它能够方便图书馆工作人员对图书进行分类、存储、借阅等管理操作,也能够为读者提供快捷的图书查询和借阅服务。
本次实验旨在使用C语言设计并实现一个简单的图书管理系统,通过这一实践项目,我们将学习到C语言在实际项目中的应用,同时也能够提升我们的编程能力和系统设计能力。
二、需求分析在设计图书管理系统之前,我们首先需要对系统的需求进行分析。
在本次实验中,我们将设计一个简单的图书管理系统,系统需要具备以下功能:1. 图书信息的录入:包括图书的名称、作者、出版社、出版日期等信息;2. 图书信息的修改与删除:允许管理员对系统中已有的图书信息进行修改和删除操作;3. 图书信息的查询:允许管理员和读者通过关键字查询图书信息;4. 图书的借阅和归还:允许读者进行图书的借阅和归还操作;5. 用户权限管理:系统需要具备管理员和读者两种角色,管理员具有对图书信息进行增删改查的权限,读者只具有查询和借阅权限。
三、系统设计在需求分析的基础上,我们进行了系统设计。
我们将系统设计分为以下几个模块:1. 图书信息管理模块:包括图书信息的录入、修改、删除和查询功能;2. 用户管理模块:包括用户登录、权限管理等功能;3. 借阅管理模块:包括图书的借阅和归还功能;4. 界面设计:设计系统的用户界面,使用户能够方便地进行操作。
四、程序编码在系统设计完成后,我们开始进行程序编码。
我们使用C语言进行程序编码,使用文件操作实现数据的读写和存储,使用结构体和指针等数据结构进行数据的组织和管理。
c语言图书管理系统实验报告
c语言图书管理系统实验报告C语言图书管理系统实验报告引言:图书管理系统是现代图书馆必备的管理工具,它通过计算机技术的应用,实现了图书的借阅、归还、查询等功能,提高了图书馆的管理效率。
本实验旨在通过使用C语言编写一个简单的图书管理系统,掌握C语言的基本语法和数据结构的应用。
一、系统需求分析在开始编写图书管理系统之前,我们首先需要明确系统的需求。
根据实际情况,我们确定了以下几个主要功能模块:1. 图书信息管理:包括图书的录入、修改、删除等操作。
2. 学生信息管理:包括学生的注册、借书、还书等操作。
3. 借阅记录管理:记录学生借阅图书的时间、归还时间等信息。
4. 查询功能:可以根据图书名称、作者、学生姓名等信息进行查询。
二、系统设计与实现1. 数据结构设计:为了实现图书管理系统的各项功能,我们需要定义一些数据结构,如图书信息结构体、学生信息结构体、借阅记录结构体等。
通过定义这些结构体,我们可以方便地对图书信息、学生信息进行管理和操作。
2. 主菜单设计:系统启动后,会显示一个主菜单,用户可以通过输入相应的数字选择不同的功能模块。
我们使用switch语句来实现主菜单的功能选择,确保用户可以根据自己的需求进行操作。
3. 功能实现:根据需求分析中确定的功能模块,我们逐一实现了相应的功能。
例如,对于图书信息管理模块,我们实现了图书的录入、修改、删除等功能。
对于学生信息管理模块,我们实现了学生的注册、借书、还书等功能。
通过合理的函数设计和调用,我们保证了系统的正常运行。
三、系统测试与优化在完成系统的设计与实现后,我们进行了一系列的测试。
通过输入不同的数据,测试系统的各项功能是否正常运行。
我们发现了一些问题,如输入错误时系统的错误提示不够友好、系统的响应速度较慢等。
为了解决这些问题,我们进行了相应的优化。
通过增加错误提示信息、优化算法等方式,提高了系统的用户体验。
四、总结与展望通过本次实验,我们掌握了C语言的基本语法和数据结构的应用。
图书管理系统 C语言实训报告 -
基础编程能力实训报告题目: 图书管理系统专业年级:计算机科学与技术2013级姓名:学号:2014年06月20日1 实训题目与要求1.1 问题描述此系统可以完成对书籍信息的输入、删除、修改、排序等功能,提高图书管理效率,对图书进行合理规划与安排。
1.2 功能要求程序输出主菜单(如下),提示用户选择操作表1 主菜单在主菜单中选择1,要求输入图书信息,包括书本序号,书本名字,作者名字,书的价格;在主菜单中选择2,可查询已输入的图书信息;在主菜单中选择3,可通过查找书本的序号,来选择所要删除的图书信息;在主菜单中选择4,对已输入的图书信息,按照图书序号进行排序;在主菜单中选择5,显示图书信息;在主菜单中选择6,可通过查找书本的序号,来选择所要修改的图书,并对图书进行修改;在主菜单中选择7,建立一个名为asd.txt的文件,并将图书信息录入;在主菜单中选择8,退出图书管理系统。
2 图书管理系统的设计与功能实现2.1图1 系统模块图输入模块完成用户从界面输入图书的信息的功能;查询书籍信息模块完成用户从界面输入查询条件,在系统查询符合条件的图书信息,并在界面上显示的功能;删除书本信息模块完成用户从界面输入需要的图书序号,并将其从系统中删除的功能;书本信息排序模块完成对书本信息的排序的功能;显示书籍信息模块完成显示书本信息的功能;修改书籍信息模块完成用户从界面输入,在系统中查询定位,并将修改过的信息数据保存入系统的功能;录入图书信息模块完成用户从界面输入需要导入的文件路径名称,将信息输入系统的功能;2.2 数据结构在程序中,定义了如下结构体:typedef struct{int num;char Bname[50];char Wname[50];float score;}Book;其中Book.num是存储书本序号信息,Book.Bname存储书本名字信息,Book.Wname是存储书本作者名信息,Book.score存储书本价格信息。
C图书管理系统实验报告
C图书管理系统实验报告集团标准化办公室:[VV986T-J682P28-JP266L8-68PNN]面向对象程序设计(C++语言)课程设计设计说明书图书管理系统的设计与实现起止日期:年月日至年月日学生姓名班级学号成绩指导教师(签字)计算机与通信学院年月日图书管理系统一.需求分析图书馆是目前生活中除了网络外的另一个获取知识的重要场所。
利用图书管理系统对图书记录进行统一管理,包括新增图书记录,更改图书记录,删除图书记录等功能,实现图书管理工作的系统化,规范化和自动化,为图书管理提供便利。
同时是学习完《面向对象程序设计》课程后进行的一次全面的综合练习。
有助于加深对面向对象程序设计中基础理论和基本知识的理解,培养了实践能力,促进理论与实践的结合。
二.设计要求:1.图书信息包括:登录号、书名、作者名、分类号、出版单位、出版时间、价格等。
试设计一图书信息管理系统,使之能提供以下功能:2.系统以菜单方式工作3.图书信息录入功能(图书信息用文件保存)--输入4.图书信息浏览功能--输出5.查询和排序功能:(至少一种查询方式)--算法6.按书名查询7.按作者名查询8.图书信息的删除与修改(可选项)三.概要设计1、类的设计①、Book类的设计(内部函数流程图):②、BDatabase类的设计:③、主函数流程图:4多态的实现class People{public:virtual void card(){cout<<"card people"<<endl;}};class Student:public People{public:virtual void card(){cout<<"card student"<<endl;} };四、详细设计:#define StrNum 20#define Type 20#include <iostream>#include <iomanip>#include <string>#include <fstream> ddbook(n,na,kin);return 1;}return 0;}Book *query(int bookid) etnum()==bookid&&book[i].getlab()==0){return &book[i];}return NULL;}void disp() etlab()==0)book[i].disp();}~BDatabase() etlab()==0)((char *)&book[i],sizeof(book[i]));();}};void main(){BDatabase BookDB;char choice;char bname[40];char bkind[40];char newType[20];int bookid;Book *b;while (choice!='0'){cout<<"\t************************************************************ ******\n";cout<<" \n\n";cout<<"\t\t\t图书管理系统\n\n";cout<<"\t\t\t1 新增图书记录\n";cout<<"\t\t\t2 更改图书记录\n";cout<<"\t\t\t3 删除图书记录\n";cout<<"\t\t\t4 查找图书记录\n";cout<<"\t\t\t5 显示图书记录\n";cout<<"\t\t\t6 清空全部记录(慎用)\n";cout<<"\t\t\t0 退出系统\n";cout<<"\t\t\t7 人员\n";cout<<" \n\n";cout<<"\t****************************************************** ************\n";cout<<"请选择(1,2,3,4,5,6,0):";cin>>choice;switch (choice){case '1':cout<<"输入图书编号:"<<endl;cin>>bookid;cout<<"输入图书类型:"<<endl;cin>>newType;cout<<"输入图书书名:"<<endl;cin>>bname;(bookid,bname,newType);break;case '2':cout<<"输入图书编号:"<<endl;cin>>bookid;b=(bookid);if(b==NULL){cout<<"该图书不存在"<<endl;break;}cout<<"输入新的书名:"<<endl;cin>>bname;b->setname(bname);cout<<"输入新的类型:"<<endl;cin>>bkind;b->setkind(bkind);break;case '3':cout<<"读入图书编号:"<<endl;cin>>bookid;b=(bookid);if(b==NULL){cout<<"该图书不存在"<<endl;break;}char tg1;cout<<"确定要删除此记录吗(Y/N)"<<endl;cin>>tg1;if(tg1!='n'&&tg1!='N'){b->delbook();cout<<"已成功删除该书记录!"<<endl;break;}case '4':cout<<"读入图书编号:"<<endl;cin>>bookid;b=(bookid);if (b==NULL){cout<<"该图书不存在"<<endl;break;}cout<<"图书编号图书名称图书类型 \n";b->disp();break;case '5':cout<<"图书编号图书名称图书类型 \n";b=(bookid);b->disp();break;case '6':char tg2;cout<<"确定要清空所有记录吗(Y/N)"<<endl;cin>>tg2;if(tg2!='n'&&tg2!='N'){();cout<<"已成功清空记录!"<<endl;break;}case '0':break;default:cout<<"输入错误,请从新输入(数字为0~6):";case'7':Student student;People *ppeople=&student;People &ref=student;ppeople->card();();break;}}}五.用户使用说明本系统实现了图书管理系统的典型功能,包括查询所有记录的信息,添加查找等功能,基本符合设计要求,利用类的封装实现了一定的安全性,函数的实现与调用在主函数中实现。
c语言实习报告 图书信息管理系统
C语言课程设计院系:工程学院姓名:王保成学号:20111000341 班号:051113指导教师:日期:一、需求分析:1、图书管理信息包括:登录号,书名,作者号,分类号,出版单位,出版时间,价格等。
设计图书管理系统。
2、程序的系统功能:(1)、系统以菜单方式工作;(2)、图书信息录入功能;(3)、图书信息浏览功能;(4)、图书信息查询功能;(5)、图书信息删除与修改。
3、测试数据(后附)。
二、概要设计:1:本系统包括两个抽象数据:图书库链表和借书者链表。
(1)定义图书链表类型为:ADT Abook数据对象 D={bi|bi=Booktype,i=1……n n>=o}数据关系 R={<bi-1,bi>|(bi-1,bi)=D,i=2……n}基本操作:Insert(n)操作结果:建立一个长度为n的链表或插入n个新结点。
Del(n)操作结果:从已建立链表中删除n个结点。
Print( )操作结果:输出已建立链表。
Search( )操作结果:按要求查找并输出已建立链表中的结点。
Borrow( )操作结果:按要求改变已建立链表中某一结点的相关信息。
return( )操作结果:按要求改变已建立链表中某一结点的相关信息。
(2)定义图书链表类型为:ADT Aborrow数据对象 D={ri|ri|borrowtype,i=1……n n>=1}数据关系 R={<ri-1,ri>|ri-1,ri=D,i=2……n}基本操作:creat(n)操作结果:建立一个长度为n的链表。
Insert(n)操作结果:插入n个新结点到已建立链表中。
Remove(n)操作结果:从已建立链表中删除n个结点。
2:主程序的流程:1选择系统(1)、录入图书信息(2)、浏览图书信息(3)、图书信息查询功能:1按登录号查询2按书名查询3按作者名查询4按分类号查询5按出版单位查询6按价格查询(4)、图书信息删除与修改1删除2修改(0)、返回三、详细设计:图书信息管理系统 图书信息录入 图书信息浏览 图书信息查询 返回图书信息删除与修改按书名查找struct book{char dlnum[10]; /*登录号/*char name[50]; /*书名/*char writer[20]; /*作者名/*char flnum[10]; /*分类号/*char pressname[50]; /*出版单位/*char presstime[20]; /*出版时间/*char price[10]; /*价格/*}books[N];四、调试分析1在最初进行模块划分是未将借书人信息管理作为一个单独摸块,致使调试时无法明确管理结借书者信息,造成书目链表混乱,重新分配后解决了这个问题2 原先想进行中文书名及人命输入输出,但由于未能找到相关信息资料,无法完成该操作,最终放弃该设计3 最初我们曾规定了一些变量以及结构体,但随着设计的进行深化,最初的结构体及变量无法满足需要,致使调试时出现不少混乱,后来我们重新规定了一下,解决了这些问题;4 程序的串联我们采取了循环控制与选择结构相结合的结构很好地解决了系统长时间运行及循环执行命令的问题,使演示系统现实化。
c图书管理系统实验报告
c图书管理系统实验报告C图书管理系统实验报告一、引言随着科技的不断发展,图书管理系统的应用越来越广泛。
C图书管理系统是一种基于C语言开发的软件,旨在帮助图书馆更好地管理图书资源,提高图书馆服务的效率和质量。
本实验报告将介绍C图书管理系统的设计与实现过程,以及实验结果与分析。
二、系统设计与实现1. 系统需求分析在设计C图书管理系统之前,我们首先进行了系统需求分析。
通过与图书馆管理员的沟通和调研,我们了解到他们最关心的问题是图书的分类、借还管理和读者信息的管理。
因此,我们确定了系统的主要功能模块:图书管理、借还管理和读者管理。
2. 系统架构设计基于系统需求分析的结果,我们设计了C图书管理系统的架构。
系统采用了三层架构,包括表示层、业务逻辑层和数据访问层。
表示层负责与用户交互,接收用户的输入和显示系统的输出;业务逻辑层负责处理用户的请求,进行相应的业务逻辑处理;数据访问层负责与数据库进行交互,实现数据的增删改查操作。
3. 数据库设计为了存储图书信息、读者信息和借还记录等数据,我们设计了一个简单的关系型数据库。
数据库包括三个表:图书表、读者表和借还记录表。
图书表用于存储图书的基本信息,包括书名、作者、出版社等;读者表用于存储读者的基本信息,包括姓名、性别、年龄等;借还记录表用于存储图书的借还记录,包括借书日期、还书日期等。
4. 系统实现在系统实现过程中,我们采用了C语言作为开发语言,并使用了MySQL作为数据库管理系统。
通过使用C语言提供的文件操作和数据库访问接口,我们成功地实现了C图书管理系统的各个功能模块。
用户可以通过系统界面进行图书的查询、借阅和归还操作,同时系统也提供了管理员的登录和权限管理功能。
三、实验结果与分析1. 功能测试在完成系统实现后,我们对C图书管理系统进行了功能测试。
测试结果表明,系统能够正常地实现图书的查询、借阅和归还功能,读者信息的管理以及管理员的登录和权限管理功能。
系统的操作界面简洁明了,用户友好性较好。
图书管理系统 c++ 数据结构实验报告
数据结构课程设计说明书2011年1月6日1.设计目的(小标题黑体五号字)《数据结构》课程主要介绍最常用的数据结构,阐明各种数据结构内在的逻辑关系,讨论其在计算机中的存储表示,以及在其上进行各种运算时的实现算法,并对算法的效率进行简单的分析和讨论.进行数据结构课程设计要达到以下目的:⏹了解并掌握数据结构与算法的设计方法,具备初步的独立分析和设计能力;⏹初步掌握软件开发过程的问题分析、系统设计、程序编码、测试等基本方法和技能;⏹提高综合运用所学的理论知识和方法独立分析和解决问题的能力;训练用系统的观点和软件开发一般规范进行软件开发,培养软件工作者所应具备的科学的工作方法和作风。
2.设计内容和要求1)每种书的登记内容包括书号、书名、著作者、现存量和库存量;2)对书号建立索引表(线性表)以提高查找效率;3)系统主要功能如下:*采编入库:新购一种书,确定书号后,登记到图书帐目表中,如果表中已有,则只将库存量增加;*借阅:如果一种书的现存量大于0,则借出一本,登记借阅者的书证号和归还期限,改变现存量;*归还:注销对借阅者的登记,改变该书的现存量。
3.本设计所采用的数据结构定义图书链表和图书索引结构struct Book{char BookID[10];/*图书编号*/char BookName[512];/*书名*/char Writer[512];/*作者*/int CurrentNumber;/*现存量*/Book *pNext;/*下一个图书信息*/};struct Index{char BookID[10];/*图书编号*/Index *pNext;/*下一个索引指针*/};/*借阅信息结构*/struct Borrow{char BookID[10];/*借阅图书编号*/char BookName[512]; /*书名*/unsigned long StuID; /*图书证号*/char ReturnTime[512];/*归还日期*/Borrow *pNext; /*下一个借阅信息*/};4.功能模块详细设计4.1 详细设计思想主函数main()主函数通过一个switch语句实现对系统功能的选择。
C++图书管理系统大型实验报告
基于C++的图书馆管理系统实现方式图书馆管理系统为各大学校提供了方便。
从设计开始采用了以数据为中心的面向对象思想。
为了提高对数据操作的理解,提高自身的编程逻辑,采用链表保存所有信息,程序结束存放在文本文件中。
,C++作为一款面向对象的高级编译型语言,编写图书馆最基本的人员操作类:读者类,工作人员类,管理类以及对数据操作的DBFile类。
实验目的具体实现方式1.数据的存储方式所有人员都有:用户名,密码,真实姓名,性别,年龄读者特有:借书总数,所借书的书号图书:书号,书名,作者,出版社,馆藏量,借出数量。
用文本文件reader.dat存储读者信息,worker.dat存储工作人员信息,manager.dat存储管理员信息,book.dat存储所有书本信息。
运行时所有数据保存在内存中,其类型均为 string。
2.类的关系类的关系3.功能模块图3.1 读者模块读者功能图相关功能代码:1.查看个人信息void Reader::See_Infor(){Book* pbook=NULL;cout<<" 用户名: "<<Username<<endl;cout<<" 密码: "<<Password<<endl;cout<<" 真实姓名: "<<Name<<endl;cout<<" 性别: "<<Sex<<endl;cout<<" 年龄: "<<Age<<endl;cout<<" 总借图书数: "<<Totle_borrow<<endl;cout<<" 所借的书为: ";for(int i=0;i<Totle_borrow;++i){pbook=DB.book_by_number(borrowbooknum[i]);cout<<pbook->BookName<<" ";}cout<<endl;}2.修改个人信息void Reader::Edit_Infor(){Reader* reader=NULL;reader=DB.reader_by_username(Username);string username;// 更改用户名string password;// 密码、、string name;// 姓名string sex;// 性别。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
图书管理系统 c++ 数据结构实验报告学生姓名:学院: 软件学院专业: 信息管理与信息系统题目: 图书管理系统成绩指导教师2011年1月6日1(设计目的(小标题黑体五号字)《数据结构》课程主要介绍最常用的数据结构,阐明各种数据结构内在的逻辑关系,讨论其在计算机中的存储表示,以及在其上进行各种运算时的实现算法,并对算法的效率进行简单的分析和讨论。
进行数据结构课程设计要达到以下目的:, 了解并掌握数据结构与算法的设计方法,具备初步的独立分析和设计能力; , 初步掌握软件开发过程的问题分析、系统设计、程序编码、测试等基本方法和技能; , 提高综合运用所学的理论知识和方法独立分析和解决问题的能力; 训练用系统的观点和软件开发一般规范进行软件开发,培养软件工作者所应具备的科学的工作方法和作风。
2(设计内容和要求1)每种书的登记内容包括书号、书名、著作者、现存量和库存量;2)对书号建立索引表(线性表)以提高查找效率;3)系统主要功能如下:*采编入库:新购一种书,确定书号后,登记到图书帐目表中,如果表中已有,则只将库存量增加;*借阅:如果一种书的现存量大于0,则借出一本,登记借阅者的书证号和归还期限,改变现存量;*归还:注销对借阅者的登记,改变该书的现存量。
3(本设计所采用的数据结构定义图书链表和图书索引结构struct Book{char BookID[10];/*图书编号*/char BookName[512];/*书名*/char Writer[512];/*作者*/int CurrentNumber;/*现存量*/Book *pNext;/*下一个图书信息*/};struct Index{char BookID[10];/*图书编号*/Index *pNext;/*下一个索引指针*/};1/*借阅信息结构*/struct Borrow{char BookID[10];/*借阅图书编号*/char BookName[512]; /*书名*/unsigned long StuID; /*图书证号*/char ReturnTime[512];/*归还日期*/Borrow *pNext; /*下一个借阅信息*/};4(功能模块详细设计4.1 详细设计思想主函数main()主函数通过一个switch语句实现对系统功能的选择。
主菜单选择函数ShowMainMenu()此函数包括退出系统,图书入库,查询库存,查询借阅和归还图书五个函数,通过调用主菜单函数判断用户做出的选择,从而进行相应的操作。
图书入库函数PutBookInLib()此函数通过的创建一个图书链表,达到对新进书判断,若在现有的图书中找到该书,则直接进行入库,并记录下图书的数量,若找完整个图书量表也没找到该书,则要记录下新进图书的名称,作者,数量,并把该书插入到已有数中,方便下次对新书的判断。
查询图书馆库存函数QueryBookLib()查询图书馆库存,查询不改变数据,故传入指针即可。
显示图书的编号、名称、作者、现有量以及库存量借阅图书函数BorrowBook()此函数通过读者的图书证号对读者链表从头至尾进行查找,若找到读者,则显示读者图书证号以及姓名,然后利用for循环和指针,对读者所借图书进行查找并显示。
若找不到读者,显示读者标号不存在,按任意键回到查找菜单选择函数界面。
借阅图书函数BorrowBook()2此函数需要读者输入的图书证号,根据读者输入的要借的图书编号,再利用while循环遍历是否存在该书,若该书不存在,则显示此书不存在,若该书存在,再利用if判断是否还有现存,若无现存,在提示此书已借完,若还有现存,提示借书成功,根据库函数 time.h自动登记归还日期。
查询借阅函数QueryBorrow()此函数通过while循环实现对所有已借出图书的遍历,并输出所有已借出图书的信息。
归还图书函数ReturnBook()此函数也是以用图书链表和读者链表对读者还书进行操作,根据读者输入的图书证号,利用while循环对读者链表进行遍历,查找是否存在该读者,若读者不存在,则提示该读者的图书证号不存在,若读者存在,根据读者输入的要还的图书编号,再利用while循环遍历是否存在该书,若该书不存在,则显示此书编号不存在,若该书存在,则利用for循环把读者的图书链表中要还书后面的书向前移一个单位,覆盖掉链表中该书的信息,并把读者的借书量减一,把图书的现存量加一。
4.2 核心代码#include <stdio.h>#include <stdlib.h>#include <string.h>#include <time.h>#ifndef _DATA_STRUCT_H_#define _DATA_STRUCT_H_#endif/*_DATA_STRUCT_H_*//*图书结构*/struct Book{char BookID[10];/*图书编号*/char BookName[512];/*书名*/char Writer[512];/*作者*/int CurrentNumber;/*现存量*/Book *pNext;/*下一个图书信息*/3};/*图书索引结构*/struct Index{char BookID[10];/*图书编号*/Index *pNext;/*下一个索引指针*/};/*借阅信息结构*/struct Borrow{char BookID[10]; /*借阅图书编号*/char BookName[512]; /*书名*/unsigned long StuID; /*图书证号*/char ReturnTime[512];/*归还日期*/Borrow *pNext; /*下一个借阅信息*/};/*获取输入字符串*/void GetInput(char *pInOutStr,int StrLen,bool OnlyGetNumber = false);/*显示主菜单并返回选择*/int ShowMainMenu();/*图书入库操作,传入参数为图书列表头指针的指针和索引信息的头指针的指针,因为在此函数内部可能会改变头指针的值*/void PutBookInLib(Book **pHead,Index **pIndex);/*查询图书馆库存,查询不改变数据,故传入指针即可*/void QueryBookLib(Book *pHead); /*借阅图书*/void BorrowBook(Borrow **pBorrow,Book *pHead);/*查询借阅*/void QueryBorrow(Borrow *pBorrow); /*归还图书*/4void ReturnBook(Borrow **pBorrow,Book *pHead);/*释放图书链表及索引链表及借阅信息链表*/void DeleteBookList(Book **pHead); void DeleteIndexList(Index **pIndex); void DeleteBorrowList(Borrow **pBorrow); int main() {/*图书列表头指针*/Book *pBookHead = NULL;/*图书索引头指针*/Index *pIndexHead = NULL;/*借阅信息头指针*/Borrow *pBorrowHead = NULL;/*用来保存当前用户的输入*/int ChoosedNum = -1;while ( true ){ChoosedNum = ShowMainMenu();switch(ChoosedNum){case 0 :/*退出*/{return 0;break;}case 1:/*图书入库*/{PutBookInLib(&pBookHead,&pIndexHead); break;}5case 2:/*查询库存*/{QueryBookLib(pBookHead);printf("按回车键继续...");fflush(stdin);getchar();system("cls");break;}case 3:/*借阅图书*/{QueryBookLib(pBookHead);BorrowBook(&pBorrowHead,pBookHead); break;}case 4:/*查询借阅*/{QueryBorrow(pBorrowHead);printf("按回车键继续...");fflush(stdin);getchar();system("cls");break;}case 5:/*归还图书*/{QueryBorrow(pBorrowHead);ReturnBook(&pBorrowHead,pBookHead);break;}6}}DeleteBookList(&pBookHead);DeleteIndexList(&pIndexHead);DeleteBorrowList(&pBorrowHead);fflush(stdin);getchar();return 0;}/*获取输入字符串*/void GetInput(char *pInOutStr,int StrLen,bool OnlyGetNumber){memset(pInOutStr,0x0,StrLen);fflush(stdin);int Count = 0;while ( true ){char TmpC = 0;fread(&TmpC,1,1,stdin);if ( 10 == TmpC ){break;}if ( OnlyGetNumber && TmpC >= '0' && TmpC <= '9' ) {pInOutStr[Count] = TmpC;Count++;}else{7pInOutStr[Count] = TmpC;Count++;}}}/*显示主菜单并返回选择*/int ShowMainMenu(){char InPutStr[1024];NO_INPUT:printf("\n\n\n");printf("************************************************************ ******\n");printf("* 图书管理系统*\n");printf("************************************************************ ******\n");printf("\n");printf("请选择:\n");printf("\t1.图书入库\n");printf("\t2.查询库存\n");printf("\t3.借阅图书\n");printf("\t4.查询借阅\n");printf("\t5.归还图书\n");printf("\t0.退出\n");printf("\n");printf("\t输入 : ");GetInput(InPutStr,1024,true);if ( strlen(InPutStr) < 1 ){8system("cls");goto NO_INPUT;}return atoi(InPutStr);}/*图书入库操作*/void PutBookInLib(Book **pHead,Index **pIndex) { Book *pWork = *pHead;char InPutStr[1024];Book *pTmpNewBook = (Book *)(malloc(sizeof(Book))); memset(pTmpNewBook,0x0,sizeof(Book));Index *pTmpIndex = (Index *)(malloc(sizeof(Index))); memset(pTmpIndex,0x0,sizeof(Index));system("cls");printf("输入图书编号:");GetInput(InPutStr,1024);strcpy(pTmpNewBook->BookID,InPutStr); system("cls"); printf("输入图书名称 : ");GetInput(InPutStr,1024);strcpy(pTmpNewBook->BookName,InPutStr);system("cls");printf("<<%s>>\n",pTmpNewBook->BookName); printf("图书作者 : ");GetInput(InPutStr,1024);strcpy(pTmpNewBook->Writer,InPutStr); system("cls");printf("<<%s>>\n",pTmpNewBook->BookName); printf("作者:%s\n",pTmpNewBook->Writer);9printf("入库数量 : ");GetInput(InPutStr,1024,true); pTmpNewBook->CurrentNumber = atoi(InPutStr); if ( pTmpNewBook->CurrentNumber < 1 ){system("cls");printf("入库数量错误!(按回车键继续...)"); fflush(stdin);getchar();system("cls");return;}if ( NULL == *pHead ){*pHead = pTmpNewBook;*pIndex = pTmpIndex;}else{Book *pWork = *pHead;while ( pWork != NULL ){if ( strcmp(pWork->BookName,pTmpNewBook->BookName) == 0 && strcmp(pWork->Writer,pTmpNewBook->Writer) == 0 ){pWork->CurrentNumber += pTmpNewBook->CurrentNumber; return;}pWork = pWork->pNext;}10pWork = *pHead;while ( pWork->pNext != NULL ){pWork = pWork->pNext;}pWork->pNext = pTmpNewBook;Index *pWork2 = *pIndex;while ( pWork2->pNext != NULL ){pWork2 = pWork2->pNext;}pWork2->pNext = pTmpIndex;}system("cls");printf("图书:<<%s>>\n作者:%s\n入库数:%d\n\n入库操作成功!(按回车键继续...)",pTmpNewBook->BookName,pTmpNewBook->Writer,pTmpNewBook->CurrentNumber);fflush(stdin);getchar();system("cls");}/*释放图书链表及索引链表*/void DeleteBookList(Book **pHead) {Book *pWork = *pHead;Book *pNext = pWork;while ( NULL != pWork ){pNext = pWork->pNext;free(pWork);pWork = pNext;11}}void DeleteIndexList(Index **pIndex){Index *pWork = *pIndex;Index *pNext = pWork;while ( NULL != pWork ){pNext = pWork->pNext;free(pWork);pWork = pNext;}}void DeleteBorrowList(Borrow **pBorrow){Borrow *pWork = *pBorrow;Borrow *pNext = pWork;while ( NULL != pWork ){pNext = pWork->pNext;free(pWork);pWork = pNext;}}/*查询图书馆库存,查询不改变数据,故传入指针即可*/ void QueryBookLib(Book *pHead) {Book *pWork = pHead;int TotalCount = 0;while ( NULL != pWork )12{TotalCount++;pWork = pWork->pNext;}system("cls");printf("当前库存共%d种图书,列表如下:\n=====================================================\n",TotalC ount);pWork = pHead;while ( NULL != pWork ){printf(" 书名:<<%s>> 作者:%s 当前库存:%d\n",pWork->BookName,pWork->Writer,pWork->CurrentNumber);pWork = pWork->pNext;}printf("=====================================================\n",Tot alCount);}/*借阅图书*/void BorrowBook(Borrow **pBorrow,Book *pHead) {char InPutStr[1024];bool HadTheBook = false;Borrow *pTmpBorrow = (Borrow *)(malloc(sizeof(Borrow))); memset(pTmpBorrow,0x0,sizeof(Borrow));printf("请输入你想借书的编号 : ");GetInput(InPutStr,1024);strcpy(pTmpBorrow->BookID,InPutStr);Book *pWorkBook = pHead;while ( pWorkBook != NULL ){if ( strcmp(pWorkBook->BookID,pTmpBorrow->BookID)==0)13{HadTheBook = true;break;}pWorkBook = pWorkBook->pNext;}if ( HadTheBook ){if ( pWorkBook->CurrentNumber < 1 ){system("cls");printf("图书<<%s>>当前无库存,无法借阅!\n(按回车键继续...)",pWorkBook->BookName);fflush(stdin);getchar();system("cls");free(pTmpBorrow);return;}}else{system("cls");\n(按回车键继续...)",pTmpBorrow->BookID); printf("图书编号%s不存在! fflush(stdin);getchar();system("cls");free(pTmpBorrow);return;}14strcpy(pTmpBorrow->BookName,pWorkBook->BookName);printf("请输入借书证号 : ");GetInput(InPutStr,1024,true);pTmpBorrow->StuID = atoi(InPutStr);if ( 0 == pTmpBorrow->StuID ){system("cls");n(按回车键继续...)"); printf("借书证号不存在(借书证号输入整数)!\ fflush(stdin);getchar();system("cls");free(pTmpBorrow);return;}time_t ltime;struct tm *today;time(<ime);ltime += 60 * 60 * 24 * 30;today = localtime(<ime);sprintf(pTmpBorrow->ReturnTime,"%d年%d月%d日", today->tm_year+1900, today->tm_mon+1,today->tm_mday);if ( *pBorrow == NULL ){*pBorrow = pTmpBorrow;}else{Borrow *pWork = *pBorrow;while ( NULL != pWork->pNext )15{pWork = pWork->pNext;}pWork->pNext = pTmpBorrow;}pWorkBook->CurrentNumber--;system("cls");printf("借书证号:%d\n借阅图书:<<%s>>\n\n操作成功!(按回车键继续...)",pTmpBorrow->StuID,pTmpBorrow->BookName);fflush(stdin);getchar();system("cls");}/*查询借阅*/void QueryBorrow(Borrow *pBorrow) {Borrow *pWork = pBorrow;int TotalCount = 0;while ( NULL != pWork ){TotalCount++;pWork = pWork->pNext;}system("cls");printf("当前借阅信息共%d条,列表如下:\n=====================================================\n",TotalCount );pWork = pBorrow;while ( NULL != pWork ){printf("借数证号:[%d] 借书名:<<%s>> 归还日16期:%s\n",pWork->StuID,pWork->BookName,pWork->ReturnTime);pWork = pWork->pNext;}printf("=====================================================\n",Tot alCount);}/*归还图书*/void ReturnBook(Borrow **pBorrow,Book *pHead) {char InPutStr[1024];Borrow TmpBorrow;bool HasFindBorrwo = false;memset(&TmpBorrow,0x0,sizeof(TmpBorrow));printf("请输入借书证号 : ");GetInput(InPutStr,1024,true);TmpBorrow.StuID = atoi(InPutStr);printf("请输入所还图书编号 : ");GetInput(InPutStr,1024);strcpy(TmpBorrow.BookID,InPutStr);Borrow *pWorkBorrow = *pBorrow;Borrow *pDeletePre = NULL;while ( NULL != pWorkBorrow ){if ((strcmp(pWorkBorrow->BookID,TmpBorrow.BookID)==0)&& pWorkBorrow->StuID ==TmpBorrow.StuID ){HasFindBorrwo = true;break;17}pDeletePre = pWorkBorrow;pWorkBorrow = pWorkBorrow->pNext;}if ( ! HasFindBorrwo ){system("cls");\n(按回车键继续...)"); printf("你输入的借书信息不存在!fflush(stdin);getchar();system("cls");return;}if ( NULL == pDeletePre ){*pBorrow = pWorkBorrow->pNext;}else{pDeletePre->pNext = pWorkBorrow->pNext;}Book *pWorkBook = pHead;while ( NULL != pWorkBook ){if ( pWorkBook->BookID == pWorkBorrow->BookID ){pWorkBook->CurrentNumber ++;}pWorkBook = pWorkBook->pNext;}18system("cls");printf("借书证号:%d\n归还图书:<<%s>>\n\n操作成功!(按回车键继续...)",pWorkBorrow->StuID,pWorkBorrow->BookName);fflush(stdin);getchar();system("cls");free(pWorkBorrow);}5(课程设计心得及存在问题通过这次课程设计,我不仅把以前所学知识的温习了一遍,还学会了许多新的知识;同时,我也感受到了自身的不足,我们大学生应该趁着年轻时期,多学点知识,为我们以后的生活多做准备。