zoukankan      html  css  js  c++  java
  • 巨大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("您输入的信息错误请重新输入:
    ");
            }
    
        } 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("
    您输入的信息错误请重新输入:");
                continue;
            }
    
            for (i = 0; i < len; i++) {
                if((num[i] < '0' || num[i] > '9') && num[i] != '.') {
                    printf("
    您输入的不是浮点数字请重新输入:");
                    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("
    您输入的数字超限请重新输入:");
                continue;
            }
    
            for (i = 0; i < len; i++) {
                if((num[i] < '0' || num[i] > '9')) {
                    printf("
    您输入的非数字或不是整型数字请重新输入:");
                    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
    ");
    	    	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("申请空间失败!!!
    ");    exit(0);
        }
        L = head;
        printf("创建图书:
    ");
    
        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:
    ", P->ISBN);
          L->next = P;    L = P;
    
          printf("请按任意键继续添加图书 或者输入q返回:");
          ch = getche(); 
          if (ch == 'q' || ch == 'Q')
              break;
        }
        printf("
    ");
        return head;
    }
    
    
    
    void
    print_book(Linkbook head)
    {
    	Linkbook L;
    	L = head->next; 
    	printf("打印所有图书信息:"); 
        while (L != NULL) {
        	 printf("图书名称:%s
    ", L->title);
       	printf("图书作者:%s
    ", L->author);
       	printf("图书出版社:%s
    ", L->publisher);
       	printf("图书出版时间:%s
    ", L->pub_time);
       	printf("图书价格:%s
    ", L->price);
       	printf("图书的ISBN:%s
    ", L->ISBN);
       	printf("图书数量:%d
    
    
    ", L->count);
    	 L = L->next;
       }
        printf("打印完成!!
    ");
    }
    
    //--------------------------------------------------------------
    
    
    
    
    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;
    }
    
  • 相关阅读:
    12个非常不错的javascript类库
    CSS中单位em和rem的区别
    CSS中box-sizing属性的作用
    网页设计中的默认字体样式详解
    jQuery遍历Table表格的行和列
    css常用解决方案
    JS判断字符串小括号是否成对合法
    Less编码规范
    React九宫格抽奖
    n个有序数组,取出k个最大值
  • 原文地址:https://www.cnblogs.com/airfand/p/5094996.html
Copyright © 2011-2022 走看看