中文亚洲精品无码_熟女乱子伦免费_人人超碰人人爱国产_亚洲熟妇女综合网

當(dāng)前位置: 首頁(yè) > news >正文

廣告做圖網(wǎng)站廣州新聞發(fā)布

廣告做圖網(wǎng)站,廣州新聞發(fā)布,萊蕪紅石公園靈異事件,國(guó)外服務(wù)器購(gòu)買平臺(tái)目錄 書籍存儲(chǔ)的實(shí)現(xiàn)規(guī)劃 ?編輯 前置準(zhǔn)備: 書籍結(jié)構(gòu)體: 書籍展示的初始化和文件加載 書籍展示的銷毀和文件保存 書籍展示的容量檢查 書籍展示的尾插實(shí)現(xiàn) 書籍展示的書籍增加 書籍展示的書籍打印 書籍刪除展示數(shù)據(jù) 書籍展示修改數(shù)據(jù) 在指定位置之前…

目錄

書籍存儲(chǔ)的實(shí)現(xiàn)規(guī)劃

?編輯?前置準(zhǔn)備:

?書籍結(jié)構(gòu)體:

書籍展示的初始化和文件加載

書籍展示的銷毀和文件保存

?書籍展示的容量檢查

?書籍展示的尾插實(shí)現(xiàn)

?書籍展示的書籍增加

?書籍展示的書籍打印

?書籍刪除展示數(shù)據(jù)

書籍展示修改數(shù)據(jù)

在指定位置之前刪除數(shù)據(jù)

?書籍查找展示數(shù)據(jù)

?測(cè)試文件:

?源代碼文件:


書籍存儲(chǔ)的實(shí)現(xiàn)規(guī)劃

?前置準(zhǔn)備:

文件前置創(chuàng)建:

  1. BookList.h? -? 頭文件聲明
  2. BookList.c? -? 實(shí)現(xiàn)功能
  3. text.c? ? ? ? ? ?-? 測(cè)試文件
  • 創(chuàng)建書籍結(jié)構(gòu)體
  • 創(chuàng)建動(dòng)態(tài)內(nèi)存

??BookList 結(jié)構(gòu)體的創(chuàng)建
?為了方便后續(xù)更改,我們有以下定義
?1.書名 ?2.作者 ?3.價(jià)格 ?4.分類 ?5.編號(hào)

#define BOOKNAME 100
#define AUTHOR 50
#define TYPE 30
#define ID 50

?書籍結(jié)構(gòu)體:

typedef struct BookList
{char book_name[BOOKNAME]; //書名char author[AUTHOR];      //作者float price;			  //價(jià)格char type[TYPE];		  //分類char id[ID];			  //編號(hào)
}BookList;

?定義類型方便更改

typedef BookList SLDataType;

創(chuàng)建動(dòng)態(tài)順序表?

typedef struct Book
{SLDataType* arr;        //指針變量,指向結(jié)構(gòu)體類型元素的數(shù)組int size;				//有效數(shù)據(jù)的個(gè)數(shù)int capacity;			//空間容量大小
}Book;

書籍展示的初始化和文件加載

void BookInit(Book* book);
void LoadBook(Book* book);
// 書籍展示的初始化和文件加載
void BookInit(Book* book)
{book->arr = NULL;book->size = book->capacity = 0;LoadBook(book);
}void LoadBook(Book* book)
{FILE* pf = fopen("booklist", "rb");if (NULL == pf){perror("fopen booklist error!");return;}//加載文件BookList b2;while (fread(&b2, sizeof(BookList), 1, pf)){//尾插BookPushBack(book, b2);}printf("數(shù)據(jù)加載成功!\n");fclose(pf);pf = NULL;
}

書籍展示的銷毀和文件保存

void BookDestroy(Book* book);
void SaveBook(Book* book);
// 書籍展示的銷毀和文件保存
void SLDestroy(Book* ps)
{if (ps->arr==NULL)   //判斷ps->arr是否為NULL,如果不為NULL,說(shuō)明空間需要釋放{free(ps->arr);}ps->arr = NULL;ps->size = ps->capacity = 0;
}void BookDestroy(Book* book)
{SaveBook(book);SLDestroy(book);
}// 圖書書籍存儲(chǔ)
void SaveBook(Book* book)
{FILE* pd = fopen("booklist", "wb");if (NULL == pd){perror("fopen booklist error!");return;}// 存儲(chǔ)書籍?dāng)?shù)據(jù)for (int i = 0; i < book->size; i++){fwrite(book->arr+i, sizeof(BookList), 1, pd);}printf("數(shù)據(jù)保存成功!\n");fclose(pd);pd = NULL;
}

?書籍展示的容量檢查

void BookCheckCapacity(Book* book);
// 書籍展示的容量檢查
void BookCheckCapacity(Book* book)
{if (book->capacity == book->size){int newcapacity = book->capacity == 0 ? 4 : book->capacity * 2;//動(dòng)態(tài)內(nèi)存分配SLDataType* tmp = (SLDataType*)realloc(book->arr, newcapacity * sizeof(SLDataType));if (NULL == tmp){perror("realloc error!");return;}book->arr = tmp;book->capacity = newcapacity;}
}

?書籍展示的尾插實(shí)現(xiàn)

void BookPushBack(Book* book, SLDataType x);
// 書籍展示的尾插實(shí)現(xiàn)
void BookPushBack(Book* book, SLDataType x)
{assert(book);//尾插之前檢查內(nèi)存是否夠BookCheckCapacity(book);//進(jìn)行尾插book->arr[book->size++] = x;
}

?書籍展示的書籍增加

void BookAdd(Book* book);
// 書籍展示的書籍增加
void BookAdd(Book* book)
{// 1.書名  2.作者  3.價(jià)格  4.分類  5.編號(hào)BookList b1;printf("請(qǐng)輸入你要添加的書籍名字:\n");scanf("%s", b1.book_name);printf("請(qǐng)輸入你要添加的書籍作者:\n");scanf("%s", b1.author);printf("請(qǐng)輸入你要添加的書籍價(jià)格:\n");scanf("%f", &(b1.price));printf("請(qǐng)輸入你要添加的書籍分類:\n");scanf("%s", b1.type);printf("請(qǐng)輸入你要添加的書籍編號(hào):\n");scanf("%s", b1.id);// 添加數(shù)據(jù)BookPushBack(book, b1);printf("添加成功!\n");
}

?書籍展示的書籍打印

void BookPint(Book* book);
// 書籍展示的書籍打印
void BookPint(Book* book)
{// 1.書名  2.作者  3.價(jià)格  4.分類  5.編號(hào)printf("%-10s %-10s %-10s %-10s %-15s\n", "書名", "作者", "價(jià)格", "分類", "編號(hào)");printf("-------------------------------------------------------------\n");for (int i = 0; i < book->size; i++){printf("%-10s %-10s %-10.1f %-10s %-15s\n",book->arr[i].book_name,book->arr[i].author,book->arr[i].price,book->arr[i].type,book->arr[i].id);}
}

?書籍刪除展示數(shù)據(jù)

void BookDel(Book* book);
//刪除書籍展示數(shù)據(jù)
void BookDel(Book* book)
{// 在刪除之前先檢查數(shù)據(jù)存不存在char name[BOOKNAME];printf("請(qǐng)輸入您需要?jiǎng)h除的書籍:\n");scanf("%s", name);int find = FindByName(book, name);if (find < 0){printf("無(wú)法找到需要?jiǎng)h除的圖書\n");return;}SLErase(book, find);printf("刪除成功!\n");
}

書籍展示修改數(shù)據(jù)

void BookModify(Book* book);
//書籍展示修改數(shù)據(jù)
void BookModify(Book* book)
{//要修改的書籍需要存在char name[BOOKNAME];printf("請(qǐng)輸入你需要修改的圖書名字:\n");scanf("%s", name);//查找書籍看是否存在int find = FindByName(book, name);if (find < 0){printf("無(wú)法找到需要修改的圖書\n");return;}//直接修改printf("請(qǐng)輸入新的圖書名字:\n");scanf("%s", book->arr[find].book_name);printf("請(qǐng)輸入新的圖書作者:\n");scanf("%s", book->arr[find].author);printf("請(qǐng)輸入新的圖書價(jià)格:\n");scanf("%f", &(book->arr[find].price));printf("請(qǐng)輸入新的圖書分類:\n");scanf("%s", book->arr[find].type);printf("請(qǐng)輸入新的圖書編號(hào):\n");scanf("%s", book->arr[find].id);printf("修改成功!\n");
}

在指定位置之前刪除數(shù)據(jù)

void SLErase(Book* book, int pos);
//在指定位置之前刪除數(shù)據(jù)
void SLErase(Book* book, int pos)
{assert(book);//斷言防止傳入空指針//判斷刪除的數(shù)據(jù)是否合法if (pos >= 0 && pos < book->size){// 刪除數(shù)據(jù)for (int i = pos; i < book->size - 1; i++){book->arr[i] = book->arr[i + 1];//ps->[size-2]=ps->arr[size-1]}--book->size;}
}

?書籍查找展示數(shù)據(jù)

void BookFind(Book* book);
//查找圖書數(shù)據(jù)
void BookFind(Book* book)
{char name[BOOKNAME];printf("請(qǐng)輸入你要查找的書籍名字:\n");scanf("%s", name);//檢查圖書數(shù)據(jù)是否存在int find = FindByName(book, name);if (find < 0){printf("您要查找的書籍不存在!\n");return;}// 1.書名  2.作者  3.價(jià)格  4.分類  5.編號(hào)printf("%-10s %-10s %-10s %-10s %-15s\n", "書名", "作者", "價(jià)格", "分類", "編號(hào)");printf("-------------------------------------------------------------\n");//找到了printf("%-10s %-10s %-10.1f %-10s %-15s\n",book->arr[find].book_name,book->arr[find].author,book->arr[find].price,book->arr[find].type,book->arr[find].id);
}

?測(cè)試文件:

#define _CRT_SECURE_NO_WARNINGS 1
#include "BookList.h"
#include <windows.h>enum book_name
{ExitBook, // 0AddBook, // 1DelBook, //...PrintBook,ChangeBook,CheckBook
};void book_print()
{printf("*****************書籍錄*********************\n");printf("*************1. 增添圖書********************\n");printf("*************2. 刪除圖書********************\n");printf("*************3. 打印圖書********************\n");printf("*************4. 修改圖書********************\n");printf("*************5. 查找圖書********************\n");printf("*************0. 退出圖書錄******************\n");
}int main()
{Book b1;// 創(chuàng)建通訊錄對(duì)象,實(shí)際上就是順序表對(duì)象,等價(jià)于 SL sl//順序表的創(chuàng)建BookInit(&b1);int op = -1;do{book_print();printf("請(qǐng)選擇你的操作:\n");scanf("%d", &op);switch (op){case ExitBook:printf("退出圖書錄系統(tǒng)...\n");Sleep(1000);break;case AddBook:BookAdd(&b1);Sleep(1000);break;case DelBook:BookDel(&b1);Sleep(1000);break;case PrintBook:BookPint(&b1);Sleep(1000);break;case ChangeBook:BookModify(&b1);Sleep(1000);break;case CheckBook:BookFind(&b1);Sleep(1000);break;default:printf("選擇錯(cuò)誤,請(qǐng)重新選擇\n");Sleep(1000);break;}} while (op != 0);// 順序表的銷毀BookDestroy(&b1);return 0;
}

?源代碼文件:

BookList_2024_4_5 · 34c38d2 · 陽(yáng)區(qū)欠/C語(yǔ)言學(xué)習(xí)路程 - Gitee.com

http://www.risenshineclean.com/news/54837.html

相關(guān)文章:

  • axure做的網(wǎng)站sem競(jìng)價(jià)推廣怎么做
  • 做網(wǎng)站賭博的網(wǎng)站手機(jī)優(yōu)化
  • 蘭州網(wǎng)站seo費(fèi)用企業(yè)品牌推廣策劃方案
  • pHP可以做論壇網(wǎng)站嗎如何去除痘痘效果好
  • 電子商務(wù) 網(wǎng)站開發(fā)手機(jī)百度安裝下載
  • 鄭州官網(wǎng)網(wǎng)站推廣優(yōu)化公司品牌廣告和效果廣告的區(qū)別
  • 網(wǎng)站內(nèi)頁(yè)百度不收錄seo整站優(yōu)化公司持續(xù)監(jiān)控
  • 網(wǎng)站的聯(lián)系我們?cè)趺醋錾钲谕赓Q(mào)網(wǎng)絡(luò)推廣渠道
  • 谷歌seo優(yōu)化排名搜索網(wǎng)站排名優(yōu)化
  • 移動(dòng)端網(wǎng)站建設(shè)費(fèi)用軟件開發(fā)
  • 網(wǎng)站改版seo建議百度推廣如何代理加盟
  • 網(wǎng)站網(wǎng)站建設(shè)設(shè)計(jì)seo推廣有哪些
  • 香港免費(fèi)域名seo網(wǎng)站優(yōu)化培訓(xùn)找哪些
  • web網(wǎng)站開發(fā)基本流程圖黃岡網(wǎng)站seo
  • 重慶忠縣網(wǎng)站建設(shè)公司哪家專業(yè)幽默廣告軟文案例
  • 做網(wǎng)站需要網(wǎng)絡(luò)服務(wù)器深圳網(wǎng)站建設(shè)專業(yè)樂(lè)云seo
  • 成都蜀美網(wǎng)站建設(shè)徐州網(wǎng)站建設(shè)
  • 美容院網(wǎng)站源碼seo搜索引擎優(yōu)化名詞解釋
  • 遼寧建設(shè)廳新網(wǎng)站個(gè)人免費(fèi)開發(fā)網(wǎng)站
  • 完善旅游網(wǎng)站的建設(shè)網(wǎng)站制作建設(shè)公司
  • 想做網(wǎng)站去哪里做百度灰色關(guān)鍵詞排名技術(shù)
  • 白云區(qū)建網(wǎng)站常用的網(wǎng)絡(luò)推廣手段有哪些
  • 企業(yè)網(wǎng)站建設(shè)費(fèi)用深圳免費(fèi)外鏈生成器
  • 網(wǎng)站開發(fā)兼職接單平臺(tái)長(zhǎng)沙關(guān)鍵詞優(yōu)化公司電話
  • 邯鄲外貿(mào)網(wǎng)站建設(shè)公司成都網(wǎng)站建設(shè)公司
  • 政府網(wǎng)站建設(shè)的存在問(wèn)題網(wǎng)址查詢工具
  • 如何實(shí)現(xiàn)網(wǎng)站開發(fā)太原網(wǎng)站建設(shè)制作
  • 廣州建筑集團(tuán)股份有限公司杭州seo排名優(yōu)化外包
  • 如何提取網(wǎng)頁(yè)中的視頻seo主要做什么
  • 龍崗區(qū)住房建設(shè)局網(wǎng)站品牌營(yíng)銷方案