大三了,時(shí)間飛逝?吹搅嗣β悼佳械膶W(xué)長(zhǎng),也清楚的知道這可能就是明天自己的生活,因此業(yè)余時(shí)間來(lái)此發(fā)一篇博客。
經(jīng)過(guò)大二的繁忙,混了很多電子類論團(tuán),才發(fā)現(xiàn)這個(gè)電子工程網(wǎng)里面是真的有我們這類學(xué)子所需要的東西。每每在網(wǎng)上搜索資料的時(shí)候,看到大師們博客里面完美的記錄自己在實(shí)際生活中記錄的一些事情,我都有些培訓(xùn)他們,既記錄了自己的生活事跡,也幫助了我們這些知識(shí)匱乏的大學(xué)生,因此我也要像大師們學(xué)習(xí)。在此,選擇自己過(guò)往的一點(diǎn)東西發(fā)表下。下面是我c語(yǔ)言課設(shè)時(shí)獨(dú)立自主完成的圖書(shū)管理系統(tǒng)設(shè)計(jì)。用VC++6.0做的dos界面
#include "stdafx.h"
#include "stdio.h"
#include "stdlib.h"
#include "string.h"
#define N 100
int quanxian();
int inputchioce1();
int inputchioce2();
int guanli();
int xuesheng();
int liulanbook();
int deletebook();
int tianjia();
int tongjitushu();
int luruxinxi();
int paixutushu();
int shiyongshuoming();
int seekbook();
int panduan1();
int panduan2();
int panduan10();
int borrowbook();
struct tushu
{
char num[10];
char bookname[40];
char author[20];
char chuban[50];
float price;
}tushu[100];
struct st
{
char xuehao[10];
char num[10];
}st[100];
int main(int argc, char* argv[])
{
system("color a");
int mainchioce;
printf("\t\t\t┏┳━━━━━━━━━━━━┳┓\n");
printf("\t\t\t┣╋━━━━━━━━━━━━╋┫\n");
printf("\t\t\t┃┃ 歡迎進(jìn)入圖書(shū)管理系統(tǒng) ┃┃\n");
printf("\t\t\t┣╋━━━━━━━━━━━━╋┫\n");
printf("\t\t\t┗┻━━━━━━━━━━━━┻┛\n");
// printf(" \n");
printf("\t\t\t******請(qǐng)選擇要進(jìn)入的系統(tǒng)類別******\n");
printf("\n** 1--圖書(shū)管理系統(tǒng) ** 2--學(xué)生系統(tǒng) ** 3--退出**(回車鍵確定進(jìn)入下一頁(yè))\n");
printf("** 溫馨提示:選擇好之后,按enter鍵進(jìn)入下一個(gè)頁(yè)面 **\n");
// printf("確定");
scanf("%d",&mainchioce);
switch(mainchioce)
{
case 1:
{
system("cls");
guanli();break;
}
case 2:
{
system("cls");
xuesheng();break;
}
case 3:
{
exit(1);break;
}
default:
{
printf("\n 選擇有誤,請(qǐng)重新選擇:\n");break;
}
}
//system("cls");
return 0;
}
int guanli() //進(jìn)入管理員系統(tǒng)界面
{
int chioce;
chioce=quanxian();
if(chioce==1)
{
system("cls");
inputchioce1();
}
return 0;
}
int xuesheng() //進(jìn)入學(xué)生系統(tǒng)界面
{
// printf("*****歡迎進(jìn)入學(xué)生圖書(shū)借閱系統(tǒng)******\n");
// system("cls");
inputchioce2();
return 0;
}
int quanxian()
{ int m=1,n=3,flag=0;
char mima[20];
do{
printf("\n\n 你好,歡迎使本圖書(shū)信息管理系統(tǒng)!\n");
printf("\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n");
printf("【現(xiàn)在進(jìn)行權(quán)限核查】 \n--------------------友情提醒:你共有3次輸入密碼的機(jī)會(huì)!\n");
printf("\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n ");
if(n==2||n==1){printf("注意:你已輸入錯(cuò)誤%d次 剩余輸入次數(shù): %d 請(qǐng)輸入 密碼:",3-n,n);}
if(n==3) printf("剩余輸入次數(shù): %d 請(qǐng)輸入密碼:",n); scanf("%s",mima); //
if(strcmp(mima,"1")==0)
{
flag=1;
return flag;
}
m++;
n--;
system("cls"); }
while(strcmp(mima,"chenbo0916")!=0&&m<=3) ; // 限制輸入次數(shù)在3次之內(nèi)
printf("\n\n對(duì)不起,你連續(xù)三次輸入密碼錯(cuò)誤,沒(méi)有使用該圖書(shū)管理系統(tǒng)的權(quán)限!\n");
exit(0);
}
int inputchioce1()
{
int i,x=-1;
printf("\n++++++++++++++歡 迎 你++++++++++++++++++\n\n");
printf("**++++++++++++++主 菜 單++++++++++++++++++++++**\n");
printf("** 1-- 刪除或修改圖書(shū)信息 ** ** 2-- 添加圖書(shū)信息 ** \n");
printf("** 3--查看所有圖書(shū)信息 ** ** 0-- (安全)退出 **\n");
scanf("%d",&i);
switch(i)
{
case 0:
{
printf("\n\n謝謝你的使用! 再見(jiàn)\n");
exit (0);
}
case 1:
{
deletebook();
panduan10();
break;
}
case 2:
{
tianjia();
panduan1();
break;
}
case 3:
{
liulanbook();
panduan10();
break;
}
default:
{
system("cls");
printf("\n 選擇有誤,請(qǐng)重新選擇:\n");
inputchioce1();
}break;
}
//while(1);
return 0;
}
int inputchioce2() /* 主菜單 */
{
int mychioce;
printf("\n++++++++++++++歡 迎 你++++++++++++++++++\n\n");
printf("**++++++++++++++++ 主 菜 單 ++++++++++++++++++**\n");
printf("** 1-- 查看所有圖書(shū)信息 ** ** 2-- 查找圖書(shū)信息 ** \n");
printf("** 3-- 借閱圖書(shū)信息 ** ** 0-- (安全)退出系統(tǒng) ** \n");
printf("**++++++++++++++++++++++++++++++++++++++++++++++++++++++++**\n");
scanf("%d",&mychioce);
switch(mychioce)
{
case 0:
{
printf("\n\n謝謝你的使用! 再見(jiàn)\n");
exit (0);
}
case 1:
{
liulanbook();
panduan2();
break;
}
case 2:
{
seekbook();
panduan2();
break;
}
case 3:
{
borrowbook();
panduan2();
break;
}
default:
{
system("cls");
printf("\n 選擇有誤,請(qǐng)重新選擇:\n");
inputchioce2();
}
// break;
}
return 0;
}
int liulanbook()
{
FILE *fp;
int i,c;
if((fp=fopen("BookInfo.txt","r+"))==NULL)
{
printf("打開(kāi)文件出錯(cuò)\n");
exit(1);
}
rewind(fp);
for(i=0;i<N;i++)
{
if(feof(fp))
{
c=i-1;
break;
}
fscanf(fp,"%s %s %s %s %f",tushu[i].num,tushu[i].bookname,tushu[i].author,tushu[i].chuban,&tushu[i].price);
}
printf("編號(hào) 書(shū)名 作者 出版社 價(jià)格\n");
for(i=0;i<c;i++)
{
printf("%s %s %s %s %.1f\n",tushu[i].num,tushu[i].bookname,tushu[i].author,tushu[i].chuban,tushu[i].price);
}
fclose(fp);
return 0;
}
int deletebook()
{
int i,c,k=-1; //設(shè)定c為文件中有效結(jié)構(gòu)體的數(shù)量
FILE *fp,*fp1;
if((fp=fopen("BookInfo.txt","r+"))==NULL)
{
printf("打開(kāi)文件出錯(cuò)\n");
exit(1);
}
rewind(fp);
for(i=0;i<N;i++)
{
if(feof(fp))
{
c=i-1;
break;
}
fscanf(fp,"%s %s %s %s %f",tushu[i].num,tushu[i].bookname,tushu[i].author,tushu[i].chuban,&tushu[i].price);
}
// fclose(fp);
if((fp1=fopen("BookInfo.txt","w"))==NULL)
{
printf("打開(kāi)文件出錯(cuò)\n");
exit(1);
}
char a[10];
printf("\t** 請(qǐng)輸入要?jiǎng)h除的圖書(shū)編號(hào) **\n");
scanf("%s",a);
/* while(!feof(fp))
{
}*/
for(i=0;i<c;i++)
{
k=strcmp(a,tushu[i].num);
//printf("%d",k);
//while(1);
if(k==0)
{
// printf("---------");
strcpy(tushu[i].num,tushu[i+1].num);
strcpy(tushu[i].bookname,tushu[i+1].bookname);
strcpy(tushu[i].author,tushu[i+1].author);
strcpy(tushu[i].chuban,tushu[i+1].chuban);
tushu[i].price=tushu[i+1].price;
for(i=0;i<c-1;i++)
{
fprintf(fp1,"%s %s %s %s %.1f\n",tushu[i].num,tushu[i].bookname,tushu[i].author,tushu[i].chuban,tushu[i].price);
}
printf("\t成功刪除圖書(shū)信息\n");
break;
}
}
if(k!=0)
{
printf("\t該圖書(shū)不存在\n");
rewind(fp);
for(i=0;i<c;i++)
{
fprintf(fp,"%s %s %s %s %.1f\n",tushu[i].num,tushu[i].bookname,tushu[i].author,tushu[i].chuban,tushu[i].price);
}
}
fclose(fp1);
fclose(fp);
return 0;
}
int tianjia()
{
FILE *fp;
int x,k,n;
char y[10];
printf("請(qǐng)輸入你要添加圖書(shū)的編號(hào)(四位數(shù)字序號(hào))\n");
scanf("%s",&y);
if((fp=fopen("BookInfo.txt","r+"))==NULL)
{
printf("打開(kāi)文件出錯(cuò)\n");
exit(1);
}
for(x=0;x<N;x++)
{
fscanf(fp,"%s %s %s %s %f",tushu[x].num,tushu[x].bookname,tushu[x].author,tushu[x].chuban,&tushu[x].price);
}
for(x=0;x<100;x++)
{
k=strcmp(y,tushu[x].num);
if(k==0)
{
printf("該圖書(shū)已存在");
printf("請(qǐng)重新輸入\n");
scanf("%s",&y);
for(n=0;n<100;n++)
{
if((strcmp(y,tushu[x].num))==0)
{
printf("該圖書(shū)已存在");
printf("請(qǐng)重新輸入\n");
}
else break;
}
}
}
fclose(fp);
printf("請(qǐng)輸入圖書(shū)信息\n");
printf("編號(hào) 書(shū)名 作者 出版社 價(jià)格\n");
// FILE *fp ;
int i;
if((fp=fopen("BookInfo.txt","a"))==NULL)
{
printf("打開(kāi)文件出錯(cuò)\n");
exit(1);
}
for(i=0;i<1;i++)
{
scanf("%s %s %s %s %f",&tushu[i].num,tushu[i].bookname,tushu[i].author,tushu[i].chuban,&tushu[i].price);
}
for(i=0;i<1;i++)
{
fprintf(fp,"%s %s %s %s %.1f\n",tushu[i].num,tushu[i].bookname,tushu[i].author,tushu[i].chuban,tushu[i].price);
}
fclose(fp);
return 0;
}
int paixutushu()
{
return 0;
}
int borrowbook() //借閱圖書(shū),并且存入學(xué)生學(xué)號(hào)以及圖書(shū)編號(hào)
{
FILE *fp1,*fp;
int i,k,n;
if((fp=fopen("BookInfo.txt","r"))==NULL)
{
printf("打開(kāi)文件出錯(cuò)\n");
exit(1);
}
for(i=0;i<N;i++)
{
fscanf(fp,"%s %s %s %s %f",tushu[i].num,tushu[i].bookname,tushu[i].author,tushu[i].chuban,&tushu[i].price);
//printf("%s %s %s %s %.1f\n",tushu[i].num,tushu[i].bookname,tushu[i].author,tushu[i].chuban,tushu[i].price);
}
if((fp1=fopen("SendInfo.txt","a"))==NULL)
{
printf("打開(kāi)文件出錯(cuò)\n");
exit(1);
}
// printf("\t** 請(qǐng)輸入你的學(xué)號(hào)以及圖書(shū)編號(hào)\n");
/* for(i=0;i<1;i++)
{
scanf("%s %s",st[i].xuehao,st[i].num);
// printf("%s %s",st[i].xuehao,st[i].num);
}*/
for(i=0;i<5;i++)
{
printf("\t** 你有5次查找圖書(shū)的機(jī)會(huì) **\n");
printf("\t** 請(qǐng)輸入你要借閱圖書(shū)的編號(hào) **\n");
scanf("%s",st[0].num);
// k=strcmp(st[0].num,tushu[i].num);
for(n=0;n<N;n++)
{
k=strcmp(st[0].num,tushu[n].num);
if(k==0)
{
printf("\t** 已找到你所借閱的圖書(shū) **\n");
printf("\t** 請(qǐng)輸入你的學(xué)號(hào)以便系統(tǒng)保存 **\n");
scanf("%s",st[0].xuehao);
fprintf(fp1,"%s %s\n",st[i].xuehao,st[0].num);
break;
}
}
if(k==0)break;
}
fclose(fp);
fclose(fp1);
return 0;
}
int seekbook() //查詢圖書(shū)信息
{
int i,k=1;
FILE *fp;
if((fp=fopen("BookInfo.txt","r+"))==NULL)
{
printf("打開(kāi)文件出錯(cuò)\n");
exit(1);
}
for(i=0;i<N;i++)
{
fscanf(fp,"%s %s %s %s %f",tushu[i].num,tushu[i].bookname,tushu[i].author,tushu[i].chuban,&tushu[i].price);
}
char a[10];
printf("\n\n**請(qǐng)輸入所要查找圖書(shū)的編號(hào)\n");
scanf("%s",&a);
for(i=0;i<N;i++)
{
k=strcmp(a,tushu[i].num);
if(k==0)
{
printf("%s %s %s %s %.1f",tushu[i].num,tushu[i].bookname,tushu[i].author,tushu[i].chuban,tushu[i].price);
break;
}
}
if(k!=0)
{
printf("未找到該圖書(shū)信息");
}
fclose(fp);
return 0;
}
int panduan10()
{
int x=-1;
printf("\n\n是否繼續(xù)操作? 請(qǐng)選擇(返回主菜單-1/退出-0)\n");
scanf("%d",&x);
if(x==1)
{
system("cls");
inputchioce1();
}
if(x==0)
{
printf("\n\n謝謝你的使用! 再見(jiàn)\n");
exit (0);
}
if(x!=1&&x!=0)
{
system("cls");
printf("選擇有誤,默認(rèn)返回主菜單,請(qǐng)重新選擇:\n");
inputchioce1();
}
return 0;
}
int panduan1() //管理員添加圖書(shū)信息的判斷,跟panduan10()一樣
{
int x=-1;
printf("\n\n是否繼續(xù)操作? 請(qǐng)選擇(返回繼續(xù)添加圖書(shū)信息-2/返回主菜單-1/退出-0)\n");
scanf("%d",&x);
if(x==1)
{
system("cls");
inputchioce1();
}
if(x==2)
{
// system("cls");
tianjia();
}
if(x==0)
{
printf("\n\n謝謝你的使用! 再見(jiàn)\n");
exit (0);
}
if(x!=1&&x!=0)
{
system("cls");
printf("選擇有誤,默認(rèn)返回主菜單,請(qǐng)重新選擇:\n");
inputchioce1();
}
return 0;
}
int panduan2() //對(duì)學(xué)生借閱系統(tǒng)進(jìn)行判斷
{
int x=-1;
printf("\n\n是否繼續(xù)操作? 請(qǐng)選擇(返回主菜單-1/退出-0)");
scanf("%d",&x);
if(x==1)
{
system("cls");
inputchioce2();
}
if(x==0)
{
printf("\n\n謝謝你的使用! 再見(jiàn)\n");
exit (0);
}
/* if(x==2)
{
system("cls");
seekbook();
}*/
if(x!=1&&x!=0)
{
system("cls");
printf("選擇有誤,默認(rèn)返回主菜單,請(qǐng)重新選擇:\n");
inputchioce2();
}
return 0;
}