C语言课程设计:图书信息管理系统

设计一个图书信息管理系统,功能需求如下:

  1. 录入图书信息 2.添加图书信息 3.查询图书信息

4.修改图书信息 5.删除图书信息 6.按出版社排序

7.浏览所有图书信息 8.退出系统

话不多说,代码如下:

#include<stdio.h>
#include<stdlib.h>
#include<string.h>
int count=0;//全局变量,定义书籍数 
typedef struct book{//结构体 
    long bianhao;
    char bookname[20];
    char writer[20];
    char press[20];
    char time[20];
    int money;
}boo;
void gongnengqu(){//菜单目录 
    
        printf("欢迎使用图书管理系统\n请按提示选择以下功能\n");
    printf("**********************************\n\n");
    printf("    录入图书信息按1\n");
    printf("    添加图书信息按2\n");
    printf("    查询图书信息按3\n");
    printf("    修改图书信息按4\n");
    printf("    删除图书信息按5\n");
    printf("    按出版社排序图书信息按6\n");
    printf("    浏览所有图书信息按7\n");
    printf("    退出按0\n\n");
    printf("*********************************\n\n");
}

void wenjian1(boo books[]){//存储文件的,正常排序 
    FILE *fp;
fp=fopen("D:Demo/tushu.txt","w");
fprintf(fp,"图书编号  书名  作者  出版社  出版时间  价格\n");
for(int i=0;i<count;i++) 
{
    if(books[i].bookname==NULL)
    break;
    fprintf(fp,"%ld  ",books[i].bianhao);
    fprintf(fp,"%s  ",books[i].bookname);
    fprintf(fp,"%s  ",books[i].writer);
    fprintf(fp,"%s  ",books[i].press);
    fprintf(fp,"%s  ",books[i].time);
    fprintf(fp,"%d  ",books[i].money);
    fprintf(fp,"\n");
}
fclose(fp);
}
void wenjian2(boo books[]){//存储文件的,按出版社排序 
    FILE *fp;
fp=fopen("D:Demo/tushu1.txt","w");
fprintf(fp,"图书编号  书名  作者  出版社  出版时间  价格\n");
for(int i=0;i<count;i++) 
{
    if(books[i].bookname==NULL)
    break;
    fprintf(fp,"%ld  ",books[i].bianhao);
    fprintf(fp,"%s  ",books[i].bookname);
    fprintf(fp,"%s  ",books[i].writer);
    fprintf(fp,"%s  ",books[i].press);
    fprintf(fp,"%s  ",books[i].time);
    fprintf(fp,"%d  ",books[i].money);
    fprintf(fp,"\n");
}
fclose(fp);
}
void paixu1(boo books[]);
void luru(boo books[]){//对自己要输入的书籍进行录入,录入只能进行一次,再次进行会进行覆盖 
    for(int i=0;;i++)
    {
        if(i>0)
        {
        printf("如果要停止录入请打0,继续输入请打1:");
        int q;
        scanf("%d",&q);
        if(q==0) break;
    }
    printf("请输入其图书编号:");
    scanf("%ld",&books[i].bianhao); 
        printf("请输入书名:");
    scanf("%s",&books[i].bookname); 
        printf("请输入作者名:");
    scanf("%s",&books[i].writer); 
        printf("请输入其出版社:");
    scanf("%s",&books[i].press); 
        printf("请输入其出版时间:");
    scanf("%s",&books[i].time); 
        printf("请输入其价格:");
    scanf("%d",&books[i].money); 
    count++; 
    system("cls");//清屏 
}
paixu1(books);
wenjian1(books);
}
void paixu1(boo books[]) {
    char a[20];
    int t;
    long x;
    if(count>1){
    for(int i=0;i<count-1;i++){
        for(int j=i+1;j<count;j++)
        if(books[i].bianhao>books[j].bianhao){
                            t=books[i].money;books[i].money=books[j].money;books[j].money=t;
                x=books[i].bianhao;books[i].bianhao=books[j].bianhao;books[j].bianhao=x;
                strcpy(a,books[i].bookname);strcpy(books[i].bookname,books[j].bookname);strcpy(books[j].bookname,a);
                strcpy(a,books[i].writer);strcpy(books[i].writer,books[j].writer);strcpy(books[j].writer,a);
                strcpy(a,books[i].press);strcpy(books[i].press,books[j].press);strcpy(books[j].press,a);
                strcpy(a,books[i].time);strcpy(books[i].time,books[j].time);strcpy(books[j].time,a);
        }
    }
}
}
void tianjia(boo books[]){//添加 ,对书籍进行添加 
    printf("请输入其图书编号:");
    scanf("%ld",&books[count].bianhao); 
        printf("请输入书名:");
    scanf("%s",&books[count].bookname); 
        printf("请输入作者名:");
    scanf("%s",&books[count].writer); 
        printf("请输入其出版社:");
    scanf("%s",&books[count].press); 
        printf("请输入其出版时间:");
    scanf("%s",&books[count].time); 
        printf("请输入其价格:");
    scanf("%d",&books[count].money); 
    printf("添加成功\n");
    system("pause"); 
    paixu1(books);
    FILE *fp;
    fp=fopen("D:Demo/tushu.txt","a");
    fprintf(fp,"%ld  ",books[count].bianhao);
    fprintf(fp,"%s  ",books[count].bookname);
    fprintf(fp,"%s  ",books[count].writer);
    fprintf(fp,"%s  ",books[count].press);
    fprintf(fp,"%s  ",books[count].time);
    fprintf(fp,"%d  ",books[count].money);
    fprintf(fp,"\n");
    fclose(fp);
    count++;
}
void chaxun(boo books[]){//对于你所要的书籍进行查询 
    printf("请输入你要查询的书名:");
    char abc[20];
    int flag=0;
    scanf("%s",&abc); 
    for(int i=0;i<101;i++)
    {
        char a;
        if(books[i].money==NULL)
        break;
        if(strcmp(books[i].bookname,abc)==0)//比较字符串 
        {
            flag=1;
            printf("图书编号为:%ld\n",books[i].bianhao);
            printf("书名为:%s\n",books[i].bookname);
            printf("作者名为:%s\n",books[i].writer);
            printf("出版社为:%s\n",books[i].press);
            printf("出版时间为:%s\n",books[i].time);
            printf("价格为:%d\n",books[i].money);
            system("pause");
            break;
        }
    }
    if(flag==0)
    printf("【书籍为找到或不存在】\n");
    system("pause"); 
}
void xiugai(boo books[]){//对于你需要的书籍进行修改 
        printf("请输入你要查询的书名:");
    char abc[20];
    scanf("%s",&abc); 
    for(int i=0;i<101;i++)
    {
        char a;
        if(books[i].money==NULL)
        break;
        if(strcmp(books[i].bookname,abc)==0)
        {
            printf("原图书编号为:%ld\n",books[i].bianhao);
            printf("原书名为%s\n",books[i].bookname);
            printf("请输入新书名:\n"); 
            scanf("%s",&books[i].bookname);
            printf("原作者名为:%s\n",books[i].writer);
            printf("请输入新作者:\n"); 
            scanf("%s",&books[i].writer);
            printf("原出版社为:%s\n",books[i].press);
            printf("请输入新出版社:\n"); 
            scanf("%s",&books[i].press);
            printf("原出版时间为:%s\n",books[i].time);
            printf("请输入新出版时间\n"); 
            scanf("%s",&books[i].time);
            printf("原价格为:%d\n",books[i].money);
            printf("请输入新价格:\n");
            scanf("%d",&books[i].money); 
            system("pause");
            break;
        }
    }
wenjian1(books);    
}
void shanchu(boo books[]){//删除书籍 
    printf("请输入你要删除的书号:\n");
    int x,i,flag=1;
    scanf("%ld",&x); 
    for(;i<count;i++){
     if(x==books[i].bianhao&i<count-1){
         printf("【%s】书籍已删除\n",books[i].bookname);
         for(int z=i;z<count;z++){
         books[z].bianhao=books[z+1].bianhao;
         strcpy(books[z].bookname,books[z+1].bookname);
         strcpy(books[z].writer,books[z+1].writer);
         strcpy(books[z].press,books[z+1].press);
         strcpy(books[z].time,books[z+1].time);
         books[z].money=books[z+1].money;
         count--;}    flag=0;
        system("pause");break;}
     else if(x==books[i].bianhao&i==count-1){
          printf("【%s】书籍已删除\n",books[i].bookname);flag=0;    count--;    
    system("pause");break;
          }
     }
if(flag==1)
{
printf("书籍未找到\n");
system("pause");} 
paixu1(books);
wenjian1(books);
}

void paixu(boo books[]){//对出版社进行排序 
    char a[20];
    int t;
    long x;
    for(int i=0;i<count-1;i++){
        for(int j=i+1;j<count;j++){
            if((strcmp(books[i].press,books[j].press))>0)
            {
                t=books[i].money;books[i].money=books[j].money;books[j].money=t;
                x=books[i].bianhao;books[i].bianhao=books[j].bianhao;books[j].bianhao=x;
                strcpy(a,books[i].bookname);strcpy(books[i].bookname,books[j].bookname);strcpy(books[j].bookname,a);
                strcpy(a,books[i].writer);strcpy(books[i].writer,books[j].writer);strcpy(books[j].writer,a);
                strcpy(a,books[i].press);strcpy(books[i].press,books[j].press);strcpy(books[j].press,a);
                strcpy(a,books[i].time);strcpy(books[i].time,books[j].time);strcpy(books[j].time,a);
            }
        }
    }
    printf("已排序完成\n");
    printf("图书编号  书名  作者  出版社  出版时间  价格\n");
    for(int i=0;i<count;i++)
    {
        printf("%ld  ",books[i].bianhao);
        printf("%s  ",books[i].bookname);
        printf("%s  ",books[i].writer);
        printf("%s  ",books[i].press);
        printf("%s  ",books[i].time);
        printf("%d  \n",books[i].money);
    }
    system("pause"); 
    wenjian2(books);
    paixu1(books);
    wenjian1(books);
}
void read(boo books[])//将你所有的书籍进行浏览 
{
    FILE *fp;
    int i;
    if ((fp = fopen("D:Demo/tushu.txt","r")) == NULL) 
    { 
        printf("Failure to open 1.txt!\n");
        exit(0);
    }
char b[1000];
        fscanf(fp,"%[^n]",b);//输出所有文件的东西 
        printf("%s",b);    
    system("pause");
    fclose(fp);
    
 }
int main(){
    boo books[100];
    for(;;){
    gongnengqu();
    int key=0;
    scanf("%d",&key);
    switch(key){
        case 1:printf("【录入】\n");luru(books);break;
        case 2:printf("【添加】\n");tianjia(books);break;
        case 3:printf("【查询】\n");chaxun(books);break;
        case 4:printf("【修改】\n");xiugai(books);break;
        case 5:printf("【删除】\n");shanchu(books);break;
        case 6:printf("【排序】\n");paixu(books);break;
        case 7:printf("【浏览】\n");read(books);break;
        case 0:printf("【退出】\n");
                printf("退出成功!感谢您的使用!\n");
                system("pause");//暂停,避免输出过快 
                   exit(0);
                break;
        default:
                printf("【error】\n");
    } 
    system("cls");
    }
    return 0;
}


使用dev可运行,vc6++可能存在错误!!!!!

评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值