如果觉得对你有帮助,能否点个赞或关个注,以示鼓励笔者呢?!博客目录 | 先点这里


偶然翻到了自己大一时候写的一些代码,代码冗余,但还是想保存下来,以作纪念。

文章目录

  • 1.运行效果
  • 2.运行环境
  • 3.完整代码

1.运行效果


2.运行环境

源码(Dev5.4.0版本下可直接(.cpp文件)运行 gcc 4.7.2)

注意:由于部分代码为C11标准,后缀名应改为cpp运行

编译器下载链接:https://pan.baidu.com/s/1Hywq6hxzxMzX1-22ig2HdA
提取码:kd65
下载后解压即可使用

3.完整代码

#include<bits/stdc++.h>
#include<windows.h>
using namespace std;typedef struct book
{char name[50];//书名int  ISBN;//书号float price;//单价int num;//数量char outline[300];//书的简介struct book* next;
}Book,*pBook;/*全局变量区域*/
pBook Book_Head;//图书列表的表头
char UI[15][140]={{"******************欢迎来到图书管理系统******************"},{"****************按下以下按键即可呼出选择****************"},{"********************1.图书信息录入**********************"},{"********************2.添加图书**************************"},{"********************3.删除图书**************************"},{"********************4.查找图书**************************"},{"********************5.保存图书修改**********************"},{"********************6.显示所有图书**********************"},{"********************7.还原图书系统**********************"},{"********************0.退出******************************"},
{"————————————————————————————————————————————————————————————————"}
};
//加载动画
char cartoon[20][150] = {{"                                                                    /~/~/                                      "},{"                                                                   /~/~/                                       "},{"                                             Microsotf@             ~ ~     __ XP                              "},{"                                             \\  /\\  / -  _   _|  _  _   _  /_                                "},{"                                              \\/  \\/  | | | |_| |_| \\/\\/  __/                              "},{"                                                                                                               "},{"                                                    _____________________                                      "},{"                                                   │                    │                                      "},{"                                                   └────────────────────┘                                      "},{"                                                                                                               "},{"                                                                                                               "},{"                                                                                                               "},{"                                                                                                               "},{"                                                                                                               "},{"                                                                                                               "},{"                  Copyright ΘMicrosoft Corporation                                            Microsoft*       "},
};/*函数声明*/
void creat_book();//图书信息录入
void show_book();//显示图书列表,图书浏览
void add_book();//添加图书
void del_book();//删除图书
void save_book();//保存修改信息
void find_book();//按书号查询
void restore_system();//还原图书系统
int len_book();//返回当前系统中图书的数量
/*菜单相关函数*/
void top_menu();//顶部菜单显示
void choice_menu();//选择菜单
void load_cartoon();//加载动画
/*操作光标位置相关函数,方便显示*/
void gotoxy(int ,int);
void go();void go()
{printf("%*s",68,"");
}void gotoxy(int x, int y) //坐标函数
{HANDLE handle = GetStdHandle(STD_OUTPUT_HANDLE);COORD pos;pos.X = x;pos.Y = y;SetConsoleCursorPosition(handle, pos);
}void creat_book()//图书信息录入
{int i=0;FILE *fp;//以只读的方式打开文件fp=fopen("data.txt","r");if(fp==NULL){printf("\t文件打开失败!\n");exit(-1);}Book_Head=(pBook)malloc(sizeof(Book));pBook pTail=Book_Head;pTail->next=NULL;for(i=0;i<12;i++)//初始化为12本书{pBook pNew=(pBook)malloc(sizeof(Book));//格式化读取fscanf(fp,"%s%d%f%d%s\n",pNew->name,&pNew->ISBN,&pNew->price,&pNew->num,pNew->outline);//插入链表pTail->next=pNew;pNew->next=NULL;pTail=pNew;}//关闭文件fclose(fp);
}void show_book()//显示图书列表
{pBook p=Book_Head->next;int i=1;printf("\t****************************************************************************图书列表******************************************************************************\n");printf("\t序号\t\t图书名称\t\t图书号\t\t单价\t\t图书数量\t\t\t\t\t图书简介\n");while(p!=NULL){printf("\t%-4d\t\t%-20s\t %-3d\t\t%5.2f\t\t%5d\t\t%-90s\n",i++,p->name,p->ISBN,p->price,p->num,p->outline);p=p->next;}
}void add_book()//添加图书
{int i=0,n;pBook p=Book_Head;while(p->next!=NULL)p=p->next;go();printf("请输入您要添加的图书数:");scanf("%d",&n);for(i=0;i<n;i++){pBook pNew=(pBook)malloc(sizeof(Book));go();printf("请输入添加的第%d本图书的名字:",i+1);scanf("%s",pNew->name);go();printf("请输入添加的第%d本图书的图书号:",i+1);scanf("%d",&pNew->ISBN);go();printf("请输入添加的第%d本图书的图书单价:",i+1);scanf("%f",&pNew->price);go();printf("请输入添加的第%d本图书的图书数量:",i+1);scanf("%d",&pNew->num);go();printf("请输入添加的第%d本图书的图书简介:",i+1);scanf("%s",pNew->outline);p->next=pNew;pNew->next=NULL;p=pNew;}
}void del_book()//删除图书
{int i=0,n;pBook p=Book_Head;pBook m;show_book();go();printf("请输入要删除的图书序号:");scanf("%d",&n);while(p!=NULL&&i<n-1){p=p->next;i++;if(i>len_book()){go();printf("输入错误!要删除的图书不存在!\n");break;}}m=p->next;p->next=p->next->next;free(m);//防止内存泄漏
}int len_book()//返回当图书系统中图书数量
{int len=0;pBook p=Book_Head->next;while(p!=NULL){p=p->next;len++;}return len;
}void save_book()//保存修改信息
{pBook p=Book_Head->next;FILE *fp;fp=fopen("data.txt","w");//以写入方式打开文件,更新文件信息if(fp==NULL){printf("\t文件打开失败!\n");exit(-1);}while(p!=NULL){fprintf(fp,"%-15s %-5d %-5.2f %-5d %s\n",p->name,p->ISBN,p->price,p->num,p->outline);p=p->next;}fclose(fp);//关闭文件go();printf("文件保存成功!\n");
}void find_book()//按书号查询
{int ISBN,flag=0,i=0;pBook p=Book_Head->next;go();printf("请输入要查找的图书的书号:");scanf("%d",&ISBN);while(p!=NULL){if(p->ISBN==ISBN){flag=1;break;}if(i>len_book())break;i++;p=p->next;}if(flag){printf("\t\t图书名称\t\t图书号\t\t单价\t\t图书数量\t\t\t\t\t图书简介\n");printf("\t\t%-20s\t %-3d\t\t%5.2f\t\t%5d\t\t%-90s\n",p->name,p->ISBN,p->price,p->num,p->outline);}else{go();printf("未能查询到该图书,请检查输入是否有误!\n");}}void restore_system()//还原图书系统
{FILE *fp;int num,i;//初始化为12本书,可添加char name[13][25]={{"三体"},{"龙族"},{"雪中悍刀行"},{"剑来"},{"天之炽"},{"流浪地球"},{"活着"},{"百年孤独"},{"明朝那些事"},{"择天记"},{"庆余年"},{"将夜"},};int isbn[13]={111,112,113,114,115,116,117,118,119,120,121,122};//书号float fees[13]={30.0,25.0,34.0,29.0,30.0,43.0,32.0,24.0,22.0,21.0,31.0,33.0};//单价char outline[13][300]={  //简介{"对人性绝望的天文学家叶文洁向三体人暴露了地球的坐标,彻底改变了人类的命运。"},//三体{"路明非同学坐上去往芝加哥的CC1000次列车,踏上了与龙族争锋的征程"},//龙族{"西楚景河之战:十二万大戟士对阵北凉铁骑,全军覆没,死战不屈。"},//雪中悍刀行{"我陈平安,唯有一剑,可搬山,倒海,降妖,镇魔,敕神,摘星,断江,摧城,开天!"},//剑来{"这是诸天燃烧之日,那红色的龙在男孩心中咆哮,它说,当惩罚的,我从不宽恕!"},//天之炽{"无数的人前仆后继,奋不顾身,只为延续百代子孙生存的希望。"},//流浪地球{"最后,福贵说馒头赶上好时候了,将来这日子会越来越好。"},//活着{"她把自己终日关在房中缝制殓衣,缝了拆,拆了缝,直至生命的最后一刻。"},//百年孤独{"在读史的过程中瞻仰先贤们的风采,领悟先贤们的道理。"},//明朝那些事{"那少年长的其实不是很高,但比她高。所以当天塌的时候,他替自己挡着了。"},//择天记{"念君如三日,昨日今日明日。"},//庆余年{"我本心无樊笼,樊笼如何拦我?我道心光明,光明如何拦我?"}//将夜};fp=fopen("data.txt","w");if(fp==NULL){printf("\t文件打开失败!\n");exit(-1);}for(i=0;i<12;i++)//初始化为12本书{num=rand()%8+5;//书的数量随机初始化fprintf(fp,"%-15s %-5d %-5.2f %-5d %s\n",name[i],isbn[i],fees[i],num,outline[i]);}//关闭文件fclose(fp);creat_book();//重新导入列表
}void top_menu()
{int i=0;for(i=0;i<15;i++){if(i==10)printf("%*s",36,"");elsego();printf("%s\n",UI[i]);}
}void choice_menu()
{int x=1;char choice;while(x){system("cls");top_menu();go();printf("请输入您要选择的操作对应的序号:");choice=getchar();switch(choice){case '1':creat_book();go();printf("录入成功!\n");go();system("pause");break;case '2':add_book();go();printf("添加成功!\n");go();system("pause");break;case '3':del_book();go();printf("删除成功!\n");go();system("pause");break;case '4':find_book();go();system("pause");break;case '5':save_book();go();printf("保存成功!\n");go();system("pause");break;case '6':show_book();go();system("pause");break;case '7':restore_system();go();printf("系统还原成功!\n");go();system("pause");break;case '0':x=0;break;}}
}void load_cartoon()
{//动态加载页面int i,l, j;gotoxy(25, 15);for (i = 0; i <= 16; i++){cout<<cartoon[i];gotoxy(25,16+i);Sleep(100);}for (l = 0; l < 3; l++){ //动态加载开机页面for (i = 53; i <= 71; i = i + 2){for (j = i - 4; j <= i; j = j + 2){if (j >= 53 && j <= 70){gotoxy(j+25, 22);printf("[]");}Sleep(100);}for (j = i - 4; j <= i; j = j + 2){if (j >= 53 && j <= 70){gotoxy(j+25, 22);printf("  ");}}}}
}int main()
{srand((unsigned)time(NULL));//用时间做随机数种子system("mode con cols=200 lines=100");//设置窗口大小,方便显示load_cartoon();system("color 70");//设置颜色restore_system();//为防止用户误操作,先重制系统,初始化状态choice_menu();return 0;
}

【C语言小游戏】图书管理系统相关推荐

  1. c语言课程设计图书管理系统

    数据结构c语言课程设计 图书管理系统 我做的是百度文库的第28题,目前没有报错,正常运行,但是还有一点小bug.代码很多地方写的不是很好,请多多包涵. 账号1,密码1,为管理员账号:其他账号2,3,4 ...

  2. c语言小游戏代码矿井逃生_如何选择编程语言和逃生教程炼狱

    c语言小游戏代码矿井逃生 A few weeks ago, I posted about my experience attempting to learn JavaScript, C#, Pytho ...

  3. c语言min函数_C语言探索之旅 | 第一部分第十课:第一个C语言小游戏

    内容简介 前言 准备工作和建议 我的代码 改进方案 第一部分第十一课预告 1. 前言 上一课是 C语言探索之旅 | 第一部分第九课:循环语句 . 经过前面这么多课的努力,我们终于迎来了第一个比较正式的 ...

  4. C语言小游戏:文字冒险游戏

    这是一个用Dev新写的游戏:冒险4.0,可选角色,可买彩票,可抽奖... 资源我放在了C语言小游戏.文字冒险-cocos2D文档类资源-CSDN文库,适合初学者学习

  5. C语言小游戏-五子棋

    C语言小游戏-五子棋 全部代码如下: #include <easyx.h> #include <graphics.h> #include <conio.h> #in ...

  6. 学校图书管理系统基于c语言源代码,基于C语言的学校图书管理系统参考.doc

    基于C语言的学校图书管理系统参考 本科学生毕业论文(设计) 题目(中 文):基于C语言的学校图书管理系统(英 文):School Library Management System Based on ...

  7. C语言小游戏设计报告

    C语言小游戏设计报告 课程设计名称:贪吃蛇小游戏 专业班级:计科15-2 学号:150809229 姓名:XXX 一.设计目标 通过设计,培养学生对电脑的动手能力,使学生巩固<C语言程序设计&g ...

  8. C语言小游戏大全,C语言贪吃蛇小游戏(附源码)

    一.C语言小游戏大全,C语言贪吃蛇小游戏(附源码) 贪吃蛇小游戏源码和更多C语言课设项目小游戏源码免 费 下 载 链 接 如下: c语言项目课设小游戏源码资料压缩包.zip-C文档类资源-CSDN下载 ...

  9. C语言小游戏,数字炸弹,手动设置炸弹的值和回合数。

    C语言小游戏,数字炸弹,手动设置炸弹的值和回合数. 效果图: 代码部分: #include <stdio.h> void main() {int a,b;int d=35; //在这里手动 ...

  10. 管理c语言程序设计报告,c语言程序设计报告图书管理系统

    <c语言程序设计报告图书管理系统>由会员分享,可在线阅读,更多相关<c语言程序设计报告图书管理系统(11页珍藏版)>请在人人文库网上搜索. 1.中国地质大学本科生课程论文封面课 ...

最新文章

  1. 解决docker pull 速度慢问题
  2. 第八篇、盒子模型和距中的设置方法
  3. C++编程基础一 01-我的第一个项目
  4. 目标检测——Faster R_CNN使用smooth L1作为bbox的回归损失函数原因
  5. Shell脚本中的并发(2)
  6. linux编译安装的报错,linux编译安装时常见错误解决办法
  7. 如何双击就以管理员身份运行批处理
  8. DataMining with Sql 2005
  9. 解决FreeMind启动不成功,显示This application requires a Java Runtime Environment 1.5.0
  10. 冰河竟然被腾讯邀请去做技术分享了,这是要起飞的节奏吗?
  11. AI Arena:Paradigm领投的NFT AI竞技场
  12. 项目经验不丰富、技术不突出的程序员怎么打动面试官?
  13. Python循环结构——while
  14. 今日头条推荐算法详解(PDF下载)
  15. 基于VUE的后台管理系统
  16. element之el-scrollbar
  17. Android 选择图片、上传图片之ImagePicker
  18. 2020美国纽约大学计算机科学排名,纽约大学计算机科学与工程世界排名2020年最新排名第27(ARWU世界排名)...
  19. 出现“no_init_all“的解决办法
  20. Android使用ViewPager实现图片轮播和手势滑动

热门文章

  1. 写给需要同程序员打交道的计算机小白们之妹纸汉纸
  2. ssl- 套接字对象的TLS / SSL包装器
  3. Ansoft SIMPLORER 6.0 (多领域仿真软件)\
  4. 微信小程序微信支付安卓手机可以,苹果手机支付失败。
  5. led version 2.0 摇摇棒编程软件c 语言,C语言版老李电子创意的摇摇棒程序
  6. AMD双核玩游戏死机问题解决方案
  7. 自旋锁替代互斥锁使用场景
  8. 【IoT】如何使用软件加密(文件夹加密工具.exe),并破解工具
  9. 移动光猫调整桥接模式
  10. scrapy 异步存储mysql大量数据_scrapy爬取的数据异步存储至MySQL