c语言课程设计——图书管理系统
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
选题三:图书管理系统(难度等级A)
一、系统功能
图书管理系统要求实现图书管理的基本功能,包括图书的录入、删除、查找和导入/导出等。图书的属性包括书号、书名、第一作者、版次、出版年等信息。
功能要求:
1.创建:创建所有图书;
2.显示:分屏显示系统中所有图书信息;
3.插入:插入一条图书记录到图书系统中;
4.删除:删除一条已经存在的图书记录;
5.查找:根据用户输入的属性值查找符合条件的图书;
6.输入/输出:可以从文件中批量导入导出已有的图书信息,也可以将系统中的图书
信息输出到文件中;
程序执行过程:循环显示主菜单,用户在Give your choice:输入选项,即按照功能列表输入数字0~8中的任意数字,按回车后,执行相应的功能。请参照前面的“菜单设计练习”的要求建立下页图所示程序运行主界面。
二、菜单功能
1.Input Records(输入若干条记录)
从键盘一次输入一本书的信息,存放到结构体数组中,然后显示。提示信息确认是否输入下一条记录。
2.Display All Records(显示所有记录)
按顺序显示所有记录,每屏显示10条记录。每显示10条记录,按
3.
输入待删除书的书名,显示该书名的所有书目,提示输入待删除书目的书号,提示是否确认删除,确认后,删除该书。
4.Sort(排序)
以书名为升序排列数组
5.Insert a Record
以书名为序排列的数组中插入一条记录,插入后,数组仍然有序。输出插入成功后的信息。
6.Query(查找并显示一个记录)
输入书名,查找并显示包含该书名的所有信息。
7.Add Record from a Text File(从文件中读入图书信息到结构体数组中)
用户可事先建立一个文本文件Dictory.txt,存放所有图书信息,文件格式如下:
8.Write to a Text File
将数组中的全部记录写入文件Records.txt中,要求文件格式与Dictory.txt相同。
0.Quit(退出图书管理程序)
三、本课设基本要求
1.数据结构
用结构体数组实现图书信息的记录和管理。每个数组元素为一个结构体变量,其结构如下:
Typedef atruct
{ char ISBN[10]; //书号
char book[30]; //书名
char author[20]; //作者
int edition; //版本号
char press[50]; //出版社名
int year; //出版年
} Bookinfo;
在主函数中定义结构体数组Bookinfo books[NUM];用作记录存储,也可以采用动态数组实现。
2.各函数功能
以下函数原型说明中出现的函数为本课程设计的基本要求。请不要随便更改函数原型。
(1)数据输入
int Input(Bookinfo dictList[],int n);从键盘输入若干条记录,依次存放到结
构体数组dictList中,n为数组原有记录数,函数返回最后的记录数。
(2)输出数据
void Display(Bookinfo dictList[],int n);显示所有图书信息,每10个暂停一
次,n为数组元素个数。
(3)删除记录
int Delete(Bookinfo dictList[],int n,char*book);删除书名为book的第一条
图书记录,返回数组中的记录数。
int Delete_a_record(Bookinfo dictList[],int n);输入待删除的书名,经确认
后调用Delete函数,同时列出同一书名的所有书目,输入待输出书目的书
号,提示是否删除,确认后,输出删除成功与否的信息,返回数组中的记
录数。
(4)排序
void Sort_by_name(Bookinfo dictList[],int n);数组按书名升序排列。
(5)有序插入
int Insert(Bookinfo dictList[],int n,Dictionary*s);按书名序插入记录s,返回
记录个数。
int Insert_a_record(Bookinfo dictList[],int n);输入待插入的图书书号、书名、
作者、版本号、出版社名、出版年等图书信息,调用Insert函数按书名作有
序插入,输入插入成功信息,返回记录个数。
(6)查询数据
int Query(Bookinfo dictList[],int n,Bookinfo*book);查找并显示书名为book
的所有记录,查找成功返回该书名记录个数,否则返回-1。
void Query_a_record(Bookinfo dictList[],int n);输入待查找的书名,调用
Query函数查找该书的记录,输出查找成功与否的信息和该书名的所有记录。(7)从文件中整批输入数据
int AddfromText(Bookinfo dictList[],int n,char*filename);从文件filename添
加一批记录到数组中,调用Insert()函数作有序插入,返回添加记录后的新
记录数。
(8)将记录写到文件
void WritetoText(Bookinfo dictList[],int n,char*filename);将数组中的记录全
部写入文件filename中。
其他函数:void Display_main_menu();显示主菜单。实验过程中,可以根据
需要适当增加函数