精华内容
下载资源
问答
  • c语言图书馆管理系统
    千次阅读
    2021-05-23 03:19:54

    #include

    #include

    #include

    #include

    #include

    typedef int BOOL;

    typedef struct bookinfo

    {

    char number[15];/*产品编号*/

    char name[30];/*产品名称*/

    float price;/*单价*/

    char auther[20];/*作者*/

    BOOL isExit;/*存在状态*/

    char lendername[20];/*借书人姓名*/

    char lendersex[2];/*借书人性别*/

    char lendernum[15];/*借书人学号*/

    }BOOKINFO;

    void menu()

    {

    printf("\n\n\n\n\n\n\n");

    printf("\t\t\t图书管理系统\n");

    printf("\t\t\t1:新进图书基本信息的输入\n");

    printf("\t\t\t2:显示全部记录\n");

    printf("\t\t\t3:根据图书名称查询图书基本信息\n");

    printf("\t\t\t4:根据图书名称对撤销的图书信息进行删除\n");

    printf("\t\t\t5:按照图书名称从小大到排序\n");

    printf("\t\t\t6:统计某价格以上的图书数量\n");

    printf("\t\t\t7:列出所有未借出去的图书信息\n");

    printf("\t\t\t8:退出\n");

    }

    void choice_1_input_new()/*输入新进的图书信息*/

    {

    char choice;

    FILE *p;

    BOOKINFO newbook;

    system("cls");

    while(1)

    {

    printf("输入图书编号:");

    更多相关内容
  • c语言图书馆管理系统

    2018-05-04 16:16:03
    大一的时候的图书馆管理系统的课设代码,比较简单易懂。
  • C语言图书馆管理系统

    2021-07-26 11:46:20
    C语言图书馆管理系统 全部代码如下: #include <stdio.h> #include<string.h> #include<stdlib.h> #include <mysql.h> #pragma comment (lib,"libmysql.lib") //#pragma comment ( lib,...

    C语言图书馆管理系统

    全部代码如下:

    #include <stdio.h>
    #include<string.h>
    #include<stdlib.h>
    #include <mysql.h>
    #pragma comment (lib,"libmysql.lib")
    
    //#pragma comment ( lib,"xxx.lib" )  
    //表示鏈接xxx.lib這個庫,告訴編譯器你要用到xxx.lib庫
    //和在工程設置裡寫上鍊入xxx.lib的效果一樣,不過這種方法寫的程序別人在使用你的代碼的時候就不用再設置工程settings了。
    
    MYSQL mysql;
    MYSQL_RES *result;		//定义结果集变量
    MYSQL_ROW row;		//定义行变量
    char ch[2];
    
    void inquire() {
    	void menu();
    	printf("\n\t显示主清单<y/n>\n");
    	scanf("%s", ch);
    	if (strcmp(ch, "y") == 0 || strcmp(ch, "Y") == 0) {
    		menu();
    	}
    	else exit(0);
    }
    
    void ShowAll() {
    	system("cls");
    	mysql_init(&mysql);
    	mysql_query(&mysql, "set names 'utf8'");
    	if (!mysql_real_connect(&mysql, "localhost", "root", "密码", "db_book", 0, NULL, 0))
    		printf("\ncan't connect db_book!\n");
    	else
    	{
    		if (mysql_query(&mysql, "select * from tb_book"))
    		{
    			printf("查询失败\n");
    		}
    		else {
    			puts("\t|=====================================================|\n");
    			puts("\t|              显 示 所 有 图 书 信 息                |\n");
    			puts("\t|=====================================================|\n");
    			puts("\t|    图书编号       图书名       作者       出版社    |\n");
    			result = mysql_store_result(&mysql);
    			if (mysql_num_rows(result)) {
    				while (row = mysql_fetch_row(result))
    				{
    	printf("\t\t%s\t     %s\t         %s\t    %s\n", row[0], row[1], row[2], row[3]);
    				}
    			}
    			mysql_free_result(result);
    		}
    		puts("\t|=====================================================|\n");
    		getchar();
    		mysql_close(&mysql);//关闭连接
    	}
    }
    
    void AddBook() {
    	char id[10];
    	char bookname[10],author[10], bookconcern[10], *sql;
    	char dest[100] = { " " };
    	system("cls");
    	mysql_init(&mysql);
    	if (!mysql_real_connect(&mysql, "localhost", "root", "xin088748*", "db_book", 0, NULL, 0))
    		printf("can not connect\n");
    	else {
    		if (mysql_query(&mysql, "select * from tb_book")) {
    			printf("can not open\n");
    		}
    		else
    		{
    			result = mysql_store_result(&mysql);
    			mysql_num_rows(result);
    			row = mysql_fetch_row(result);
    			printf("\tID:");
    			scanf("%s", id);
    			if (mysql_num_rows(result)) {
    				do {
    					if (!strcmp(id, row[0])) {
    						printf("\t记录存在");
    						getchar();
    						mysql_free_result(result);
    						mysql_close(&mysql);
    						return;
    					}
    				} while (row = mysql_fetch_row(result));
    			}
    
    			printf("\t图书名:");
    			scanf("%s", bookname);
    			printf("\t作者:");
    			scanf("%s", author);
    			printf("\t出版社:");
    			scanf("%s", bookconcern);
    			sql = "insert into tb_book (ID,bookname,author,bookconcern) values('";
    			strcat(dest, sql);
    			strcat(dest, id);
    			strcat(dest, "','");
    			strcat(dest, bookname);
    			strcat(dest, "','");
    			strcat(dest, author);
    			strcat(dest, "','");
    			strcat(dest, bookconcern);
    			strcat(dest, "')");
    			if (mysql_query(&mysql, dest))
    				//fprintf(stderr, "error!", mysql_error(&mysql));
    				printf("error!\n");
    			else
    			{
    				mysql_free_result(result);
    			}
    		}
    		mysql_close(&mysql);//关闭连接
    	}
    }
    
    void ModifyBook() {
    	system("cls");
    	char dest[100];
    	mysql_init(&mysql);
    	mysql_query(&mysql, "set name 'utf8'");
    	if (!mysql_real_connect(&mysql, "localhost", "root", "xin088748*", "db_book", 0, NULL, 0)) { puts("can't net mysql\n");
    	return;
    	}
    	else {
    		char id[10],*sql;
    		char dest[100] = {" "};
    		printf("请输入你要修改的图书编号:");
    		scanf("%s", id);
    		sql = "select * from tb_book where ID = ";
    		strcat(dest, sql);
    		strcat(dest, id);
    		if (mysql_query(&mysql, dest)) {
    			printf("\n  查询数据表失败\n");
    		}
    		else {
    			result = mysql_store_result(&mysql);
    			if (mysql_num_rows(result)) {
    				puts("\t|=====================================================|\n");
    				puts("\t|              显 示 所 有 图 书 信 息                |\n");
    				puts("\t|=====================================================|\n");
    				puts("\t|    图书编号       图书名       作者       出版社    |\n");
    				while (row = mysql_fetch_row(result)) {
    					printf("\t\t%s\t     %s\t          %s\t     %s\n", row[0], row[1], row[2], row[3]);
    				}
    				printf("Mondify? <y/n>\n");
    				scanf("%s", ch);
    				if (!strcmp(ch, "Y") || !strcmp(ch, "y")) {
    					char bookname[10], author[10], bookconcern[10];
    					char dest1[100] = {" "};
    						printf("\t图书名:");
    						scanf("%s", bookname);
    						printf("\t作者:");
    						scanf("%s", author);
    						printf("\t出版社:");
    						scanf("%s", bookconcern);
    						sql = "update tb_book set bookname = '";
    						strcat(dest1, sql);
    						strcat(dest1, bookname);
    						strcat(dest1, "',author = '");
    						strcat(dest1, author);
    						strcat(dest1, "',bookconcern = '");
    						strcat(dest1, bookconcern);
    						strcat(dest1, "' where ID = '");
    						strcat(dest1, id);
    						strcat(dest1, "'");
    						if (mysql_query(&mysql,dest1)) printf("修改失败\n");
    						else printf("修改成功\n");
    				}
    			}
    			else
    			{
    				printf("没有发现要修改的信息\n");
    
    			}
    			mysql_free_result(result);
    		}
    	}
    	mysql_close(&mysql);
    }
    
    void DeleteBook() {
    	system("cls");
    	mysql_init(&mysql);
    	if (!mysql_real_connect(&mysql, "localhost", "root", "xin088748*", "db_book", 0, NULL, 0)) {
    		printf("can't net mysql\n");
    	}
    	else {
    		printf("你想要删除的编号:");
    		char id[10];
    		scanf("%s", id);
    		char dest[100] = { " " };
    		char *sql;
    		sql = "select * from tb_book where ID = ";
    		strcat(dest, sql);
    		strcat(dest, id);
    		if (mysql_query(&mysql, dest)) {
    			printf("\n  查询数据表失败\n");
    		}
    		else {
    			result = mysql_store_result(&mysql);
    			if (mysql_num_rows(result)) {
    				puts("\t|=====================================================|\n");
    				puts("\t|              显 示 所 有 图 书 信 息                |\n");
    				puts("\t|=====================================================|\n");
    				puts("\t|    图书编号       图书名       作者       出版社    |\n");
    				while (row = mysql_fetch_row(result)) {
    					printf("\t\t%s\t     %s\t          %s\t     %s\n", row[0], row[1], row[2], row[3]);
    				}
    				printf("Delete? <y/n>\n");
    				scanf("%s", ch);
    				if (!strcmp(ch, "Y") || !strcmp(ch, "y")) {
    					char dest1[100] = { " " };
    					sql = "delete from tb_book where ID = ";
    					strcat(dest1, sql);
    					strcat(dest1, id);	
    					printf("\n%s\t", dest1);
    					if (mysql_query(&mysql, dest1)) printf("删除失败\n");
    					else printf("删除成功\n");
    				}
    			}
    			else puts("没有查询到此数据\n");
    			mysql_free_result(result);
    		}
    	}
    	mysql_close(&mysql);
    }
    
    void Querybook() {
    	system("cls");
    	mysql_init(&mysql);
    	if (!mysql_real_connect(&mysql, "localhost", "root", "xin088748*", "db_book", 0, NULL, 0)) {
    		puts("can't net mysql\n");
    		return;
    	}
    	else {
    		char id[10];
    		char *sql, dest[100] = {" "};
    		printf("请输入要查询的图书编号:\n");
    		scanf("%s", id);
    		sql = "select * from tb_book where ID = ";
    		strcat(dest, sql);
    		strcat(dest, id);
    		if (mysql_query(&mysql, dest)) printf("查询失败\n");
    		else {
    			result = mysql_store_result(&mysql);
    			if (mysql_num_rows(result)) {
    				puts("\t|=====================================================|\n");
    				puts("\t|              显 示 所 有 图 书 信 息                |\n");
    				puts("\t|=====================================================|\n");
    				puts("\t|    图书编号       图书名       作者       出版社    |\n");
    				while (row = mysql_fetch_row(result)) {
    					printf("\t\t%s\t     %s\t          %s\t     %s\n", row[0], row[1], row[2], row[3]);
    				}
    			}
    			else puts("没有发现要查询的数据\n");
    			mysql_free_result(result);
    		}
    	}
    	mysql_close(&mysql);
    }
    
    void menu() {
    	puts("\t|=====================================================|\n");
    	puts("\t|         Welcome To Lemon Books System               |\n");
    	puts("\t|=====================================================|\n");
    	puts("\t|            1 - 显示所有图书信息                     |\n");
    	puts("\t|            2 - 添加图书信息                         |\n");
    	puts("\t|            3 - 修改图书信息                         |\n");
    	puts("\t|            4 - 删除图书信息                         |\n");
    	puts("\t|            5 - 查询图书信息                         |\n");
    	puts("\t|            6 - 退出图书系统                         |\n");
    	puts("\t|=====================================================|\n\n");
    
    	puts("\tENTER YOUR CHOICE<1-6>\n");
    	int i;
    	scanf("%d", &i);
    	while (i > 0 && i < 7) {
    		switch (i) {
    		case 1:ShowAll(); inquire(); break;
    		case 2:AddBook(); inquire(); break;
    		case 3:ModifyBook(); inquire(); break;
    		case 4:DeleteBook(); inquire(); break;
    		case 5:Querybook(); inquire(); break;
    		default:puts("enter error!please enter again\n"); exit(0);
    		}
    		scanf("%d",&i);
    	}
    }
    
    int main()
    {
    	menu();
    }
    

    喜欢的点个赞呗!

    展开全文
  • c语言图书馆管理系统
  • 一个用C语言做得图书馆管理系统,程序比较简单,没有连接数据库,也没界面,适合大一大二程序大作业时作参考。
  • 基于C语言图书馆管理系统编程设计

    千次阅读 2022-04-18 16:45:50
    本程序旨在训练学生的C语言基本编程能力,通过串联C语言输入输出、循环语句、子函数设计、数组、结构体等知识点,完成一个简单系统的设计开发。 2.系统功能 (1)通过菜单的形式实现人机交互界面 (2)实现录入图书...

    1.课程目的

    本程序旨在训练学生的C语言基本编程能力,通过串联C语言输入输出、循环语句、子函数设计、数组、结构体等知识点,完成一个简单系统的设计开发。

    2.系统功能

    (1)通过菜单的形式实现人机交互界面
    (2)实现录入图书基本信息
    (3)实现删除指定图书的基本信息
    (4)实现修改指定图书的基本信息
    (5)实现查询指定图书的基本信息

    3.设计思想

    (1)人机交互界面
    使用printf()和scanf()输入输出函数设计出主界面交互菜单,通过switch case语句判断输入的选项值,执行相对应得子函数。
    每一个选项执行完毕,需要考虑清屏(system(“cls”);),然后重新显示主界面,供用户下一次操作。
    设计程序退出菜单选项,用户执行其选项后,需要使用C语言文件操作,保存当前录入得全部图书信息。
    程序启动时需要打开上次保存得数据文件,读入到内存中,如果没有则新建一个文件用于程序退出时保存数据。
    人机交互界面可以自己设计,可以加上开发者信息,体现每个学生的差异。
    展示如下:
    在这里插入图片描述
    2)添加图书信息
    设计为单独的子函供主函数调用。
    定义一个结构体类型,包括七个成员变量(图书编号,图书名,作者名,出版单位,数量),并用该类型定义一个全局的结构体数组,供外部录入图书信息时存储。
    //定义一个全局变量来存储当前学生个数。
    添加图书信息时,需要从外部读入图书的图书编号,图书名,作者名,出版单位,数量,在获取图书编号时需要判断是否输入重复,图书个数变量加一,并根据当前图书个数将其保存在结构体数组对应序号的元素中。
    一个图书信息录入结束后可以提示用户输入Y/N来选择是否接着输入下一个图书。

    (3)显示全部图书信息
    通过对当前结构体数组进行遍历,并显示输出
    展示如下:

    在这里插入图片描述
    4)查找单个图书
    根据输入需要查找图书名,遍历当前结构体数组,判断是否含有一致图书名的元素,若有则显示输出对应的信息和成绩,否则显示无此书籍。
    显示如下:
    在这里插入图片描述
    (5)修改图书信息
    根据输入需要查找图书的编号,遍历当前结构体数组,判断是否含有一致编号的元素,
    若有则依次从外部读入用户所修改的值,保存到对应成员变量中。
    展示如下:
    在这里插入图片描述
    (6)删除指定图书
    根据输入需要查找图书的编号,遍历当前结构体数组,判断是否含有一致图书名称的元素,若有则从该元素之后依次将下一个元素赋值到上一个元素,直至最后一个赋值完成,最后当前图书个数变量减一。
    显示如下:
    在这里插入图片描述
    (7)借阅图书
    通过对当前结构体数组进行遍历,并显示输出
    显示如下:
    在这里插入图片描述
    (8)归还图书
    通过对当前结构体数组进行遍历,并显示输出
    显示如下:
    在这里插入图片描述
    全部代码如下

    #include<stdio.h>  //预处理 
    #include<string.h>
    #include<stdlib.h>
    #include<conio.h>
    
    //定义结构体 
    struct book
    {
    	int id;
    	char name[31];
    	char author[27];
    	char publish[31];
    	int store;
    	int total;
    	int user[10];
    	int days[10];
    }books[100];
    
    //显示整体标题标题函数 
    void page_title(char *menu_item)
    {
    	printf("\t\t图书馆管理系统\n\n-%s-\n\n",menu_item);
     } 
    //等待返回函数 
    void return_confirm()
    {
    	printf("\n请按任意键返回……\n");
    	getch();
    } 
    
    void book_add()
    {void page_title(char *menu_item);
    	int i;
    	system("cls");   //清屏 
    	page_title("注册新书"); 
    	for(i=0;i<2;i++)
    	{
    		
    		printf("序号:");
    		scanf("%d",&books[i].id);
    		printf("书名:");
    		scanf("%s",&books[i].name); 
    		printf("作者:");
    		scanf("%s",&books[i].author); 
    		printf("出版社:");
    		scanf("%s",&books[i].publish); 
    		printf("数量:");
    		scanf("%d",&books[i].total);
    		books[i].store=books[i].total;
    		printf("\n"); 		
    	} 
    	//return 0;
    }
    
    book_show()
    {
    	int i,flag=0;
    	system("cls");
    	for(i=0;i<100;i++)
    	{     
    		if(strlen(books[i].publish)!=0)
    		{
    			printf("序号:%d\t  ",books[i].id);
    			printf("书名:%s\t  ",books[i].name);
    			printf("作者:%s\t  ",books[i].author);
    			printf("出版社:%s\t  ",books[i].publish);
    			printf("存数:%d\t",books[i].store);
    			printf("总数:%d\n\n",books[i].total);
    			flag=1;
    			
    		}	
    	} 
    	
    	if(flag==0)
    	{
    		printf("没有找到相关书籍\n");
    		
    	}
    	
    	getch();
    	return i;	
    }
    
    
    int book_search()
    {
    	int n,i,flag=0;
    	char nam[30];
    	system("cls");
    	printf("请输入书名:");
    	scanf("%s",&nam);
    	for(i=0;i<100;i++)
    	{
    		if(strcmp(books[i].name,nam)==0)
    		{
    			printf("序号:%d\t  ",books[i].id);
    			printf("书名:%s\t  ",books[i].name);
    			printf("作者:%s\t  ",books[i].author);
    			printf("出版社:%s\t  ",books[i].publish);
    			printf("存数:%d\t",books[i].store);
    			printf("总数:%d\n",books[i].total);
    			n=i;
    			flag=1;
    			getch();
    			break;
    		}	
    		
    	} 
    		
    		if(flag==0)
    		{
    			printf("\n没有找到相关书籍\n");
    			getch();
    			return -1;
    		}
    	return n;
    }
    
    book_edit()
    {
    	int i,id_change;
    	system("cls");
    	page_title("修改图书信息:");
    	printf("输入要修改的图书id:");
    	scanf("%d",&id_change);
    	
    	for(i=0;i<100;i++)
    	{
    		if(books[i].id==id_change)
    		{
    		
    		printf("修改书名:");
    		scanf("%s",&books[i].name); 
    		printf("修改作者:");
    		scanf("%s",&books[i].author); 
    		printf("修改出版社:");
    		scanf("%s",&books[i].publish); 
    		printf("修改数量:");
    		scanf("%d",&books[i].total);
    		printf("修改图书信息成功\n");
    		books[i].store=books[i].total;
    		return i; 
    		}	
    	} 
    	
    	printf("\n没有找到相关信息\n");
    	getch();
    	return -1;
    }
    
    int book_del()
    {
    	int i,num,j;
    	system("cls");
    	page_title("删除图书");
    	printf("输入所要删除的书的id:");
    	scanf("%d",&num);
    	for(i=0;i<100;i++)
    	{
    		if(books[i].id==num)
    		{
    			for(j=i;j<100;j++)
    			{
    				books[j].id=books[j+1].id;
    				strcpy(books[j].name,books[j+1].name);
    				strcpy(books[j].publish,books[j+1].publish);
    				printf("该书已经删除了!!!\n");
    				getch();
    				return i;
    			}
    		}	
    	} 
    	printf("未找到相关记录\n");
    	getch();
    	return -1;
    }
    
    //借书 
    book_out()
    {void page_title(char *menu_item); 
    	int n,s,i,d;
    	system("cls");
    	page_title("借阅图书");
    	n=book_search();
    	if(n!=-1&&books[n].store>0)
    	{
    		//赋初值,全为零 
    	for(i=0;i<10;i++)
    		{
    			
    				books[n].user[i]=0;
    				books[n].days[i]=0;
    					
    		} 	 
    		
    		
    		printf("借书证序号:");
    		scanf("%d",&s);
    		printf("输入可借天数:");
    		scanf("%d",&d); 
    		
    		books[n].user[0]=s;
    		books[n].days[0]=d; 
    		books[n].store--;	
    	
    //		书上这有何意义 
    //		for(i=0;i<10;i++)
    //		{
    //			if(books[n].user[i]==0)
    //			{
    //				books[n].user[i]=0;
    //				books[n].days[i]=0;
    //				break;
    //			}
    //			books[n].store--;
    //		} 
      		
    
    
    	}
    	
    	else if(n!=-1&&books[n].store==0)
    	{
    		printf("此书已经完全借完\n\n");
    		getch();
    	}
    	else
    			;
    	
    	
    	return_confirm();
    }
    
     //归还图书
    void book_in()
    {
    	int n,s,i;
    	page_title("归还图书");
    	n=book_search();
    	printf("%d",n);
    	if(n!=-1&&books[n].store<books[n].total)
    	{
    		printf("借阅图书证列表\n");
    		for(i=0;i<10;i++)
    		{
    			if(books[n].user!=0)
    			{
    				printf("[%d]--%d天\n",books[n].user[i],books[n].days[i]);
    			}
    			printf("输入借书证号:");
    			scanf("%d",&s);
    			for(i=0;i<10;i++)
    			{
    				if(books[n].user[i]==s)
    				{
    					books[n].store++;
    				}
    			}
    		} 
    	}
    	
    	
    	if(n!=-1&&books[n].store==books[n].total)
    		{
    			printf("全部归还\n");
    		}
    	else if(n!=-1&&books[n].store<books[n].total)
    	{
    		printf("归还成功\n");
    	}
    	else 	
    			;
    	return_confirm();
    	
    }  
    
    main()
    {
    
    	menu:page_title("操作选单");
    	 printf("用数字选择操作\n\n");
    	 printf("\t\t1图书信息录入\t\t2显示图书\n");
    	 printf("\t\t3查询图书信息\t\t4修改图书信息\n");
    	 printf("\t\t5删除图书\t\t6借阅图书\n");
    	 printf("\t\t7归还图书\t\t8退出系统\n");
    	 printf("请按数字键:\n");
    	
    	switch(getchar())
    	{
    		case'1': book_add();break;
    		case'2': book_show();break;
    		case'3': book_search();break;
    		case'4': book_edit();break;
    		case'5': book_del();break;
    		case'6': book_out();break;
    		case'7': book_in();break;
    		case'8': exit(0);
    		
    	}    
    	goto menu;
     } 
    
    展开全文
  • 实习制作的C语言 EGE 图书管理系统 使用EGE 图形界面 实现全鼠标操作~ 实现了图书的借阅 归还 录入 查询 同时记录数据 希望你喜欢
  • c语言图书馆管理系统(功能众多)

    千次阅读 2021-10-30 23:19:37
    图书馆管理系统使用vs2019编译器c语言进行编写,首先对可能会使用到的c语言知识进行学习,再开始对程序的编写。 程序编写中首先理清程序框架,以程序框图的方法画出整个程序各个功能的连接与关系。然后实现界面...

    信息时代的到来,人类逐渐走向信息化,图书馆保存这大量信息资源,需要一个信息库对图书信息进行保存,图书馆管理系统应此而生。

    该图书馆管理系统使用vs2019编译器c语言进行编写,首先对可能会使用到的c语言知识进行学习,再开始对程序的编写。

    程序编写中首先理清程序框架,以程序框图的方法画出整个程序各个功能的连接与关系。然后实现界面设计,最终补充程序的基础功能和高级功能,最后对程序进行debug和优化程序逻辑,最终对程序进行最终测试,优化程序,最终完成图书馆管理系统。

    目前程序已实现众多功能,面向管理员:非明文登录,图书信息登录,图书信息修改,用户信息管理,浏览借阅信息,浏览用户信息。面向用户:用户的注册和登录,查看图书信息,浏览目前已借阅书籍,查看归还时间,借阅和归还书籍。

    程序的亮点,目前有动态展示界面,以及保持界面位置恒定不变,对管理员账号进行了重点保护。

    本程序可以放内置bgm,不过需要easyx的支持,且将文件名改为k(拓展名为MP3)并与程序放在同一目录。

    也可以使用软件的欢迎窗口,同样是easyx的功能,文件名为t(默认格式jfif,若要使用其他格式图片,请修改代码中的拓展名)。

    动态展示界面需要创建文件名为

    1.txt(展示登录与注册动态界面)

    用户.txt(展示用户操作动态界面)

    管理员.txt(展示管理员操作动态界面)

    并在里面写入你要展示的界面即可。

    话不多说,下面展示代码

    #define _CRT_SECURE_NO_WARNINGS 1
    #include<stdio.h>
    #include<stdlib.h>
    #include <string.h>
    #include<graphics.h>//图形库头文件
    #include<mmsystem.h>//多媒体设备接口文件
    #include<Windows.h>//调用sleep函数
    #include<time.h>
    #pragma comment(lib,"winmm.lib")
    #define MAX 80
    #include <conio.h>
    #pragma warning(disable:4996)
    
    
    /
    char null[20] = {""};
    char adminlogin[20];//用于接受当前登录用户的用户名
    struct joints* result_;
    
    
    //以下是图形库内容
    void PlayBGM()
    {
    	//1打开音乐
    	mciSendString("open k.mp3", 0, 0, 0);
    	//2播放音乐
    	mciSendString("play k.mp3", 0, 0, 0);
    	//3关闭音乐
    //	Sleep(3000);
    //mciSendString("close k.mp3", 0, 0, 0);
    }
    
     void playbgmandpicture(void)
    {
     initgraph(800, 517,SHOWCONSOLE);
    IMAGE img;
    loadimage(&img, "t.jfif");
    putimage(0, 0, &img);
    //setbkcolor(YELLOW);//设置背景色,考虑不使用暂时储存
    //cleardevice();//清空画板和上面配套使用
    PlayBGM();
    }
    
    struct admin
    {
    	char username[20];//用户账号名
    	char pin[20];//用户密码
    	char name[20];//用户借阅书的名字
    	int   Num;//用户借书数量
    	time_t start;//借书时间
    
    };
    
    struct joints
    {
    	struct admin data;
    	struct joints* next;
    };
    
    struct joints* _list = NULL;
    
    //制作表头
    struct joints* createHeadadmin_()
    {
    	struct joints* headNode = (struct joints*)malloc(sizeof(struct joints));//动态内存申请
    	headNode->next = NULL;
    	return headNode;
    }
    
    //制作节点
    struct joints* createNode_(struct admin data)
    {
    	struct joints* newNode = (struct joints*)malloc(sizeof(struct joints));
    	newNode->data = data;
    	newNode->next = NULL;
    	return newNode;
    }
    
    //表头法插入
    void insertNodeByHead_(struct joints* headNode, struct admin data)
    {
    	struct joints* newNode = createNode_(data);
    	newNode->next = headNode->next;
    	headNode->next = newNode;
    }
    
    
    //文件存储操作
    void saveInfoTofile_(const char* filename, struct joints* headNode)
    {
    	FILE* fp = fopen(filename, "w");
    	struct joints* pMove = headNode->next;
    	while (pMove != NULL)
    	{
    		fprintf(fp, "%s\t%s\t%s\t%d\t%d\n", pMove->data.username, pMove->data.pin, pMove->data.name, pMove->data.Num,pMove->data.start);
    		pMove = pMove->next;
    	}
    	fclose(fp);
    }
    //文件读操作
    void readInfoFromFile_(const char* filename, struct joints* headNode)
    {
    	FILE* fp = fopen(filename, "r");
    	if (fp == NULL)//如果文件不存在就创建一个文件
    	{
    		fp = fopen(filename, "w+");
    
    	}
    	struct admin tempData;
    	while (fscanf(fp, "%s\t%s\t%s\t%d\t%d\n", tempData.username, tempData.pin, tempData.name, &tempData.Num,&tempData.start)  !=  EOF)//EOF是文件结束标记,当没有读到文件结束标记时进行链表插入
    	{
    	insertNodeByHead_(_list, tempData);
    	}
    
    	fclose(fp);
    
    }
    
    //查找用户名
    struct joints* searchByusername(struct joints* headNode, char* temp)
    {
    	struct joints* posNode = headNode->next;
    	while (posNode != NULL && strcmp(posNode->data.username, temp))
    	{
    		posNode = posNode->next;
    	}
    	return posNode;
    }
    //查找密码
    struct joints* searchBypin(struct joints* headNode, char* temp)
    {
    	struct joints* posNode = headNode->next;
    	while (posNode != NULL && strcmp(posNode->data.pin, temp))
    	{
    		posNode = posNode->next;
    	}
    	return posNode;
    }
    
    //查找已经借阅书籍
    struct joints* searchByname(struct joints* headNode, char* temp)
    {
    	struct joints* posNode = headNode->next;
    	while (posNode != NULL && strcmp(posNode->data.pin, temp))
    	{
    		posNode = posNode->next;
    	}
    	return posNode;
    }
    
    //指定删除用户
    void shanchu_(struct joints* headNode, char* adminName)
    {
    	struct joints* posLeftNode = headNode;//删除节点左边
    	struct joints* posNode = headNode->next;//删除节点右边
    	while (posNode != NULL && strcmp(posNode->data.username, adminName))
    	{
    		posLeftNode = posNode;
    		posNode = posLeftNode->next;
    	}
    
    	//讨论查找的结果
    	if (posNode == NULL)
    	{
    		printf("未查询到此账号名,请重试!\n");
    		return;
    	}
    	else
    	{
    		printf("成功删除!!!\n");
    		posLeftNode->next = posNode->next;
    		free(posNode);
    		posNode = NULL;
    		return;
    
    	}
    }
    
    void printAdminList(struct joints* headNode)
    {
    	struct joints* pMove = headNode->next;
    	printf("\t\t  用户名\t\t\t已借书\t\t\t借书数量\t\t 剩余还书时间(小时)\n");
    	while (pMove)
    	{
    	
    		time_t end = time(NULL);
    		int borrowingtime = (end - pMove->data.start);//计算借阅时间所用目前时间
    		int timeleft = (1209600 - borrowingtime) / 3600;//计算借书剩余时间(小时)
    		if (pMove->data.Num == 0)
    		{
    			timeleft = 0;
    		}
    
    		printf("%25s%27s%25d%25d\n", pMove->data.username, pMove->data.name, pMove->data.Num, timeleft);
    		pMove = pMove->next;
    		
    	}
    }
    
    
    
    
    
    
    
    //
    //
    //
    //
    //
    //
    
    struct bookInfo
    {
    	float price;//书的价格
    	char name[20];//书的名字
    	int num;//书的数量
    };
    
    struct Node
    {
    	struct bookInfo data;
    	struct Node* next;
    };
    
    struct Node* list = NULL;
    
    
    
    //制作表头
    struct Node* createHeadadmin()
    {
    	struct Node* headNode = (struct Node*)malloc(sizeof(struct Node));//动态内存申请
    	headNode->next = NULL;
    	return headNode;
    }
    
    //制作节点
    struct Node* createNode(struct bookInfo data)
    {
    	struct Node* newNode = (struct Node*)malloc(sizeof(struct Node));
    	newNode->data = data;
    	newNode->next = NULL;
    	return newNode;
    }
    
    //表头法插入
    void insertNodeByHead(struct Node* headNode, struct bookInfo data)
    {
    	struct Node* newNode = createNode(data);
    	newNode->next = headNode->next;
    	headNode->next = newNode;
    }
    
    //打印链表
    void printList(struct Node* headNode)
    {
    	struct Node* pMove = headNode->next;
    	printf("书名\t\t\t价格\t\t\t数量\n");
    	while (pMove)
    	{
    		if(strlen(pMove->data.name) < 7)
    		printf(" %s\t\t\t%.1f\t\t\t%d\n", pMove->data.name, pMove->data.price, pMove->data.num);
    		else
    		{
    				printf(" %s\t\t%.1f\t\t\t%d\n", pMove->data.name, pMove->data.price, pMove->data.num);
    		}
    		
    		pMove = pMove->next;
    	}
    }
    
    //指定删除
    void sort(struct Node* headNode, char *bookName)
    {
    	struct Node* posLeftNode = headNode;//删除节点左边
    	struct Node* posNode = headNode->next;//删除节点右边
    	while (posNode != NULL && strcmp(posNode->data.name, bookName))//注意该行有问题
    	{
    		posLeftNode = posNode;
    		posNode = posLeftNode->next;
    	}
    
    		//讨论查找的结果
    		if (posNode == NULL)
    		{
    			printf("未查询到此书籍,请输入正确的书名!");
    			return;
    		}
    		else
    		{
    			printf("成功删除!!!");
    			posLeftNode->next = posNode->next;
    			free(posNode);
    			posNode = NULL;
    			return;
    
    		}
    	}
    
    //查找书籍
    struct Node* searchByName(struct Node* headNode, char* bookName)
    {
    	struct Node* posNode = headNode->next;
    	while (posNode != NULL && strcmp(posNode->data.name, bookName))
    	{
    		posNode = posNode->next;
    	}
    	return posNode;
    }
    
    //模糊搜索
    int mohusearchByName(struct Node* headNode, char* bookName)
    {
    	struct Node* posNode = headNode->next;
    	int i = 0;
    	printf("书名\t\t\t价格\t\t\t数量\n");
    	while (posNode != NULL )
    	{
    		if (strstr(posNode->data.name, bookName))
    		{
    			if (strlen(posNode->data.name) < 7)
    				printf(" %s\t\t\t%.1f\t\t\t%d\n", posNode->data.name, posNode->data.price, posNode->data.num);
    			else
    			{
    				printf(" %s\t\t%.1f\t\t\t%d\n", posNode->data.name, posNode ->data.price, posNode->data.num);
    			}
    			posNode = posNode->next;
    			i++;
    		}
    		else
    		{
    			posNode = posNode->next;
    		}
    
    		
    	}
    	return i;
    }
    
    void makemenu0()
    {
    	FILE* p;
    	char  c;
    	int b;
    	b = 10;
    	char a[] = { "管理员.txt" };
    	p = fopen(a, "r");
    	if (p != NULL)
    	{
    		for (; (c = fgetc(p)) != EOF;)
    		{
    			printf("%c", c);
    			Sleep(b);
    		}
    		fclose(p);
    	}
    }
    
    void makemenu1()
    {
    	FILE* p;
    	char  c;
    	int b;
    	b = 10;
    	char a[] = { "用户.txt" };
    	p = fopen(a, "r");
    	if (p != NULL)
    	{
    		for ( ;(c = fgetc(p)) != EOF;)
    		{
    			printf("%c", c);
    			Sleep(b);
    		}
    		fclose(p);
    	}
    }
    
    void menu()
    	{
    		FILE* p;
    		char  c;
    		int b;
    		b = 10;
    		char a[] = { "1.txt" };
    		p = fopen(a, "r");
    		if (p != NULL)
    		{
    			for (; (c = fgetc(p)) != EOF;)
    			{
    				printf("%c", c);
    				Sleep(b);
    			}
    			fclose(p);
    		}
    
    
    
    
    }
    //管理员后续界面
    void makemenu()
    {
    	printf("**************************************************\n");
    	printf("*    图书管理系统测试版                          *\n");
    	printf("*\t1.登记书籍                               *\n");
    	printf("*\t2.浏览书籍                               *\n");
    	printf("*\t3.排序书籍                               *\n");
    	printf("*\t4.删除书籍                               *\n");
    	printf("*\t5.查找书籍                               *\n");
    	printf("*\t6.模糊搜索                               *\n");
    	printf("*\t7.用户信息                               *\n");
    	printf("*\t8.用户删除                               *\n");
    	printf("*\t9.退出系统                               *\n");
    	printf("**************************************************\n");
    	printf("请首先输入数字1到9。\n");
    }
    //用户后续界面
    void makemenuj()
    {
    	time_t timer;
    	struct tm* Now;
    	time(&timer);
    	Now = localtime(&timer);//目前时间
    	time_t end = time(NULL);
    	struct joints* result_;
    	result_ = searchByusername(_list, adminlogin);
    	int borrowingtime = (end -  result_->data.start);//计算借阅时间所用目前时间
    	int timeleft = (1209600 - borrowingtime)/3600;//计算借书剩余时间(小时)
    	printf("**************************************************\n");
    	printf("*    图书管理系统测试版                          *\n");
    	printf("*\t1.浏览书籍                               *\n");
    	printf("*\t2.借阅书籍                               *\n");
    	printf("*\t3.归还书籍                               *\n");
    	printf("*\t4.排序书籍                               *\n");
    	printf("*\t5.查找书籍                               *\n");
    	printf("*\t6.模糊搜索                               *\n");
    	printf("*\t7.退出系统                               *\n");
    	printf("**************************************************\n");
    	printf("请首先输入数字1到7。\n");
    	if (result_->data.Num > 0)
    	{
    		printf("\n\n\n\t\t目前已借阅书籍为%s\n", result_->data.name);
    		printf("\n\n\n\t\t目前已借阅书籍数量为%d\n", result_->data.Num);
    		printf("\n\n\n\t\t当前的本地时间和日期:%s\n", asctime(Now));
    		printf("\n\n\n\t\t请在%d小时内归还书籍\n", timeleft);//129600秒为14天,计算14天与借书时间的差
    	}
    	else
    	{
    		printf("\n\n\n\t\t当前的本地时间和日期:%s\n", asctime(Now));
    		printf("\n\n\n\t\t您暂未借任何书籍!\n");
    	}
    }
    
    //文件存储操作
    void saveInfoTofile(const char* filename, struct Node* headNode)
    {
    	FILE* fp = fopen(filename, "w");
    	struct Node* pMove = headNode -> next;
    	while (pMove != NULL)
    	{
    		fprintf(fp, "%s\t%f\t%d\n", pMove->data.name, pMove->data.price, pMove->data.num);
    		pMove = pMove->next;
    	}
    	fclose(fp);
    }
    //文件读操作
    void readInfoFromFile(const char* filename, struct Node* headNode)
    {
    	FILE* fp = fopen(filename, "r");
    	if (fp == NULL)//如果文件不存在就创建一个文件
    	{
    		fp = fopen(filename, "w+");
    
    	}
    	struct bookInfo tempData;
    	while (fscanf(fp, "%s\t%f\t%d\n", tempData.name, &tempData.price, &tempData.num) != EOF)//EOF是文件结束标记,当没有读到文件结束标记时进行链表插入
    	{
    		insertNodeByHead(list, tempData);
    	}
    	
    	fclose(fp);
    
    }
    //排序
    void sort(struct Node* headNode)
    {
    	for (struct Node* p = headNode->next; p != NULL; p = p->next)
    	{
    		for (struct Node* q = headNode->next; q->next != NULL; q = q->next)
    		{
    			if (q->data.price > q->next->data.price)
    			{
    				struct bookInfo tempData = q->data;
    				q->data = q->next->data;
    				q->next->data = tempData;
    
    			}
    		}
    	}
    	printList(headNode);
    }
    //管理员操作界面
    void keydown0()
    {
    	int key = 0;
    	struct bookInfo tempBook;//创建一个临时变量储存书籍信息
    	struct admin temp;//创建一个临时账户
    	struct Node* result;
    	int i ;
    	scanf("%d", &key);
    	system("cls");
    
    
    	switch (key)
    	{
        
    	case 1:
    	{
    		char str1[100];
    
    		gets_s(str1);
    
    		printf("\t《登记书籍》\n");
    		printf("输入书籍的信息(书名,价格,数量)\n温馨提示:价格请控制在200以内\n");
    
    		scanf("%s%f%d", tempBook.name, &tempBook.price, &tempBook.num);
    
    		//下方代码检验是否已有书籍
    		result = searchByName(list, tempBook.name);
    		if (result != NULL)
    		{
    			printf("该书籍已经登录,如需修改书籍信息,请先删除书籍再登录!\n");
    
    		}
    
    
    		else
    		{
    
    			int a = tempBook.price;
    			int b = tempBook.num;
    			if ((a >= 200 || a <= 0) || (b >= 200 || b <= 0))
    			{
    				printf("输入格式错误");
    
    			}
    
    			else
    			{
    				insertNodeByHead(list, tempBook);
    				saveInfoTofile("bookinfo.txt", list);
    				printf("登记成功\n");
    			}
    		}
    	}
    	char str9[100];
    
    	gets_s(str9);
    		break;
    	case 2:
    		char str2[100];
    
    		gets_s(str2);
    
    		printf("\t《浏览书籍》\n");
    		printList(list);
    		break;
    	
    	case 3:
    		char str5[100];
    
    		gets_s(str5);
    
    		printf("\t《排序书籍》\n");
    		sort(list);
    		break;
    	case 4:
    		char str6[100];
    
    		gets_s(str6);
    
    		printf("\t《删除书籍》\n");
    		printf("请输入删除书籍的名字");
    		scanf("%s", tempBook.name);
    		sort(list, tempBook.name);// 删除链表中内容
    		saveInfoTofile("bookinfo.txt", list);//存储文件
    		break;
    	case 5:
    		char str7[100];
    
    		gets_s(str7);
    
    		printf("\t《查找书籍》\n");
    		printf("请输入你要查询的书名");
    		scanf("%s", tempBook.name);
    		result = searchByName(list, tempBook.name);
    		if (result == NULL)
    		{
    			printf("未找到相关书籍!\n");
    		}
    		else
    		{
    			if (strlen(result->data.name) < 7)
    				printf(" %s\t\t\t%.1f\t\t\t%d\n", result->data.name, result->data.price, result->data.num);
    			else
    			{
    				printf(" %s\t\t%.1f\t\t\t%d\n", result->data.name, result->data.price, result->data.num);
    			}
    
    			char str8[100];
    
    			gets_s(str8);
    
    		}
    		
    		break;
    
    	case 6://模糊搜索
    		char str62[100];
    
    		gets_s(str62);
    		printf("\t《模糊搜索》\n");
    		printf("请输入你要查询的书名的关键字");
    		scanf("%s", tempBook.name);
    		i = mohusearchByName(list, tempBook.name);
    		if (i == 0)
    		{
    			printf("未找到相关书籍!\n");
    		}
    		char str100[100];
    
    		gets_s(str100);
    		break;
    
    
    	case 7://用户信息查询
    		char str29[100];
    
    		gets_s(str29);
    		printf("\t\t\t\t\t《查询用户信息》\n");
    		printAdminList(_list);
    		break;
    	case 8://用户删除
    		printf("《用户删除》\n");
    
    		char str16[100];
    		gets_s(str16);
    		printf("请输入删除用户的账号名\n");
    		scanf("%s", temp.name);
    		shanchu_(_list, temp.name);// 删除链表中内容
    		saveInfoTofile_("admin.txt", _list);//存储文件
    
    		char str101[100];
    		gets_s(str101);
    
    		break;
    
    	case 9://曾是case0,但case0会触发default的条件所以换成case10
    		printf("\t《退出》\n");
    		printf("退出成功!");
    		system("pause");
    		exit(0);  //退出程序
    		break;
    
    
    	default:
    		printf("\t《error》\n");
    
    		char str[100];
    
    		gets_s (str);
    
    		break;
    
    
    	}
    
    }
    //用户操作界面
    void keydown1()
    {
    	int key = 0;
    	struct bookInfo tempBook;//创建一个临时变量储存书籍信息
    	struct Node* result;
    	struct joints* result_;
    	result_ = searchByusername(_list, adminlogin);
    	scanf("%d", &key);
    	int i;
    	system("cls");
    
    
    	switch (key)
    	{
    
    	case 1:
    		char str2[100];
    
    		gets_s(str2);
    
    		printf("\t《浏览书籍》\n");
    		printList(list);
    		break;
    	case 2:
    		char str3[100];
    		gets_s(str3);
    		printf("\t《借阅书籍》\n");
    		system("cls");
    		printList(list);
    		printf("请输入借阅的书名:\n");
    		scanf("%s", tempBook.name);
    		result = searchByName(list, tempBook.name);
    		if (result == NULL)
    		{
    			printf("没有该书籍,无法借阅\n");
    		}
    		else
    		{
    			if (result->data.num > 0)
    			{
    				
    				if (result_->data.Num == 2)
    				{
    					printf("您已借俩本书,请至少归还一本书后再借书!\n");
    				}
    				else
    				{
    					if (strstr(result_->data.name, tempBook.name) != NULL)
    					{
    						printf("您已借阅该书籍,请不要重复借阅该书!\n");
    						break;
    					}
    					result->data.num--;
    					printf("借阅成功\n");
    					result_->data.Num++;
    					strcat(result_->data.name, tempBook.name);
    					result_->data.start = time(NULL);
    				}
    			}
    			else
    			{
    				printf("当前书籍已借完!\n请稍候几天再借阅。\n");
    			}
    		}
    		saveInfoTofile_("admin.txt", _list);
    		saveInfoTofile("bookinfo.txt", list);
    		break;
    	case 3:
    		char str4[100];
    		gets_s(str4);
    		printf("\t《归还书籍》\n");
    		printf("请输入您要归还的书籍!\n");
    		scanf("%s", tempBook.name);
    		result = searchByName(list, tempBook.name);
    		if (result == NULL)
    		{
    			printf("没有该书籍,可能不是该图书馆书籍。\n");
    		}
    		else
    		{
    			result->data.num++;
    			result_->data.Num--;
    			char* p;
    			char temp[85];
    			while ((p = strstr(result_->data.name, tempBook.name)) != NULL)
    			{ 
    				*p = '\0'; 
    				strcpy(temp, p + strlen(tempBook.name));
    				strcat(result_->data.name, temp);
    			}
    
    			saveInfoTofile_("admin.txt", _list);
    			saveInfoTofile("bookinfo.txt", list);
    			printf("归还成功\n");
    
    		}
    
    		break;
    	case 4:
    		char str5[100];
    
    		gets_s(str5);
    
    		printf("\t《排序书籍》\n");
    		sort(list);
    		break;
    	
    	case 5:
    		char str7[100];
    
    		gets_s(str7);
    
    		printf("\t《查找书籍》\n");
    		printf("请输入你要查询的书名");
    		scanf("%s", tempBook.name);
    		result = searchByName(list, tempBook.name);
    		if (result == NULL)
    		{
    			printf("未找到相关书籍!\n");
    		}
    		else
    		{
    			if(strlen(result->data.name) < 7)
    				printf(" %s\t\t\t%.1f\t\t\t%d\n", result->data.name, result->data.price, result->data.num);
    			else
    			{
    			printf(" %s\t\t%.1f\t\t\t%d\n", result->data.name, result->data.price, result->data.num);
    			}
    			
    
    
    
    			char str8[100];
    
    			gets_s(str8);
    
    		}
    
    		break;
    
    	case 6://模糊搜索
    		printf("\t《模糊搜索》\n");
    		printf("请输入你要查询的书名的关键字");
    		scanf("%s", tempBook.name);
    		i = mohusearchByName(list, tempBook.name);
    		if (i == 0)
    		{
    			printf("未找到相关书籍!\n");
    		}
    		char str100[100];
    
    		gets_s(str100);
    		break;
    
    
    	case 7://曾是case0,但case0会触发default的条件所以换成case7
    		printf("\t《退出》\n");
    		printf("退出成功!");
    		system("pause");
    		exit(0);  //退出程序
    		break;
    
    
    
    	default:
    		printf("\t《error》\n");
    
    		char str[100];
    
    		gets_s(str);
    
    		break;
    
    	}
    
    }
    
    //注册账号
    int registers()  
    {
    	
    	struct admin temp;//创建一个临时变量储存注册账号
    	struct joints* result;
    	char password1[20];
    	char password2[20];
    	
    
    		printf("\t《注册账号》\n");
    		printf("请输入账号名\n");
    
    		scanf("%s", temp.username);
    		
    		//下方代码检验是否已有账号
    		result = searchByusername(_list, temp.username);
    		if (result != NULL)
    		{
    			printf("该账号已经注册,请使用其他账号名注册\n");
    			system("pause");
    			return 0;
    		}
    		
    		printf("请输入您的密码\n");
    		scanf("%s", password1);
    		
    		printf("请再次输入您的密码\n");
    		scanf("%s", password2);
    		
    			if(strcmp(password1, password2) == 0)
    			{
    				strcpy(temp.pin ,password1);
    				strcpy(temp.name, null);
    				temp.Num = 0;
    				temp.start = 0;
    				
    				insertNodeByHead_(_list, temp);
    				saveInfoTofile_("admin.txt", _list);
    				printf("账号注册成功,您的用户名是%s\n",temp.username);
    				printf("您的密码是%s\n", password1);
    			}
    			else
    			{
    			
    				printf(" 俩次密码不一致,请重新注册\n");
    				return 0;
    				
    			}
    	char str9[100];
    
    	gets_s(str9);
    
    	return 0;
    
    }
    //用户账号验证 
    int adminyanzheng()
    {
    	char tempusername[20];
    	char temppin[20];
    
    	printf("请输入您的账号名\n");
    	scanf("%s", tempusername);
    	if(searchByusername(_list, tempusername)  == NULL)
    	{
    		system("cls");
    		printf("您输入的账号名错误!\n");
    		system("pause");
    		return 0;
    	}
    	else 
    	{
    		printf("请输入您的密码\n");
    		scanf("%s", temppin);
    		if(searchBypin(_list, temppin) == NULL)
    		{
    			system("cls");
    			printf("您输入的密码错误!\n");
    			system("pause");
    			return NULL;
    		}
    	}
    	strcpy(adminlogin, tempusername);
    	return 1;
    }
    //管理员账号验证
    int gmyanzheng()
    {
    	
    	int username = 123456;
    	int un;
    	int i = 0;
    	char key;
    	char password[7] = "";
    	char password1[7] = "123456";
    	printf("\t登录管理员账号\n");
    	printf("请输入用户名\n");
    	
    	scanf("%d", &un);
    	char str[100];
    	gets_s(str);
    	if (un == username)
    	{
    		printf("请输入您的六位密码\n");
    		while ((key = getch()) != '\r')
    		{
    			if (i < 7)
    			{
    				if (key == '\b')
    				{
    					i--;
    					printf("\b \b");
    				}
    				else
    				{
    					password[i++] = key;
    					putchar('*');
    				}
    			}
    		}
    	
    
    		if (strcmp(password, password1) == 0)
    		{
    			printf("登陆成功!\n");
    			system("pause");
    			return 1;
    		}
    		else
    		{
    			printf("密码错误!\n");
    			system("pause");
    			return 0;
    		}
    	}
    	else
    	{
    		printf("用户名错误!\n");
    		system("pause");
    			return 0;
    	}
    
    	return 1;
    }
    
    //用户登录系统
    void  Input_loginadmin()
    {
    	if (adminyanzheng() == 1)
    	{
    		system("cls");
    		makemenu1();//初次展示界面
    		keydown1();
    		while (1)
    		{
    			system("pause");
    			system("cls");
    			makemenuj();
    			keydown1();
    		}
    	}
    }
    //管理员登录系统
    void  Input_logingm()
    {
    	system("cls");
    	
    	printf("请注意您只有三次登录机会\n");
    	system("pause");
    	if (gmyanzheng() == 1)//返回值1则验证成功
    	{
    		system("cls");
    		makemenu0();//初次展示界面
    		keydown0();
    
    		while (1)
    		{
    			system("pause");
    			system("cls");
    			makemenu();
    			keydown0();
    		}
    	}
    	system("cls");
    	printf("登录失败您还有俩次机会\n");
    	system("cls");
    	if (gmyanzheng() == 1)//返回值1则验证成功
    	{
    		system("cls");
    		makemenu0();//初次展示界面
    		keydown0();
    
    		while (1)
    		{
    			system("pause");
    			system("cls");
    			makemenu();
    			keydown0();
    		}
    	}
    	system("cls");
    	printf("登陆失败您还有一次机会\n");
    	printf("本程序设有惩罚机制请不要恶意尝试管理员密码\n");
    	printf("本程序设有惩罚机制请不要恶意尝试管理员密码\n");
    	printf("本程序设有惩罚机制请不要恶意尝试管理员密码\n");
    	system("cls");
    	if (gmyanzheng() == 1)//返回值1则验证成功
    	{
    		system("cls");
    		makemenu0();//初次展示界面
    		keydown0();
    
    		while (1)
    		{
    			system("pause");
    			system("cls");
    			makemenu();
    			keydown0();
    		}
    	}
    	printf("登陆失败无机会重试,即将关机\n");
    	system("shutdown -s -t 6");
    }
    
    void key()
    {
    	int k = 0;
    	scanf("%d", &k);
    	system("cls");
    
    	switch (k)
    	{
    	case 1:
    	{	
    	char str21[100];
    	gets_s(str21);
    	registers();
    	break;
    	}
    	case 2:
    	{	
    	char str22[100];
    	gets_s(str22);
    	Input_loginadmin();
    	break;
    	}
    	case 3:
    	{	
    	char str23[100];
    	gets_s(str23);
    	Input_logingm();
    	break;
    	}
    	case 4:
    	{	
    	char str24[100];
    	gets_s(str24);
    	printf("退出成功!");
    	system("pause");
    	exit(0);
    	}
    
    	break;
    	default:
    	{	
    	printf("\t《error》\n");
    	char str25[100];
    	gets_s(str25);
    	break;
    	}
    	}
    }
    int main()
    {
    	system("title 九日图书管理系统");
    	system("color f0");
    	playbgmandpicture();
    
    list = createHeadadmin();
    readInfoFromFile("bookinfo.txt", list);//将文件读到链表中
    _list = createHeadadmin_();
    readInfoFromFile_("admin.txt", _list);//将文件读到链表中
    //登录系统
    	
    	while (1)
    	{
    		menu();
    		key();
    		char str25[100];
    
    		gets_s(str25);
    		system("cls");
    		system("pause");
    		system("cls");
    	}
    	
    	return 0;
    }

    展开全文
  • 主要为大家详细介绍了C语言链表实现图书管理系统,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
  • 图书管理系统
  • C语言的简单的图书管理系统,没有使用数据库,使用的文件存储信息,适合大一新生做的课程设计
  • 图书管理系统的设计与实现,通过这次设计可以很好的了解C语言的各种使用方法,各种函数的使用。
  • 1.软件:Dev-C++ 2.代码共298行 3.功能:增删改查、全输出、借书 4.用结构体数组写的,注释多、结果页面整洁...5.大家如果有一天用得到,大家可以先收藏着,对于才学C语言的,可以先收藏着,代码很友好,注释多,理解快
  • 本人自己的C语言期末大作业,有需要参考的可以自行下载。 含实验报告,纯自制。 注: 本程序没有登录机制,打开即用; 本程序不含输入数据的约束,请注意输入数据输入格式是否符合要求; 请将压缩包里的所有文件解压...
  • 本文实例为大家分享了C语言实现图书管理系统的具体代码,供大家参考,具体内容如下 一、分析过程 首先此程序需要实现输入、增加、删除、查询、输出的五大功能,则首先需要设置一个菜单键,让用户可以选择不同的功能...
  • 大一下学期工程实践课程的...3、管理员:图书入库,清除库存,统计书籍数量,统计读者借书情况,在馆书籍排序,读者排序。4、读者:查看个人借阅信息,借书,还书,按书名、作者、出版社检索图书,查询全部在馆图书
  • C语言图书馆管理系统课程设计报告
  • 这是本人大一第二学期初C语言课程设计的作品,嘿嘿,本来以为已经找不到原稿了,今天无意中竟然在QQ网络硬盘中找到了当初的teta版,发布于此,以作纪念。 C 源代码如下: #include #include #include struct book{ ...
  • 基于C语言图书馆管理系统.doc
  • C语言图书馆管理系统课程设计报告.pdf
  • C语言图书馆管理系统课程设计报告报告.doc
  • C语言图书馆管理系统课程设计报告12.pdf
  • C语言图书馆管理系统课程设计报告12参考.pdf
  • 基于vc++的C语言图书馆管理系统课程设计报告
  • C语言图书馆管理系统

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 29,010
精华内容 11,604
关键字:

c语言图书馆管理系统