c語言圖書管理系統(tǒng)課程設(shè)計報告(c語言圖書管理系統(tǒng)課程設(shè)計報告需求分析)
大家好!今天讓創(chuàng)意嶺的小編來大家介紹下關(guān)于c語言圖書管理系統(tǒng)課程設(shè)計報告的問題,以下是小編對此問題的歸納整理,讓我們一起來看看吧。
創(chuàng)意嶺作為行業(yè)內(nèi)優(yōu)秀企業(yè),服務(wù)客戶遍布全國,相關(guān)業(yè)務(wù)請撥打175-8598-2043,或微信:1454722008
本文目錄:
一、c語言課設(shè)小型圖書管理系統(tǒng)設(shè)計(c++)
試著做了下這個題,結(jié)果和你一樣前7項全解決了,就剩下第八個了,明天再試試,能做出來給你發(fā)代碼。要是我做不出來,還請你給我指點一二。
/*終于完成了,第八項也OK了。
你自己多運(yùn)行幾組數(shù)據(jù)測試下,應(yīng)該沒問題了
*/
// 20130718.cpp : Defines the entry point for the console application.
//
#include "stdafx.h"
#include <string>
#include <iomanip>
#include <iostream>
using namespace std;
#define N 5
void swap(string & a,string & b)
{
string c= a;
a= b;
b= c;
}
void swap1(int & a,int & b)
{
int c=a;
a=b;
b=c;
}
class A
{
private:
string name[N];
string writer[N];
int num1[N];//書號
int price[N];
int num2[N];//數(shù)量
public:
void input();
void add();
void modify();
void cut();
void look();
void seek();
void display();
};
void A::input()
{
for(int i=0;i<N;i++)
{
int j;
cout<<"請依次輸入書名,作者,編號,單價及數(shù)量,用空格鍵分開"<<endl;
cin>>name[i];
cout<<"書名錄入成功"<<endl;
cin>>writer[i];
cout<<"作者錄入成功"<<endl;
cin>>num1[i];
cout<<"編號錄入成功"<<endl;
cin>>price[i];
cout<<"單價錄入成功"<<endl;
cin>>num2[i];
cout<<"數(shù)量錄入成功"<<endl;
cout<<"是否繼續(xù)輸入"<<endl;
cout<<"1:繼續(xù)"<<endl;
cout<<"2:退出"<<endl;
cin>>j;
if(j==1) ;
else break;
}
}
void A::add()
{
for(int i=0;i<N;i++)
{
if(name[i]==writer[i])
{
int j;
cout<<"請依次輸入書名,作者,編號,單價及數(shù)量,用空格鍵分開"<<endl;
cin>>name[i];
cout<<"書名錄入成功"<<endl;
cin>>writer[i];
cout<<"作者錄入成功"<<endl;
cin>>num1[i];
cout<<"編號錄入成功"<<endl;
cin>>price[i];
cout<<"單價錄入成功"<<endl;
cin>>num2[i];
cout<<"數(shù)量錄入成功"<<endl;
cout<<"添加成功,是否繼續(xù)添加"<<endl;
cout<<"1:是"<<endl;
cout<<"2:否"<<endl;
cin>>j;
if(j==1);
else break;
}
}
}
void A::modify()
{
int i,j;
cout<<"請輸入要修改書的書號"<<endl;
cin>>j;
for(i=0;i<N;i++)
{
if(num1[i]!=j);
else
cout<<"書籍已找到"<<endl;
cout<<"請重新輸入書名,作者,編號,單價及數(shù)量,用空格鍵分開"<<endl;
cin>>name[i];
cout<<"書名錄入成功"<<endl;
cin>>writer[i];
cout<<"作者錄入成功"<<endl;
cin>>price[i];
cout<<"單價錄入成功"<<endl;
cin>>num2[i];
cout<<"數(shù)量錄入成功"<<endl;
break;
}
}
void A::cut()
{
int i,j;
cout<<"請輸入要刪除的書的書號"<<endl;
cin>>j;
for(i=0;i<N;i++)
{
if(num1[i]==j)
{ name[i]=writer[i]=" ";
num1[i]=price[i]=num2[i]=0;
cout<<"初始化完成"<<endl;
break;
}
}
}
void A::look()
{
int i;
for(i=0;i<N;i++)
{
cout<<name[i]<<writer[i]<<num1[i]<<price[i]<<num2[i]<<endl;
}
}
void A::seek()
{
int i,j;
cout<<"請輸入要查找的書的書號"<<endl;
cin>>j;
for(i=0;i<N;i++)
{
if(j==num1[i])
cout<<num1[i]<<name[i]<<writer[i]<<price[i]<<num2[i]<<endl;
else
break;
}
}
void A::display()//排序未解決,難。。。。。
{
int i,j,k/*,P,N1,N2*/;
for(i=1;i<N;i++)
{
for(j=0;j<i;j++)
{
if(price[i]>price[j])
{
swap1(price[i],price[j]);
swap(name[i],name[j]);
swap(writer[i],writer[j]);
swap1(num1[i],num1[j]);
swap1(num2[i],num2[j]);
}
}
}
for(k=0;k<N;k++)
{
cout<<setw(5)<<price[k]<<setw(10)<<name[k]<<setw(5)<<writer[k]<<setw(3)<<num1[k]<<setw(3)<<num2[k]<<endl;
}
cout<<"排序完成"<<endl;
}
int main()
{
A a;
int i;
do
{
cout<<"1:信息錄入"<<endl;
cout<<"2:添加記錄"<<endl;
cout<<"3:信息修改"<<endl;
cout<<"4:信息刪除"<<endl;
cout<<"5:信息瀏覽"<<endl;
cout<<"6:信息查詢"<<endl;
cout<<"7:信息排序"<<endl;
cout<<"8:退出系統(tǒng)"<<endl;
cin>>i;
switch(i)
{
case 1:a.input();break;
case 2:a.add();break;
case 3:a.modify();break;
case 4:a.cut();break;
case 5:a.look();break;
case 6:a.seek();break;
case 7:a.display();break;
case 8:cout<<"成功退出"<<endl;break;
default:cout<<"輸入錯誤"<<endl;
}
}while(i!=8);
return 0;
}
/*終于完成了,第八項也OK了。
你自己多運(yùn)行幾組數(shù)據(jù)測試下,應(yīng)該沒問題了
*/
二、C語言圖書管理信息系統(tǒng)
借書的限制:教師180天,借15本;學(xué)生120天,借10本
圖書的信息: 書的編號號,書名,作者,書的種類,書的總量以及書的剩余量
學(xué)生/教師信息: 學(xué)號/工號(4位數(shù)字字符),姓名,借書日期,還書日期(以此判定是否超出有效期)
(一)、查詢:(無條件或有條件指按所有字段查詢)
一、單鏈表上實現(xiàn)圖書信息管理
利用鏈表結(jié)構(gòu)實現(xiàn)圖書存儲
二 、二叉排序樹或平衡樹上實現(xiàn)圖書信息管理
利用二叉排序樹或平衡樹實現(xiàn)圖書的存儲
三、B_樹的操作(手工題)
插入、刪除操作:
從空的3階B_樹開始,依次插入20,30,50,52,60,68,70,10,80,90,40,75。畫出建樹過程,然后分別畫出刪除50,60,10,75,20的B_樹狀態(tài)。
1.課程設(shè)計的題目內(nèi)容要求
2.數(shù)據(jù)結(jié)構(gòu)的設(shè)計思想和任務(wù)的總體結(jié)構(gòu)
鏈接: https://pan.baidu.com/s/11BBC4ec7x3l62u83lJeGpw
提取碼:1234
三、C語言程序設(shè)計 圖書館信息管理系統(tǒng)設(shè)計
#include<windows.h>
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#include<conio.h>
struct book{
char number[100];
char tittle[100];
char writer[100];
char publisher[100];
char date[100];
char price[100];
char status[100];
char reader[100];
};
void search_book();
void borrow_book();
void return_book();
void add_book();
void delete_book();
void modify_book();
void scan_book();
int main()
{
int c1=0,c2,c3;
int l,x,z;
while(1)
{
system("color 2C");
printf("\t\t\t ^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^ \n");
printf("\t\t\t| * - * - * -圖書管理系統(tǒng) * - * - * |\n");
printf("\t\t\t* [1] 用戶登錄 *\n");
printf("\t\t\t* [2] 管理員登錄 *\n");
printf("\t\t\t^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^ \n");
printf("\n");
printf("請選擇你的操作 :");
scanf("%d",&c1);
system("cls");
break;
}
if(c1==1)
{
while(1){
system("color 2C");
printf("\t\t\t ^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^ \n");
printf("\t\t\t| * - * - * -圖書管理系統(tǒng) * - * - * |\n");
printf("\t\t\t* [1] 查詢圖書 *\n");
printf("\t\t\t| [2] 借閱圖書 |\n");
printf("\t\t\t* [3] 借還圖書 *\n");
printf("\t\t\t* [4] 瀏覽圖書信息 *\n");
printf("\t\t\t| [5] 退出圖書管理系統(tǒng) |\n");
printf("\t\t\t^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^ \n");
printf("\n");
printf("請選擇你的操作 :");
scanf("%d",&c2);
getchar();
switch(c2)
{
case 1:search_book(); break;
case 2:borrow_book(); break;
case 3:return_book(); break;
case 4:scan_book(); break;
case 5:system("cls"); return 0;
}
}
}
if(c1==2)
{
while(1){
system("color 2C");
printf("\t\t\t ^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^ \n");
printf("\t\t\t| * - * - * -圖書管理系統(tǒng) * - * - * |\n");
printf("\t\t\t| [1] 添加圖書 |\n");
printf("\t\t\t* [2] 刪減圖書 *\n");
printf("\t\t\t| [3] 修改圖書信息 |\n");
printf("\t\t\t* [4] 瀏覽圖書信息 *\n");
printf("\t\t\t| [5] 退出圖書管理系統(tǒng) |\n");
printf("\t\t\t^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^ \n");
printf("\n");
printf("請選擇你的操作 :");
scanf("%d",&c3);
getchar();
switch(c3)
{
case 1:add_book(); break;
case 2:delete_book(); break;
case 3:modify_book(); break;
case 4:scan_book(); break;
case 5:system("cls"); return 0;
}
}
}
}
/*查詢圖書*/
void search_book()
{
FILE*fp;
struct book n;
struct book nn;
int l,r;
char x,z;
fp=fopen("F:\\課程設(shè)計\\圖書管理系統(tǒng).txt","rb");
while(1)
{
l=0;
system("cls");
printf("請輸入圖書名稱:");
scanf("%s",n.tittle);
fflush(stdin);
rewind(fp);
while(1)
{
fread(&nn,sizeof(nn),1,fp);
if(feof(fp))
break;
r=strcmp(n.tittle,nn.tittle );
if(r==0)
{
l=1;
break;
}
}
if(l==0)
{
printf("沒有要查詢的圖書?。。?#92;n\n ");
}
else
{
printf("查詢的圖書為:");
printf("\n");
printf("****************************************\n");
printf("編號 書名 作者 出版社 出版時間 價格 狀態(tài) 借閱者\n");
printf("\n");
printf("%s %s %s %s %s %s %s",nn.number,nn.tittle,nn.writer,nn.publisher,nn.date,nn.price,nn.status,nn.reader);
printf("\n\n\n");
}
printf("是否繼續(xù)查詢圖書 ? [是(y)/否(n)] ? \n\n");
do
{
x=getche();
}while(x!='n'&&x!='y');
if(x=='n')
break;
}
fclose(fp);
system("cls");
}
//添加
void add_book()
{
FILE *fp;
struct book n;
struct book nn;
char x,z;
int l,r;
fp=fopen("F:\\課程設(shè)計\\圖書管理系統(tǒng).txt","ab+");
do
{
system("cls");
do
{
l=0;
printf("\n");
printf("編號 書名 作者 出版社 出版時間 價格 狀態(tài) 借閱者\n");
fflush(stdin);
scanf("%s %s %s %s %s %s %s %s",n.number,n.tittle,n.writer,n.publisher,n.date,n.price,n.status,n.reader);
system("cls");
rewind(fp);
while(!feof(fp))
{
fread(&nn,sizeof(nn),1,fp);
r=strcmp(n.tittle,nn.tittle);
if(r==0)
{
l=1;
printf(" 該圖書已存在,請輸入新的圖書信息: \n\n");
break;
}
}
}while(l);
fwrite(&n,sizeof(n),1,fp);
printf("\n");
printf("是否繼續(xù)輸入新的圖書信息[y/n] \n\n");
do
{
x=getche();
}while(x!='n'&&x!='y');
}while(x=='y');
fclose(fp);
system("cls");
}
//刪除圖書
void delete_book()
{
FILE *fp,*fp1;
char x,z;
struct book n;
struct book nn;
int l,r;
fp=fopen("F:\\課程設(shè)計\\圖書管理系統(tǒng).txt","ab+");
while(1)
{
l=0;
system("cls");
printf("\n");
printf("請輸入需要刪除的圖書名: \n\n");
fflush(stdin);
scanf("%s",&n.tittle);
rewind(fp);
while(1)
{
fread(&nn,sizeof(nn),1,fp);
if(feof(fp))
break;
r=strcmp(n.tittle,nn.tittle);
if(r==0)
{
l=1;
break;
}
}
if(l==0)
{
printf("\n");
printf("對不起,未找到該圖書 \n");
}
else
{
printf("\n");
printf("****************************************\n");
printf("編號 書名 作者 出版社 出版時間 價格 狀態(tài) 借閱者\n");
printf("\n");
printf("%s %s %s %s %s %s %s %s",nn.number,nn.tittle,nn.writer,nn.publisher,nn.date,nn.price,nn.status,nn.reader);
printf("\n");
printf("確認(rèn)刪除圖書信息? [是(y)/否(n)]\n\n");
do
{
z=getche();
}while(z!='n'&&z!='y');
if(z=='n')
break;
else
{
fp1=fopen("F:\\課程設(shè)計\\圖書管理系統(tǒng)new.txt","wb");
rewind(fp);
while(1)
{
fread(&nn,sizeof(nn),1,fp);
if(feof(fp))
break;
r=strcmp(n.tittle,nn.tittle);
if(r!=0)
fwrite(&nn,sizeof(nn),1,fp1);
}
fclose(fp);
fclose(fp1);
fp=fopen("F:\\課程設(shè)計\\圖書管理系統(tǒng).txt","wb");
fp1=fopen("F:\\課程設(shè)計\\圖書管理系統(tǒng)new.txt","rb");
while(1)
{
fread(&nn,sizeof(nn),1,fp1);
if(feof(fp1))
break;
fwrite(&nn,sizeof(nn),1,fp);
}
fclose(fp);
fclose(fp1);
}
}
printf("\n");
printf("是否繼續(xù)刪除圖書信息? [是(y)/否(n)] \n");
do
{
x=getche();
}while(x!='n'&&x!='y');
if(x=='n')
break;
}
fclose(fp);
system("cls");
}
//修改圖書信息
void modify_book()
{
FILE *fp;
struct book n;
struct book nn;
int l,r;
char x,z;
fp=fopen("F:\\課程設(shè)計\\圖書管理系統(tǒng).txt","rb+");
while(1)
{
l=0;
printf("\n");
system("cls");
printf("請輸入需要修改的圖書名: \n\n");
fflush(stdin);
scanf("%s",&n.tittle);
system("cls");
rewind(fp);
while(1)
{
fread(&nn,sizeof(nn),1,fp);
if(feof(fp))
break;
r=strcmp(n.tittle,nn.tittle);
if(r==0)
{
l=1;
break;
}
}
if(l==0)
{
printf("\n");
printf("對不起,未找到該圖書信息 \n\n");
}
else
{
printf("\n");
printf("****************************************\n");
printf("編號 書名 作者 出版社 出版時間 價格 狀態(tài) 借閱者\n");
printf("\n");
printf("%s %s %s %s %s %s %s %s",nn.number,nn.tittle,nn.writer,nn.publisher,nn.date,nn.price,nn.status,nn.reader);
printf("請依次修改圖書信息\n\n\n");
fflush(stdin);
scanf("%s %s %s %s %s %s %s %s",n.number,n.tittle,n.writer,n.publisher,n.date,n.price,n.status,n.reader);
fseek(fp,sizeof(nn),1);
fwrite(&n,sizeof(nn),1,fp);
}
printf("\n");
printf(" 是否繼續(xù)修改用戶信息[y/n]? \n\n");
do
{
x=getch();
}while(x!='n'&&x!='y');
if(x=='n')
break;
}
fclose(fp);
system("cls");
}
//借書
void borrow_book()
{
FILE*fp;
struct book n;
struct book nn;
char x,z;
int l,r;
fp=fopen("F:\\課程設(shè)計\\圖書管理系統(tǒng).txt","rb+");
while(1)
{
l=0;
system("cls");
printf("\n");
printf("請輸入需要借閱的圖書名: \n");
fflush(stdin);
scanf("%s",&n.tittle);
rewind(fp);
while(1)
{
fread(&nn,sizeof(nn),1,fp);
if(feof(fp))
break;
r=strcmp(n.tittle,nn.tittle);
if(r==0)
{
l=1;
break;
}
}
if(l==0)
{
printf("\n");
printf("對不起,未找到該圖書。 \n");
}
else
{ printf("\n");
printf("****************************************\n");
printf("編號 書名 作者 出版社 出版時間 價格 狀態(tài) 借閱者\n");
printf("\n");
printf("%s %s %s %s %s %s %s %s",nn.number,nn.tittle,nn.writer,nn.publisher,nn.date,nn.price,nn.status,nn.reader);
printf("\n");
fflush(stdin);
printf("請輸入圖書信息并修改在庫狀態(tài)及借閱者信息");
printf("****************************************\n");
printf("編號 書名 作者 出版社 出版時間 價格 狀態(tài) 借閱者\n");
printf("\n");
scanf("%s %s %s %s %s %s %s %s",n.number,n.tittle,n.writer,n.publisher,n.date,n.price,n.status,n.reader);
fseek(fp,sizeof(nn),1);
fwrite(&n,sizeof(nn),1,fp);
}
printf("\n");
printf(" 是否繼續(xù)借書? [是(y)/否(n)] \n\n");
do
{
x=getch();
}while(x!='n'&&x!='y');
if(x=='n')
break;
}
fclose(fp);
system("cls");
}
//還書
void return_book()
{
FILE*fp;
struct book n;
struct book nn;
char x,z;
int l,r;
fp=fopen("F:\\課程設(shè)計\\圖書管理系統(tǒng).txt","rb+");
while(1)
{
l=0;
system("cls");
printf("\n");
printf("請輸入需要借還的圖書名: \n");
fflush(stdin);
scanf("%s",&n.tittle);
rewind(fp);
while(1)
{
fread(&nn,sizeof(nn),1,fp);
if(feof(fp))
break;
r=strcmp(n.tittle,nn.tittle);
if(r==0)
{
l=1;
break;
}
}
if(l==0)
{
printf("\n");
printf("對不起,未找到該圖書。 \n");
}
else
{
printf("\n");
printf("****************************************\n");
printf("編號 書名 作者 出版社 出版時間 價格 狀態(tài) 借閱者\n");
printf("\n");
printf("%s %s %s %s %s %s %s %s",nn.number,nn.tittle,nn.writer,nn.publisher,nn.date,nn.price,nn.status,nn.reader);
printf("\n");
fflush(stdin);
printf("請輸入圖書信息并修改在庫狀態(tài) \n\n");
printf("****************************************\n");
printf("編號 書名 作者 出版社 出版時間 價格 狀態(tài) 借閱者\n");
printf("\n");
scanf("%s %s %s %s %s %s %s %s",n.number,n.tittle,n.writer,n.publisher,n.date,n.price,n.status,n.reader);
fseek(fp,-(int)sizeof(nn),1);
fwrite(&n,sizeof(nn),1,fp);
}
printf("\n");
printf("是否繼續(xù)還書? [是(y)/否(n)] \n");
do
{
x=getche();
}while(x!='n'&&x!='y');
if(x=='n')
break;
}
fclose(fp);
system("cls");
}
//瀏覽
void scan_book()
{
FILE*fp;
char x,z;
struct book n;
fp=fopen("F:\\課程設(shè)計\\圖書管理系統(tǒng).txt","rb");
rewind(fp);
system("cls");
while(1)
{
fread(&n,sizeof(n),1,fp);
if(feof(fp))
break;
else
{
printf("********************************************\n");
printf("編號 書名 作者 出版社 出版時間 價格 狀態(tài) 借閱者\n");
printf("\n");
printf("%s %s %s %s %s %s %s %s",n.number,n.tittle,n.writer,n.publisher,n.date,n.price,n.status,n.reader);
printf("\n");
}
}
printf("\n");
printf("回到主菜單請按回車");
do
{
x=getche();
}while(x!='\r');
if(x=='\r')
{
fclose(fp);
system("cls");
}
}
\\這是我在網(wǎng)上搜索的,你自己修改一下就行了,別說你不會修改.
四、用C語言編程 圖書管理系統(tǒng)設(shè)計
哦
以上就是關(guān)于c語言圖書管理系統(tǒng)課程設(shè)計報告相關(guān)問題的回答。希望能幫到你,如有更多相關(guān)問題,您也可以聯(lián)系我們的客服進(jìn)行咨詢,客服也會為您講解更多精彩的知識和內(nèi)容。
推薦閱讀:
數(shù)據(jù)類型關(guān)鍵字有哪些(c語言合法數(shù)據(jù)類型關(guān)鍵字有哪些)
鹽城古典屋頂花園景觀設(shè)計(鹽城古典屋頂花園景觀設(shè)計公司)