谷歌机器人学习代码
一、谷歌机器人学习代码 在当今数字化时代, 谷歌机器人学习代码 已成为信息技术领域的热门研究话题。随着人工智能的快速发展,机器学习技术在各个领域都展现出巨大的潜力和应
有的,就是分隔的意思。程序员编写代码,在相同类型或者相类似的短语之间,通常是逗号,如for (int = 0 , i < 1 , i ++)需要注意的是,此处不是汉字的逗号,而是英语中的都好,即“ , ”。关于编程的问题,建议如果系统学的话,先从C++学起,注意打好基础,这对以后的学习很重要。
这里编写速度指的是把代码敲入编辑器的速度,而不包括程序构思过程。 我现在感觉自己敲代码很慢,10 个字母里面会出现 2 个字母打错。尤其是一些特殊符号,比如
前端代码可以被修改,也就是 js 这一层限制没有任何意义。
一般应该在 nginx 、linux iptables、后端服务 进行限制。
是为了抗CC攻击?
如果是这个目的话,JS 限制访问这样的攻击没有任何意义,对方是消耗带宽和服务器资源。
最好的方式是在 iptables 层面就进行限制,效率也最高。
但是如你要求有较高的要求,比如需要更为精准的识别,那么可以在nginx 这一层配合一些抗CC 软件来进行识别。
具体就上机编写代码来讲,首先需要打开 c++的开发环境,然 后新建一个工程; 然后新建一个文件(如果是 vc6.0 就可以继续写了,
编写代码需要遵循一定的步骤。首先,明确需求并分析问题,然后设计算法和数据结构。
接下来,选择适当的编程语言,并使用编辑器或集成开发环境编写代码。
在编写过程中,注重代码的可读性和可维护性,使用合适的命名和注释。
完成代码后,进行测试和调试,确保代码的正确性。
最后,进行代码的优化和重构,提高代码的效率和可扩展性。编写代码需要不断学习和实践,掌握编程技巧和设计原则,不断改进自己的编码能力。
零基础的人想要写代码首先需要进行一定的学习,了解一些基础的编程知识,选择适合自己的程序语言,之后通过不断的学习就可以写代码。
从简单的、直接的伯几行十几行程序开始,比如计算器;到复杂的小工具,比如大数计算器。这个过程中逐渐明白数组、指针、内存布局、函数,了解递归、栈、链表,然后学度基本的数据结构。
C语言也好,python也好,得学会把自己的思考用程序实现。举个例子,想制定计划表,安排自己的时间,那这个问题就可以写个程序来实现;想做知笔记、管理自己的文件,这也是一个程序。从简单的、直接的几行十几行程序开始,比如计算器;到复杂的小工具,比如大数计算器。
代码怎么写?首先,在精神上或书面上,分解你的代码并以简单的方式构建它。第二,写代码。第三,研究代码,看看是否能比你的初始版本进一步提高效率。
编写程序的步骤
首先明确要解决的问题;
其次分析问题并选择想要利用的算法,或者自己想一个的算法; 画流程图,明确解决问题过程中的逻辑关系和时序关系;
然后才是上机编写代码; 之后是debug调试,基本就可以执行了。
初学者从 基本输入 输出开始。然后学分支循环。
msgbox "OK"
name=inputbox("Prompt","Title")
……
1、在excel中可以添加VBA代码,通过打开“开发工具”,点击打开VB编辑器,进入VBA编写代码。1开发工具2VB编辑器3选择工作,双击4在代码窗中输入代码2、VBA,Visual Basic for Applications(VBA)是Visual Basic的一种宏语言,是微软开发出来在其桌面应用程序中执行通用的自动化(OLE)任务的编程语言。主要能用来扩展Windows的应用程式功能,特别是Microsoft Office软件。也可说是一种应用程式视觉化的Basic 脚本。该语言于1993年由微软公司开发的的应用程序共享一种通用的自动化语言--------Visual Basic For Application(VBA),实际上VBA是寄生于VB应用程序的版本。微软在1994年发行的Excel5.0版本中,即具备了VBA的宏功能。
时间在流去,我们在长大。
今天是2022年的一月四日了,元旦小长假也过去了,新年新气象,新年新目标,我们要向前看,不要执意过去了,感谢过去,把握现在,展望未来,这是我们现在应该做的。好了,废话不多说,今天我们分享一个系统,确实也有许久没有分享过系统了,今天就给大家详细讲一下这个图书管理系统吧。
开发一个图书信息管理系统,图书信息包括:图书编号、书名、作者、出版社、类别、出版时间、价格等基本信息(也可以根据自己情况进行扩充,比如是否借出、库存量等)。使之能提供以下基本功能:
(1)图书信息录入功能(图书信息用文件保存)--输入
(2)图书信息浏览功能--输出
(3)查询功能(至少一种查询方式)、排序功能(至少一种排序方式):
①按书名查询
②按作者名查询 按照价钱排序 按出版时间排序等等
(4)图书信息的删除与修改
扩展功能:可以按照自己的程度进行扩展。比如
(1)简单的权限处理
(2)报表打印功能
(3)甚至根据自己情况,可以加上学生信息,并扩充为图书借阅系统。
(4)模糊查询
(5)综合查询
(6)统计功能 比如统计处某一类别的图书信息 或 筛选出小于指定数量库存的图
书信息等等。
1 图书录入可以录入图书名,作者,出版社,出版日期,价格!录入图书编号时函数就会判断此编号是否存在,若
存在不能成功录入!
2 图书浏览可以浏览全部图书!
3 图书查询提供按图书编号模糊查询,按图书名关键字查询,按图书编号精确查询,按图书名精确查询!模糊查询
和关键字查询事通过比价字符串的相似度而实现的!
4 修改删除图书可以通过图书查询来查询操作的图书编号,通过编号操作!函数会提示用户是否调用图书查询来找
到自己想要操作的图书的编号。如果某一本图书已经被借阅那么用户就不能删除该图书!
5 借阅图书通过学号和图书编号进行借阅!如果该学号是第一次借阅那么会提示用户输入自己的姓名,并存入
student.txt,方便以后借阅与归还!
6 归还图书先提供学号,然后程序会输出该学号借阅的所有图书,然后再通过编号归还!
7 借阅查询可查询某个学生已借但未归还的图书!
先建立结构体,定义结构体成员
typedef struct book/*图书结构体*/
{
char num[10]; /*书号*/
char name[10]; /*书名*/
char auth[10]; /*作者*/
int count;
int sum;
}Book;
typedef struct borrow/*借书结构体*/
{
char id[20];
char user[20];
char book[20];
char bookid[20];
struct borrow *next;
}BBnode,*BBlink;
struct user
{
char num[10];/* 学号 */
char pass[15];
char name[15];
char sex[10];
};
typedef struct unode
{
struct user data;
struct unode *next;
}Unode,*Ulink;
Unode *os;
int login(Ulink l)
{
/*****************登陆窗口初始化****************************/
while(!flag)
{
char User_id[10],password[10],tmp;
int i=0;
User_id[0]='\0';
password[0]='\0';
textbackground(179);
clrscr();
gotoxy(33,23);
textcolor(YELLOW);
cputs("ESC = EXIT");
textcolor(WHITE);
textbackground(179);
box(1,1,80,24);
h_line(2,3,78);
gotoxy(15,2);
cputs("Login now please input the User__ID and Password");
bar_(30,10,23,5,5);
/******************账号过滤*********************/
while(User_id[0]=='\0')
{
gotoxy(31,11);
textcolor(YELLOW);
textbackground(5);
cputs("User__ID:");
gotoxy(31,13);
cputs("Password:");
textbackground(179);
textcolor(WHITE);
gotoxy(28,7);
cputs("please input the User__ID!");
textbackground(179);
textcolor(YELLOW);
gotoxy(27,11);
putch(272);
gotoxy(27,13);
putch(' ');
gotoxy(40,11);
tmp=getch();
if(tmp==27)
{
flg=27;
return 0;
}
while(tmp!='\r'&&i<=9&&(tmp>=64&&tmp<=90)||(tmp>=97&&tmp<=122||(tmp>=48&&tmp<=57)))
{
textcolor(YELLOW);
textbackground(5);
putch(tmp);
User_id[i]=tmp;
i++;
tmp=getch();
if(tmp==27)
{
flg=27;
return 0;
}
}
User_id[i]='\0';
}
/**********************密码过滤****************************/
while(password[0]=='\0')
{
gotoxy(28,7);
textbackground(179);
textcolor(WHITE);
cputs(" input the password now ");
textbackground(179);
textcolor(YELLOW);
gotoxy(27,13);
putch(272);
gotoxy(27,11);
putch(' ');
gotoxy(40,13);
i=0;
tmp=getch();
if(tmp==27)
{
flg=27;
return 0;
}
while(tmp!='\r'&&i<=10&&(tmp>=64&&tmp<=90)||(tmp>=97&&tmp<=122||(tmp>=48&&tmp<=57)))
{
textbackground(5);
putch('*');
password[i]=tmp;
i++;
tmp=getch();
if(tmp==27)
{
flg=27;
return 0;
}
}
password[i]='\0';
}
/*************把账号和密码进行对比验证**************/
if(!strcmp(User_id,"admin")&&!strcmp(password,"admin"))
{
return 2;
}
if(cmps(l,User_id,password))
{
return 1;
}
}
}
void choose()
{
while(1)
{
textbackground(179);
clrscr();
gotoxy(33,2);
textcolor(WHITE);
cputs("Administrastor");
textcolor(YELLOW);
box(1,1,80,24);
h_line(2,3,78);
gotoxy(3,6);
cputs(">>>-------------------------1.User Management----------------------------<<<");
gotoxy(3,10);
cputs(">>>-------------------------2.Book Management----------------------------<<<");
gotoxy(3,14);
cputs(">>>-------------------------3.Borrow Books-------------------------------<<<");
gotoxy(30,22);
textcolor(RED);
cputs("Please Select!!!");
flg=getch();
if(flg=='2')
bookss();
if(flg=='1')
users();
if(flg=='3')
borrow();
if(flg==27)
{
flg=-1;
return;
}
}
}
void admin()
{
while(1)
{
choose();
if(flg=='1')
bookss();
if(flg=='2')
users();
if(flg=='3')
borrow();
if(flg==27)
{
return;
}
}
}
void user(Ulink h)
{
int flag;
BBlink l,p,r;/* 连表 */
FILE *fp; /* 文件指针 */
int count=0;
l=(BBnode*)malloc(sizeof(BBnode));
l->next=NULL;
r=l;
fp=fopen(bfile,"rb");
if(fp==NULL)
{
fp=fopen(bfile,"wb");
}
while(!feof(fp))
{
p=(BBnode*)malloc(sizeof(BBnode));
if(fread(p,sizeof(BBnode),1,fp)) /* 将文件的内容放入接点中 */
{
p->next=NULL;
r->next=p;
r=p; /* 将该接点挂入连中 */
count++;
}
}
while(1)
{
textbackground(179);
clrscr();
textcolor(YELLOW);
box(1,1,80,24);
h_line(2,3,78);
gotoxy(3,2);
textcolor(RED);
cputs("A.");
textcolor(BLUE);
cputs("my message ");
textcolor(RED);
cputs("B.");
textcolor(BLUE);
cputs("modyfy my message ");
textcolor(RED);
cputs("C.");
textcolor(BLUE);
cputs("my borrow ");
textcolor(RED);
cputs("D.");
textcolor(BLUE);
cputs("search book");
textcolor(YELLOW);
gotoxy(50,50);
flag=getch();
switch(flag)
{
case 'a':
show(os);
break; /*************添加用户**********/
case 'b':
Modify_user(h);
Save(h);
break;/*************删除用户**********/
case 'c':
Myborrow();
break;
case 'd':
usersearch();
break;
case 27:
return;
}
}
}
图书的添加,包括用户添加以及管理员添加
void add(blink l)
{
Bnode *p,*r,*s;
char num[10];
r=l;
s=l->next;
while(r->next!=NULL)
r=r->next;
textcolor(RED);
gotoxy(25,4);
cputs("INPUT THE MESSAGE ABOUT BOOK");
gotoxy(31,10);
textcolor(YELLOW);
cputs("Book ID:");
scanf("%s",num);
p=(Bnode *)malloc(sizeof(Bnode));
while(s)
{
if(strcmp(s->data.num,num)==0)
{
textcolor(WHITE);
gotoxy(25,15);
cputs("This ID:");
printf("'%s'",num);
cputs("is exist!");
gotoxy(25,22);
cputs("please Press any key to continue...");
gotoxy(255,252);
getch();
return;
}
s=s->next;
}
strcpy(p->data.num,num);
gotoxy(31,12);
textcolor(YELLOW);
cputs("Input Book name:");
scanf("%s",p->data.name);
gotoxy(31,14);
cputs("input your Book auth:");
scanf("%s",p->data.auth);
gotoxy(31,16);
cputs("input your Book count:");
scanf("%d",&p->data.count);
bookcount=p->data.count+bookcount;
p->data.sum=0;
p->next=NULL;
r->next=p;
r=p;
gotoxy(30,22);
textcolor(RED);
cputs("Add Book Success !!!");
getch();
textcolor(YELLOW);
}
/*******管理员添加用户*******/
void Add(Ulink l)
{
Unode *p,*r,*s;
char num[10];
r=l;
s=l->next;
while(r->next!=NULL)
r=r->next;
textcolor(RED);
gotoxy(25,4);
cputs("INPUT THE MESSAGE ABOUT BOOK");
gotoxy(31,10);
textcolor(YELLOW);
cputs("User ID:");
scanf("%s",num);
p=(Unode *)malloc(sizeof(Unode));
while(s)
{
if(strcmp(s->data.num,num)==0)
{
gotoxy(25,15);
cputs("This ID:");
printf("'%s'",num);
cputs("is exist!");
gotoxy(25,22);
textcolor(RED);
cputs("please Press any key to continue...");
gotoxy(255,252);
getch();
return;
}
s=s->next;
}
strcpy(p->data.num,num);
gotoxy(31,12);
textcolor(YELLOW);
cputs("Input Password:");
scanf("%s",p->data.pass);
gotoxy(31,14);
cputs("input your name:");
scanf("%s",p->data.name);
gotoxy(31,16);
cputs("input the sex:");
scanf("%s",p->data.sex);
p->next=NULL;
r->next=p;
r=p;
gotoxy(30,22);
cputs("Add User Success !!!");
usercount++;
getch();
textcolor(YELLOW);
}
用户查找以及管理员查找
/*******管理员查找图书*******/
void qur(blink l)
{
int sel;
char findmess[20];
Bnode *p;
if(!l->next)
{
gotoxy(30,4);
textcolor(WHITE);
cputs("Not Find Bookdata!!!");
getch();
return;
}
textcolor(RED);
gotoxy(25,4);
cputs("Please Select Search Type !");
gotoxy(10,8);
textcolor(WHITE);
cputs("1.Search by ID");
gotoxy(10,10);
cputs("2.Search by Name");
gotoxy(10,12);
cputs("Please Select 1 or 2:");
scanf("%d",&sel);
if(sel==1)
{
gotoxy(36,8);
textcolor(YELLOW);
cputs("Input the search ID:");
scanf("%s",findmess);
p=locate(l,findmess,"num");
if(p)
{
gotoxy(36,12);
textcolor(WHITE);
cputs("Book ID:");
printf("%s",p->data.num);
gotoxy(36,14);
textcolor(WHITE);
cputs("Book Name:");
printf("%s",p->data.name);
gotoxy(36,16);
textcolor(WHITE);
cputs("Book author:");
printf("%s",p->data.auth);
gotoxy(36,18);
textcolor(WHITE);
cputs("Book count:");
printf("%d",p->data.count);
getch();
textcolor(YELLOW);
gotoxy(30,21);
cputs("Search Success !!");
}
else
{
gotoxy(30,22);
textcolor(RED);
cputs("Not finde !!!");
getch();
}
}
else if(sel==2) /* 姓名 */
{
gotoxy(36,8);
textcolor(YELLOW);
cputs("Input the search name:");
scanf("%s",findmess);
p=locate(l,findmess,"name");
if(p)
{
gotoxy(36,12);
textcolor(WHITE);
cputs("Book ID:");
printf("%s",p->data.num);
gotoxy(36,14);
textcolor(WHITE);
cputs("Book Name:");
printf("%s",p->data.name);
gotoxy(36,16);
textcolor(WHITE);
cputs("Book author:");
printf("%s",p->data.auth);
gotoxy(36,18);
textcolor(WHITE);
cputs("Book count:");
printf("%d",p->data.count);
getch();
textcolor(YELLOW);
}
else
{
textcolor(RED);
gotoxy(30,22);
cputs("Not finde !!!");
}
}
else
{
textcolor(RED);
gotoxy(30,22);
cputs("Error !!");
getch();
}
}
/*******用户查找图书*******/
void usersearch()
{
int sel;
char findmess[20];
Bnode *p;
blink l;/* 连表 */
FILE *fp; /* 文件指针 */
int count=0;
Bnode *P,*r;
l=(Bnode*)malloc(sizeof(Bnode));
l->next=NULL;
r=l;
fp=fopen(file,"rb");
if(fp==NULL)
{
fp=fopen(file,"wb");
}
while(!feof(fp))
{
P=(Bnode*)malloc(sizeof(Bnode));
if(fread(P,sizeof(Bnode),1,fp)) /* 将文件的内容放入接点中 */
{
P->next=NULL;
bookcount=bookcount+P->data.count;
booksum=booksum+P->data.sum;
r->next=P;
r=P; /* 将该接点挂入连中 */
count++;
}
}
fclose(fp); /* 关闭文件 */
if(!l->next)
{
gotoxy(30,4);
textcolor(WHITE);
cputs("Not Find Bookdata!!!");
getch();
return;
}
textcolor(RED);
gotoxy(25,4);
cputs("Please Select Delete Type !");
gotoxy(10,8);
textcolor(WHITE);
cputs("1.Search by ID");
gotoxy(10,10);
cputs("2.Search by Name");
gotoxy(10,12);
cputs("Please Select 1 or 2:");
scanf("%d",&sel);
if(sel==1)
{
gotoxy(36,8);
textcolor(YELLOW);
cputs("Input the search ID:");
scanf("%s",findmess);
p=locate(l,findmess,"num");
if(p)
{
gotoxy(36,12);
textcolor(WHITE);
cputs("Book ID:");
printf("%s",p->data.num);
gotoxy(36,14);
textcolor(WHITE);
cputs("Book Name:");
printf("%s",p->data.name);
gotoxy(36,16);
textcolor(WHITE);
cputs("Book author:");
printf("%s",p->data.auth);
gotoxy(36,18);
textcolor(WHITE);
cputs("Book count:");
printf("%d",p->data.count-p->data.sum);
getch();
textcolor(YELLOW);
}
else
{
gotoxy(30,22);
textcolor(RED);
cputs("Not finde !!!");
getch();
}
}
else if(sel==2)
{
gotoxy(36,8);
textcolor(YELLOW);
cputs("Input the search name:");
scanf("%s",findmess);
p=locate(l,findmess,"name");
if(p)
{
gotoxy(36,12);
textcolor(WHITE);
cputs("Book ID:");
printf("%s",p->data.num);
gotoxy(36,14);
textcolor(WHITE);
cputs("Book Name:");
printf("%s",p->data.name);
gotoxy(36,16);
textcolor(WHITE);
cputs("Book author:");
printf("%s",p->data.auth);
gotoxy(36,18);
textcolor(WHITE);
cputs("Book count:");
printf("%d",(p->data.count-p->data.sum));
getch();
textcolor(YELLOW);
}
else
{
textcolor(RED);
gotoxy(30,22);
cputs("Not finde !!!");
}
}
else
{
textcolor(RED);
gotoxy(30,22);
cputs("Error !!");
getch();
}
}
/*******图书查找*******/
int cmpbook(blink l,char id[],char na[])
{
char findm[20];
Bnode *p;
if(!l->next)
{
gotoxy(25,4);
textcolor(RED);
cputs("Not Find Book!!!");
getch();
return 0;
}
strcpy(findm,id);
p=locate(l,findm,"num");
if(p)
{
strcpy(findm,na);
p=locate(l,findm,"name");
if(p)
{
return 1;
}
else
{
textcolor(RED);
gotoxy(30,22);
cputs("Book name is NULL !!!");
getch();
return 0;
}
}
else
{
gotoxy(30,22);
textcolor(RED);
cputs("Book id is NULL !!!");
getch();
return 0;
}
}
图书的删除
void del(blink l)
{
int sel;
Bnode *p,*r;
char findmess[20];
if(!l->next)
{
gotoxy(25,4);
textcolor(RED);
cputs("=====>not thing could delete!\n");
getch();
return;
}
textcolor(RED);
gotoxy(25,4);
puts("Please Select Delete Type !");
gotoxy(10,8);
textcolor(WHITE);
cputs("1.Delete by Book ID");
gotoxy(10,10);
cputs("2.Delete by Book Name");
gotoxy(10,12);
cputs("Please Select 1 or 2:");
scanf("%d",&sel);
if(sel==1)
{
gotoxy(36,8);
textcolor(YELLOW);
cputs("Input the delete ID:");
scanf("%s",findmess);
p=locate(l,findmess,"num");
if(p)
{
bookcount=bookcount-p->data.count;
r=l;
while(r->next!=p)
r=r->next;
r->next=p->next;
free(p);
gotoxy(30,22);
textcolor(RED);
cputs("Delete success!\n");
textcolor(YELLOW);
}
else
{
textcolor(RED);
gotoxy(30,22);
cputs("Error !!");
}
}
else if(sel==2)
{
gotoxy(36,8);
textcolor(YELLOW);
cputs("Input the delete name:");
scanf("%s",findmess);
p=locate(l,findmess,"name");
if(p)
{
r=l;
while(r->next!=p)
r=r->next;
r->next=p->next;
free(p);
gotoxy(30,22);
textcolor(RED);
cputs("Delete success!\n");
bookcount--;
textcolor(YELLOW);
}
else
{
gotoxy(25,18);
cputs("Not find!!");
}
}
else
{
textcolor(RED);
gotoxy(30,22);
cputs("Error !!");
}
getch();
textcolor(YELLOW);
}
void borrow()
{
while(1)
{
int flag;
BBlink l,p,r;/* 连表 */
FILE *fp; /* 文件指针 */
int count=0;
l=(BBnode*)malloc(sizeof(BBnode));
l->next=NULL;
r=l;
fp=fopen(bfile,"rb");
if(fp==NULL)
{
fp=fopen(bfile,"wb");
}
while(!feof(fp))
{
p=(BBnode*)malloc(sizeof(BBnode));
if(fread(p,sizeof(BBnode),1,fp)) /* 将文件的内容放入接点中 */
{
p->next=NULL;
r->next=p;
r=p; /* 将该接点挂入连中 */
count++;
}
borrowcount=count;
}
while(1)
{
textbackground(179);
clrscr();
textcolor(YELLOW);
box(1,1,80,24);
h_line(2,3,78);
gotoxy(3,2);
textcolor(RED);
cputs("B");
textcolor(BLUE);
cputs("orrow book ");
textcolor(RED);
cputs("R");
textcolor(BLUE);
cputs("eturn book ");
textcolor(RED);
cputs("S");
textcolor(BLUE);
cputs("earch borrow ");
textcolor(YELLOW);
printf("count: (borrow=%d)",borrowcount);
textcolor(RED);
gotoxy(50,50);
flag=getch();
switch(flag)
{
case 'b':
Add_borrow(l);
break; /*************添加用户**********/
case 'r':
Del_borrow(l);
Save_borrow(l);
break;
case 's':
Qur_borrow(l);
break;
case 27:
return;
}
}
}
}
图书信息的储存
*******借书信息保存*******/
void Save_borrow(BBlink l)
{
FILE* fp;
BBnode *p;
int flag=1,count=0;
fp=fopen(bfile,"wb");
if(fp==NULL)
{
gotoxy(35,12);
textcolor(RED);
cputs("open error!");
exit(1);
}
p=l->next;
while(p)
{
if(fwrite(p,sizeof(BBnode),1,fp)==1)
{
p=p->next;
count++;
}
else
{
flag=0;
break;
}
}
if(flag)
{
textcolor(RED);
gotoxy(30,24);
/*** printf("save success.(saved%d.)",count);**调试的时候用的*/
}
fclose(fp);
}
/* 还书的操作 */
void Del_borrow(BBlink l)
{
int sel;
BBnode *p,*r;
Bnode *L;
char findmess[20];
FILE *fp; /* 文件指针 */
Bnode *P,*R,*Q;
L=(Bnode*)malloc(sizeof(Bnode));
L->next=NULL;
R=L;
fp=fopen(file,"rb");
if(fp==NULL)
{
fp=fopen(file,"wb");
}
while(!feof(fp))
{
P=(Bnode*)malloc(sizeof(Bnode));
if(fread(P,sizeof(Bnode),1,fp)) /* 将文件的内容放入接点中 */
{
P->next=NULL;
R->next=P;
R=P; /* 将该接点挂入连中 */
}
}
fclose(fp); /* 关闭文件 */
if(!l->next)
{
gotoxy(30,4);
textcolor(RED);
cputs("not Book could Return!\n");
getch();
return;
}
textcolor(RED);
gotoxy(25,4);
puts("Please Select Return Type !");
gotoxy(10,8);
textcolor(WHITE);
cputs("1.Return by Borrow ID");
gotoxy(10,10);
cputs("2.Return by book name");
gotoxy(10,12);
cputs("Please Select 1 or 2:");
scanf("%d",&sel);
if(sel==1)
{
gotoxy(36,8);
textcolor(YELLOW);
cputs("Input the Borrow ID:");
scanf("%s",findmess);
p=Locate_borrow(l,findmess,"num");
if(p)
{
Q=locate(L,findmess,"num");
if(Q)
{
Q->data.sum=Q->data.sum-1;
save(L);
}
r=l;
while(r->next!=p)
r=r->next;
r->next=p->next;
free(p);
gotoxy(30,22);
textcolor(RED);
cputs("Return success!\n");
borrowcount--;
getch();
textcolor(YELLOW);
}
else
{
gotoxy(30,22);
textcolor(RED);
cputs("Note find !!");
getch();
}
}
else if(sel==2)
{
gotoxy(36,8);
textcolor(YELLOW);
cputs("Input the Book name:");
scanf("%s",findmess);
p=Locate_borrow(l,findmess,"book");
if(p)
{
Q=locate(L,findmess,"name");
if(Q)
{
Q->data.sum=Q->data.sum-1;
save(L);
}
r=l;
while(r->next!=p)
r=r->next;
r->next=p->next;
free(p);
gotoxy(30,22);
textcolor(RED);
cputs("Borrow success!\n");
borrowcount--;
getch();
textcolor(YELLOW);
}
else
{
gotoxy(30,18);
textcolor(RED);
cputs("Not find!!");
getch();
}
}
else
{
gotoxy(30,22);
textcolor(RED);
cputs("Not finde !!");
getch();
}
textcolor(YELLOW);
}
也分为用户和管理员两种情况
/* ****用于管理员修改用户资料 ***/
void Modify(Ulink l)
{
Unode *p;
char findmess[20];
if(!l->next)
{
gotoxy(30,4);
textcolor(RED);
cputs("not thing could modify!");
getch();
return;
}
gotoxy(30,4);
textcolor(RED);
cputs("Modify User Message");
gotoxy(25,8);
textcolor(YELLOW);
cputs("input the User Id:");
scanf("%s",findmess);
p=Locate(l,findmess,"num");
if(p)
{
textcolor(YELLOW);
gotoxy(25,10);
printf("Inpute The New ID(old:%s):",p->data.num);
scanf("%s",p->data.num);
gotoxy(25,12);
printf("Input The New Password(old:%s):",p->data.pass);
scanf("%s",p->data.pass);
gotoxy(25,14);
printf("Input The New Name(old:%s):",p->data.name);
scanf("%s",p->data.name);
gotoxy(25,16);
printf("Input The New Sex(old:%s):",p->data.sex);
scanf("%s",p->data.sex);
gotoxy(30,20);
textcolor(RED);
cputs("Modify Success !!!");
getch();
textcolor(YELLOW);
}
else
{
gotoxy(30,16);
textcolor(RED);
cputs("Not Finde !!!");
getch();
}
}
/****供用户修改用户自己资料 */
void Modify_user(Ulink l)
{
Unode *p;
char findmess[20];
if(!l->next)
{
gotoxy(30,4);
textcolor(RED);
cputs("not thing could modify!");
getch();
return;
}
gotoxy(30,4);
textcolor(RED);
cputs("Modify User Message");
gotoxy(33,8);
textcolor(YELLOW);
strcpy(findmess,os->data.num);
printf("your id:%s",findmess);
p=Locate(l,findmess,"num");
if(p)
{
textcolor(YELLOW);
gotoxy(24,10);
printf("Input The New Password(old:%s):",p->data.pass);
scanf("%s",p->data.pass);
gotoxy(24,12);
printf("Input The New Name(old:%s):",p->data.name);
scanf("%s",p->data.name);
gotoxy(24,14);
printf("Input The New Sex(old:%s):",p->data.sex);
scanf("%s",p->data.sex);
gotoxy(31,18);
textcolor(RED);
cputs("Modify Success !!!");
getch();
textcolor(YELLOW);
}
else
{
gotoxy(30,16);
textcolor(RED);
cputs("Not Finde !!!");
getch();
}
}
/*******添加借书*******/
void Add_borrow(BBlink l)
{
Ulink H;/* 连表 */
FILE *Fp; /* 文件指针 */
Unode *Q,*T;
blink L;/* 连表 */
FILE *FP; /* 文件指针 */
int ttl;
Bnode *P,*R;
char bookid[20];
char bookname[20];
char userid[20];
BBnode *p,*r,*s;
char num[10];
r=l;
s=l->next;
while(r->next!=NULL)
r=r->next;
L=(Bnode*)malloc(sizeof(Bnode));
L->next=NULL;
R=L;
FP=fopen(file,"rb");
if(FP==NULL)
{
FP=fopen(file,"wb");
}
while(!feof(FP))
{
P=(Bnode*)malloc(sizeof(Bnode));
if(fread(P,sizeof(Bnode),1,FP)) /* 将文件的内容放入接点中 */
{
P->next=NULL;
bookcount=bookcount+P->data.count;
R->next=P;
R=P; /* 将该接点挂入连中 */
}
}
fclose(FP); /* 关闭文件 */
H=(Unode*)malloc(sizeof(Unode));
H->next=NULL;
T=H;
Fp=fopen(ufile,"rb");
if(Fp==NULL)
{
Fp=fopen(ufile,"wb");
}
while(!feof(Fp))
{
Q=(Unode*)malloc(sizeof(Unode));
if(fread(Q,sizeof(Unode),1,Fp)) /* 将文件的内容放入接点中 */
{
Q->next=NULL;
T->next=Q;
T=Q; /* 将该接点挂入连中 */
}
}
fclose(Fp);
textcolor(RED);
gotoxy(25,4);
cputs("Please input thease message");
gotoxy(30,10);
textcolor(YELLOW);
cputs("Input Borrow ID:");
scanf("%d",&ttl);
itoa(ttl,num,10) ;
p=(BBnode *)malloc(sizeof(BBnode));
while(s)
{
if(strcmp(s->id,num)==0)
{
gotoxy(30,15);
cputs("Borrow ID:");
printf("'%s'",num);
cputs("is exist!");
gotoxy(26,22);
textcolor(RED);
cputs("please Press any key to continue...");
gotoxy(255,252);
getch();
return;
}
s=s->next;
}
strcpy(p->id,num);
gotoxy(31,12);
textcolor(YELLOW);
cputs("Input book id:");
scanf("%s",bookid);
gotoxy(31,14);
textcolor(YELLOW);
cputs("Input book name:");
scanf("%s",bookname);/***************************************图书判断在否***************************************/
if(cmpbook(L,bookid,bookname))
{
strcpy(p->bookid,bookid);
strcpy(p->book,bookname);
gotoxy(31,16);
cputs("input your ID:");
scanf("%s",userid); /**************************************用户判断在否********************************/
if(cmpuser(H,userid))
{
strcpy(p->user,userid);
p->next=NULL;
r->next=p;
r=p;
if(changeb(L,bookid))
{
gotoxy(30,22);
cputs("Borrow Success !!!");
Save_borrow(l);
borrowcount++;
getch();
}
}
}
textcolor(YELLOW);
}
查找自己借了哪些书
void Myborrow()
{
int i;
BBlink l,p,r;/* 连表 */
FILE *fp; /* 文件指针 */
int count=0;
l=(BBnode*)malloc(sizeof(BBnode));
l->next=NULL;
r=l;
fp=fopen(bfile,"rb");
if(fp==NULL)
{
fp=fopen(bfile,"wb");
}
i=6;
while(!feof(fp))
{
p=(BBnode*)malloc(sizeof(BBnode));
if(fread(p,sizeof(BBnode),1,fp)) /* 将文件的内容放入接点中 */
{
textcolor(WHITE);
gotoxy(30,4);
cputs("Your borrow book");
if(strcmp(p->user,os->data.num)==0)
{
textcolor(YELLOW);
gotoxy(20,i);
printf("Borrow ID:%s\tBook id:%s\tBook name:%s",p->id,p->bookid,p->book);
i++;
p->next=NULL;
r->next=p;
r=p; /* 将该接点挂入连中 */
count++;
}
}
myborrow=count;
if(myborrow==0)
{
textcolor(YELLOW);
gotoxy(30,13);
cputs("You no borrow !!");
}
}
fclose(fp);
textcolor(YELLOW);
gotoxy(65,2);
printf("(borrow=%d)",myborrow);
getch();
}
void borrow()
{
while(1)
{
int flag;
BBlink l,p,r;/* 连表 */
FILE *fp; /* 文件指针 */
int count=0;
l=(BBnode*)malloc(sizeof(BBnode));
l->next=NULL;
r=l;
fp=fopen(bfile,"rb");
if(fp==NULL)
{
fp=fopen(bfile,"wb");
}
while(!feof(fp))
{
p=(BBnode*)malloc(sizeof(BBnode));
if(fread(p,sizeof(BBnode),1,fp)) /* 将文件的内容放入接点中 */
{
p->next=NULL;
r->next=p;
r=p; /* 将该接点挂入连中 */
count++;
}
borrowcount=count;
}
while(1)
{
textbackground(179);
clrscr();
textcolor(YELLOW);
box(1,1,80,24);
h_line(2,3,78);
gotoxy(3,2);
textcolor(RED);
cputs("B");
textcolor(BLUE);
cputs("orrow book ");
textcolor(RED);
cputs("R");
textcolor(BLUE);
cputs("eturn book ");
textcolor(RED);
cputs("S");
textcolor(BLUE);
cputs("earch borrow ");
textcolor(YELLOW);
printf("count: (borrow=%d)",borrowcount);
textcolor(RED);
gotoxy(50,50);
flag=getch();
switch(flag)
{
case 'b':
Add_borrow(l);
break; /*************添加用户**********/
case 'r':
Del_borrow(l);
Save_borrow(l);
break;
case 's':
Qur_borrow(l);
break;
case 27:
return;
}
}
}
}
main()
{
Ulink h,os;/* 连表 */
FILE *fp; /* 文件指针 */
Unode *p,*r;
h=(Unode*)malloc(sizeof(Unode));
h->next=NULL;
r=h;
fp=fopen(ufile,"rb");
if(fp==NULL)
{
fp=fopen(ufile,"wb");
}
while(!feof(fp))
{
p=(Unode*)malloc(sizeof(Unode));
if(fread(p,sizeof(Unode),1,fp)) /* 将文件的内容放入接点中 */
{
p->next=NULL;
r->next=p;
r=p; /* 将该接点挂入连中 */
}
}
fclose(fp);
system("wellcome");
if(flg==27)
{
flg=-1;
return;
}
while(1)
{
flag=login(h);
if(flg==27)
{
flg=-1;
break;
}
if(flag==2)
{
choose();
flag=0;
}
if(flag==1)
{
user(h);
flag=0;
}
}
}
今天的代码量有点小多,难度也不小,用了大量的链表来储存数据,还有一些功能因为篇幅的问题没有放上来,总的来说,这个图书管理系统的功能是很全面的,无论从哪个角度来看。当然啦。有兴趣的同学可以进群领取完整的源码看看,绝对是一个不错的机会,可以说,你要是学会了这个系统,你的C语言在我看来就完全没有问题了,而且在数据结构一块,你也算是小成了,所以希望大家可以认真学习,争取早日掌握。
这也是2022年的第一篇文章了,希望2022继续加油,向大家分享更多有趣的、有用的知识,十分感谢大家的一路支持,后续我还会发布更多的项目源或者学习资料,希望大家可以持续关注,有什么问题可以回帖留言。想要提前掌握的可以加群领取C/C++学习资料以及其他项目的源码的可以加群【1083227756】了解。想要对程序员的未来发展有兴趣的可以关注微信公众号:【狐狸的编码时光】,希望和大家一起学习进步!
版权声明:部分内容由互联网用户自发贡献,如有侵权/违规,请联系删除
本平台仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
本文链接地址:/jqr/158022.html