图书管理系统C语言_c语言图书信息管理系统

图书管理系统C语言_c语言图书信息管理系统【主要内容】开发一个图书信息管理系统,图书信息包括:图书编号、书名、作者、出版社、类别、出版时间、价格等基本信息(也可以根据自己情况进行扩充,比如是否借出、库存量等)。使之能提供以下基本功能:(1)图书信息录入功能(图书信息用文件保存)--输入(2)图书信息浏览功能--输出(3)查询功能(至少一种查询方式)、排序功能(至少一种排序方式):①按书名查询②按作者名查询按照价钱排序按出版时间排序等等(4)图书信息的删除与修改扩展功能:可以按照自己的程度进行扩展。比如(1)简…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE稳定放心使用

 

【主要内容】

开发一个图书信息管理系统,图书信息包括:图书编号、书名、作者、出版社、类别、出版时间、价格等基本信息(也可以根据自己情况进行扩充,比如是否借出、库存量等)。使之能提供以下基本功能:

(1)图书信息录入功能(图书信息用文件保存)--输入

(2)图书信息浏览功能--输出

(3)查询功能(至少一种查询方式)、排序功能(至少一种排序方式):

①按书名查询 ②按作者名查询 按照价钱排序 按出版时间排序等等

(4)图书信息的删除与修改

扩展功能:可以按照自己的程度进行扩展。比如(1)简单的权限处理 (2)报表打印功能(3)甚至根据自己情况,可以加上学生信息,并扩充为图书借阅系统。(4)模糊查询 (5)综合查询 (6)统计功能 比如统计处某一类别的图书信息 或 筛选出小于指定数量库存的图书信息等等。

【概要设计】

1 图书录入可以录入图书名,作者,出版社,出版日期,价格!录入图书编号时函数就会判断此编号是否存在,若存在不能成功录入!

2 图书浏览可以浏览全部图书!

3 图书查询提供按图书编号模糊查询,按图书名关键字查询,按图书编号精确查询,按图书名精确查询!模糊查询和关键字查询事通过比价字符串的相似度而实现的!

4 修改删除图书可以通过图书查询来查询操作的图书编号,通过编号操作!函数会提示用户是否调用图书查询来找到自己想要操作的图书的编号。如果某一本图书已经被借阅那么用户就不能删除该图书!

5 借阅图书通过学号和图书编号进行借阅!如果该学号是第一次借阅那么会提示用户输入自己的姓名,并存入student.txt,方便以后借阅与归还!

6 归还图书先提供学号,然后程序会输出该学号借阅的所有图书,然后再通过编号归还!

7 借阅查询可查询某个学生已借但未归还的图书!

 

【代码如下】(运行结果省略)

 

#include<stdio.h>
#include<stdlib.h>
#include<string.h>	
FILE *fp,*fpj,*fps;
int i,xuan;
typedef struct book{
	char name[10];
	char num[10];
	char writer[10];
	int date;
	char press[10];
	float price;
	char leibie[10];
	int kucun;
	int jiechu;
}bo;
typedef struct student{
	char name[10];
	char num[10];
	int jie;
}st;
typedef struct jieyue{
	char snum[10];
	char bnum[10];
}ji;
void menu()//菜单
{
	printf("\n\n");
	for(i=0;i<80;i++)
		printf("#");
	printf("\n\n");	
	printf("\t\t1-----图书录入\t\t\t");
	printf("2-----图书浏览\n\n");
	printf("\t\t3-----图书查询\t\t\t");
	printf("4-----修改删除图书\n\n");
	printf("\t\t5-----借阅图书\t\t\t");
	printf("6-----归还图书\n\n");
	printf("\t\t7-----借阅查询\t\t\t\n");
	printf("\n\t\t\t\t输入其他任意键退出\n");
	printf("\n\n");
	for(i=0;i<80;i++)
		printf("#");
	printf("\n\n");
}
void end()//录入图书
{
	bo boo,booq;
	printf("请输入图书名(最多十个字符):");
	scanf("%s",boo.name);
	do{
		i=1;
		printf("请输入图书编号(最多十个字符):");
		scanf("%s",boo.num);
		fread(&booq,sizeof(bo),1,fp);
		while(!feof(fp)){
			if(strcmp(booq.num,boo.num)==0){
				printf("\n该编号已存在请重新输入\n\n");
				i=0;
				break;
			}
			fread(&booq,sizeof(bo),1,fp);
		}
		rewind(fp);
	}while(i==0);
	printf("请输入图书作者(最多十个字符):");
	scanf("%s",boo.writer);
	printf("请输入图书出版日期(例如2001年5月3日出版则输入20010503):");
	scanf("%d",&boo.date);
	printf("请输入图书价格:");
	scanf("%f",&boo.price);
	printf("请输入图书出版社(最多十个字符):");
	scanf("%s",boo.press);
	printf("请输入图书类别(最多十个字符):");
	scanf("%s",boo.leibie);
	printf("请输入图书入库数:");
	scanf("%d",&boo.kucun);
	boo.jiechu=0;
	getchar();
	fseek(fp,0,2);
	fwrite(&boo,sizeof(bo),1,fp);
	printf("\n录入成功!回到主菜单");
	system("pause");
}
void print()//浏览图书
{
	bo boo;
	printf("书名      编号      作者      价格      出版社    类别      原始库存  借出\n");
	fread(&boo,sizeof(bo),1,fp);
	while(feof(fp)==0){
		printf("%-10s%-10s%-10s%-10.2f%-10s%-10s%-10d%-4d\n",boo.name,boo.num,boo.writer,boo.price,boo.press,boo.leibie,boo.kucun,boo.jiechu);
		fread(&boo,sizeof(bo),1,fp);
		}
	printf("\n浏览图书完毕!回到主菜单");
	system("pause");
}
int dui(char *p,char *p1)//对比两个字符串的相关度(用于精确搜索)
{
	int bao=0,fan=1;
	for(i=0;i<(int)strlen(p1);i++){
		if(p[0]==p1[i]){
			bao=i;
			break;
		}
	}
	if((int)strlen(p)>(int)strlen(p1)-bao+1)
		return 0;
	else
		for(i=0;i<(int)strlen(p);i++){
			if(p[i]!=p1[bao+i])
				fan=0;
		}
		return fan;
}
void find()//查询图书
{
	char hao[10];
	int fan=1;
	int bian=1;
	bo boo;
	printf("请选择查询类型:\n\n\t\t1-按图书编号模糊查询     2-按图书名关键字查询\n");
	printf("                \n\t\t3-按图书编号精确查询     4-按图书名精确查询\n\n代码:");
	scanf("%d",&xuan);
	if(xuan==1){
		printf("请输入编号(最多十个字符):");
		scanf("%s",hao);
		printf("序号 书名      编号      作者      价格      出版社    类别      原始库存  借出\n");
		fread(&boo,sizeof(bo),1,fp);
		while(!feof(fp)){
			fan=dui(hao,boo.num);
			if(fan==1){
				printf("%-5d%-10s%-10s%-10s%-10.2f%-10s%-10s%-10d%-4d\n",bian,boo.name,boo.num,boo.writer,boo.price,boo.press,boo.leibie,boo.kucun,boo.jiechu);
				bian++;}
			fread(&boo,sizeof(bo),1,fp);
		}
	}
	else if(xuan==2){
		printf("请输入图书名关键字(最多十个字符):");
		scanf("%s",hao);
		printf("序号 书名      编号      作者      价格      出版社    类别      原始库存  借出\n");
		fread(&boo,sizeof(bo),1,fp);
		while(!feof(fp)){
			fan=dui(hao,boo.name);
			if(fan==1)
				printf("%-5d%-10s%-10s%-10s%-10.2f%-10s%-10s%-10d%-4d\n",bian,boo.name,boo.num,boo.writer,boo.price,boo.press,boo.leibie,boo.kucun,boo.jiechu);
			fread(&boo,sizeof(bo),1,fp);
		}
	}
	else if(xuan==4){
		printf("请输入图书名(最多十个字符):");
		scanf("%s",hao);
		printf("序号 书名      编号      作者      价格      出版社    类别      原始库存  借出\n");
		while(!feof(fp)){
			if(strcmp(hao,boo.name)==0)
				printf("%-5d%-10s%-10s%-10s%-10.2f%-10s%-10s%-10d%-4d\n",bian,boo.name,boo.num,boo.writer,boo.price,boo.press,boo.leibie,boo.kucun,boo.jiechu);
			fread(&boo,sizeof(bo),1,fp);
		}

	}
	else if(xuan==3){
		printf("请输入图书编号(最多十个字符):");
		scanf("%s",hao);
		printf("序号 书名      编号      作者      价格      出版社    类别      原始库存  借出\n");
		while(!feof(fp)){
			if(strcmp(hao,boo.num)==0)
				printf("%-5d%-10s%-10s%-10s%-10.2f%-10s%-10s%-10d%-4d\n",bian,boo.name,boo.num,boo.writer,boo.price,boo.press,boo.leibie,boo.kucun,boo.jiechu);
			fread(&boo,sizeof(bo),1,fp);
		}

	}
	else{
		printf("输入错误,正在退出!");
		system("pause");
		return;
	}
	printf("\n查询图书完毕! ");
	system("pause");
}
void del()//修改删除图书
{
	FILE *p;
	ji jie;
	int j=0;
	char num[10];
	bo boo,booq;
	int xu;
	char or;
	char cha[10];
	printf("\n删除修改图书只能通过图书编号来完成!\n是否调用图书查询来查询你要操作的图书编号(Y/N)\n");
	getchar();
	scanf("%c",&or);
	if(or=='Y'||or=='y'){
		find();
		rewind(fp);}
	printf("\n请输入你要操作的图书的编号(如果输入错误的编号,将不做任何操作):");
	scanf("%s",cha);
	fread(&jie,sizeof(ji),1,fpj);
	while(!feof(fpj)){
		if(strcmp(jie.bnum,cha)==0){
			printf("\n这本书已有人借阅,不能操作!\n正在退出 ");
			system("pause");
			return;
		}
		fread(&jie,sizeof(ji),1,fpj);
	}
	printf("\n\n1-删除图书   2-修改图书\n\n");
	printf("请选择操作类型:");
	scanf("%d",&xuan);
	fread(&boo,sizeof(bo),1,fp);
	p=fopen("c:\\books1.txt","wb+");
	while(!feof(fp)){
		j++;
		if(strcmp(boo.num,cha)==0){	
			if(xuan==2){			
				printf("\n\n1-书名    2-编号    3-作者    4-价格    5-出版社   6-类别    7-库存\n\n");
				printf("请选择要修改的项目:");
				scanf("%d",&xu);
				if(xu==1){
					printf("你要把%s改为:",boo.name);
					scanf("%s",boo.name);}
				else if(xu==2){
					do{
						i=1;
						printf("你要把%s改为:",boo.num);
						scanf("%s",num);
						rewind(fp);
						fread(&booq,sizeof(bo),1,fp);
						while(!feof(fp)){
							if(strcmp(booq.num,num)==0){
								printf("\n该编号已存在请重新输入\n\n");
								i=0;
								break;
							}
							fread(&booq,sizeof(bo),1,fp);
						}
					}while(i==0);
						rewind(fp);
					for(i=0;i<j;i++){
						fread(&boo,sizeof(bo),1,fp);
						strcpy(boo.num,num);
					}
				}
				else if(xu==3){
					printf("你要把%s改为:",boo.writer);
					scanf("%s",boo.writer);}
				else if(xu==4){
					printf("你要把%.2f改为:",boo.price);
					scanf("%f",&boo.price);}
				else if(xu==5){
					printf("你要把%s改为:",boo.press);
					scanf("%s",boo.press);}
				else if(xu==6){
					printf("你要把%s改为:",boo.leibie);
					scanf("%s",boo.leibie);}
				else if(xu==7){
					printf("你要把%d改为:",&boo.kucun);
					scanf("%d",&boo.kucun);}
				fwrite(&boo,sizeof(bo),1,p);
			}
		}
		else
			fwrite(&boo,sizeof(bo),1,p);
		fread(&boo,sizeof(bo),1,fp);
	}
	fclose(p);
	p=fopen("c:\\books1.txt","rb+");
	fclose(fp);
	fp=fopen("c:\\book.txt","wb+");
	fread(&boo,sizeof(bo),1,p);
	while(!feof(p)){
		fwrite(&boo,sizeof(bo),1,fp);
		fread(&boo,sizeof(bo),1,p);	
	}
	fclose(fp);
	printf("操作成功   回到主菜单");
	system("pause");
}
void lend()//借阅图书
{
	bo boo;
	FILE *p;
	st stu;
	ji jie;
	int j=0;
	char or,num[10],xnum[10];
	printf("\n借阅图书只能通过图书编号完成!\n是否调用图书查询来查询你要操作的图书编号(Y/N)\n");
	getchar();
	scanf("%c",&or);
	if(or=='Y'||or=='y')
		find();
	printf("\n请输入你要借阅的图书的编号:");
	scanf("%s",num);
	fread(&boo,sizeof(bo),1,fp);
	while(!feof(fp)){
		if(strcmp(num,boo.num)==0){
			j=1;
			break;		
		}
		fread(&boo,sizeof(bo),1,fp);
	}
	if(j==0){
		printf("\n书库没有该图书 正在退出\n");
		system("pause");
		return;
	}
	printf("\n你需要借阅的图书是:\n");
	printf("书名      编号      作者      价格      出版社    类别      原始库存  借出\n");
	printf("%-10s%-10s%-10s%-10.2f%-10s%-10s%-10d%-4d\n",boo.name,boo.num,boo.writer,boo.price,boo.press,boo.leibie,boo.kucun,boo.jiechu);
	if(boo.kucun==boo.jiechu){
		printf("\n该册图书已全部借出!正在退出\n");
		system("pause");
		return;
	}
	printf("\n请输入你的学号:");
	scanf("%s",xnum);
	j=0;
	fread(&jie,sizeof(ji),1,fpj);
	while(!feof(fpj)){
		if((strcmp(jie.bnum,num)==0)&&(strcmp(jie.snum,xnum)==0)){
			j=1;
			break;		
		}
		fread(&jie,sizeof(ji),1,fpj);
	}
	if(j==1){
		printf("\n你已经借阅过该书  正在退出\n");
		system("pause");
		return;
	}
	fread(&stu,sizeof(st),1,fps);
	j=0;
	while(!feof(fps)){
		if(strcmp(xnum,stu.num)==0){
			j=1;
			break;
		}
		fread(&stu,sizeof(st),1,fps);
	}
	if(j==0){
		printf("\n你是第一次借阅图书,为了方便管理请输入你的姓名:");
		scanf("%s",stu.name);
		strcpy(stu.num,xnum);
		stu.jie=1;
		fseek(fps,0,2);
		fwrite(&stu,sizeof(st),1,fps);
	}
	else{
		if(stu.jie==5){//这里可以控制每个学生最多借几本书
			printf("\n你已经借了5本书,不能再借\n");
			system("pause");
			return;}
		p=fopen("c:\\jie.txt","wb+");
		rewind(fps);
		fread(&stu,sizeof(st),1,fps);
		while(!feof(fps)){
			if(strcmp(xnum,stu.num)==0)
				stu.jie++;
		fwrite(&stu,sizeof(st),1,p);
		fread(&stu,sizeof(st),1,fps);
		}
		fclose(p);
		fclose(fps);	
		p=fopen("c:\\jie.txt","rb+");
		fps=fopen("c:\\student.txt","wb+");
		fread(&stu,sizeof(st),1,p);
		while(!feof(p)){
			fwrite(&stu,sizeof(st),1,fps);
			fread(&stu,sizeof(st),1,p);	
		}
	}
	strcpy(jie.bnum,num);
	strcpy(jie.snum,xnum);
	fseek(fpj,0,2);
	fwrite(&jie,sizeof(ji),1,fpj);
	rewind(fp);
	p=fopen("c:\\jie.txt","wb+");
	fread(&boo,sizeof(bo),1,fp);
	while(!feof(fp)){
		if(strcmp(num,boo.num)==0)
			boo.jiechu++;
		fwrite(&boo,sizeof(bo),1,p);
		fread(&boo,sizeof(bo),1,fp);
	}
	fclose(p);
	p=fopen("c:\\jie.txt","rb+");
	fclose(fp);
	fp=fopen("c:\\book.txt","wb+");
	fread(&boo,sizeof(bo),1,p);
	while(!feof(p)){
		fwrite(&boo,sizeof(bo),1,fp);
		fread(&boo,sizeof(bo),1,p);	
	}
	printf("\n借阅成功!回到主菜单");
	system("pause");
}

void huan(){//归还图书
	FILE *p;
	bo boo;
	ji jie;
	st stu;
	int j=0;
	char snum[10],bnum[10];
	i=0;
	printf("\n请输入你的学号:");
	scanf("%s",snum);
	printf("\n你借阅了以下图书\n");
	fread(&jie,sizeof(ji),1,fpj);
	printf("书名      编号      作者      价格      出版社    类别      原始库存  借出\n");
	while(!feof(fpj)){
		if(strcmp(jie.snum,snum)==0){
			fread(&boo,sizeof(bo),1,fp);
			while(!feof(fp)){
				if(strcmp(jie.bnum,boo.num)==0){
					printf("%-10s%-10s%-10s%-10.2f%-10s%-10s%-10d%-4d\n",boo.name,boo.num,boo.writer,boo.price,boo.press,boo.leibie,boo.kucun,boo.jiechu);
					j=1;
				}
				fread(&boo,sizeof(bo),1,fp);
			}
		}
		fread(&jie,sizeof(ji),1,fpj);
	}
	if(j==0){
		printf("\n你没有借阅任何图书!\n\n正在退出");
		system("pause");
		return;
	}
	rewind(fp);
	rewind(fpj);
	printf("\n请输入你归还的图书的编号:");
	scanf("%s",bnum);
	fread(&jie,sizeof(jie),1,fpj);//改变jieyue.txt里的数据
	p=fopen("c:\\jie.txt","wb+");
	while(!feof(fpj)){
		if((strcmp(jie.bnum,bnum)==0)&&(strcmp(jie.snum,snum)==0))
			i=1;
		else 
			fwrite(&jie,sizeof(jie),1,p);
		fread(&jie,sizeof(jie),1,fpj);
	}
	if(i==0){
		printf("\n你没有借过该图书\n正在退出");
		system("pause");
		return;
	}
	fclose(p);
	fclose(fpj);	
	p=fopen("c:\\jie.txt","rb+");
	fpj=fopen("c:\\jieyue.txt","wb+");
	fread(&jie,sizeof(ji),1,p);
	while(!feof(p)){
		fwrite(&jie,sizeof(ji),1,fpj);
		fread(&jie,sizeof(ji),1,p);	
	}
	fclose(p);//改变book.txt里的数据
	p=fopen("c:\\jie.txt","wb+");
	fread(&boo,sizeof(bo),1,fp);
	while(!feof(fp)){
		if(strcmp(bnum,boo.num)==0)
			boo.jiechu--;
		fwrite(&boo,sizeof(bo),1,p);
		fread(&boo,sizeof(bo),1,fp);
	}
	fclose(p);
	p=fopen("c:\\jie.txt","rb+");
	fclose(fp);
	fp=fopen("c:\\book.txt","wb+");
	fread(&boo,sizeof(bo),1,p);
	while(!feof(p)){
		fwrite(&boo,sizeof(bo),1,fp);
		fread(&boo,sizeof(bo),1,p);	
	}
	fclose(p);//改变student.txt里的数据
	p=fopen("c:\\jie.txt","wb+");
	rewind(fps);
	fread(&stu,sizeof(st),1,fps);
	while(!feof(fps)){
		if(strcmp(snum,stu.num)==0)
			stu.jie--;
		fwrite(&stu,sizeof(st),1,p);
		fread(&stu,sizeof(st),1,fps);
	}
	fclose(p);
	fclose(fps);	
	p=fopen("c:\\jie.txt","rb+");
	fps=fopen("c:\\student.txt","wb+");
	fread(&stu,sizeof(st),1,p);
	while(!feof(p)){
		fwrite(&stu,sizeof(st),1,fps);
		fread(&stu,sizeof(st),1,p);	
	}
	printf("\n归还成功!回到主菜单");
	system("pause");
}
void cha(){//借阅查询
	char num[10];
	bo boo;
	ji jie;
	printf("\n请输入你的学号:");
	scanf("%s",num);
	fread(&jie,sizeof(ji),1,fpj);
	printf("书名      编号      作者      价格      出版社    类别      原始库存  借出\n");
	while(!feof(fpj)){
		if(strcmp(jie.snum,num)==0){
			fread(&boo,sizeof(bo),1,fp);
			while(!feof(fp)){
				if(strcmp(jie.bnum,boo.num)==0)
					printf("%-10s%-10s%-10s%-10.2f%-10s%-10s%-10d%-4d\n",boo.name,boo.num,boo.writer,boo.price,boo.press,boo.leibie,boo.kucun,boo.jiechu);
				fread(&boo,sizeof(bo),1,fp);
			}
		}
		fread(&jie,sizeof(ji),1,fpj);
	}
	printf("\n查询完毕!回到主菜单");
	system("pause");
}
main(){
	if((fp=fopen("c:\\book.txt","rb+"))==NULL){
		printf("在c盘根目录下没有找到储存图书信息的book.txt文件\n请选择  1--手动导入!  2--创建此文件\n");
		scanf("%d",&xuan);
		switch(xuan){
		case 2:if((fp=fopen("c:\\book.txt","wb+"))!=NULL)
				   printf("创建成功\n\n");
			break;
		case 1:printf("请把名为book.txt的文件复制到c盘根目录下\n\n");
		}
	}
	if((fpj=fopen("c:\\jieyue.txt","rb+"))==NULL){
		printf("在c盘根目录下没有找到储存借阅信息的jieyue.txt文件\n请选择  1--手动导入!  2--创建此文件\n");
		scanf("%d",&xuan);
		switch(xuan){
		case 2:if((fpj=fopen("c:\\jieyue.txt","wb+"))!=NULL)
				   printf("创建成功\n\n");
			break;
		case 1:printf("请把名为jieyue.txt的文件复制到c盘根目录下\n\n");
		}
	}
	if((fps=fopen("c:\\student.txt","rb+"))==NULL){
		printf("在c盘根目录下没有找到储存学生信息的student.txt文件\n请选择  1--手动导入!  2--创建此文件\n");
		scanf("%d",&xuan);
		switch(xuan){
		case 2:if((fps=fopen("c:\\student.txt","wb+"))!=NULL)
				   printf("创建成功\n\n");
			break;
		case 1:printf("请把名为student.txt的文件复制到c盘根目录下\n\n");
		}
	}
	menu();
	printf("\n  代码:");
	scanf("%d",&xuan);		
	while(xuan==1||xuan==2||xuan==3||xuan==4||xuan==5||xuan==6||xuan==7){
		fp=fopen("c:\\book.txt","rb+");
		fps=fopen("c:\\student.txt","rb+");
		fpj=fopen("c:\\jieyue.txt","rb+");
		switch(xuan){
		case 0:break;
		case 1:end();break;
		case 2:print();break;
		case 3:find();break;
		case 4:del();break;
		case 5:lend();break;
		case 6:huan();break;
		case 7:cha();break;
		}
		fclose(fp);
		fclose(fpj);
		fclose(fps);
		menu();
	printf("\n  代码:");
	scanf("%d",&xuan);
	}

}

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/183111.html原文链接:https://javaforall.net

(0)
上一篇 2022年10月11日 下午5:00
下一篇 2022年10月11日 下午5:00


相关推荐

  • Mac系统下java环境配置

    Mac系统下java环境配置从 windows 转到 mac 上开发 配置环境记录一下 供大家参考 1 下载 jdk 地址 JavaDownload Oraclehttp www oracle com technetwork java javase downloads index html 我下载的时候必须要登陆后才能下载 于是找了这个可以直接下载安装 jdk 8u321 macosx x64 dmg 配置 java 环境 Mac Java 文档类资源 CSDN 下载 jdk 8u321 macosx x64 dmg 配置 java 环境

    2026年3月19日
    3
  • 微信小程序40029 错误解决方法

    微信小程序40029 错误解决方法首先报40029错误的方式有多个,但是错误原因应该只有一个。1:openid和当前小程序不对应,或者AppSecret秘钥和当前小程序不对应的。2:当前小程序能正确获取到token,但是在code还没有失效时,另一个小程序也用这个小程序的openid或者AppSecret秘钥去请求token。这个时候也会报40029,说到底还是第一个错误,只是触发的方式不同。解决办法也很简单,…

    2022年4月29日
    2.8K
  • 5种很牛的两位数乘法速算方法「建议收藏」

    5种很牛的两位数乘法速算方法「建议收藏」5种很牛的两位数乘法速算方法第一种:十几乘以任意两位数公式推导(10+b)(10c+d)=100c+10(bc+d)+bd=10(10c+bc+d)+bd=10((10c+d)+bc)+bd 方法:如果c=1,那么就是一个因数,加上另一个因数的尾数,做前积;两个因数的乘积,做尾积应用举例:11×11=|11+1||1×1|=12112×14=|12+4||2×4|=1681

    2022年6月8日
    59
  • 一致性哈希算法与Java实现「建议收藏」

    一致性哈希算法与Java实现「建议收藏」一致性哈希算法与Java实现========================================================一致性哈希算法是分布式系统中常用的算法。比如,一个分布式的存储系统,要将数据存储到具体的节点上,如果采用普通的hash方法,将数据映射到具体的节点上,如key%N,key是数据的key,N是机器节点数,如果有一个机器加入或退出这个集群,则所

    2022年7月27日
    7
  • Errors were encountered while processing 解决方法

    Errors were encountered while processing 解决方法在执行更新或者安装软件命令时 sudoapt getupgradesu getinstall 遇到 Errorswereen 查看错误信息发现 notfullyinst 解决方法 cd var lib dpkgsudomvin baksudomkdir

    2026年3月18日
    1
  • 腾讯元宝附件怎么打开

    腾讯元宝附件怎么打开

    2026年3月13日
    2

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号