2021-04-21

                                                                                                图书管理系统

系统的找回密码、修改密码、删除、排序还在编写,不能使用

其他可以正常使用,大家也可以借鉴我的代码用于你的学习,希望对于爱学习的小猿们有所帮助

#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<windows.h>
#define N 5   //宏定义N用于验证码函数
typedef struct userdata   //登陆者资料结构
{
    char account_number[20];   //账号
    char password[20];   //密码
    char nickname[20];   //昵称
}user;
user q;
struct Book
{
    char number[20];   //书籍登录号
    char name[20];   //书名
    char author[20];   //作者名
    char type[20];   //类型
    char publish[20];   //出版单位
    char time[20];   //出版时间
    char price[20];   //价格
    char num[20];   //数量*/
    int x;
    struct Book *next;
};
#define B sizeof(struct userdata)   //宏定义B为结构体的大小
#define M sizeof(struct Book)   //宏定义M为链表的大小
typedef struct Book book,*booka;   //重定义结点信息
//int m=0;   //程序中所用到所有外部变量
void HideCursor();   //隐藏光标
void toxy(int x, int y);   //将光标移动到x,y处
void menu();   //主菜单
//================================
void adduser();   //登录功能
void choice_menu();   //选择菜单
void login_options(booka headb);   //登录选项
void lookup();   //查找功能
void search_interface();   //查找界面
void find_option(booka heada);   //查找选项
void save_book(booka p);   //保存图书
void search1(booka);   //按书号查找
void search2(booka);   //按书名查找
void search3(booka);   //按作者查找
void search4(booka);   //按出版单位查找
void search5(booka);   //按出版时间查找
void search6(booka);   //按价格查找
void wrong_password();   //密码错误
void verification_code();   //验证码
void exi();   //退出程序
void developer_information();   //开发者信息
void menu1();   //主菜单1
//================================
void registe();   //注册功能
void storage();   //账号存储到磁盘
void find();   //找回密码
//================================
booka creatbook();   //创建链表
void add_book();   //添加图书
void modify_book(booka);   //修改图书
void delet_book(booka);   //删除图书
//主函数
int main()
{
    while(1)
    {
        int select;
        system("color 03");
        HideCursor();
        menu();
        toxy(2,19);
        printf("请输入:");
        scanf("%d",&select);
        switch(select)
        {
            case 1:adduser();break;
            case 2:registe();break;
            case 3:break;
            case 4:break;
            case 5:developer_information();break;
            case 6:exi();break;
        }
    }
}
//退出程序
void exi()
{
    system("cls");
    toxy(50,3);
    printf("欢迎再次使用本系统!");
    toxy(2,4);
    exit(0);
}
//开发者信息
void developer_information()
{
    system("cls");
    toxy(50,3);
    printf("专业:    软件工程");
    toxy(50,5);
    printf("班级:    2003班");
    toxy(50,7);
    printf("开发者:  ***");
    toxy(2,9);
    printf("按0返回:");
    int m;
    scanf("%d",&m);
    switch(m)
    {
        case 0:menu1();break;
    }
}
//主菜单1
void menu1()
{
     system("cls");
     while(1)
    {
        int select;
        system("color 03");
        HideCursor();
        menu();
        toxy(2,19);
        printf("请输入:");
        scanf("%d",&select);
        switch(select)
        {
            case 1:adduser();break;
            case 2:registe();break;
            case 3:break;
            case 4:break;
            case 5:developer_information();break;
            case 6:exi();break;
        }
    }
}
//隐藏光标
void HideCursor()
{
    CONSOLE_CURSOR_INFO cursor_info = {1, 0};
    SetConsoleCursorInfo(GetStdHandle(STD_OUTPUT_HANDLE), &cursor_info);

}
//将光标移动到x,y处
void toxy(int x, int y)
{
    COORD pos = { x , y };
    HANDLE Out = GetStdHandle(STD_OUTPUT_HANDLE);
    SetConsoleCursorPosition(Out, pos);
}
//主菜单
void menu()
{
    toxy(48,2);
    printf("***本系统有***制作***");
    toxy(53,5);
    printf(" 图书管理系统");
    toxy(48,8);
    printf("|     1.登录          |");
    toxy(48,10);
    printf("|     2.注册账号      |");
    toxy(48,12);
    printf("|     3.找回密码      |");
    toxy(48,14);
    printf("|     4.修改密码      |");
    toxy(48,16);
    printf("|     5.开发者信息    |");
    toxy(48,18);
    printf("|     6.退出软件      |");
}
//=========================================================
//登录功能
void adduser()
{
    user a,b;
    FILE *fp;
    fp=fopen("用户注册账号.dat","rb");
    fread(&a,B,1,fp);
    booka head;
    head=NULL;
    int flag=0;
    char str[20],stra[20];
    toxy(40,22);
    printf("请输入登录账号(账号长度不得超过8位):");
    scanf("%s",str);
    while(1)
    {
        if(strcmp(a.account_number,str)!=0)
        {
            if(!feof(fp))
            {
                fread(&a,B,1,fp);
            }
            else
                break;
        }
        else
        {
            flag=1;
            break;
        }
    }
    if(!flag)
    {
        toxy(40,24);
        printf("此账号还没注册!");
        toxy(2,25);
        printf("武同学请你先注册账号,然后再使用哈!");
        toxy(2,26);
        system("pause");
        system("cls");
        menu();
        registe();
        menu();
        adduser();
    }
    toxy(40,24);
    printf("请输入密码(密码长度不得超过8位):");
    scanf("%s",stra);
    if(strcmp(a.password,stra)==0)
    {
        flag=2;
    }
    if(flag==1)
    {
        toxy(40,26);
        printf("密码错误!");
        fclose(fp);
        toxy(40,28);
        system("pause");
        wrong_password();
    }
    else if(flag==2)
    {
        toxy(40,26);
        printf("请输入验证码:");
        srand((unsigned)time(NULL));
        int c;
          c=rand()%10;
          printf("%d",c);
        int d;
        toxy(60,26);
        scanf("%d",&d);
        if(c!=d)
        {
            toxy(65,25);
            printf("---------------");
            toxy(65,26);
            printf("| 验证码错误!|");
            toxy(65,27);
            printf("---------------");
            toxy(2,28);
            system("pause");
            verification_code();
        }
        else
        {
            toxy(65,25);
            printf("---------------");
            toxy(65,26);
            printf("| 验证码正确!|");
            toxy(65,27);
            printf("---------------");
            toxy(2,28);
            system("pause");
            while(1)
            {
            int select;
            system("cls");
            choice_menu();
            toxy(2,19);
            printf("请输入:");
            scanf("%d",&select);
            head=creatbook();
            switch(select)
                {
                case 1:add_book();head=creatbook();choice_menu();login_options(head);break;
                case 2:search_interface();find_option(head);break;
                case 3:modify_book(head);break;
                case 4:/*delet_book(head);*/break;
                case 5:break;
                case 6:menu();menu1();break;
                }
            }
        }
    }
}
//密码错误
void wrong_password()
{
    system("cls");
    menu();
    user a,b;
    FILE *fp;
    fp=fopen("用户注册账号.dat","r");
    fread(&a,B,1,fp);
    int flag=0;
    char str[20],stra[20];
    char code[N+1],strb[N+1];
    toxy(40,22);
    printf("请重新输入密码(密码长度不得超过8位):");
    scanf("%s",str);
    while(1)
    {
        if(strcmp(a.account_number,str)!=0)
        {
            if(!feof(fp))
            {
                fread(&a,B,1,fp);
            }
            else
                break;
        }
        else
        {
            toxy(40,24);
            printf("密码正确!");
            flag=1;
            break;
        }
    }
    if(flag==1)
    {
        toxy(40,26);
        printf("请输入以下为你量身定做的验证码吧:");
        int c;
        c=rand()%10;
        printf("%d",c);
        int d;
        toxy(80,26);
        scanf("%d",&d);
        if(c!=d)
        {
            toxy(85,25);
            printf("---------------");
            toxy(85,26);
            printf("| 验证码错误!|");
            toxy(85,27);
            printf("---------------");
            toxy(2,29);
            system("pause");
            verification_code();
        }
        else
        {
            toxy(85,25);
            printf("---------------");
            toxy(85,26);
            printf("| 验证码正确!|");
            toxy(85,27);
            printf("---------------");
            toxy(2,29);
            system("pause");
           /*` while(1)
            {
            int select;
            system("cls");
            choice_menu();
            toxy(2,19);
            printf("请输入:");
            scanf("%d",&select);
            switch(select)
                {
                case 1:head=creatbook();system("cls");choice_menu();login_options(head);break;
                case 2:search_interface();find_option(head);break;
                case 3:break;
                case 4:break;
                case 5:break;
                case 6:break;
                }
            }*/
        }
    }
    else if(flag==0)
    {
        toxy(40,30);
        printf("密码错误!");
        wrong_password();
    }
}
//验证码
void verification_code()
{
        system("cls");
        menu();
        toxy(40,22);
        printf("请重新输入验证码:");
        srand((unsigned)time(NULL));
        int a;
          a=rand()%10;
          printf("%d",a);
        int b;
        toxy(60,22);
        scanf("%d",&b);
        if(a!=b)
        {
            toxy(65,21);
            printf("---------------");
            toxy(65,22);
            printf("| 验证码错误!|");
            toxy(65,23);
            printf("---------------");
            toxy(2,25);
            system("pause");
            verification_code();

        }
        else
        {
            toxy(65,21);
            printf("---------------");
            toxy(65,22);
            printf("| 验证码正确!|");
            toxy(65,23);
            printf("---------------");
            toxy(2,25);
            system("pause");
            while(1)
            {
            int select;
            system("cls");
            choice_menu();
            toxy(2,19);
            printf("请输入:");
            scanf("%d",&select);
            switch(select)
                {
                case 1:break;
                case 2:creatbook();break;
                case 3:break;
                case 4:break;
                case 5:break;
                case 6:break;
                }
            }
        }
}
//选择菜单
void choice_menu()
{
    system("cls");
    SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY|FOREGROUND_GREEN);
    toxy(50,2);//将光标移动到(50,5)坐标处
    printf("***本系统有***制作***");
    toxy(56,5);
    printf(" 图书管理系统");
    toxy(48,8);
    printf("|      添加   请按【1】       |");
    toxy(48,10);
    printf("|      查找   请按【2】       |");
    toxy(48,12);
    printf("|      修改   请按【3】       |");
    toxy(48,14);
    printf("|      删除   请按【4】       |");
    toxy(48,16);
    printf("|      排序   请按【5】       |");
    toxy(48,18);
    printf("|      返回   请按【6】       |");
}
//选择选项
void login_options(booka headb)
{
    booka head;
    head=headb;
    while(1)
    {
        int select;
        toxy(2,19);
        printf("请输入:");
        scanf("%d",&select);
        switch(select)
        {
            case 1:add_book();choice_menu();login_options(head);break;
            case 2:search_interface();find_option(head);break;
            case 3:modify_book(head);break;
            case 4:break;
            case 5:break;
            case 6:menu();menu1();break;
        }
    }
}
//查找界面
void search_interface()
{
    system("cls");
    SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY|FOREGROUND_RED);
    toxy(54,2);
    printf("***本系统由***制作***");
    toxy(58,5);
    printf(" 图书管理系统");
    toxy(46,8);
    printf("|      按书号查找       请按【1】       |");
    toxy(46,10);
    printf("|      按书名查找       请按【2】       |");
    toxy(46,12);
    printf("|      按作者查找       请按【3】       |");
    toxy(46,14);
    printf("|      按图书类型查找   请按【4】       |");
    toxy(46,16);
    printf("|      按出版单位查找   请按【5】       |");
    toxy(46,18);
    printf("|      按出版时间查找   请按【6】       |");
    toxy(46,20);
    printf("|      按出版价格查找   请按【7】       |");
    toxy(46,22);
    printf("|      按出版数量查找   请按【8】       |");
    toxy(46,24);
    printf("|      返回             请按【9】       |");
}
//查找选项
void find_option(booka heada)
{
    booka head;
    head=heada;
    while(1)
    {
        int select;
        toxy(2,26);
        printf("请输入:");
        scanf("%d",&select);
        switch(select)
        {
            case 1:search1(head);break;
            case 2:search2(head);break;
            case 3:search3(head);break;
            case 4:search4(head);break;
            case 5:search5(head);break;
            case 6:search6(head);break;
            case 7:search7(head);break;
            case 8:search7(head);break;
            case 9:choice_menu();login_options(head);break;
        }
    }
}
//按书号查找
void search1(booka head)
{
    system("cls");
    SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY|FOREGROUND_GREEN);
    booka p;
    char number[20];
    toxy(2,2);
    printf("请输入你要搜索的书号:");
    scanf("%s",number);
    toxy(2,4);
    printf("正在搜索...");
    Sleep(500);
    system("cls");
    p=head->next;
    while(p!=NULL)
    {
        if(strcmp(p->number,number)==0)
        {
            toxy(8,3);
		    printf("********************************************图书信息*************************************************");
            toxy(8,5);
            printf("-----------------------------------------------------------------------------------------------------");
            toxy(8,7);
            printf("登录号        书名          作者名       类型          出版单位       出版时间      价格         数量");
            toxy(8,9);
            printf("-----------------------------------------------------------------------------------------------------");
            toxy(8,11);
            printf("%-14s%-14s%-14s%-14s%-14s%-14s%-14s%-14s",p->number,p->name,p->author,p->type,p->publish,p->time,p->price,p->num);
            toxy(2,13);
            system("pause");
            toxy(46,15);
            printf("-------------------------");
            toxy(46,16);
            printf("|                       |");
            toxy(46,17);
            printf("| 查找成功,离开请按 1!|");
            toxy(46,18);
            printf("|                       |");
            toxy(46,19);
            printf("-------------------------");
            int n;
            toxy(2,21);
            printf("请输入:");
            scanf("%d",&n);
            if(n==1)
            {
                search_interface();
                find_option(head);
            }
        }
        else
        {
            p=p->next;
        }
    }
    if(p==NULL)
    {
        toxy(46,10);
        printf("-------------------------");
        toxy(46,11);
        printf("|                       |");
        toxy(46,12);
        printf("| 输入错误,离开请按 1!|");
        toxy(46,13);
        printf("|                       |");
        toxy(46,14);
        printf("-------------------------");
        int m;
        toxy(2,21);
        printf("请输入:");
        scanf("%d",&m);
        if(m==1)
        {
            search_interface();
            find_option(head);
        }
    }
}
//按书名查找
void search2(booka head)
{
    system("cls");
    SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY|FOREGROUND_GREEN);
    booka p;
    char name[20];
    toxy(2,2);
    printf("请输入你要搜索的书名:");
    scanf("%s",name);
    toxy(2,4);
    printf("正在搜索...");
    Sleep(500);
    system("cls");
    p=head->next;
    while(p!=NULL)
    {
        if(strcmp(p->name,name)==0)
        {
            toxy(8,3);
		    printf("********************************************图书信息*************************************************");
            toxy(8,5);
            printf("-----------------------------------------------------------------------------------------------------");
            toxy(8,7);
            printf("登录号        书名          作者名       类型          出版单位       出版时间      价格         数量");
            toxy(8,9);
            printf("-----------------------------------------------------------------------------------------------------");
            toxy(8,11);
            printf("%-14s%-14s%-14s%-14s%-14s%-14s%-14s%-14s",p->number,p->name,p->author,p->type,p->publish,p->time,p->price,p->num);
            toxy(2,13);
            system("pause");
            toxy(46,15);
            printf("-------------------------");
            toxy(46,16);
            printf("|                       |");
            toxy(46,17);
            printf("| 查找成功,离开请按 1!|");
            toxy(46,18);
            printf("|                       |");
            toxy(46,19);
            printf("-------------------------");
            int n;
            toxy(2,21);
            printf("请输入:");
            scanf("%d",&n);
            if(n==1)
            {
                search_interface();
                find_option(head);
            }
        }
        else
        {
            p=p->next;
        }
    }
    if(p==NULL)
    {
        toxy(46,10);
        printf("-------------------------");
        toxy(46,11);
        printf("|                       |");
        toxy(46,12);
        printf("| 输入错误,离开请按 1!|");
        toxy(46,13);
        printf("|                       |");
        toxy(46,14);
        printf("-------------------------");
        int m;
        toxy(2,21);
        printf("请输入:");
        scanf("%d",&m);
        if(m==1)
        {
            search_interface();
            find_option(head);
        }
    }
}
//按作者查找
void search3(booka head)
{
    system("cls");
    SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY|FOREGROUND_GREEN);
    booka p;
    char author[20];
    toxy(2,2);
    printf("请输入你要搜索的作者名:");
    scanf("%s",author);
    toxy(2,4);
    printf("正在搜索...");
    Sleep(500);
    system("cls");
    p=head->next;
    while(p!=NULL)
    {
        if(strcmp(p->author,author)==0)
        {
            toxy(8,3);
		    printf("********************************************图书信息*************************************************");
            toxy(8,5);
            printf("-----------------------------------------------------------------------------------------------------");
            toxy(8,7);
            printf("登录号        书名          作者名       类型          出版单位       出版时间      价格         数量");
            toxy(8,9);
            printf("-----------------------------------------------------------------------------------------------------");
            toxy(8,11);
            printf("%-14s%-14s%-14s%-14s%-14s%-14s%-14s%-14s",p->number,p->name,p->author,p->type,p->publish,p->time,p->price,p->num);
            toxy(2,13);
            system("pause");
            toxy(46,15);
            printf("-------------------------");
            toxy(46,16);
            printf("|                       |");
            toxy(46,17);
            printf("| 查找成功,离开请按 1!|");
            toxy(46,18);
            printf("|                       |");
            toxy(46,19);
            printf("-------------------------");
            int n;
            toxy(2,21);
            printf("请输入:");
            scanf("%d",&n);
            if(n==1)
            {
                search_interface();
                find_option(head);
            }
        }
        else
        {
            p=p->next;
        }
    }
    if(p==NULL)
    {
        toxy(46,10);
        printf("-------------------------");
        toxy(46,11);
        printf("|                       |");
        toxy(46,12);
        printf("| 输入错误,离开请按 1!|");
        toxy(46,13);
        printf("|                       |");
        toxy(46,14);
        printf("-------------------------");
        int m;
        toxy(2,21);
        printf("请输入:");
        scanf("%d",&m);
        if(m==1)
        {
            search_interface();
            find_option(head);
        }
    }
}
//按图书类型查找
void search4(booka head)
{
    system("cls");
    SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY|FOREGROUND_GREEN);
    booka p;
    char type[20];
    toxy(2,2);
    printf("请输入你要搜索的图书类型:");
    scanf("%s",type);
    toxy(2,4);
    printf("正在搜索...");
    Sleep(500);
    system("cls");
    p=head->next;
    while(p!=NULL)
    {
        if(strcmp(p->type,type)==0)
        {
            toxy(8,3);
		    printf("********************************************图书信息*************************************************");
            toxy(8,5);
            printf("-----------------------------------------------------------------------------------------------------");
            toxy(8,7);
            printf("登录号        书名          作者名       类型          出版单位       出版时间      价格         数量");
            toxy(8,9);
            printf("-----------------------------------------------------------------------------------------------------");
            toxy(8,11);
            printf("%-14s%-14s%-14s%-14s%-14s%-14s%-14s%-14s",p->number,p->name,p->author,p->type,p->publish,p->time,p->price,p->num);
            toxy(2,13);
            system("pause");
            toxy(46,15);
            printf("-------------------------");
            toxy(46,16);
            printf("|                       |");
            toxy(46,17);
            printf("| 查找成功,离开请按 1!|");
            toxy(46,18);
            printf("|                       |");
            toxy(46,19);
            printf("-------------------------");
            int n;
            toxy(2,21);
            printf("请输入:");
            scanf("%d",&n);
            if(n==1)
            {
                search_interface();
                find_option(head);
            }
        }
        else
        {
            p=p->next;
        }
    }
    if(p==NULL)
    {
        toxy(46,10);
        printf("-------------------------");
        toxy(46,11);
        printf("|                       |");
        toxy(46,12);
        printf("| 输入错误,离开请按 1!|");
        toxy(46,13);
        printf("|                       |");
        toxy(46,14);
        printf("-------------------------");
        int m;
        toxy(2,21);
        printf("请输入:");
        scanf("%d",&m);
        if(m==1)
        {
            search_interface();
            find_option(head);
        }
    }
}
//按出版单位查找
void search5(booka head)
{
    system("cls");
    SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY|FOREGROUND_GREEN);
    booka p;
    char publish[20];
    toxy(2,2);
    printf("请输入你要搜索的出版单位:");
    scanf("%s",publish);
    toxy(2,4);
    printf("正在搜索...");
    Sleep(500);
    system("cls");
    p=head->next;
    while(p!=NULL)
    {
        if(strcmp(p->publish,publish)==0)
        {
            toxy(8,3);
		    printf("********************************************图书信息*************************************************");
            toxy(8,5);
            printf("-----------------------------------------------------------------------------------------------------");
            toxy(8,7);
            printf("登录号        书名          作者名       类型          出版单位       出版时间      价格         数量");
            toxy(8,9);
            printf("-----------------------------------------------------------------------------------------------------");
            toxy(8,11);
            printf("%-14s%-14s%-14s%-14s%-14s%-14s%-14s%-14s",p->number,p->name,p->author,p->type,p->publish,p->time,p->price,p->num);
            toxy(2,13);
            system("pause");
            toxy(46,15);
            printf("-------------------------");
            toxy(46,16);
            printf("|                       |");
            toxy(46,17);
            printf("| 查找成功,离开请按 1!|");
            toxy(46,18);
            printf("|                       |");
            toxy(46,19);
            printf("-------------------------");
            int n;
            toxy(2,21);
            printf("请输入:");
            scanf("%d",&n);
            if(n==1)
            {
                search_interface();
                find_option(head);
            }
        }
        else
        {
            p=p->next;
        }
    }
    if(p==NULL)
    {
        toxy(46,10);
        printf("-------------------------");
        toxy(46,11);
        printf("|                       |");
        toxy(46,12);
        printf("| 输入错误,离开请按 1!|");
        toxy(46,13);
        printf("|                       |");
        toxy(46,14);
        printf("-------------------------");
        int m;
        toxy(2,21);
        printf("请输入:");
        scanf("%d",&m);
        if(m==1)
        {
            search_interface();
            find_option(head);
        }
    }
}
//按出版时间查找
void search6(booka head)
{
    system("cls");
    SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY|FOREGROUND_GREEN);
    booka p;
    char time[20];
    toxy(2,2);
    printf("请输入你要搜索的出版时间:");
    scanf("%s",time);
    toxy(2,4);
    printf("正在搜索...");
    Sleep(500);
    system("cls");
    p=head->next;
    while(p!=NULL)
    {
        if(strcmp(p->time,time)==0)
        {
            toxy(8,3);
		    printf("********************************************图书信息*************************************************");
            toxy(8,5);
            printf("-----------------------------------------------------------------------------------------------------");
            toxy(8,7);
            printf("登录号        书名          作者名       类型          出版单位       出版时间      价格         数量");
            toxy(8,9);
            printf("-----------------------------------------------------------------------------------------------------");
            toxy(8,11);
            printf("%-14s%-14s%-14s%-14s%-14s%-14s%-14s%-14s",p->number,p->name,p->author,p->type,p->publish,p->time,p->price,p->num);
            toxy(2,13);
            system("pause");
            toxy(46,15);
            printf("-------------------------");
            toxy(46,16);
            printf("|                       |");
            toxy(46,17);
            printf("| 查找成功,离开请按 1!|");
            toxy(46,18);
            printf("|                       |");
            toxy(46,19);
            printf("-------------------------");
            int n;
            toxy(2,21);
            printf("请输入:");
            scanf("%d",&n);
            if(n==1)
            {
                search_interface();
                find_option(head);
            }
        }
        else
        {
            p=p->next;
        }
    }
    if(p==NULL)
    {
        toxy(46,10);
        printf("-------------------------");
        toxy(46,11);
        printf("|                       |");
        toxy(46,12);
        printf("| 输入错误,离开请按 1!|");
        toxy(46,13);
        printf("|                       |");
        toxy(46,14);
        printf("-------------------------");
        int m;
        toxy(2,21);
        printf("请输入:");
        scanf("%d",&m);
        if(m==1)
        {
            search_interface();
            find_option(head);
        }
    }
}
//按出版价格查找
void search7(booka head)
{
    system("cls");
    SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY|FOREGROUND_GREEN);
    booka p;
    char price[20];
    toxy(2,2);
    printf("请输入你要搜索的图书价格:");
    scanf("%s",price);
    toxy(2,4);
    printf("正在搜索...");
    Sleep(500);
    system("cls");
    p=head->next;
    while(p!=NULL)
    {
        if(strcmp(p->price,price)==0)
        {
            toxy(8,3);
		    printf("********************************************图书信息*************************************************");
            toxy(8,5);
            printf("-----------------------------------------------------------------------------------------------------");
            toxy(8,7);
            printf("登录号        书名          作者名       类型          出版单位       出版时间      价格         数量");
            toxy(8,9);
            printf("-----------------------------------------------------------------------------------------------------");
            toxy(8,11);
            printf("%-14s%-14s%-14s%-14s%-14s%-14s%-14s%-14s",p->number,p->name,p->author,p->type,p->publish,p->time,p->price,p->num);
            toxy(2,13);
            system("pause");
            toxy(46,15);
            printf("-------------------------");
            toxy(46,16);
            printf("|                       |");
            toxy(46,17);
            printf("| 查找成功,离开请按 1!|");
            toxy(46,18);
            printf("|                       |");
            toxy(46,19);
            printf("-------------------------");
            int n;
            toxy(2,21);
            printf("请输入:");
            scanf("%d",&n);
            if(n==1)
            {
                search_interface();
                find_option(head);
            }
        }
        else
        {
            p=p->next;
        }
    }
    if(p==NULL)
    {
        toxy(46,10);
        printf("-------------------------");
        toxy(46,11);
        printf("|                       |");
        toxy(46,12);
        printf("| 输入错误,离开请按 1!|");
        toxy(46,13);
        printf("|                       |");
        toxy(46,14);
        printf("-------------------------");
        int m;
        toxy(2,21);
        printf("请输入:");
        scanf("%d",&m);
        if(m==1)
        {
            search_interface();
            find_option(head);
        }
    }
}
//按出版数量查找
void search8(booka head)
{
    system("cls");
    SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY|FOREGROUND_GREEN);
    booka p;
    char num[20];
    toxy(2,2);
    printf("请输入你要搜索的出版数量:");
    scanf("%s",num);
    toxy(2,4);
    printf("正在搜索...");
    Sleep(500);
    system("cls");
    p=head->next;
    while(p!=NULL)
    {
        if(strcmp(p->num,num)==0)
        {
            toxy(8,3);
		    printf("********************************************图书信息*************************************************");
            toxy(8,5);
            printf("-----------------------------------------------------------------------------------------------------");
            toxy(8,7);
           printf("登录号        书名          作者名       类型          出版单位       出版时间      价格         数量");
            toxy(8,9);
            printf("-----------------------------------------------------------------------------------------------------");
            toxy(8,11);
            printf("%-14s%-14s%-14s%-14s%-14s%-14s%-14s%-14s",p->number,p->name,p->author,p->type,p->publish,p->time,p->price,p->num);
            toxy(2,13);
            system("pause");
            toxy(46,15);
            printf("-------------------------");
            toxy(46,16);
            printf("|                       |");
            toxy(46,17);
            printf("| 查找成功,离开请按 1!|");
            toxy(46,18);
            printf("|                       |");
            toxy(46,19);
            printf("-------------------------");
            int n;
            toxy(2,21);
            printf("请输入:");
            scanf("%d",&n);
            if(n==1)
            {
                search_interface();
                find_option(head);
            }
        }
        else
        {
            p=p->next;
        }
    }
    if(p==NULL)
    {
        toxy(46,10);
        printf("-------------------------");
        toxy(46,11);
        printf("|                       |");
        toxy(46,12);
        printf("| 输入错误,离开请按 1!|");
        toxy(46,13);
        printf("|                       |");
        toxy(46,14);
        printf("-------------------------");
        int m;
        toxy(2,21);
        printf("请输入:");
        scanf("%d",&m);
        if(m==1)
        {
            search_interface();
            find_option(head);
        }
    }
}
//=============================================================
//=============================================================
//注册功能
void registe()
{
    user a,b;
    FILE *fp;
    int flag=0;
    fp=fopen("用户注册账号.dat","rb");
    fread(&a,B,1,fp);
    char str[20],stra[20];
    toxy(40,22);
    printf("请输入账号(账号长度不得超过8位):");
    scanf("%s",str);
    strcpy(b.account_number,str);
    while(1)
    {
        if(strcmp(a.account_number,b.account_number)!=0)
        {
            if(!feof(fp))
            {
                fread(&a,B,1,fp);
            }
            else
                break;
        }
        else
        {
            toxy(2,23);
            printf("该用户名已存在!请重新注册!");
            fclose(fp);
            flag=1;
            break;
        }
    }
    if(flag==1)
    {
        toxy(2,24);
        system("pause");
        system("cls");
        menu();
        registe();
        return;
    }
    toxy(40,24);
    printf("请输入密码(密码长度不得超过8位):");
    scanf("%s",b.password);
    toxy(40,26);
    printf("请再输入一次密码:");
    scanf("%s",stra);
    if(strcmp(b.password,stra)!=0)
    {
        toxy(40,28);
        printf("两次密码不同,请重新申请!");
        toxy(2,29);
        system("pause");
        system("cls");
        menu();
        registe();
    }
    else
    {
        toxy(40,28);
        printf("请输入昵称:");
        scanf("%s",b.nickname);getchar();
        toxy(2,30);
        printf("恭喜!武同学为你申请账号成功啦,请继续你的操作吧!");
        toxy(1,31);
        system("pause");
        system("cls");
        q=b;
        storage();
    }
}
//账号存储到磁盘
void storage()
{
    FILE *fp;
    if((fp=fopen("用户注册账号.dat","wb"))==NULL)
    {
        printf("文件打开失败!");
        return;
    }
    fwrite(&q,B,1,fp);
    fclose(fp);
}
//=================================================================
//添加图书
void add_book()
{
    FILE *fp;
    if((fp=fopen("图书信息.dat","w"))==NULL)
    {
        printf("打开文件失败!");
        exit(0);
    }
    system("cls");
    SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY|FOREGROUND_RED);
    booka head,p,q;
    head=(booka)malloc(sizeof(book));
    head->next=NULL;
    q=head;
    p=head->next;
    while(1)
    {
        p=(booka)malloc(sizeof(book));
		toxy(45,8);
		printf("请输入图书登录号(小于10位数):");
		scanf("%s",p->number);getchar();
        fprintf(fp,"%s ",p->number);
		toxy(45,10);
		printf("请输入书名(小于10位数):");
        scanf("%s",p->name);getchar();
        fprintf(fp,"%s ",p->name);
        toxy(45,12);
        printf("请输入作者名(小于10位数):");
        scanf("%s",p->author);getchar();
        fprintf(fp,"%s ",p->author);
        toxy(45,14);
        printf("请输入图书类别(小于10位数):");
        scanf("%s",p->type);getchar();
        fprintf(fp,"%s ",p->type);
        toxy(45,16);
        printf("请输入图书出版单位(小于10位数):");
        scanf("%s",p->publish);getchar();
        fprintf(fp,"%s ",p->publish);
        toxy(45,18);
        printf("请输入图书出版时间(小于10位数):");
        scanf("%s",p->time);getchar();
        fprintf(fp,"%s ",p->time);
        toxy(45,20);
        printf("请输入图书价格(小于10位数):");
        scanf("%s",p->price);getchar();
        fprintf(fp,"%s ",p->price);
        toxy(45,22);
        printf("请输入图书价格(小于10位数):");
        scanf("%s",p->num);getchar();
        fprintf(fp,"%s ",p->num);
        toxy(48,24);
		printf("正在保存....");
		Sleep(500);
		system("cls");
		toxy(46,8);
		printf("-------------------------");
		toxy(46,9);
		printf("|                       |");
		toxy(46,10);
		printf("| 保存成功!是否继续?  |");
		toxy(46,12);
		printf("| 1.是             2.否 |");
		toxy(46,13);
		printf("|                       |");
		toxy(46,14);
		printf("-------------------------");
		p->next=NULL;
        q->next=p;
        q=p;
		char ch;
		toxy(2,16);
		printf("请输入:");
		scanf("%c",&ch);
		if(ch=='2')
            break;
        else
            system("cls");
    }
    fclose(fp);
}
//从文件中将数据读入链表
booka creatbook()
{
    FILE *fp;
    if((fp=fopen("图书信息.dat","r"))==NULL)
    {
        printf("打开文件失败!");
        exit(0);
    }
    booka head,p,q;
    book temp;
    head=(booka)malloc(sizeof(book));
    head->next=NULL;
    q=head;
    p=head->next;
    while(fscanf(fp,"%s %s %s %s %s %s %s %s",&temp.number,&temp.name, &temp.author,&temp.type,&temp.publish,&temp.time,&temp.price,&temp.num)!=EOF)
    {
        p=(booka)malloc(sizeof(book));
        strcpy(p->number,temp.number);
        strcpy(p->name,temp.name);
        strcpy(p->author,temp.author);
        strcpy(p->type,temp.type);
        strcpy(p->publish,temp.publish);
        strcpy(p->time,temp.time);
        strcpy(p->price,temp.price);
        strcpy(p->num,temp.num);
		p->next=NULL;
        q->next=p;
        q=p;
    }
    fclose(fp);
    return head;
}
//修改图书
void modify_book(booka headc)
{
    while(1)
    {
        FILE *fp;
        fp=fopen("图书信息.dat","w");
        if(fp==NULL)
        {
            printf("打开文件失败!");
            exit(0);
        }
        system("cls");
        SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY|FOREGROUND_RED);
        int j=0;
        char name[20];
        char cha;
        char number[20];
        char author[20];
        char type[20];
        char publish[20];
        char time[20];
        char price[20];
        char num[20];
        char name1[20];
        booka head,p;
        head=headc;
        toxy(2,3);
        printf("请输入你要修改的图书书名:");
        scanf("%s",name1);
        toxy(2,4);
        printf("正在查找...");
        Sleep(500);
        p=head->next;
        while(p!=NULL)
        {
            if(strcmp(p->name,name1)==0)
            {
                system("cls");
                toxy(8,3);
                printf("********************************************图书信息*************************************************");
                toxy(8,5);
                printf("-----------------------------------------------------------------------------------------------------");
                toxy(8,7);
                printf("登录号        书名          作者名       类型          出版单位       出版时间      价格         数量");
                toxy(8,9);
                printf("-----------------------------------------------------------------------------------------------------");
                toxy(8,11);
                printf("%-14s%-14s%-14s%-14s%-14s%-14s%-14s%-14s",p->number,p->name,p->author,p->type,p->publish,p->time,p->price,p->num);
                j++;
                break;
            }
            else
            {
                p=p->next;
            }
        }
        if(j==0)
        {
            toxy(46,7);
            printf("-------------------------");
            toxy(46,8);
            printf("|                       |");
            toxy(46,9);
            printf("|   没有找到此书信息!  |");
            toxy(46,10);
            printf("|                       |");
            toxy(46,11);
            printf("| 1:返回    2:重新搜索  |");
            toxy(46,12);
            printf("|                       |");
            toxy(46,13);
            printf("-------------------------");
            while(1)
            {
                toxy(2,15);
                printf("请输入:");
                scanf("%s",&cha);
                if(cha=='1')
                {
                    choice_menu();
                    login_options(head);
                }
                else if(cha=='2')
                {
                    break;
                }
            }
            if(cha=='2')
                continue;
        }
        if(p!=NULL)
        {
            toxy(44,16);
            printf("请输入图书登录号(小于10位数):");
            scanf("%s",number);getchar();strcpy(p->number,number);
            fprintf(fp,"%s ",p->number);
            toxy(44,18);
            printf("请输入书名(小于10位数):");
            scanf("%s",name);getchar();strcpy(p->name,name);
            fprintf(fp,"%s ",p->name);
            toxy(44,20);
            printf("请输入作者名(小于10位数):");
            scanf("%s",author);getchar();strcpy(p->author,author);
            fprintf(fp,"%s ",p->author);
            toxy(44,22);
            printf("请输入图书类别(小于10位数):");
            scanf("%s",type);getchar();strcpy(p->type,type);
            fprintf(fp,"%s ",p->type);
            toxy(44,24);
            printf("请输入图书出版单位(小于10位数):");
            scanf("%s",publish);getchar();strcpy(p->publish,publish);
            fprintf(fp,"%s ",p->publish);
            toxy(44,26);
            printf("请输入图书出版时间(小于10位数):");
            scanf("%s",time);getchar();strcpy(p->time,time);
            fprintf(fp,"%s ",p->time);
            toxy(44,28);
            printf("请输入价格(小于10位数):");
            scanf("%s",price);getchar();strcpy(p->price,price);
            fprintf(fp,"%s ",p->price);
            toxy(44,30);
            printf("请输入图书数量(小于10位数):");
            scanf("%s",num);getchar();strcpy(p->num,num);
            fprintf(fp,"%s ",p->num);
        }
        toxy(2,32);
        system("pause");
        system("cls");
        toxy(46,10);
        printf("-------------------------");
        toxy(46,11);
        printf("|                       |");
        toxy(46,12);
        printf("|      是否确定修改!   |");
        toxy(46,13);
        printf("|                       |");
        toxy(46,14);
        printf("|    1:是         2:否  |");
        toxy(46,15);
        printf("|                       |");
        toxy(46,16);
        printf("-------------------------");
        while(1)
        {
            toxy(2,18);
            printf("请输入:");
            char ch;
            scanf("%s",&ch);
            if(ch=='1')
            {
                fclose(fp);
                booka headd;
                headd=creatbook();
                choice_menu();
                login_options(headd);
                break;
            }
            else if(ch=='2')
            {
                booka headd;
                headd=creatbook();
                choice_menu();
                login_options(headd);
            }
        }
    }
}

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值