图书信息管理系统(C语言)

图书信息包括:登录号、书名、作者名、分类号、出版单位、出版时间、价格等。试设计一图书信息管理系统,使之能提供以下功能:
系统以菜单方式工作
1)  图书信息录入功能(图书信息用文件保存)--输入
2)  图书信息浏览功能--输出
3)  查询和排序功能:(至少一种查询方式)--算法
4)  按书名查询
5)  按作者名查询
6)  图书信息的删除与修改(可选项)
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <conio.h>
typedef struct book                                             /*定义结构体*/
{char bookname[100] ;        /*书名*/char writer[100];           /*作者*/char classnumber[100];      /*出版号*/char publisher[100];        /*出版单位*/char time[100];             /*出版日期*/char price[100];            /*价格*/struct book *next;          /*下个图书的信息*/
}Book;int mima()
{int i=0;char user[10]="hut";char Code[10]="416426";char getuser[10];char Getskey[10];while(1){printf("\t\t\t请输入账号:");scanf("%s",getuser);printf("\t\t\t请输入密码:");while(1){Getskey[i]=getch();if(Getskey[i]=='\r')break;else if(Getskey[i]=='\b'){if(i==0)continue;printf("\b");printf(" ");printf("\b");i--;}else{printf("*");i++;}}Getskey[6]='\0';if(strcmp(user, getuser)==0&&strcmp(Code, Getskey)==0)return 1;else{printf("\n\n\t\t\t账号不存在或密码输入错误,请重新输入\n");i = 0;}}
}void showmenu1()                                                /*显示管理员菜单*/
{system("cls");printf("\n\n\n\n\n");printf("\t************************************************************\n");printf("\t*                                                          *\n");printf("\t*                 欢迎来到图书信息管理系统                 *\n");printf("\t*                                                          *\n");printf("\t*                                                          *\n");printf("\t*                          主菜单                          *\n");printf("\t*                                                          *\n");printf("\t*                     1.录入图书信息                       *\n");printf("\t*                                                          *\n");printf("\t*                     2.删除图书信息                       *\n");          printf("\t*                                                          *\n");printf("\t*                     3.修改图书信息                       *\n");printf("\t*                                                          *\n");printf("\t*                     4.查询图书信息                       *\n");printf("\t*                                                          *\n");printf("\t*                     5.显示所有图书信息                   *\n");        printf("\t*                                                          *\n");printf("\t*                     6.返回登录界面                       *\n");printf("\t*                                                          *\n");printf("\t*                     7.保存数据并退出系统                 *\n"); printf("\t*                                                          *\n");printf("\t************************************************************\n\n");
}void showmenu2()                                                /*显示游客菜单*/
{system("cls");printf("\n\n\n\n\n");printf("\t************************************************************\n");printf("\t*                                                          *\n");printf("\t*                 欢迎来到图书信息管理系统                 *\n");printf("\t*                                                          *\n");printf("\t*                                                          *\n");printf("\t*                          主菜单                          *\n");printf("\t*                                                          *\n");printf("\t*                     1.查询图书信息                       *\n");printf("\t*                                                          *\n");printf("\t*                     2.显示所有图书信息                   *\n");        printf("\t*                                                          *\n");printf("\t*                     3.返回登录界面                       *\n");printf("\t*                                                          *\n");printf("\t*                     4.退出系统                           *\n"); printf("\t*                                                          *\n");printf("\t************************************************************\n\n");
}int savebookdata(Book *head)                                    /*将数据保存到文件中*/
{Book *p;FILE*fp;fp=fopen("D:\\zuoye.txt","w");p=head->next;do{fprintf(fp,"%s\t",p->bookname);         /* 把这个结点的数据全部写入至文件内由于next指针不需要写入至文件,*/fprintf(fp,"%s\t",p->writer);          /*因此,数据大小就是sizeof(book)-sizeof(book*)总数据大小减去指针的大小 */fprintf(fp,"%s\t",p->classnumber);fprintf(fp,"%s\t",p->publisher);fprintf(fp,"%s\t",p->time);fprintf(fp,"%s",p->price);fprintf(fp,"\n");p=p->next;                 /*转换到下一个结点*/}while(p!=NULL);fclose(fp);return 0;
}void addnewbook(Book **head)                                    /*录入图书信息*/
{int i;Book *p,*s;system("cls");if(*head == NULL) {                 /* 如果表头为空,先为它分配内存 */*head = (book *)calloc(1, sizeof(book));p = *head;} else {                            /* 否则,就说明有内容,直接切换到尾结点 */p = *head;while(p->next) p = p->next; }printf("\n\n\n");printf("\t※※※※※※※※※※※※※※※※※※※※※※※※※※※※\n");printf("\t\t\t请问添加几本书:"); scanf("%d",&i);printf("\t--------------------------------------------------------\n");while(i){s = (Book *)calloc(1, sizeof(Book));                        /*为这个结点分配内存 */printf("\t\t\t请输入书名:");scanf("%s",s->bookname);printf("\t--------------------------------------------------------\n");printf("\t\t\t请输入作者:");scanf("%s",s->writer);printf("\t--------------------------------------------------------\n");printf("\t\t\t请输入出版号:");scanf("%s",s->classnumber);printf("\t--------------------------------------------------------\n");printf("\t\t\t请输入出版单位:");scanf("%s",s->publisher);printf("\t--------------------------------------------------------\n");printf("\t\t\t请输入出版日期:");scanf("%s",s->time);printf("\t--------------------------------------------------------\n");printf("\t\t\t请输入价格:");scanf("%s",s->price);printf("\t--------------------------------------------------------\n");printf("\n");printf("\t--------------------------------------------------------\n");i--;p->next=s;    /*保存输进去的这个结点*/p=p->next;    /*切换到下一个结点*/ p->next=NULL; /*最后一个结点为NULL*/}printf("\t\t\t图书添加成功!!!\n");system("pause");
}int readbookdata(Book **head)                                   /*将数据从文件中读取*/
{int n;Book *s, *p;FILE *fp;fp=fopen("d:\\zuoye.txt","r");/* 如果文件打开失败,就返回-1 */if(NULL == fp) { *head = NULL; return -1;} *head = (Book *)calloc(1, sizeof(Book));p = *head; while (!feof(fp)){s = (Book *)calloc(1, sizeof(Book));                    /* 为下个结点分配内存空间 */fscanf(fp,"%s",s->bookname);fscanf(fp,"%s",s->writer);fscanf(fp,"%s",s->classnumber);fscanf(fp,"%s",s->publisher);fscanf(fp,"%s",s->time);fscanf(fp,"%s",s->price);p->next=s;   /*保存该结点*/p=p->next;   /*切换到下一个结点*/p->next=NULL; /*保证最后一个结点为NULL*/}fclose(fp);/* 关闭文件 */return 0;
}void deletebook(Book *head)                                     /*删除图书信息*/
{system("cls");int flag=0;char name[100],ch[10];Book *p,*t;/* 如果表头为空 */if(head == NULL || head->next == NULL) {printf("没有记录图书信息!\n");system("pause");return;}p=head;printf("\n\n\n");printf("※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※\n");printf("请输入要删除的书名;");scanf("%s",&name);printf("----------------------------------------------------------------------\n");printf("书名\t\t作者名\t\t分类号\t出版单位\t出版时间\t价格\n");   printf("----------------------------------------------------------------------\n");                                                                                                                                    while(p->next){t=p;p=p->next;                                               /*转换到下一个结点*/if(strcmp(name,p->bookname)==0){flag=1;printf("%s\t%s\t%s\t%s\t%s\t%s\n",p->bookname,p->writer,p->classnumber,p->publisher,p->time,p->price);break;}}if(flag==1){printf("是否删除该本图书信息(y/n)");scanf("%s",ch);printf("----------------------------------------------------------------------\n");if(strcmp(ch,"Y")==0||strcmp(ch,"y")==0){t->next=p->next;printf("该书已删除!\n");}elsereturn;}else if(flag==0)printf("没找到那本书!\n");system("pause");
}void modifybook(Book *head)                                     /*修改图书信息*/
{system("cls");int flag=0;char name[100],ch[10];Book *p,*t;/* 如果表头为空 */if(head == NULL || head->next == NULL) {printf("没有记录图书信息!\n");system("pause");return ;}p=head;printf("\n\n\n");printf("※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※\n");printf("请输入要修改的书名:");scanf("%s",name);printf("--------------------------------------------------------------------\n");while(p->next){p=p->next;                 /*切换到下一个结点*/if(strcmp(name,p->bookname)==0){flag=1;t=p;printf("书名\t\t作者名\t\t分类号\t出版单位\t出版时间\t价格\n");   printf("--------------------------------------------------------------------\n");printf("%s\t%s\t%s\t%s\t%s\t%s\n",p->bookname,p->writer,p->classnumber,p->publisher,p->time,p->price);}}if(flag==1){printf("--------------------------------------------------------------------\n");printf("\t\t是否修改该本图书信息(y/n):");scanf("%s",ch);printf("\t--------------------------------------------------------------------\n");if(strcmp(ch,"Y")==0||strcmp(ch,"y")==0){int c;printf("\t\t【1】书名\n");printf("--------------------------------------------------------------------\n");printf("\t\t【2】作者\n");printf("--------------------------------------------------------------------\n");printf("\t\t【3】出版号\n");printf("--------------------------------------------------------------------\n");printf("\t\t【4】出版单位\n");printf("--------------------------------------------------------------------\n");printf("\t\t【5】出版日期\n");printf("--------------------------------------------------------------------\n");printf("\t\t【6】价格\n");printf("--------------------------------------------------------------------\n");printf("\t请输入你要修改的内容;");scanf("%d",&c);printf("--------------------------------------------------------------------\n");p=t;switch(c){case 1:printf("\t请输入书名:");scanf("%s",p->bookname);break;case 2:printf("\t请输入作者:");scanf("%s",p->writer);break;case 3:printf("\t请输入出版号:");scanf("%s",p->classnumber);break;case 4:printf("\t请输入出版单位:");scanf("%s",p->publisher);break;case 5:printf("\t请输入出版日期:");scanf("%s",p->time);break;case 6:printf("\t请输入价格:");scanf("%s",p->price);break;}printf("--------------------------------------------------------------------\n");printf("\t恭喜大佬修改成功!!!\n");}}else if(flag==0)printf("对不起,该书库没有该书\n");system("pause");
}void searchbook(Book *head)                                     /*查询图书信息*/
{system("cls");int choose,flag=0;Book *p;char b[100];/* 如果表头为空 */if(head == NULL || head->next == NULL) {printf("没有记录图书信息!\n");system("pause");return ;}do{system("cls");printf("\n\n\n");printf("※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※\n");printf("\t\t1.按书名查找\n");printf("----------------------------------------------------------------------\n");printf("\t\t2.按作者名查找\n");printf("----------------------------------------------------------------------\n");printf("\t\t返回主菜单(其他数字)\n");printf("----------------------------------------------------------------------\n");printf("\t\t请输入您的选择:");scanf("%d",&choose);printf("----------------------------------------------------------------------\n");p=head;if(choose==1){printf("输入所查书名:");scanf("%s",b);printf("----------------------------------------------------------------------\n\n");while(p->next){p=p->next;                           /*转换到下一个结点*/if(strcmp(b,p->bookname)==0)         /*判断是否找到并输出*/{flag=1;printf("※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※\n");printf("书名\t\t作者名\t\t分类号\t出版单位\t出版时间\t价格\n");   printf("----------------------------------------------------------------------\n");printf("%s\t%s\t%s\t%s\t%s\t%s\n",p->bookname,p->writer,p->classnumber,p->publisher,p->time,p->price);;}}if(flag==0)printf("不存在该信息\n");}else if(choose==2){printf("输入所查作者名:");scanf("%s",b);printf("----------------------------------------------------------------------\n\n");while(p->next){p=p->next;                         /*转换到下一个结点*/if(strcmp(b,p->writer)==0)         /*判断是否找到并输出*/{flag=1;printf("※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※\n");printf("书名\t\t作者名\t\t分类号\t出版单位\t出版时间\t价格\n");   printf("----------------------------------------------------------------------\n");printf("%s\t%s\t%s\t%s\t%s\t%s\n",p->bookname,p->writer,p->classnumber,p->publisher,p->time,p->price);}}if(flag==0)printf("不存在该信息\n");}elsereturn;system("pause");}while(1);
}int printfbook(Book *head)                                     /*显示所有图书信息*/
{Book *p;system("cls");/* 如果表头为空 */if(head == NULL || head->next == NULL) {printf("没有记录图书信息!\n");system("pause");return 0;}p=head->next;printf("\n\n\n");printf("※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※\n");printf("                                  图书列表\n");printf("----------------------------------------------------------------------\n");printf("书名\t\t作者\t\tISBN\t出版单位\t出版时间\t价格\n");   printf("----------------------------------------------------------------------\n");do{printf("%s\t%s\t%s\t%s\t%s\t%s\n",p->bookname,p->writer,p->classnumber,p->publisher,p->time,p->price);p=p->next;                           /*转换到下一个结点*/}while(p!=NULL);system("pause");
}int main(void)
{system("cls");Book *head=NULL;readbookdata(&head);system("color 8a");int choice,z,c;printf("\n\n\n");printf("\t※※※※※※※※※※※※※※※※※※※※※※※※※※※※\n");printf("\t\t\t欢迎光临图书信息管理系统\n");printf("\t--------------------------------------------------------\n");printf("\t\t\t【1】游客\n");printf("\t\t\t【2】管理员\n");printf("\t\t\t【3】退出系统\n");printf("\t--------------------------------------------------------\n");while(printf("\t\t\t请选择身份:")&&scanf("%d",&c)!=EOF){if(c==1){showmenu2();while (printf("\t请输入选择项(1-3):")&&scanf("%d",&choice)!=EOF){switch (choice){case 1:                                                /*查询图书信息*/searchbook(head);break;case 2:                                                /*显示所有图书信息*/printfbook(head);break; case 3:                                                /*返回登录界面*/main();break;case 4:exit(0); default:printf("\t输入错误!!!\n");system("pause");break;}showmenu2();}}else if(c==2){z=mima();showmenu1();while (printf("\t请输入选择项(1-6):")&&z==1&&scanf("%d",&choice)!=EOF){switch (choice){case 1:                                                /*录入图书信息*/addnewbook(&head);break;  case 2:                                                /*删除图书信息*/deletebook(head);break;case 3:                                                /*修改图书信息*/modifybook(head);break;case 4:                                                /*查询图书信息*/searchbook(head);break;case 5:                                                /*显示所有图书信息*/printfbook(head);break;case 6:                                                /*返回登录界面*/main();break; case 7:                                                /*保存数据并退出系统*/savebookdata(head);exit(0);default:printf("\t输入错误!!!\n");system("pause");break;}showmenu1();}}else if(c==3)exit(0);else{printf("\t\t\t输入错误!!!\n\n");}}return 0;
}

课程设计--图书信息管理系统(C语言)相关推荐

  1. c语言课程设计 职工信息管理系统,C语言课程设计-职工信息管理系统程序设计.doc...

    C语言课程设计-职工信息管理系统程序设计 C语言课程设计报告 设计题目:职工信息管理系统程序设计 课程设计评语2 目 录3 1.课程论文题目4 2.程序设计思路4 3.功能模块图5 4.数据结构设计5 ...

  2. 大一c语言图书管理系统查询,大一C语言课程设计图书信息管理系统.doc

    高级语言程序设计 课程设计 评语: 学 院 班 级 姓 名 学 号 成 绩 指导老师 年 月 日 一.目的 1. 进一步掌握和利用C语言进行程设计的能力: 2.? 进一步理解和运用结构化程设计的思想和 ...

  3. 课程设计-图书信息管理系统

    介绍: 课程设计-银行储蓄系统--> 在这里 图书信息管理系统包括:登录号.书名.作者名.分类号.出版单位.出版时间.价格等.试设计一图书信息管理系统,使之能提供以下功能: (1)系统以菜单方式 ...

  4. c语言程序设计课程设计学生信息管理系统,C语言程序设计课程设计报告----学生信息管理系统.doc...

    河南理工大学计算机学院 <C语言程序设计>课程设计报告 题目: 学生信息管理系统 专业: 计算机科学与技术 班级: 计算机XX班 学号: 311009033232 姓名: ***** 日期 ...

  5. c语言课程图书信息管理系统,c语言课程设图书信息管理系统.doc

    c语言课程设图书信息管理系统 课程设计报告 课程:高级语言程序设计 学号: 1010431059 姓名: 胡维维 班级: 嵌入式一班 教师: 王群芳 时间: 2011年6月 计算机科学与技术系 设计名 ...

  6. c语言用链表写管理系统程序,c语言课程设计职工信息管理系统单链表实现程序源代码-20210401015126.docx-原创力文档...

    文档编制序号:[KKIDT-LLE0828-LLETD298-POI08] 文档编制序号:[KKIDT-LLE0828-LLETD298-POI08] C语言课程设计职工信息管理系统单链表实现程序源代 ...

  7. c语言课程设计宠物店,c语言课程设计-宠物店信息管理系统.doc

    c语言课程设计-宠物店信息管理系统 合肥学院 计算机科学与技术系 课程设计报告 2012-2013学年第二学期 课程面向过程综合设计课程设计名称宠物(小动物)店信息管理系统 学生姓名宋俊 学号 专业班 ...

  8. 《C语言》课程设计——火车票信息管理系统

    <C语言>课程设计--火车票信息管理系统 一.课题功能描述 二.基本原理 三.程序代码 一.课题功能描述 本课题要求设计一个火车票信息管理系统,主要包括火车时刻信息的录入.火车票查询.统计 ...

  9. C语言 课程设计——职工信息管理系统

    C语言 课程设计--职工信息管理系统 提示:该课程设计是本人第一次制作,有诸多不足之处,希望王对你有些许帮助!!! 文章目录 C语言 课程设计--职工信息管理系统 前言 一.首先定义一个结构体数组 二 ...

最新文章

  1. ShuffleNetV2 centernet
  2. 手写汉字笔迹识别模型汇总
  3. Java实现在线预览功能
  4. Laravel3 学习笔记
  5. flask运行多个服务器,与Flask服务器同时运行while循环
  6. U-GAT-IT 论文阅读
  7. 二维声波方程的有限差分法数值模拟
  8. 使用 Gradle 实现一套代码开发多个应用
  9. 读完了csapp(中文名:深入理解计算机系统)
  10. Ubuntu[16.04/18.04/20.04] arm 下修改本地源 sources.list 为国内镜像
  11. STL各容器的实现,时间复杂度,适用情况分析
  12. 那些花儿,从零构建Vue工程(webpack4 Eslint git hooks...)
  13. 朴灵:云计算的开发者视界中,OpenAPI 是绝对主角 | 凌云时刻
  14. html实验原理及目的,网页设计实验报告_图文
  15. 微信扫二维码跳转网页链接如何制作
  16. VMware虚拟机快速复制多个Linux系统
  17. 【深度学习】详细的神经网络架构图
  18. sql入门(3)------SQLServer3
  19. H264码流打包分析.整理
  20. EAS提示对不起当前对象正在被其他操作锁定问题处理

热门文章

  1. 二次指数平滑法 php,二次指数平滑法摘抄_二次指数平滑法算例
  2. 手语操《听我说,谢谢你》致敬“逆行者”
  3. NKOI 1011 锁妖塔
  4. wifi插座产品开发创业经验
  5. Embrace Spring With Pictures of Japan's Cherry Blossoms
  6. 维也纳酒店V5.0再创行业经典,国庆期间斩获佳绩
  7. 网络新闻媒体发稿流程,应该注意哪些?
  8. 很多人都做错了,做自媒体视频之前,你不应该先考虑做什么内容
  9. android apk u盘升级_AndroidAPP更新升级完整实现Demo
  10. 网约技师APP详细设计说明书