IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> C++知识库 -> C语言课设--藏书管理信息系统 -> 正文阅读

[C++知识库]C语言课设--藏书管理信息系统

学了一个多学期的c语言,还是有必要去记录一下自己的学习进程的,做一次课设会让自己发现很多不足的地方,也加深了对编程和程序的理解,下面是一些我自己做的一个c语言程序,关于藏书管理信息系统的一个程序,我将功能相似的部分用文件的形式分割开来。

在使用这样写的程序时,需要先创建一个工程项目,然后将这些文件添加到项目中去,才能正常运行,否者系统不会自己识别是不是一个程序的,会报错

主函数

#include <stdio.h>
#include <process.h>
#include "Book.h"
#include "File.h"

void showMainMenu();
void run();
void showbookZRMenu();
void printHZHeader();
void printBookHZ();
void printAllBook();
void enterbookZR();
void showbookRKMenu();
void RKBook();
void enterbookRK();
void showbookCXMenu();
void enterbookCX();
void showbookXGMenu();
void modifBook();
void deletBook();
void enterbookXG();
void showhelpMenu();
void printhHeple();
void printXTxinxi();
void enterhelp();
void CSH();
void start();
void end();

BookTable bookTable;//全局变量?
//藏书管理信息系统
//子系统:作者编写的书
?
//页面设计
?//主页面?
?
char mainMenu[] = "----------------------------------------------------------\n"

" ? ? ? ? ? ? ? ? ? 欢迎使用藏书管理信息系统\n"?
"----------------------------------------------------------\n"
"?? ??? ??? ?1、图书总览\n"
"----------------------------------------------------------\n"?
"?? ??? ??? ?2、图书入库\n"
"----------------------------------------------------------\n"
"?? ??? ??? ?3、图书查询\n"
"----------------------------------------------------------\n"
"?? ??? ??? ?4、修改信息\n"
"----------------------------------------------------------\n"
"?? ??? ??? ?5、帮 ? ?助\n"
"----------------------------------------------------------\n"
"?? ??? ??? ?6、退出软件\n"?
"----------------------------------------------------------\n"
"请选择:";
//1、图书总览?
char bookZRMenu[] = "-------------------------------------------------------- --\n"
" ? ? ? ? ? ? ? ?藏书管理系统---图书总览\n"?
"----------------------------------------------------------\n"
"?? ??? ?请选择查看的方式\n"
"----------------------------------------------------------\n"
"?? ??? ?1、查看图书汇总的信息\n"
"----------------------------------------------------------\n"
" ? ? ?? ??? ?2、查看全部图书的详细信息\n"
"----------------------------------------------------------\n"
"?? ??? ?3、返回(按任意键继续)\n"?
"----------------------------------------------------------\n"
;

//2、图书入库
char bookRKMenu[] = "----------------------------------------------------------\n"
" ? ? ? ? ? ? ? ?藏书管理系统---图书入库\n"?
"----------------------------------------------------------\n"
"?? ??? ?1、录入图书信息\n"
"----------------------------------------------------------\n"
"?? ??? ?2、返回(按任意键继续)\n"?
"----------------------------------------------------------\n"
;
//3、图书查询
char bookCXMenu[] ="----------------------------------------------------------\n"
" ? ? ? ? ? ? ? ?藏书管理系统---图书查询\n"?
"----------------------------------------------------------\n"
"?? ??? ?1、按作者姓名查找\n"
"----------------------------------------------------------\n"
"?? ??? ?2、按图书名称查找\n"
"----------------------------------------------------------\n"?
"?? ??? ?3、返回(按任意键继续)\n"?
"----------------------------------------------------------\n"
;

//4、修改信息
char bookXGMenu[] ="----------------------------------------------------------\n"
" ? ? ? ? ? ? ? ?藏书管理系统---修改信息\n"?
"----------------------------------------------------------\n"
"?? ??? ?1、修改图书信息\n"
"----------------------------------------------------------\n"
"?? ??? ?2、删除图书信息\n"
"----------------------------------------------------------\n"?
"?? ??? ?3、返回(按任意键继续)\n"?
"----------------------------------------------------------\n"
;
//5、帮 ? ?助
char helpMenu[] ="----------------------------------------------------------\n"
" ? ? ? ? ? ? ? ?藏书管理系统---帮助\n"?
"----------------------------------------------------------\n"
"?? ??? ?1、查看帮助\n"
"----------------------------------------------------------\n"
"?? ??? ?2、查看系统信息\n"
"----------------------------------------------------------\n"
"?? ??? ?3、返回(按任意键继续)\n"?
"----------------------------------------------------------\n"?
;
//6、退出软件
char TUCHUMenu[] ="----------------------------------------------------------\n"
" ? ? ? ? ? ? ?欢迎下次使用藏书管理系统\n"?
"----------------------------------------------------------\n"
;

//主页面的开始?
void showMainMenu()
{
?? ?system("cls"); // 调用DOD命令cls清屏
?? ?printf("%s", mainMenu);
}
void run()?
{
?? ?char cmd;
?? ?while (1)?
?? ?{
?? ??? ?showMainMenu(); // 显示菜单
?? ??? ?
?? ??? ?cmd = getchar();
?? ??? ?getchar(); // 清除输入流中留下的'\n'
?? ??? ?switch (cmd)?
?? ??? ?{
?? ??? ?case '1':
?? ??? ??? ?enterbookZR();?
?? ??? ??? ?break;
?? ??? ?case '2':
?? ??? ??? ?enterbookRK();
?? ??? ??? ?break;
?? ??? ?case '3':
?? ??? ??? ?enterbookCX();
?? ??? ??? ?break;
?? ??? ?case '4':
?? ??? ??? ?enterbookXG();
?? ??? ??? ?break;
?? ??? ?case '5':
?? ??? ??? ?enterhelp();
?? ??? ??? ?break;?? ?
?? ??? ?case '6':
?? ??? ??? ?printf("退出了系统\n");
?? ??? ??? ?return;
?? ??? ?default:
?? ??? ??? ?printf("错误命令!\n");?? ??? ??? ??? ??? ?
?? ??? ?}
?? ?}
}
//1、图书总览
void showbookZRMenu()
{
?? ?system("cls"); // 调用DOD命令cls清屏
?? ?printf("%s", bookZRMenu);
}
void printHZHeader()
{
?? ?printf("%-12s", "总的作者");
?? ?printf("%-12s", "总的图书");
?? ?printf("%-12s", "在库数量\n");
}
void printBookHZ()
{
?? ?int author=bookTable.counts;
?? ?int name=bookTable.counts;
?? ?int Allnumber=0;
?? ?int i=0;
?? ?for(i;i<name;i++)
?? ?{
?? ??? ?Allnumber += bookTable.bookArray[i].number;
?? ?}
?? ?printf("%-12d",bookTable.counts);
?? ?printf("%-12d",name);
?? ?printf("%-12d\n",Allnumber);
}
void printAllBook()
{
?? ?int j=bookTable.counts;
?? ?int i=0;
?? ?for(i;i<j;i++)
?? ?{
?? ??? ?printBook(&bookTable.bookArray[i]);
?? ??? ?
?? ?}
}
void enterbookZR()
{
?? ?char cmd;
?? ?while (1) {
?? ??? ?showbookZRMenu();
?? ??? ?cmd = getchar();
?? ??? ?getchar();
?? ??? ?switch (cmd) {
?? ??? ?case '1':?? ??? ??? ?//查看全部图书的汇总信息?
?? ??? ??? ?printHZHeader();?
?? ??? ??? ?printBookHZ();
?? ??? ??? ?break;
?? ??? ?case '2':?? ??? ??? ?//查看全部图书信息?
?? ??? ??? ?printHeader();
?? ??? ??? ?printAllBook();
?? ??? ??? ?break;
?? ??? ?case '3':
?? ??? ??? ?printf("返回上级菜单,按任意键继续...\n");
?? ??? ??? ?return;
?? ??? ?default:
?? ??? ??? ?printf("错误命令!\n");?? ??? ??? ??? ??? ?
?? ??? ?}
?? ??? ?system("pause"); // 调用DOD命令pause使屏幕显示暂停
?? ?}
}

//2、图书入库
void showbookRKMenu()
{
?? ?system("cls");?
?? ?printf("%s", bookRKMenu);
}
void RKBook()
{
?? ?Book book;
?? ?inputBook(&book);?? ?
?? ?bookTable.bookArray[bookTable.counts]=book;
?? ?bookTable.index = bookTable.counts;
?? ?bookTable.counts++;
?? ?bookTable.isModified = 1;
?? ?end();
}?
void enterbookRK()
{
?? ?char cmd;
?? ?while (1) {
?? ??? ?showbookRKMenu();
?? ??? ?cmd = getchar();
?? ??? ?getchar();
?? ??? ?switch (cmd) {
?? ??? ?case '1':?? ??? ??? ?//录入图书信息?
?? ??? ??? ?printf("请安提示录入图书信息");?
?? ??? ??? ?RKBook();
?? ??? ??? ?break;
?? ??? ?case '2':?? ??? ??? ?//返回(按任意键继续)
?? ??? ??? ?printf("返回上级菜单,按任意键继续...\n");
?? ??? ??? ?return;
?? ??? ?default:
?? ??? ??? ?printf("错误命令!\n");?? ??? ??? ??? ??? ?
?? ??? ?}
?? ??? ?system("pause"); // 调用DOD命令pause使屏幕显示暂停
?? ?}
}

//3、图书查询
void showbookCXMenu()
{
?? ?system("cls");?
?? ?printf("%s", bookCXMenu);
}?
void enterbookCX()
{
?? ?char cmd;
?? ?while (1) {
?? ??? ?showbookCXMenu();
?? ??? ?cmd = getchar();
?? ??? ?getchar();
?? ??? ?switch (cmd) {
?? ??? ?case '1':?? ??? ??? ?//按作者姓名查找
?? ??? ??? ?AuthorSearchAndPrint(&bookTable);
?? ??? ??? ?break;
?? ??? ?case '2':?? ??? ??? ?//按图书名称查找?
?? ??? ??? ?NameSearchAndPrint(&bookTable);
?? ??? ??? ?break;
?? ??? ?case '3':
?? ??? ??? ?printf("返回上级菜单,按任意键继续...\n");
?? ??? ??? ?return;
?? ??? ?default:
?? ??? ??? ?printf("错误命令!\n");?? ??? ??? ??? ??? ?
?? ??? ?}
?? ??? ?system("pause"); // 调用DOD命令pause使屏幕显示暂停
?? ?}
}

//4、修改信息
void showbookXGMenu()
{
?? ?system("cls");?
?? ?printf("%s", bookXGMenu);
}?
void modifBook()
{
?? ?char name[12];
?? ?double price;
?? ?int i;
?? ?int number;
?? ?printf("请输入想要修改信息的图书名称:");?
?? ?scanf("%s",name);
?? ?i=searchBookName(name,&bookTable);?? ??? ?//searchBookName()是图书搜索函数?
?? ?printf("请输入新的在库数量:");
?? ?scanf("%d",&number);
?? ?bookTable.bookArray[i].number=number;
?? ?printf("请输入新的图书价格:");
?? ?scanf("%lf",&price);
?? ?bookTable.bookArray[i].price=price;
?? ?bookTable.index=1;
?? ?end();?? ??? ?//对信息进行保存?
?? ?
}
/*
void deletBook()
{
?? ?char name[12];
?? ?int i;
?? ?printf("请输入想要删除的图书名称");?
?? ?scanf("%s",name);
?? ?i=searchBookName(name);
?? ?if(i==-1)
?? ?{
?? ??? ?printf("不存在该图书,或者该图书经被删除了!");
?? ?}
?? ?else
?? ?{
?? ??? ?int j;
?? ??? ?for(j=i;j<bookTable.counts;j++)
?? ??? ?{
?? ??? ??? ?bookTable.bookArray[j]=bookTable.bookArray[j+1];
?? ??? ?}
?? ??? ?
?? ?}
}?? ?
*/

void enterbookXG()
{
?? ?char cmd;
?? ?while (1) {
?? ??? ?showbookXGMenu();
?? ??? ?cmd = getchar();
?? ??? ?getchar();
?? ??? ?
?? ??? ?switch (cmd) {
?? ??? ?case '1':?? ??? ??? ?//修改图书信息?
?? ??? ??? ?modifBook();?? ?//(考虑到图书的基本信息不会变,变化的只能是图书的在库数量)
//?? ??? ??? ?end();?? ??? ?//对信息进行保存?
?? ??? ??? ?break;
?? ??? ?case '2':?? ??? ??? ?//删除图书信息?
?? ??? ??? ?bookDelete(&bookTable);
?? ??? ??? ?end();
?? ??? ??? ?break;
?? ??? ?case '3':
?? ??? ??? ?printf("返回上级菜单,按任意键继续...\n");
?? ??? ??? ?return;
?? ??? ?default:
?? ??? ??? ?printf("错误命令!\n");?? ??? ??? ??? ??? ?
?? ??? ?}
?? ??? ?system("pause"); // 调用DOD命令pause使屏幕显示暂停
?? ?}
}

//5、帮 ? ?助
void showhelpMenu()
{
?? ?system("cls");?
?? ?printf("%s", helpMenu);
}?
void printhHeple()
{
?? ?printf("1、按照系统的提示信息完成所需要进行的步骤\n");
?? ?printf("2、当按退出的时候,按任意键便可以继续\n");
?? ?printf("3、需要退到主菜单的时候退出程序\n");?
}
void printXTxinxi()
{
?? ?printf("这是由物联网201班胡俊诚开发,12月1日投入测试的藏书信息管理系统");
?? ?printf("当前版本为藏书信息管理系统1.0");?
}
void enterhelp()
{
?? ?char cmd;
?? ?while (1) {
?? ??? ?showhelpMenu();
?? ??? ?cmd = getchar();
?? ??? ?getchar();
?? ??? ?switch (cmd) {
?? ??? ?case '1':?? ??? ??? ?//查看帮助
?? ??? ??? ?printhHeple();
?? ??? ??? ?break;
?? ??? ?case '2':?? ??? ??? ?// 查看系统信息
?? ??? ??? ?printXTxinxi();
?? ??? ??? ?break;
?? ??? ?case '3':
?? ??? ??? ?printf("返回上级菜单,按任意键继续...\n");
?? ??? ??? ?return;
?? ??? ?default:
?? ??? ??? ?printf("错误命令!\n");?? ??? ??? ??? ??? ?
?? ??? ?}
?? ??? ?system("pause"); // 调用DOD命令pause使屏幕显示暂停
?? ?}
}

//bookTable初始化
void CSH(){
?? ?Book book1 = {"凡尔纳", "海底两万里", 21.9, 10, {2021,11,30},
?? ?"主要讲述阿龙纳斯跟随鹦鹉螺号潜艇遨游海洋,在海底进行环球探险旅行的故事"},

?? ??? ?
?? ?book2 = {"查尔斯", "雾都孤儿",19.9, 15, {2021,11,30},
?? ? "讲述善良的奥利弗经历重重的困难后,雨后见彩红,终于迎来美满的故事结局"},
?? ?
?? ?book3 = {"雨果", "巴黎圣母院",19.9, 10,{2021,11,30},
?? ?"巴黎圣母院大教堂是一座位于法国巴黎市中心、西提岛上的天主教的主教堂"};
?? ??
?? ?bookTable.bookArray[0] = book1;
?? ?bookTable.bookArray[1] = book2;
?? ?bookTable.bookArray[2] = book3;
?? ?bookTable.counts = 3;
?? ?bookTable.index = 0;
?? ?bookTable.isModified = 0;
?? ?FILE *pf = openTextFileForWrite("Books.txt");
?? ?if (pf==NULL)
?? ?{
?? ??? ?puts("打开文件失败!");
?? ??? ?exit(-1);
?? ?}
?? ?printf("打开成功");
?? ?outputBookTableToTextFile(pf, &bookTable);
?? ?printf("保存成功");
?? ?fclose(pf);
?? ?
//?? ?printHeader();
//?? ?printBook(&bookTable.bookArray[0]);
//?? ?printBook(&bookTable.bookArray[1]);
//?? ?printBook(&bookTable.bookArray[2]);
}?
void start()
{
?? ?FILE *pf = openTextFileForRead("Books.txt");
?? ?if (pf==NULL)
?? ?{
?? ??? ?puts("打开文件失败!");
?? ??? ?exit(-1);
?? ?}
?? ?printf("打开成功\n");
?? ?inputBookTableFromTextFile(pf, &bookTable);
//?? ?printHeader();
//?? ?printBook(&bookTable.bookArray[0]);
//?? ?printBook(&bookTable.bookArray[1]);
//?? ?printBook(&bookTable.bookArray[2]);
}
void end()
{
?? ?FILE *pf = openTextFileForWrite("Books.txt");
?? ?if (pf==NULL)
?? ?{
?? ??? ?puts("打开文件失败!");
?? ??? ?exit(-1);
?? ?}
?? ?printf("打开成功\n");
?? ?outputBookTableToTextFile(pf,&bookTable);
}
void main()
{

? ??CSH();?? ??? ?//初始化函数?
?? ?start();?? ?//将数据内容从Books.text文件中提取出来?
?? ?run();?? ??? ?//具体运行函数??
?? ?return;
}

注意这是下一个文件-------------------------------------------------------------------------------注意这是下一个文件-------------------------------------------------------------------------------

#ifndef __BOOK_H
#define __BOOK_H


typedef struct tagDate
{
?? ?int year;
?? ?int month;
?? ?int day;
} Date;

typedef struct tagBook
{
?? ?char author[12];?? ?//作者姓名?
?? ?char name[12];?? ??? ?//图书名称
?? ?double price;?? ??? ?//图书价格
?? ?int number;?? ??? ??? ?//图书入库数量
?? ?Date Day;?? ??? ??? ?//入库时间?
?? ?char subject[80];?? ?//图书简介
}Book;

#define N 100

typedef struct tagBookTable?
{
?? ?Book bookArray[N]; ?? ?// 存放book图书?
?? ?int counts; ? ? ? ?? ?// 数组bookArray中的book图书数量
?? ?int index; ? ? ? ?? ?// 当前book图书?
?? ?int isModified; ??? ?// 数组bookArray的内容是否变了
}BookTable;

void printHeader();?? ??? ??? ?//打印头信息?
//void printAllBook();?? ??? ?//打印汇总的图书信息
//void printBook(); ?? ??? ??? ?//打印图书信息?
void printBook(Book *book);?? ?//打印图书的信息?
void inputBook(Book *book); //录入图书信息?

#endif

注意这是下一个文件-------------------------------------------------------------------------------

#include <stdio.h>
#include "Book.h"

void printHeader()
{
?? ?printf("%-12s", "图书作者");
?? ?printf("%-12s", "图书名称");
?? ?printf("%-12s", "图书价格");
?? ?printf("%-12s", "在库数量");
?? ?printf("%-16s", "入库日期");
?? ?printf("%-30s\n", "图书简介");
?? ?printf("-----------------------------------------------------------------------------------\n");
}

void printBook(Book *book)
{
?? ?printf("%-12s", book->author);
?? ?printf("%-12s", book->name);
?? ?printf("%-14f", book->price);
?? ?printf("%-10d", book->number);
?? ?printf("%-4d年%-02d月%-02d日\n", book->Day.year, book->Day.month, book->Day.day);
?? ?printf("%-82s\n", book->subject);
?? ?printf("\n");
?}?
?
void inputBook(Book *book)
{
?? ?printf("图书作者:");
?? ?scanf("%s",book->author);
?? ?
?? ?printf("图书名称:");
?? ?scanf("%s",book->name);
?? ?
?? ?printf("图书价格:");
?? ?scanf("%lf",&book->price);
?? ?
?? ?printf("入库数量:");
?? ?scanf("%d",&book->number);
?? ?
?? ?printf("购买日期,年:");
?? ?scanf("%d", &book->Day.year);
?? ?printf("月:");
?? ?scanf("%d", &book->Day.month);
?? ?printf("日:");
?? ?scanf("%d", &book->Day.day);
?? ?
?? ?printf("图书简介:");
?? ?scanf("%s",book->subject);
}

注意这是下一个文件-------------------------------------------------------------------------------

#ifndef __FILE_H
#define __FILE_H

#include <stdio.h>
#include "Book.h"

FILE *openTextFileForWrite(char *pFileName);?? ?//用只写的方式打开?
FILE *openBinaryFileForWrite(char *pFileName);?? ??

FILE *openTextFileForRead(char *pFileName);?? ??? ?//用只读的方式打开?
FILE *openBinaryFileForRead(char *pFileName);

void outputBookToTextFile(FILE *pf, Book *book); ?? ?//将数据存储到文件中?
void inputBookFromTextFile(FILE *pf, Book *book);?? ?//将文件的数据读取?

void outputBookTableToTextFile(FILE *pf, BookTable *bookTable);
void inputBookTableFromTextFile(FILE *pf, BookTable *bookTable);

#endif
注意这是下一个文件-------------------------------------------------------------------------------

#include "File.h"
#include "Book.h"

FILE *openTextFileForWrite(char *pFileName)
{
?? ?FILE *fp = fopen(pFileName, "wt");
?? ?return fp;
}

FILE *openBinaryFileForWrite(char *pFileName)
{
?? ?FILE *fp = fopen(pFileName, "wb");
?? ?return fp;
}

FILE *openTextFileForRead(char *pFileName)
{
?? ?FILE *fp = fopen(pFileName, "rt");
?? ?return fp;
}

FILE *openBinaryFileForRead(char *pFileName)
{
?? ?FILE *fp = fopen(pFileName, "rb");
?? ?return fp;
}

void outputBookToTextFile(FILE *pf,Book *book)
{
?? ?fprintf(pf, "%-12s", book->author);
?? ?fprintf(pf, "%-12s", book->name);
?? ?fprintf(pf, "%-14lf", book->price);
?? ?fprintf(pf, "%-10d", book->number);
?? ?fprintf(pf,"%-4d年%-02d月%-02d日 ", book->Day.year, book->Day.month, book->Day.day);
?? ?fprintf(pf, "%-82s\n", book->subject);?
?? ?
}
void inputBookFromTextFile(FILE *pf, Book *book)
{
?? ?fscanf(pf, "%s", book->author);?
?? ?fscanf(pf, "%s", book->name);
?? ?fscanf(pf, "%lf",&book->price);
?? ?fscanf(pf, "%d", &book->number);
?? ?fscanf(pf, "%d", &book->Day.year);
?? ?getc(pf);
?? ?getc(pf);
?? ?fscanf(pf, "%d", &book->Day.month);
?? ?getc(pf);
?? ?getc(pf);
?? ?fscanf(pf, "%d", &book->Day.day);
?? ?getc(pf);
?? ?getc(pf);
?? ?fscanf(pf, "%s", book->subject);
?? ?
}


void outputBookTableToTextFile(FILE *pf, BookTable *bookTable)
{
?? ?int n = bookTable->counts;
?? ?int i=0;
?? ?while (i<n)
?? ?{
?? ??? ?outputBookToTextFile(pf, &bookTable->bookArray[i]);
?? ??? ?i++;
?? ?}
}

void inputBookTableFromTextFile(FILE *pf, BookTable *bookTable)
{
?? ?int n = 0;
?? ?Book book;
?? ?inputBookFromTextFile(pf, &book);
?? ?while (!feof(pf))
?? ?{
?? ??? ?bookTable->bookArray[n] = book;
?? ??? ?n++;
?? ??? ?inputBookFromTextFile(pf, &book);
?? ?}
?? ?bookTable->counts = n;
?? ?bookTable->index = 0;
?? ?bookTable->isModified = 0;
}

注意这是下一个文件-------------------------------------------------------------------------------

#ifndef __SEARCH_H
#define __SEARCH_H

#include <stdio.h>
#include<string.h>
#include "Book.h"

int searchBookName(char *name,BookTable *bookTable);
int searchAuthorName(char *author,BookTable *bookTable);

void AuthorSearchAndPrint(BookTable *bookTable);
void NameSearchAndPrint(BookTable *bookTable);
void bookDelete(BookTable *bookTable);
#endif

注意这是下一个文件-------------------------------------------------------------------------------

#include "Search.h"
int searchBookName(char *name,BookTable *bookTable)?? ?//搜索图书名称查找位置?
{
?? ?int i=0;?? ??
//?? ?char name[12];?? ?
//?? ?printf("请输入你需要查找的图书:");
//?? ?scanf("%s",name);
?? ?int counts= bookTable->counts;
?? ?while(i<counts)?? ?
?? ?{
?? ??? ?int str;
?? ??? ?str=strcmp(name, bookTable->bookArray[i].name);
?? ??? ?if(str==0)
?? ??? ?{
?? ??? ??? ?return i;?? ?//返回的i,为书在bookArray[]中的序号?
?? ??? ?}
?? ??? ?i++;
?? ?}
?? ?return -1;?? ??? ?//返回-1时,说明系统中没有该图书?
?? ?
}
int searchAuthorName(char *author,BookTable *bookTable)?? ?//搜索作者名字查找位置?
{
?? ?int i=0;
//?? ?char author[12];
//?? ?printf("请输入你需要查找的作者名字:");
//?? ?scanf("%s",author);
?? ?int counts= bookTable->counts;
?? ?while(i<counts)?? ?
?? ?{
?? ??? ?int str;
?? ??? ?str=strcmp(author, bookTable->bookArray[i].author);
?? ??? ?if(str==0)
?? ??? ?{
?? ??? ??? ?return i;?? ?//返回的i,为作者在bookArray[]中的序号?
?? ??? ?}
?? ??? ?i++;
?? ?}
?? ?return -1;?? ??? ?//返回-1时,说明系统中没有该作者的图书?
?? ?
}

void AuthorSearchAndPrint(BookTable *bookTable)?? ??? ?//搜索打印?
{
?? ?
?? ?int i=0;
?? ?char author[12];
?? ?printf("请输入你需要查找的作者名字:");
?? ?scanf("%s",author);
?? ?i=searchAuthorName(author,bookTable);
?? ?if(i==-1)
?? ?{
?? ??? ?printf("系统中没有该作者的图书");
?? ?}
?? ?else
?? ?{
?? ??? ?printHeader();
?? ??? ?printBook(&bookTable->bookArray[i]);
?? ?}
}?
void NameSearchAndPrint(BookTable *bookTable)?? ??? ?//搜索打印
{
?? ?
?? ?int i=0;
?? ?char name[12];?? ?
?? ?printf("请输入你需要查找的图书:");
?? ?scanf("%s",name);
?? ?i=searchAuthorName(name,bookTable);
?? ?if(i==-1)
?? ?{
?? ??? ?printf("系统中没有该图书");
?? ?}
?? ?else
?? ?{
?? ??? ?printHeader();
?? ??? ?printBook(&bookTable->bookArray[i]);
?? ?}
}
void bookDelete(BookTable *bookTable)?
{
?? ?int i=0;
?? ?char name[12];?? ?
?? ?printf("请输入你想要删除的图书:");
?? ?scanf("%s",name);
?? ?i=searchAuthorName(name,bookTable);
?? ?if(i==-1)
?? ?{
?? ??? ?printf("系统中没有该图书");
?? ?}
?? ?else
?? ?{
?? ??? ?for(i;i<bookTable->counts;i++)
?? ??? ?{
?? ??? ??? ?bookTable->bookArray[i]=bookTable->bookArray[i+1];
?? ??? ?}
?? ??? ?
?? ?}
?? ?
}

  C++知识库 最新文章
【C++】友元、嵌套类、异常、RTTI、类型转换
通讯录的思路与实现(C语言)
C++PrimerPlus 第七章 函数-C++的编程模块(
Problem C: 算法9-9~9-12:平衡二叉树的基本
MSVC C++ UTF-8编程
C++进阶 多态原理
简单string类c++实现
我的年度总结
【C语言】以深厚地基筑伟岸高楼-基础篇(六
c语言常见错误合集
上一篇文章      下一篇文章      查看所有文章
加:2021-12-26 21:57:27  更:2021-12-26 21:58:10 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 11:52:47-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码