巨大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 ...
随机推荐
- 数据字典系统,要的进来下载吧,MVC+Easyui写的
数据字典系统,要的进来下载吧,以后做开发不用单独去生成一个数据字典了,直接打开此系统就OK啦 使用VS2012写的 语法是SQL 2005以上版本,包含2005的哦,2000的不适用此系统 字数不够啦 ...
- HTML的FORM的元素
form是是HTML的一个重要元素. form的常用控件有 单行文本框<input type="text" value="text" name=" ...
- table表格实现点击修改 PHP同步数据库 排序
最近几天在做一个网站,牵扯到一个导航管理的功能!领导说不用作,可是由于自己自作主张,搞了1天的功能.领导说这个导航管理就是不用做!容易牵扯出好多问题来!估摸是客户小的原因! 没办法就把我1天的劳动荒废 ...
- UI4_注册登录界面
// // ViewController.h // UI4_注册登录界面 // // Created by zhangxueming on 15/7/3. // Copyright (c) 2015年 ...
- J2EE5(Servlet2.5)对EL表达式的支持
JAVA EE5默认 支持EL表达式. 办法一:在每个jsp文件的最上方加入以下代码: <%@ page language="java" import="java. ...
- sql简易的MRP资源分析
写了个简易的MRP根据传进来的数据,进行上下级的判断,父表,子表 构思: 3张变量表,第一张用来存传进来的成品,这边对表做了循环就是成品是一样一样进去的,取成品表的第一行,将数据做父表和子表关联,取出 ...
- win8.1环境下硬盘安装centos6.5双系统
作为一名软件工程师或是相关行业的从业人员,经常会用到linux系统,这里为大家介绍的安装linux的方案是在原有win环境下安装linux双系统,两个系统选择分别为win8.1 和centos6.5. ...
- javascript "\" 在字符串里的是转义的意思
"\n" 在字符串里是换行的意思 alert("dfdsad\ndfsdf"); //有换行 alert("abc\de"); // ...
- 转:JAVA中this用法小结
转:http://blog.sina.com.cn/s/blog_6a6badc90100t8hm.html#SinaEditor_Temp_FontName Java关键字this只能用于方法方法体 ...
- node-mongo-native1.3.19连接mongo的最优方法
最近需要在node下连接mongo,尝试了很多方法,本文简要总结一下 选择Driver 首先,基本上有4个常见的driver供选择 1.官方的是node-mongo-native 2.基于node-m ...