//图书信息包括:书号、书名、作者、出版社、价格等
//基本功能:图书信息的添加、修改、删除。 #include<stdio.h>
#include<string.h>
#include<stdlib.h>
#include<windows.h>
#define M 100
//
创建图书信息结构体
struct Books{//声明结构体类型 char bookName[100];//书名 int num;//书号 char writter[100];//作者 char press[100];//出版社 float price;//价格 char introduction[100];//简介
}book[M];//定义结构体数组
int N = 0;//总图书数量
struct Books temp;
//-----图书信息的添加板块-----
void Input(){int n,m;system("cls");printf("准备录入的书的本数:");scanf("%d",&n);m = n;for(int i = 0;i < n;i ++){system("cls");printf("还有%d本书未被录入,请输入相关信息\n(如若没有相关信息请输入-->无)\n",m);printf("-----------------------------------\n");printf("| 书的编号:");scanf("%d",&temp.num);printf("| 书名:");scanf("%s",temp.bookName);printf("| 书的作者:");scanf("%s",temp.writter);printf("| 出版社:");scanf("%s",temp.press);printf("| 书的价格/¥:");scanf("%f",&temp.price);printf("| 简介(100字内):");scanf("%s",temp.introduction);printf("-----------------------------------\n"); m --; book[N ++] = temp;} printf("已成功录入%d本书,3秒后跳转回功能页;",n); Sleep(3000);
}
//----图书信息的修改板块------
int Revise_part(int j){int t1,o,i; char t2[100];//把准备修改的字符存储在 t2 里面,准备修改的数字存储在 t1 里面 printf("---------------\n");printf("|| 1:修改书的编号||\n");printf("|| 2:修改书名    ||\n");printf("|| 3:修改作者    ||\n");printf("|| 4:修改价格    ||\n");printf("|| 5:修改出版社  ||\n");printf("|| 6:修改简介    ||\n");printf("----------------\n"); printf("请选择你要修改的信息:");scanf("%d",&o);if(o >= 1 && o <= 6){switch(o){case 1: printf("输出要修改的编号:");scanf("%d",&t1);book[j].num = t1; break;case 2: printf("输出要修改的书名:");scanf("%s",t2);for(i = 0;i < strlen(t2);i ++)book[j].bookName[i] = t2[j];break;case 3: printf("输出要修改的作者:");scanf("%s",t2);for(i = 0;i < strlen(t2);i ++)book[j].writter[i] = t2[j];break;case 4: printf("输出要修改的价格:");scanf("%d",&t1);book[j].price = t1; break;case 5: printf("输出要修改的出版社:");scanf("%s",t2);for(i = 0;i < strlen(t2);i ++)book[j].press[i] = t2[j];break;case 6: printf("输出要修改的简介:");scanf("%s",t2);for(i = 0;i < strlen(t2);i ++)book[j].introduction[i] = t2[j];break;}}
}
void Revise(){int nums;int orders;char names[20];int i,j,key; lable_2:system("cls");printf("------------------------------------------------------\n");printf("|| 1、根据图书编号查询修改  2、根据图书书名查询修改 ||\n");printf("------------------------------------------------------\n");printf("请输入查询修改方式:");scanf("%d",&orders);j = -1;if(orders == 1){printf("请输入书的编号:"); scanf("%d",&nums); for(i = 0;i < N;i ++){if(book[i].num == nums){j = i;}}}else if(orders == 2){printf("请输入书名:");scanf("%s",names);for(int i = 0;i < N;i ++){if(strcmp(names,book[i].bookName) == 0){j = i;}}}if(j == -1){printf("本书库暂时还没有这本书>_<!!!\n");printf("\n是否继续修改???【继续请按1//若不继续请按2跳转功能页】:");scanf("%d",&key);if(key == 1){goto lable_2;}      }else if(j != -1){Revise_part(j);printf("\n是否继续修改???【继续请按1//若不继续请按2跳转功能页】:"); scanf("%d",&key);if(key == 1){goto lable_2;}}
}
//图书信息的查询板块
void Query(){int orders;int nums;int i,j = -1,t = 0,key;char names[100]; system("cls");printf("请选择查询方式\n");printf("1:编号查询    2:书名查询\n");printf("\n\n请输入查询选项:");scanf("%d",&orders);if(orders == 1){printf("请输入图书编号:");scanf("%d",&nums);for(i = 0;i < N;i ++){if(book[i].num == nums){j = i;t ++;}}   }else if(orders == 2){printf("请输入图书的书名:");scanf("%s",names);for(i = 0;i < N;i ++){if(strcmp(book[i].bookName,names) == 0){j = i;t ++;}}}if(j == -1 && t == 0){printf("本书库暂时还没有这本书>_<!!!\n");printf("按2键后回车返回功能页:"); scanf("%d",&key); }else if(j != -1 && t != 0){system("cls");printf("\n---------------------------------------------------------------\n");printf("编号:%d\n书名:%s\n作者:%s\n出版社:%s\n价格:%.2f\n",book[j].num,book[j].bookName,book[j].writter,book[j].press,book[j].price);printf("简介:");printf("%s",book[j].introduction);printf("\n------------------------------------------------------------------\n"); printf("按2键后回车返回功能页:"); scanf("%d",&key); }
}
//-------图书信息删除板块---------
int Delete_part(int j){int o,i; printf("-----------------------\n");printf("|| 1:删除书的编号    ||\n");printf("|| 2:删除书名        ||\n");printf("|| 3:删除作者        ||\n");printf("|| 4:删除价格        ||\n");printf("|| 5:删除出版社      ||\n");printf("|| 6:删除简介        ||\n");printf("|| 7:删除图书全部信息||\n"); printf("-----------------------\n"); printf("请选择你要修改的信息:");scanf("%d",&o);if(o >= 1 && o <= 7){switch(o){case 1: book[j].num = 0; break;case 2: book[j].bookName[i] = '\0';break;case 3: book[j].writter[i] = '\0';break;case 4: book[j].price = 0; break;case 5:    book[j].press[i] = '\0';break;case 6: book[j].introduction[i] = '\0';break;case 7: N = N - 1;for(i = j;i < N;i ++){ book[i] = book[i + 1];
//                  book[i].num = book[i + 1].num;
//                  strcpy(book[i].bookName,book[i + 1].bookName);
//                  strcpy(book[i].introduction,book[i + 1].introduction);
//                  strcpy(book[i].press,book[i + 1].press);
//                  strcpy(book[i].writter,book[i + 1].writter);
//                  book[i].price = book[i + 1].price;}break;}}
}
void Delete(){int nums;int orders;char names[100];int i,j = -1,key;lable_4:system("cls");printf("------------------------------------------------------\n");printf("|| 1、根据图书编号查询删除  2、根据图书书名查询删除 ||\n");printf("------------------------------------------------------\n");printf("请输入查询删除方式:");scanf("%d",&orders);if(orders == 1){printf("请输入你想要删除的图书编号:");scanf("%d",&nums);for(i = 0;i < N;i ++){if(book[i].num == nums){j = i;break; }}}else if(orders == 2){printf("请输入你想要删除的图书书名:");scanf("%s",names);for(i = 0;i < N;i ++){if(strcmp(book[i].bookName,names) == 0){j = i;break;}} }if(j == -1){printf("本书库暂时没有这本书>_<!!!\n");printf("\n是否继续查询???【继续请按1//若不继续请按2跳转功能页】:");scanf("%d",&key);if(key == 1){goto lable_4;} }else if(j != -1){Delete_part(j);printf("\n是否继续修改???【继续请按1//若不继续请按2跳转功能页】:"); scanf("%d",&key);if(key == 1){goto lable_4;}}
} //-------退出图书管理系统--------
void Finish(){exit(0);//正常运行并退出程序} int main(){int order;//定义存储序号的整型变量 printf("\n       欢迎来到图书管理系统!!!\n");printf("\n  本系统由 陈文静、王鸿、黄春兰 小组制作\n"); printf("\n由于本系统内无数据请先执行图书信息的添加功能\n");printf("\n\n-------------3秒跳转功能页--------------------");Sleep(3000); //让函数执行挂起3秒时间 while(1){system("cls");//调用系统命令 cls 完成清屏操作 printf("功能如下:\n");printf("************| 1、图书信息的添加 |**************\n");printf("************| 2、图书信息的修改 |**************\n");printf("************| 3、图书信息的删除 |**************\n");printf("************| 4、图书信息的查询 |**************\n");printf("************| 5、退出本管理系统 |**************\n"); lable_1:printf("\n\n请输入功能序号:");scanf("%d",&order); if(order >= 1 && order <= 5){switch(order){case 1: Input();//添加        break;case 2: Revise();//修改 break;case 3: Delete();//删除 break;case 4: Query();//查询 break;case 5: Finish();//退出 break;}} else{printf("\n输入错误请再次输入");goto lable_1;//跳转 }}
}

我第一次写这么长的C代码,是期末的C程序设计。其实早在好几天前就已经完成准备发出来的,结果就在最后一次调试的时候发现了一个小问题:删除功能里的全部删除出现了图书编码混乱的情况。我当时找了一早上,改来改去页没能解决。于是心烦就放在那没管了。就在刚刚帮同学做完她们组的程序设计时,又看了看我的,突然想出了问题出现在那了【哭】。300多行的代码就搞了许久原来就是在删除全部那个功能里少加了一个N = N - 1,之前逻辑想来想去都觉得没问题,搞了半天出现在这个地方。【找出错误还蛮兴奋的】

(C语言)图书管理系统(程序设计)相关推荐

  1. c语言学生综合测评系统_c语言图书管理系统_c语言学生综合测评系统_c语言个人账本管理系统...

    c语言销售管理系统设计 c语言设计管理系统,c图书管理系统设计,学生管理系统c语言,职工管理系统c语言,c语言图书管理系统,c语言成绩管理系统,c语言管理系统,c语言银行管理系统,c语言工资管理系统, ...

  2. c语言课程设计北京电子工业出版社,c语言图书管理系统课程设计报告

    c语言图书管理系统课程设计报告 五.小节: 在这一个星期的实践中,通过编写这个图书管理系统,我体会到了c语言学习的实用性.将理论和实践结合在一起,用先进的计算机工具方便人们的生活.C语言程序的编写首先 ...

  3. C语言图书管理系统[2023-01-06]

    C语言图书管理系统[2023-01-06] 模仿图书馆的借书还书操作,用C语言实现图书管理系统.系统必须先登录方可进入系统. 该系统分为读者和图书管理员2类用户,若是读者登录成功后可显示该读者的借阅信 ...

  4. c语言图书馆管理程的运行截图,c语言图书管理系统

    广告 Apple iPad,AirPods Pro,Bose耳机,机械键盘,健身环等着您 对于seo工程师,更多使用永久重定向. 如果您想成为永久重定向,则只需将此代码添加到redirect()中. ...

  5. c语言-图书管理系统(顺序表)

    c语言-图书管理系统--顺序表实现增删改查 采用外部控制台运行,若直接控制台输出,则清屏命令无效 每种图书信息包括ISBN.书名.价格 具有以下几种功能 0.初始化图书表,  1.录入图书信息 ,2. ...

  6. c语言课程设计图书管理系统报告,C语言图书管理系统课程设计报告[1]

    C语言图书管理系统课程设计报告[1] 第三章 图书管理系统的设计与实现3.1 系统的需求分析图书登记管理系统作为一个应用软件将为学校的老师和学生提供一个对学校图书馆深入了解并借阅.还书的平台.根据系统 ...

  7. c语言图书管理系统用什么软件,编写c语言的软件 纯C语言编写图书管理系统.doc...

    编写c语言的软件 纯C语言编写图书管理系统 编写c语言的软件 纯C语言编写图书管理系统WORD文档bbszp 导读:就爱阅读网友为您分享以下"纯C语言编写图书管理系统WORD文档bbszp& ...

  8. c语言银行卡管理系统程序设计报告,《c语言程序设计》课程设计报告-职工信息管理系统.doc...

    <c语言程序设计>课程设计报告-职工信息管理系统.doc 还剩 24页未读, 继续阅读 下载文档到电脑,马上远离加班熬夜! 亲,很抱歉,此页已超出免费预览范围啦! 如果喜欢就下载吧,价低环 ...

  9. c语言图书管理系统解析,基于C语言的图书管理系统的设计与实现解析.doc

    毕业论文 题目:基于C语言的图书管理系统的设计与实现 英文题目:Design and Implementation of Books Management System Based on C Lang ...

  10. 课程设计图书管理系统c语言,图书管理系统c语言课程设计c语言课程设计作业获得95分全院第一......

    > 下载中心  >   > 图书管理系统 c语言课程设计 english version 图书管理系统 c语言课程设计 所属分类: 开发工具:c/c++ 文件大小:2720kb 下载 ...

最新文章

  1. 读redux源码总结
  2. 开发日记-20190515 关键词 汇编语言(八) MVVM
  3. python编程 语言-python编程语言有什么用途
  4. Redis 集群规范
  5. Palindrome(插入字符变成回文字符串)
  6. JavaScript Onclick事件解释
  7. 单行 - JAVA 条件表达式
  8. 大型集团企业云管平台建设参考架构
  9. 自动化设计-框架介绍 TestSnap
  10. Spring Security的HTTP基本验证示例
  11. 每日一题/010/微积分/极限/换元/取指数
  12. 上海计算机一级excel试题及答案,2016年计算机一级excel试题及答案
  13. 外贸人寄样品时,怎么样让客户承担快递费用
  14. 让人苦笑不得的基带版本未知错误
  15. 高清渐变动态壁纸来了 手把手教你做动态壁纸
  16. 阿里数据港张北数据中心项目本月底运营
  17. vue实现仿阿里云官网的ace-view-fullColumn模块
  18. 计算机专业C语言复试常见问题(二)
  19. 【Redis】Linux安装Redis
  20. webIx之表单提交

热门文章

  1. RecycleView的 Scrapped or attached views may not be recycled错误原因研究
  2. Java程序员月薪20k的涨薪秘籍,没点绝活敢跳槽吗?
  3. php x63 157 162,浙江理工大学 我的编程之路 零基础学C/C++ 200题 标程/题解
  4. D3.jsV5入门教程
  5. 麦肯锡:释放智能网联汽车数据全生命周期价值​潜力
  6. 一直想写的关于tarjan算法的理解——向struct edge大佬低头
  7. 心血管疾病:评估驾驶适应性(英国DVLA)
  8. USB虚拟串口(CDC)极限速度测试
  9. PHP开发微信商家转账到零钱接口
  10. 通用验证码识别SDK免费开源