数据结构 c语言 图书管理系统.docx

上传人:b****2 文档编号:1392319 上传时间:2022-10-22 格式:DOCX 页数:40 大小:31.15KB
下载 相关 举报
数据结构 c语言 图书管理系统.docx_第1页
第1页 / 共40页
数据结构 c语言 图书管理系统.docx_第2页
第2页 / 共40页
数据结构 c语言 图书管理系统.docx_第3页
第3页 / 共40页
数据结构 c语言 图书管理系统.docx_第4页
第4页 / 共40页
数据结构 c语言 图书管理系统.docx_第5页
第5页 / 共40页
点击查看更多>>
下载资源
资源描述

数据结构 c语言 图书管理系统.docx

《数据结构 c语言 图书管理系统.docx》由会员分享,可在线阅读,更多相关《数据结构 c语言 图书管理系统.docx(40页珍藏版)》请在冰豆网上搜索。

数据结构 c语言 图书管理系统.docx

数据结构c语言图书管理系统

 

课程设计任务书

题目:

图书管理系统

学号200912220280

姓名张志涛

专业计算机应用技术

课程数据结构

指导教师曾德藩职称

完成时间:

20年月----20年月

枣庄学院计算机科学系制

说明

一、课程设计写作框架(仅供参考)

 摘要

 目录

 正文

1、基本设计任务及要求、所用仪器设备;

2、总体设计方案及主要设计原理;

3、实现技术及源程序代码;

4、测试及分析

5、结束语(心得体会、改进方向)

参考文献

二、写作要求:

课程设计写作要求论点明确、论据充分、说明透彻,语言准确恰当,书面整洁,字迹工整。

课程设计的篇幅本科一般为4000字左右,专科一般为3000字左右。

程设计任务书及成绩评定

课程设计的任务和具体要求

目的要求:

本课程设计任务的目地是要求学生按照分析、设计、编码、调试和测试的软件开发过程完成管理系统设计,以及c语言算法的掌握,并能最终实现本系统的功能要求,通过这个程序可以学到以前调试短程序没有的经验

具体要求:

1、为各项操作功能设计一个菜单。

应用程序运行后,先显示这个菜单,然后用户通过选择希望运行的操作项目;

2、要求以上功能分别用函数实现。

并要求c语言的文件操作语句将以上所有结果保存在文件xx.out。

 

指导教师签字:

日期:

指导教师评语

 

成绩:

指导教师签字:

日期:

课程设计所需软件、硬件等:

Win-tc软件计算机鼠标键盘

课程设计进度计划

起至日期

工作内容

备注

1、选择合适的数据结构

2、结点结构的设计

3、算法设计与分析

4、程序设计、实现、调试

课程设计说明书

参考文献、资料索引

序号

文献、资料名称

编著者

出版单位

1、c语言设计(第三版)谭浩强清华大学出版社

2、数据结构(C语言版)严蔚敏、吴伟民清华大学出版社

3、数据库系统基础姚世斌

 

图书借阅管理是图书馆一个最基本的工作,这里用C语言的知识设计开发一个简单的图书借阅管理系统,系统主要实现图书信息和学生信息的管理,图书查询及图书借阅管理。

系统设计要求

系统主要实现以下六个功能:

①用户登录。

系统用户分为管理员和学生。

管理员登录时必须输入密码,密码正确才能进入系统;学生登录时无需密码,输入学号即可。

②图书信息管理。

图书信息包括:

书号、书名、作者、图书分类、出版社、出版时间、单价、总量和库存量。

图书信息管理包括:

输入图书信息(从键盘或从文件)、保存图书信息、修改图书信息、增加图书信息、删除图书信息和输出图书信息。

③学生信息管理。

学生信息包括:

学号、姓名、借书卡(借阅标记、书号、借阅时间)。

学生信息管理包括:

输入学生信息(从键盘或从文件)、保存学生信息、修改学生信息、增加学生信息、删除学生信息和输出学生信息。

④图书查询功能。

图书查询分为:

按书名查询、按作者查询、按图书分类查询、按出版社查询和按出版时间查询。

⑤借书功能。

借书时,先判断学生是否有空闲的借书卡,若没有则应输出提示信息;若有空闲的借书卡,则要求学生输入所借图书的书号,若该书库存量不为0,则将该书借出,同时在借书卡上记录该书的书号和借阅时间,并修改该书的库存量。

⑥还书功能。

还书时,先检查学生的借书卡,若借书卡都为空,则不能进行还书操作,若有借书卡不为空,则可以还书,此时要求学生输入所还图书的书号,将对应借书卡上的记录清零,并修改该书的库存量。

数据结构设计

系统共定义了四个结构体类型,包括日期类型、借书卡类型、图书类型和学生类型,其中在图书类型中要使用日期类型,而在学生类型中要使用日期和借书卡类型,定义如下:

typedefstructdate//日期类型

{shortyear;//年

shortmonth;//月

shortday;//日

}SDATE;

typedefstructlibrary_card//借书卡类型

{Shortflag;//是否借阅标记

CharISBN[20];//所借图书的书号

SDATEbor_time;//借阅时间

}SLCARD;

typedefstructstudent//学生类型

{charnum[15];//学号

charname[20];//姓名

SLCARDcard[5];//借书卡(规定每人最多有5张)

}SSTUD;

typedefstructbook//图书类型

{charISBN[20];//书号

charbookname[40];//书名

charauthor[20];//作者

charpublisher[30];//出版社

charbookclass[20];//图书分类

shorttotal_num,stock_num;//总量,库存量

floatprice;//单价

SDATEpublish_time;//出版时间

}SBOOK;

系统定义了两个全局变量数组,分别存放图书信息和学生信息,因数组大小是固定的,为使用方便在系统中定义两个符号常量,具体定义如下:

#defineBOOKNUM1000//BOOKNUM为系统允许的最大图书数量

#defineSTUDNUM100//STUDNUM为系统允许的最多学生人数

SSTUDstudent[STUDNUM]={0};//学生数组,初始化为0

SBOOKbook[BOOKNUM]={0};//图书数组,初始化为0

3.功能模块设计

(1)main函数的设计:

由于图书信息和学生信息都保存在文件中,系统运行的第一个工作是从文件中将图书信息和学生信息读入到内存数组book和数组student中,在读入信息的过程中同时统计出目前图书的数量和学生的人数,并将数据分别存放在整型变量bn和sn中,bn为图书数量,sn为学生人数。

如果bn=0或sn=0,系统会输出提示信息,让管理员输入图书信息和学生信息。

然后系统会显示主菜单,用户必须登录后才能使用系统提供的各种服务。

(2)用户登录管理模块包括2个函数:

ManagerLogin()和StudentLogin(),该模块由main函数调用。

函数ManagerLogin()用来完成管理员登录工作,首先要求管理员用户输入密码,若密码错误,则直接返回主菜单界面;密码正确时将显示管理员用户的功能菜单,输入数字可执行相应的功能。

函数StudentLogin()用来完成学生登录工作,要求学生输入学号,若学号错误则要求学生重新输入学号;输入学号正确则显示学生用户的功能菜单,输入数字可执行相应的功能。

(3)图书信息管理模块包括11个函数:

InputOnebook()、LoadBooks()、SaveOnebook()、SaveAllbooks()、OriginalBook()、ModifyBook()、AddBook()、DelBook()、OutputOnebook()、OutputAllbooks()和OutputBrief()。

只有管理员用户可以调用图书信息管理模块。

函数InputOnebook()用来实现从键盘输入一本图书的全部信息。

函数LoadBooks()用来实现从文件“book.dat”中输入全部图书的信息,并将这些数据存放到内存数组book中。

函数SaveOnebook()用来实现将一本图书的信息保存到文件“book.dat”中。

函数SaveAllbooks()用来实现将全部图书的信息保存到文件“book.dat”中。

函数OriginalBook()用来实现图书信息的初始化,在程序第1次运行时必须调用该函数,输入若干本图书的信息,并将这些信息保存在文件中。

该函数是通过循环多次调用InputOnebook()函数实现多本图书信息的输入,然后调用SaveAllbooks()函数将已输入的所有图书的信息保存在文件“book.dat”中。

函数ModifyBook()用来实现对图书信息的修改,用户首先输入书号,书号错误则输出提示信息,要求用户重新输入;书号正确则用户可以选择要修改的数据项对图书信息进行修改(用switch结构实现),一本图书的信息修改完毕后,调用SaveOnebook()函数,将修改后的信息保存到文件中。

然后询问用户是否继续修改其他图书的信息,用户选择‘y’,则重复上述的修改过程;用户选择‘n’,则结束函数,返回到管理员菜单界面。

函数AddBook()用来实现添加图书信息,通过调用InputOnebook()函数,从键盘输入一本图书的信息,然后将该信息写入文件。

然后询问用户是否继续添加其他图书的信息,用户选择‘y’,则重复上述过程;用户选择‘n’,则结束函数,返回到管理员菜单界面。

函数DelBook()用来实现删除图书信息,用户首先输入书号,书号错误则输出提示信息,要求用户重新输入;书号正确则会先输出该书号对应图书的信息,然后询问用户是否确定要删除该书的信息,用户选择‘y’才能真正删除该书信息。

最后询问用户是否继续删除其他图书的信息,用户选择‘y’,则重复上述过程;用户选择‘n’,则结束函数,返回到管理员菜单界面。

函数OutputOnebook()用来实现输出一本图书的全部信息。

函数OutputAllbooks()通过多次调用OutputOnebook()函数来实现输出全部图书的信息。

函数OutputBrief()用来实现以列表方式输出全部图书的简要信息,简要信息包括:

书号、书名、作者和总量。

(4)学生信息管理模块包括10个函数:

InputOnestud()、LoadStuds()、SaveOnestud()、SaveAllstuds()、OriginalStud()、ModifyStud()、AddStud()、DelStud()、OutputOnestud()和OutputAllstuds()。

管理员用户可以使用学生信息管理模块的全部功能,学生用户只能使用该模块中的一个功能,即OutputOnestud()函数(输出一个学生的信息)。

学生信息管理模块中函数的实现方法与图书信息管理中的类似,以下仅作简单说明。

函数InputOnestud()用来实现从键盘输入一个学生的信息。

函数LoadStuds()用来实现从文件“stud.dat”中输入全部学生的信息,并将这些数据存放到内存数组student中。

函数SaveOnestud()用来实现将一各学生的信息保存到文件“stud.dat”中。

函数SaveAllstuds()用来实现将全部学生的信息保存到文件“stud.dat”中。

函数OriginalStud()用来实现学生信息的初始化,在程序第1次运行时必须调用该函数。

该函数是通过循环多次调用InputOnestud()函数实现多个学生信息的输入,然后调用SaveAllstuds()函数将已输入的所有学生的信息保存在文件“stud.dat”中。

函数ModifyStud()用来实现学生信息的修改。

函数AddStud()用来实现添加学生信息。

函数DelStud()用来实现删除学生信息。

函数OutputOnestud()用来实现输出一个学生的全部信息。

函数OutputAllstuds()用来实现输出全部学生的基本信息(即学号和姓名)。

(5)图书信息查询模块包括6个函数:

SearchMenu()、SearcBname()、SearchAuthor()、SearchBclass()、SearchPublisher()、Se

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 幼儿教育 > 幼儿读物

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1