小小火的个人空间 https://www.eechina.com/space-uid-116446.html [收藏] [复制] [RSS]

博客

人生中的第一次

已有 1131 次阅读2014-10-12 00:34 |个人分类:c语言| 课设

   大三了,时间飞逝。看到了忙碌考研的学长,也清楚的知道这可能就是明天自己的生活,因此业余时间来此发一篇博客。
   经过大二的繁忙,混了很多电子类论团,才发现这个电子工程网里面是真的有我们这类学子所需要的东西。每每在网上搜索资料的时候,看到大师们博客里面完美的记录自己在实际生活中记录的一些事情,我都有些培训他们,既记录了自己的生活事迹,也帮助了我们这些知识匮乏的大学生,因此我也要像大师们学习。在此,选择自己过往的一点东西发表下。下面是我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;
}
   

路过

鸡蛋

鲜花

握手

雷人

评论 (0 个评论)

facelist

您需要登录后才可以评论 登录 | 立即注册

关于我们  -  服务条款  -  使用指南  -  站点地图  -  友情链接  -  联系我们
电子工程网 © 版权所有   京ICP备16069177号 | 京公网安备11010502021702
返回顶部