关于#c++#的问题:这个用Dev C++该怎么写啊

这个图书馆信息系统用Dev C++改写一个什么样的代码,需要包含下方内容,没有一点头绪。
创建文件信息,基本信息管理,图书流通管理,图书统计,借书统计报表,图书查询

img


// (1)主函数
void main()    {    /*主函数*/
    struct library *head;
    int d, i, b;
    for(i = 0; i < 3; i++) {    
        printf("\n\n\n\n\n\n\n\n\n\n\n                           请用户输入口令:");
        scanf("%d", &d);
        if(d != 111) {
            printf("口令输入错误\n");
            if(i == 2) {
                printf(“你已经输入3次错误口令,系统自动关闭\n”);
                exit(0);
            }
        else
            break;
        }
        system("cls");
        
         do {
           switch(b = menu()){
             case 1: head = creat();
                     save(head);
                     break;
             case 2: out(head);
                     break;
             case 3: check(head);
                      save(head);
                     break;
             case 4: scores(head);
                     save(head);
                     out(head);
                     break;
             case 5: del(head);
                     save(head);
                     out(head);
                     break;
             case 6: corret(head);
                     save(head);
                     out(head);
                     break;
             case 0: printf(“谢谢使用\n”);
                     exit(0);
             default: printf(“你所选择功能不存在请重新选择\n”);
           }    
         }while(b != 0); 
    }
} 

// (2)菜单和初始化
int menu() {  /*菜单*/
    char *menu[] = {"\n\n\n\n\n\n                   ========图书信息管理系统==========\n\n", 
    "                        1. 录入功能  ","2. 浏览功能 \n\n", 
    "                        3. 查询功能  ","4. 排序功能 \n\n", 
    "                        5. 删除功能  ","6. 修改功能 \n\n", 
    "                        0. 退出系统\n\n",
"                   ==================================\n"};  
    int c, i;
    for(i = 0; i < 9; i++) 
        printf("%s",menu[i]); 
    do { 
        printf("\n                      请输入选项(0~6)并按回车键:");
        scanf("%d",&c);  
    } while(c < 0 || c > 6);
    return(c);
}
 
《(3)(录入函数) 》 
int n;
struct library *creat(void) {  /*建立链表*/
    struct library *head;
    struct library *p1, *p2;
    n = 0;
    system("cls");
    printf("                       这是录入功能请输入图书数据\n");
    p1 = p2 = (struct library *)malloc(LEN);
    head = NULL;
    while(1) {     
       printf("登录号:");
       scanf("%ld", &p1->num);
       if(p1->num != 0) {
          printf("书名:");
          scanf("%s", p1->bookname);
          printf("作者名:");
          scanf("%s", p1->author);
          printf("类型号:");
          scanf("%s", p1->type);
          printf("出版单位");
          scanf("%s", p1->publishing_house);
          printf("出版时间:");
          scanf("%s", p1->publishing_time);
          printf("价格:");
          scanf("%f", &p1->sale);
          printf("\n");
          n = n + 1;
          
          if(n == 1)
            head = p1;
          else 
              p2->next = p1;
        
          p2 = p1;
          p1 = (struct library *)malloc(LEN);
       } else 
               break;
    }
    p2->next = NULL;
    return(head);
}

《(4)(保存函数) 》 
void save(struct library *head) {  /*保存文件*/   
    FILE *fp;
    if((fp = fopen("library.dat", "wb")) == NULL) {
        printf("不能打开文件\n");
        exit(0);
    }
    
    do {
       fwrite(head, sizeof(struct library), 1, fp);
       head = head->next;
    } while(head != NULL);
    fclose(fp);
    printf("\n文件已保存\n\n\n");
} 

《(5)输出函数 》 
struct library *out(struct library *head) {  /*读入文件*/    
    FILE *fp;
    struct library *p1, *p2;
    if((fp = fopen("library.dat","rb")) == NULL) {
        printf("不能打开文件\n");
        exit(0);
    }
    fp = fopen("library.dat", "rb");
    p1 = (struct library *)malloc(LEN);
    head = p2 = p1;
    printf("\n                                图书的数据为\n");
     
    while(!feof(fp)) {
        fread(p1, sizeof(struct library), 1, fp);
        printf("      登录号:%ld", p1->num);
        printf("书名:%s", p1->bookname);
        printf("作者名:%s", p1->author);
        printf("类型号:%s", p1->type);
        printf("出版单位:%s", p1->publishing_house);
        printf("出版时间:%s", p1->publishing_time);
        printf("价格:%6.2f", p1->sale);
        printf("\n");
        if(p1->next == 0) break;
        p1 = (struct library *)malloc(LEN);
        p2->next = p1;
        p2 = p1;
    }
    p2->next = 0;
    fclose(fp);
    return(head);
}
 
《(6)查询函数 》 
struct library *check(struct library *head) {  /*查询函数*/ 
    struct library *p;
    char style[10], a[10];
    printf("                      这是图书查询功能\n");
    printf("                      请输入查询的方法:");
    scanf("%s", style);
    printf("                      请输入要查询%s:",style);
    scanf("%s", a);
    printf("你所查询的数据:\n");
    if(head == NULL) {
        printf("\n该列表为空表\n");
        goto end;
    }
    p = head;
    if(p != 0) {
        if(strcmp(style, "bookname") == 0) {
            if(strcmp(a, p->bookname) == 0) {
                printf("   登录号:%ld", p->num);
                printf("书名:%s", p->bookname);
                printf("作者名:%s", p->author);
                printf("类型号:%s", p->type);
                printf("出版单位:%s", p->publishing_house);
                printf("出版时间:%s", p->publishing_time);
                printf("价格:%6.2f", p->sale);
                printf("\n");
            } else {
                do {
                    p = p->next;
                } while(strcmp(a, p->bookname) != 0 && p->next != NULL);
                printf("   登录号:%ld", p->num);
                printf("书名:%s", p->bookname);
                printf("作者名:%s", p->author);
                printf("类型号:%s", p->type);
                printf("出版单位:%s", p->publishing_house);
                printf("出版时间:%s", p->publishing_time);
                printf("价格:%6.2f", p->sale);
                printf("\n");
            }
        }
        
        if(strcmp(style, "author") == 0) {
            if(strcmp(a, p->author) == 0) {
                  printf("   登录号:%ld", p->num);
                 printf("书名:%s", p->bookname);
                 printf("作者名:%s", p->author);
                 printf("类型号:%s", p->type);
                 printf("出版单位:%s", p->publishing_house);
                 printf("出版时间:%s", p->publishing_time);
                 printf("价格:%6.2f", p->sale);
                 printf("\n");
            } else {
                do {
                    p = p->next;
                } while(strcmp(a, p->author) != 0 && p->next != NULL);
                printf("   登录号:%ld",p->num);
                printf("书名:%s",p->bookname);
                printf("作者名:%s",p->author);
                printf("类型号:%s",p->type);
                printf("出版单位:%s",p->publishing_house);
                printf("出版时间:%s",p->publishing_time);
                printf("价格:%6.2f",p->sale);
                printf("\n");
            } 
        }
    }
    end: return(head);    
}

《(7)排序函数 》 
struct library *scores(struct library *head) {  /*排序函数*/
    struct library *p1, *p2;
    float i;
    long t;
    char a[20], b[20], c[20], d[20], e[20];
    p1 = head;
    if(head == NULL) {
        printf("该列表为空表\n");
    } else {
        while(p1 != NULL){
            p2 = p1->next;
          while(p2 != NULL) {
               if(strcmp(p1->bookname, p2->bookname) >= 0) {
                   t = p2->num;
                   p2->num = p1->num;
                   p1->num = t;
                   i = p2->sale;
                   p2->sale = p1->sale;
                   p1->sale = i;
                   
                   strcpy(a, p2->bookname);
                   strcpy(b, p2->author);
                   strcpy(c, p2->type);
                   strcpy(d, p2->publishing_house);
                   strcpy(e, p2->publishing_time);
                   strcpy(p2->bookname, p1->bookname);
                   strcpy(p2->author, p1->author);
                   strcpy(p2->type, p1->type);
                   strcpy(p2->publishing_house, p1->publishing_house);
                   strcpy(p2->publishing_time, p1->publishing_time);
                   strcpy(p1->bookname, a);
                   strcpy(p1->author, b);
                   strcpy(p1->type, c);
                   strcpy(p1->publishing_house, d);
                   strcpy(p1->publishing_time, e);
               }
            p2 = p2->next;
          }
          p1 = p1->next;
        }    
    }
    printf("文件已排序");
    return(head);
} 

《(8)修改函数 》 
struct library  *corret(struct library *head) {  /*修改函数*/
    struct library *p;
    char m[10], z[10];
    int b, x;
    float y;
    printf("请输入要修改的书名:");
    scanf("%s", m);
    if(head==NULL) {
        printf("\n该列表为空表\n");
        goto end;
    }
    p = head;
    if(p != 0) {
        while((strcmp(p->bookname, m) != 0) && p->next != NULL) {
            p = p->next;
        }
        
        if(strcmp(p->bookname, m) == 0) {    
             printf("登录号:%ld", p->num);
             printf("书名:%s", p->bookname);
             printf("作者名:%s", p->author);
             printf("类型号:%s", p->type);
             printf("出版单位:%s", p->publishing_house);
             printf("出版时间:%s", p->publishing_time);
             printf("价格:%6.2f", p->sale);
             printf("\n");
             printf("请输入要修改的类型:\n1.登录号\n2.书名\n3.作者名\n4.分类号\n5.出版单位\n6.出版时间\n7.价格\n");
             scanf("%d", &b);
             printf("请输入修改信息:");
             if(b == 1) {    
                 scanf("%ld", &x);
                 p->num = x;
             } else if (b == 7) {
                scanf("%f", &y);
                p->sale = y;
             } else {
                  scanf("%s",z);
                  switch(b) {    
                     case 2: strcpy(p->bookname, z);
                             break;
                     case 3: strcpy(p->author, z);
                             break;
                      case 4: strcpy(p->type, z);
                             break;
                       case 5: strcpy(p->publishing_house, z);
                             break;
                     case 6: strcpy(p->publishing_time, z);
                             break;
                     default:printf("发生错误\n");
                }
             }
        }
    }
    printf("文件已修改");
    end: return(head);
} 

《(9)删除函数 》 
struct library *del(struct library *head) {  /*删除函数*/
    struct library *p1, *p2;
    long num;
    if(head == NULL) {
        printf("\n图书记录为空!\n");
        goto end;
    }
    printf("请输入要删除的图书数据的登录号:");
    scanf("%ld",&num);
    
    while(num != 0) {
        p1 = head;
        
        while(num != p1->num && p1->next != NULL) {
            p2 = p1;
            p1 = p1->next;
        }
        
        if(num == p1->num) {
            if(p1 == head)
                head = p1->next;
            else 
                p2->next = p1->next;
            printf("删除:%ld\n", num);
        } else 
            printf("%ld 找不到这个图书记录!\n", num);
        scanf("%ld", &num);
    }
    
    printf("已删除信息");
    end: return(head);
}

c语言还是c++?

加个0应该有大v来搞定了

可以找我,我发了一些博客,里面有相关算法