c语言课程设计——图书管理系统

  • 格式:docx
  • 大小:19.56 KB
  • 文档页数:3

下载文档原格式

  / 3
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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();显示主菜单。实验过程中,可以根据

需要适当增加函数