巨大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;
}
时间: 2024-10-12 04:35:21

巨大bug的相关文章

解决myeclipse中struts2 bug问题包的替换问题

因为struts2的bug问题,手工替换还是比较麻烦,但即便是最新的myeclipse2014也没有替换最新的struts2包,研究了一天,终于找到了解决办法.以下就解决方法与大家分享一下. 1.在perferences中找到 Myeclipse->Project Libraries,右边找到 struts2.1 Libraries,点击 Enable advanced configiguration,去掉以下文件前面的对勾,然后点击 Add custom Jars 2.在弹出的对话框中选择 A

关于工作中微信分享接口的bug

调用config 接口1的时候传入参数 debug: true 可以开启debug模式,页面会alert出错误信息.以下为常见错误及解决方法: invalid url domain当前页面所在域名与使用的corpid没有绑定(可在该企业号的应用可信域名中配置域名). invalid signature签名错误.建议按如下顺序检查: 确认签名算法正确,可用 http://mp.weixin.qq.com/debug/cgi-bin/sandbox?t=jsapisign 页面工具进行校验. 确认c

android 2.x上Dialog特定情况导致无法dismiss的bug

近期在做一个简单的对话框框架,作用不过做出一个显示效果在android 2.x到android 4.x上均类似的对话框. 思路比較简单,就是使用装饰模式包裹Dialog,暴露的接口调用时会自己主动完毕一些设置 可是遇到一个特别诡异的问题,在android 2.x上的Dialog对话框无法被dismiss,仅仅要弹出来界面就卡死,强行使用eclipse又一次run的话会导致android设备黑屏无响应,假设是模拟器,则直接崩溃,看到启动画面.并且这个还不是ANR错误. 后来通过删减代码找到了问题的

ThinkPHP3.2.3 foreach嵌套循环bug

有两个数组authA和authB authA如下 1 Array 2 ( 3 [0] => Array 4 ( 5 [auth_id] => 1 6 [auth_name] => 文章管理 7 [auth_pid] => 0 8 [auth_c] => 9 [auth_a] => 10 [auth_level] => 0 11 ) 12 13 [1] => Array 14 ( 15 [auth_id] => 4 16 [auth_name] =>

BUG YII2.0 cURL error 6: Could not resolve host:

BUG描述:登录直接显示 原因:服务器设置端口权限,或者DNS毛病 解决方案:只能去服务器端设置,配置端口 DNS: 修改dns 114.114.114.114 或者 8.8.8.8

SPARK大数据计算BUG处理:

大数据计算BUG处理: 程序修改前资源情况: Driver : 1台 Worker : 2台 程序提交申请内存资源 : 1G内存 内存分配情况 : 1. 20%用于程序运行 2. 20%用于Shuffle 3. 60%用于RDD缓存 单条TweetBean大小 : 3k 1. 内存溢出 原因:因为程序会把所有的TweetBean查询出来并且合并(union),该操作在内存中进行.则某个campaign数据量较大时,如500W数据,则500W*10k=50G,超出内存限制. 解决方法: 先按数据量

移动端上传照片 预览+draw on Canvas demo(解决iOS等设备照片旋转90度的bug)

背景: 本人的一个移动端H5项目,需求如下: 手机相册选取或拍摄照片后在页面上预览 然后绘制在canvas画布上. 这里,我们先看一个demo(http://jsfiddle.net/q3011893/83qfqpk8/embedded/) 操作步骤: 1.点击选择文件,拍摄一张照片,此时"预览:"文字下会显示你刚才拍摄的照片: 2.再点击"draw on Canvas",该按钮下的画布会绘制你刚才拍摄的照片. 正常的结果: 正文: 让input file支持拍照+

hdu1829(A Bug&#39;s Life)

题目链接:传送门 题目大意:有n个昆虫,有m组关系,接下来m行表示两个昆虫性别不同,问是否有矛盾情况(同男同女) 题目思路:并查集的高级应用,开两倍数组大小,后n个数组表示和当前昆虫不同性别的集合 #include <iostream> #include <cstdio> #include <cstdlib> #include <cmath> #include <algorithm> #include <cstring> #inclu

关于【bootstrap】中,【tooltip】的不算bug的bug的个人看法

先说下遇到这个问题的背景吧. 就是在页面中有个div,这个div右上角(或者其他位置)有个 × 的图标(这个图标添加tooltip工具提示),光标移到这个图标时,触发tooltip,提示“点击移除”这样类似的字样,然后点击后,把这个div作remove()这样的删除操作. 然后,问题来了,因为这个div被remove()了,导致生成的tooltip对应的 × 图标也被remove(),因为找不到,所以对应的mouseout(可能是mouseleave事件,参考了一下bootstrap的源码,没找

懒加载(延迟加载)之后,在使用数据过程中容易出现的bug

在UI中,使用懒加载,也就是延迟加载来加载数据的时候,总是会面临几个问题? 如:1. >为什么先创建NSArray属性? 2. >为什么重写NSArray的get方法? 3.>为什么要判断是否为空? 4.>为什么下方代码"//1"这里不用NSString stringWithFormat: 而"//2"这里要使用? 5.>同时"//2"这里为什么使用的是%ld 来作为占位符? 这些问题不搞懂,懒加载就很难通透,  代