經過大二的繁忙,混了很多電子類論團,才發現這個電子工程網里面是真的有我們這類學子所需要的東西。每每在網上搜索資料的時候,看到大師們博客里面完美的記錄自己在實際生活中記錄的一些事情,我都有些培訓他們,既記錄了自己的生活事跡,也幫助了我們這些知識匱乏的大學生,因此我也要像大師們學習。在此,選擇自己過往的一點東西發表下。下面是我c語言課設時獨立自主完成的圖書管理系統設計。用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┃┃ 歡迎進入圖書管理系統 ┃┃\n");
printf("\t\t\t┣╋━━━━━━━━━━━━╋┫\n");
printf("\t\t\t┗┻━━━━━━━━━━━━┻┛\n");
// printf(" \n");
printf("\t\t\t******請選擇要進入的系統類別******\n");
printf("\n** 1--圖書管理系統 ** 2--學生系統 ** 3--退出**(回車鍵確定進入下一頁)\n");
printf("** 溫馨提示:選擇好之后,按enter鍵進入下一個頁面 **\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 選擇有誤,請重新選擇:\n");break;
}
}
//system("cls");
return 0;
}
int guanli() //進入管理員系統界面
{
int chioce;
chioce=quanxian();
if(chioce==1)
{
system("cls");
inputchioce1();
}
return 0;
}
int xuesheng() //進入學生系統界面
{
// printf("*****歡迎進入學生圖書借閱系統******\n");
// system("cls");
inputchioce2();
return 0;
}
int quanxian()
{ int m=1,n=3,flag=0;
char mima[20];
do{
printf("\n\n 你好,歡迎使本圖書信息管理系統!\n");
printf("\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n");
printf("【現在進行權限核查】 \n--------------------友情提醒:你共有3次輸入密碼的機會!\n");
printf("\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n ");
if(n==2||n==1){printf("注意:你已輸入錯誤%d次 剩余輸入次數: %d 請輸入 密碼:",3-n,n);}
if(n==3) printf("剩余輸入次數: %d 請輸入密碼:",n); scanf("%s",mima); //
if(strcmp(mima,"1")==0)
{
flag=1;
return flag;
}
m++;
n--;
system("cls"); }
while(strcmp(mima,"chenbo0916")!=0&&m<=3) ; // 限制輸入次數在3次之內
printf("\n\n對不起,你連續三次輸入密碼錯誤,沒有使用該圖書管理系統的權限!\n");
exit(0);
}
int inputchioce1()
{
int i,x=-1;
printf("\n++++++++++++++歡 迎 你++++++++++++++++++\n\n");
printf("**++++++++++++++主 菜 單++++++++++++++++++++++**\n");
printf("** 1-- 刪除或修改圖書信息 ** ** 2-- 添加圖書信息 ** \n");
printf("** 3--查看所有圖書信息 ** ** 0-- (安全)退出 **\n");
scanf("%d",&i);
switch(i)
{
case 0:
{
printf("\n\n謝謝你的使用! 再見\n");
exit (0);
}
case 1:
{
deletebook();
panduan10();
break;
}
case 2:
{
tianjia();
panduan1();
break;
}
case 3:
{
liulanbook();
panduan10();
break;
}
default:
{
system("cls");
printf("\n 選擇有誤,請重新選擇:\n");
inputchioce1();
}break;
}
//while(1);
return 0;
}
int inputchioce2() /* 主菜單 */
{
int mychioce;
printf("\n++++++++++++++歡 迎 你++++++++++++++++++\n\n");
printf("**++++++++++++++++ 主 菜 單 ++++++++++++++++++**\n");
printf("** 1-- 查看所有圖書信息 ** ** 2-- 查找圖書信息 ** \n");
printf("** 3-- 借閱圖書信息 ** ** 0-- (安全)退出系統 ** \n");
printf("**++++++++++++++++++++++++++++++++++++++++++++++++++++++++**\n");
scanf("%d",&mychioce);
switch(mychioce)
{
case 0:
{
printf("\n\n謝謝你的使用! 再見\n");
exit (0);
}
case 1:
{
liulanbook();
panduan2();
break;
}
case 2:
{
seekbook();
panduan2();
break;
}
case 3:
{
borrowbook();
panduan2();
break;
}
default:
{
system("cls");
printf("\n 選擇有誤,請重新選擇:\n");
inputchioce2();
}
// break;
}
return 0;
}
int liulanbook()
{
FILE *fp;
int i,c;
if((fp=fopen("BookInfo.txt","r+"))==NULL)
{
printf("打開文件出錯\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("編號 書名 作者 出版社 價格\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; //設定c為文件中有效結構體的數量
FILE *fp,*fp1;
if((fp=fopen("BookInfo.txt","r+"))==NULL)
{
printf("打開文件出錯\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("打開文件出錯\n");
exit(1);
}
char a[10];
printf("\t** 請輸入要刪除的圖書編號 **\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成功刪除圖書信息\n");
break;
}
}
if(k!=0)
{
printf("\t該圖書不存在\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("請輸入你要添加圖書的編號(四位數字序號)\n");
scanf("%s",&y);
if((fp=fopen("BookInfo.txt","r+"))==NULL)
{
printf("打開文件出錯\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("該圖書已存在");
printf("請重新輸入\n");
scanf("%s",&y);
for(n=0;n<100;n++)
{
if((strcmp(y,tushu[x].num))==0)
{
printf("該圖書已存在");
printf("請重新輸入\n");
}
else break;
}
}
}
fclose(fp);
printf("請輸入圖書信息\n");
printf("編號 書名 作者 出版社 價格\n");
// FILE *fp ;
int i;
if((fp=fopen("BookInfo.txt","a"))==NULL)
{
printf("打開文件出錯\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() //借閱圖書,并且存入學生學號以及圖書編號
{
FILE *fp1,*fp;
int i,k,n;
if((fp=fopen("BookInfo.txt","r"))==NULL)
{
printf("打開文件出錯\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("打開文件出錯\n");
exit(1);
}
// printf("\t** 請輸入你的學號以及圖書編號\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次查找圖書的機會 **\n");
printf("\t** 請輸入你要借閱圖書的編號 **\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** 已找到你所借閱的圖書 **\n");
printf("\t** 請輸入你的學號以便系統保存 **\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() //查詢圖書信息
{
int i,k=1;
FILE *fp;
if((fp=fopen("BookInfo.txt","r+"))==NULL)
{
printf("打開文件出錯\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**請輸入所要查找圖書的編號\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("未找到該圖書信息");
}
fclose(fp);
return 0;
}
int panduan10()
{
int x=-1;
printf("\n\n是否繼續操作? 請選擇(返回主菜單-1/退出-0)\n");
scanf("%d",&x);
if(x==1)
{
system("cls");
inputchioce1();
}
if(x==0)
{
printf("\n\n謝謝你的使用! 再見\n");
exit (0);
}
if(x!=1&&x!=0)
{
system("cls");
printf("選擇有誤,默認返回主菜單,請重新選擇:\n");
inputchioce1();
}
return 0;
}
int panduan1() //管理員添加圖書信息的判斷,跟panduan10()一樣
{
int x=-1;
printf("\n\n是否繼續操作? 請選擇(返回繼續添加圖書信息-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謝謝你的使用! 再見\n");
exit (0);
}
if(x!=1&&x!=0)
{
system("cls");
printf("選擇有誤,默認返回主菜單,請重新選擇:\n");
inputchioce1();
}
return 0;
}
int panduan2() //對學生借閱系統進行判斷
{
int x=-1;
printf("\n\n是否繼續操作? 請選擇(返回主菜單-1/退出-0)");
scanf("%d",&x);
if(x==1)
{
system("cls");
inputchioce2();
}
if(x==0)
{
printf("\n\n謝謝你的使用! 再見\n");
exit (0);
}
/* if(x==2)
{
system("cls");
seekbook();
}*/
if(x!=1&&x!=0)
{
system("cls");
printf("選擇有誤,默認返回主菜單,請重新選擇:\n");
inputchioce2();
}
return 0;
}