巨大bug
//数据结构关于课程设计--------图书馆管理系统的设计
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <conio.h>
#define _OJ_ typedef struct Book
{
char title[30];
//ISBN编号书籍的标准编号
char ISBN[30]; char author[30]; //作者 char publisher[30]; //出版社 char pub_time[30]; //出版时间 char price[10]; //书的价格 int count; //书的数量 struct Book *next; } Book, *Linkbook; typedef struct Student
{ int amount; //学生已借书的数量 char stu_num[8]; //学生的学号 char name[20]; //学生的姓名 char card_num[8]; //借书证的编号 Linkbook stu_book[6]; //学生所借图书信息 struct Student *next;
} Stu, *Linkstu; //判断输入的字符是否正确
void
input_str(const char *str, char *str1, int number)
{
char tmp[200];
printf("%s", str);
do {
scanf("%s", tmp);
if(strlen(tmp) > number) {
printf("您输入的信息错误请重新输入:\n");
} } while(strlen(tmp) > number);
strcpy(str1, tmp);
} // 判断输入的整型数字是否正确
int
input_float(const char *str, char *str1, int number)
{
int i, len, flag;
char num[200];
printf("%s", str);
for ( ; ;) {
flag = 0;
scanf("%s", num);
len = strlen(num);
if(len > number) {
printf("\n您输入的信息错误请重新输入:");
continue;
} for (i = 0; i < len; i++) {
if((num[i] < '0' || num[i] > '9') && num[i] != '.') {
printf("\n您输入的不是浮点数字请重新输入:");
flag = 1; break;
}
} if(flag == 1) continue;
else
break;
}
strcpy(str1, num); return 1;
} //------------------------------------- 判断输入的浮点型是否正确
int
input_int(const char *str, int number)
{
int i, len, flag;
char num[200];
printf("%s", str);
for ( ; ;) {
flag = 0;
scanf("%s", num);
len = strlen(num);
if(len > number) {
printf("\n您输入的数字超限请重新输入:");
continue;
} for (i = 0; i < len; i++) {
if((num[i] < '0' || num[i] > '9')) {
printf("\n您输入的非数字或不是整型数字请重新输入:");
flag = 1; break;
}
} if(flag == 1) continue;
else
break;
}
int n = atoi(num);
return n;
} //-----------------------------------------------判断输入的ISBN是否正确
void
input_ISBN(const char *str, char *str1) //International Standard Book Number
{
int i, flag;
char tmp[200]; //x-xxx-xxxxx-x
printf("%s", str);
for(;;) {
flag = 0;
scanf("%s", tmp);
if(strlen(tmp) != 13 || tmp[1] != '-' || tmp[5] != '-' || tmp[11] != '-') {
printf("您输入的格式错误请重新输入格式为:x-xxx-xxxxx-x\n");
continue;
} for( i = 0; i < strlen(tmp); i++) {
if((tmp[i] < '0' || tmp[i] > '9') && tmp[i] != '-'){
printf("您输入的含非数字请重新输入格式为:x-xxx-xxxxx-x");
flag = 1; continue;
}
}
if(flag == 1) continue;
else
break;
} strcpy(str1, tmp);
} //-----------------------------------------------------------------------------
//书籍收编入库
Linkbook
Creat_book(void)
{
char ch;
Linkbook L, head, P;
head = (Linkbook) malloc (sizeof(Book));
if(!head) {
printf("申请空间失败!!!\n"); exit(0);
}
L = head;
printf("创建图书:\n"); for (;;) {
P = (Linkbook) malloc (sizeof(Book)); P->next = NULL;
input_str("请输图书名称:", P->title, 30); input_str("请输入图书的作者:", P->author, 30);
input_str("请输入图书的出版社:", P->publisher, 30);
input_str("请输入图书的出版时间:", P->pub_time, 30);
input_float("请输入图书的价格:", P->price, 10);
P->count = input_int("请输入图书的数量:",5); input_ISBN("请输入图书的ISBN格式为:x-xxx-xxxxx-x:\n", P->ISBN);
L->next = P; L = P; printf("请按任意键继续添加图书 或者输入q返回:");
ch = getche();
if (ch == 'q' || ch == 'Q')
break;
}
printf("\n");
return head;
} void
print_book(Linkbook head)
{
Linkbook L;
L = head->next;
printf("打印所有图书信息:");
while (L != NULL) {
printf("图书名称:%s\n", L->title);
printf("图书作者:%s\n", L->author);
printf("图书出版社:%s\n", L->publisher);
printf("图书出版时间:%s\n", L->pub_time);
printf("图书价格:%s\n", L->price);
printf("图书的ISBN:%s\n", L->ISBN);
printf("图书数量:%d\n\n\n", L->count);
L = L->next;
}
printf("打印完成!!\n");
} //-------------------------------------------------------------- int main(int argc, char const *argv[]) {
#ifndef _OJ_ //ONLINE JUDGE
freopen("input.txt", "r", stdin);
//freopen("output.txt", "w", stdout);
#endif
Linkbook Book = NULL;
Linkstu Stu = NULL;
Book = Creat_book();
printf("booknext%s", Book->next->title); print_book(Book); return 0;
}
巨大bug的更多相关文章
- Tomcat一个BUG造成CLOSE_WAIT
之前应该提过,我们线上架构整体重新架设了,应用层面使用的是Spring Boot,前段日子因为一些第三方的原因,略有些匆忙的提前开始线上的内测了.然后运维发现了个问题,服务器的HTTPS端口有大量的C ...
- a标签点击跳转失效--IE6、7的奇葩bug
一般运用a标签包含img去实现点击图片跳转的功能,这是前端经常要用到的东西. 今天遇到个神奇的bug:如果在img上再包裹一层div,而且div设置了width和height,则图片区域点击时,无任何 ...
- 关于 Chrome 浏览器中 onresize 事件的 Bug
我在写插件时用到了 onresize 事件,在反复地测试后发现该事件在 Chrome 及 Opera(内核基本与 Chrome 相同,以下统称 Chrome)浏览器打开时就会执行,这种情况也许不能算作 ...
- Chrome出了个小bug:论如何在Chrome下劫持原生只读对象
Chrome出了个小bug:论如何在Chrome下劫持原生只读对象 概述 众所周知,虽然JavaScript是个很灵活的语言,浏览器里很多原生的方法都可以随意覆盖或者重写,比如alert.但是为了保证 ...
- 一个粗心的Bug,JSON格式不规范导致AJAX错误
一.事件回放 今天工作时碰到了一个奇怪的问题,这个问题很早很早以前也碰到过,不过没想到过这么久了竟然又栽在这里. 当时正在联调一个项目,由于后端没有提供数据接口,于是我直接本地建立了一个 json ...
- 了不起的 nodejs-TwitterWeb 案例 bug 解决
了不起的nodejs算是一本不错的入门书,不过书中个别案例存在bug,按照书中源码无法做出和书中相同效果,原本兴奋的心情掺杂着些许失落. 现在我们看一下第七章HTTP,一个Twitter Web客户端 ...
- 应该是Angular2的一个bug?
为了应对未来的趋势,及时赶上下一趟互联网技术,我最近也在通过具体项目研究angular2,首先必须要吐槽的是,学习angular2的成本本身不高,但是一堆的工具.配置实在让人 很是焦灼,就像asp.n ...
- 记录一次bug解决过程:数据迁移
一 总结 不擅长语言表达,勤于沟通,多锻炼 调试MyBatis中SQL语法:foreach 问题:缺少关键字VALUES.很遗憾:它的错误报的让人找不着北. 二 BUG描述:MyBatis中批量插入数 ...
- 关于MJRefresh的下拉加载数据bug
当没有更多数据的时候显示NoMoreData 我的理解是先结束刷新再显示没有更多 今天之前一直没发现有问题 贴之前的代码 [self.collectionView reloadData]; [self ...
- [异常特工]android常见bug跟踪
前言 对app的线上bug的收集(友盟.云捕等)有时会得到这样的异常堆栈信息:没有一行代码是有关自身程序代码的.这使得对bug的解决无从下手,根据经验,内存不足OOM,Dialog关闭,ListVie ...
随机推荐
- 【网络收集】order by 自定义排序
使用order by排序,有时候不是根据字符或数字顺序,而是根据实际要求排序. 例如有客户A,B,C,我希望排序结果是B,C,A,那么就要通过自定义的规则排序. 第一种方法,可以构造一张映射表,将客户 ...
- JavaScript之点击文字放大
function box(){ document.getElementById("click").style.WebkitTransform="scale(1.2)&qu ...
- MVC System.Web.Mvc.ModelClientValidationRule”同时存在
错误 2280 类型“System.Web.Mvc.ModelClientValidationRule”同时存在于“C:\Program Files\Microsoft ASP.NET\ASP.NET ...
- 2015英特尔® 实感™ (Intel® RealSense™) 动手开发实验课
2015年英特尔® 全球实感技术动手实验课路演来到中国, 这次在中国将有北京和广州两站,包括一天的动手实验室活动 - 面向对感知计算.3D 开发和虚拟现实兴趣浓厚的开发人员.英特尔专家将会指导您如何借 ...
- 四步完成ajax的使用
什么是ajax? ajax(异步javascript xml) 能够刷新局部网页数据而不是重新加载整个网页. 如何使用ajax? 第一步,创建xmlhttprequest对象,var xmlhttp ...
- php读取目录下的文件
工作需要写了一个读取指定目录下的文件,并显示列表,点击之后读取文件中的内容 高手拍砖,目录可以自由指定,我这里直接写的是获取当前文件目录下面的所有文件 <?php /** * 读取指定目录下面的 ...
- php数组编码转换函数的示例
场景说明/问题描述: Ajax提交页面编码为gb2312,数据库编码为utf8,在不更改页面及数据库编码的情况下插入数据. 自定义函数: 代码如下 复制代码 function array_iconv ...
- vSphere存储
write by xiaoyang 配置iSCSI外部存储 1. 选择配置——硬件——存储 2. 在存储适配器里选择添加软件iSCSI适配器 3. 确认添加 4. ...
- iOS高仿城觅应用客户端项目(开发思路和代码)
这是一款非常完整的一个ios项目,基本实现了我们常用的一些功能了,而且界面设计个人感觉还是挺不错的,是一个不错的学习ios项目,喜欢的朋友可以参考一下吧. 项目展示,由于没有数据,所以所有的cell显 ...
- .net framework缓存遍历
背景: 公司的老框架里的登录信息用的MemoryCache保存的,为了实现单用户登录(即一个账号不能同事登录),需要在登录前对已经登录的信息做遍历. 大致思路如下: 本方法可用于清除所有的缓存. 1. ...