图书馆管理系统(C语言课程设计)
图书馆管理系统
程序描述:该程序主要采用链表的形式来对书籍进行添加、修改、删除等等一系列操作,系统内含有用户以及管理员两种形式的访问人员,通过用户以及管理员的形式去对于书籍的一些借阅、归还、添加、删除、修改的操作。对于这些书籍以及用户和管理员的属性的修改都会实时的保存到文本文件中,以方便下一次的读取。
主要功能:用户的登陆和注册,管理员的登陆和注册,用户对于书籍的借阅、归还以及查看已借书籍的信息,管理员对于书籍的添加、删除、修改以及书籍的实时信息查询和用户的信息查询。
编程语言:C语言
涉及范围:结构体、链表、文件
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#include<math.h>
#include<windows.h>
struct userstruct /*用户*/
{int bookcount;char username[10];char scert[10];char booklist[10][20];struct userstruct *next;
};
struct adminstruct /*管理员*/
{char adminname[10];char scert[10];struct adminstruct *next;
};
struct bookstruct
{int id;char bookname[10];char author[10];int year;int month;int day;int count;struct bookstruct *next;
};
struct userstruct *head = NULL, *end = NULL;
struct adminstruct *adminhead = NULL, *adminend = NULL;
struct bookstruct *bookhead = NULL, *bookend = NULL;
int usercount, admincount, bookcount;void startsys();
void readuserfile();
void readadminfile();
void readbookfile();
void userlogin();
void userfunction(struct userstruct *p);
void userregister();
void adminlogin();
void adminregister();
void adminfunction();
void borrowbook(struct userstruct *userp);
void findbook(struct userstruct *userp);
void returnbook(struct userstruct *userp);
void addbook();
void deletebook();
void searchbook();
void changebook();
void searchuser();
void writefile(int flag);
void changuserbook(char *userbookname,char *bookname);
void deleteuserbook(char *bookname);int main()
{FILE *fp;head = (struct userstruct *)malloc(sizeof(struct userstruct));adminhead = (struct adminstruct *)malloc(sizeof(struct adminstruct));bookhead = (struct bookstruct *)malloc(sizeof(struct bookstruct));fp = fopen("user", "a+");usercount = fread(head, sizeof(struct userstruct), 1, fp);fclose(fp);end = head;readuserfile();fp = fopen("admin", "a+");admincount = fread(adminhead, sizeof(struct adminstruct), 1, fp);fclose(fp);adminend = adminhead;readadminfile();fp = fopen("book", "a+");bookcount = fread(bookhead, sizeof(struct bookstruct), 1, fp);fclose(fp);bookend = bookhead;readbookfile();startsys();return 0;
}void startsys()
{int cmd;int end = 0;while (1){system("cls");printf("\n\n\n\n\n\n\n");printf("**************************************************************");printf("\n图书馆管理系统\n");printf("1.用户登陆\n");printf("2.管理员登陆\n");printf("3.用户注册\n");printf("4.管理员注册\n");printf("0.退出\n");printf("**************************************************************");printf("\n\n\n\n\n\n\n");printf("输入你需要进行的操作: ");scanf("%d", &cmd);getchar();switch (cmd){case 1:userlogin();break;case 2:adminlogin();break;case 3:userregister();break;case 4:adminregister();break;case 0:end = 1;break;default:printf("错误输入!\n");}if (end == 1)break;}
}void userlogin()
{struct userstruct *p;char username[100];char scert[100];int exist = 0;FILE *fp;p = head;system("cls");printf("\n\n\n\n\n\n\n");printf("**************************************************************");printf("\n输入您的用户信息: \n");printf("username: ");gets(username);printf("userscert: ");gets(scert);printf("**************************************************************");printf("\n\n\n\n\n\n\n");while (p != NULL){if (strcmp(p->username, username) == 0){exist = 1;while(strcmp(p->scert, scert) != 0){printf("密码错误!请重新输入\n");printf("userscert: ");gets(scert);}printf("用户%s登陆成功!3秒后自动跳转至用户界面...", p->username);Sleep(3000);userfunction(p);}p = p->next;}if (!exist){printf("不存在此用户名,请先前往注册...\n");printf("3秒后自动跳转至主界面...");Sleep(3000);}
}void userfunction(struct userstruct *p)
{int cmd;int end = 0;while (1){system("cls");printf("\n\n\n\n\n\n\n");printf("**************************************************************");printf("\n图书馆用户功能系统\n");printf("1.借阅书籍\n");printf("2.归还书籍\n");printf("3.已借阅书籍信息\n");printf("0.退出\n");printf("**************************************************************");printf("\n\n\n\n\n\n\n");printf("输入您需要进行的操作: ");scanf("%d", &cmd);switch (cmd){case 1:borrowbook(p);break;case 2:returnbook(p);break;case 3:findbook(p);break;case 0:end = 1;break;default:printf("错误的输入!\n");}if (end == 1)break;}
}void userregister()
{struct userstruct *p;char username[1000];char scert[1000];FILE *fp;system("cls");if (usercount == 0) //第一次添加{printf("username: ");while (gets(username)){if (strlen(username) < 10 && !isexist(username, 0))break;else if (isexist(username, 0)){printf("该用户名已经存在!\n");printf("username: ");}else{printf("too long\n");printf("username: ");}}strcpy(head->username, username);printf("userscert: ");while (gets(scert)){if (strlen(scert) < 10)break;elseprintf("too long");}strcpy(head->scert, scert);head->bookcount = 0;end = head;end->next = NULL;}else{p = (struct userstruct *)malloc(sizeof(struct userstruct));printf("username: ");while (gets(username)){if (strlen(username) < 10 && !isexist(username, 0))break;else if (isexist(username, 0)){printf("该用户名已经存在!\n");printf("username: ");}else{printf("too long\n");printf("username: ");}}strcpy(p->username, username);printf("userscert: ");while (gets(scert)){if (strlen(scert) < 10)break;elseprintf("too long");}strcpy(p->scert, scert);p->bookcount = 0;end->next = p;end = p;end->next = NULL;}usercount++;fp = fopen("user", "w");p = head;while (p != NULL){fwrite(p, sizeof(struct userstruct), 1, fp);p = p->next;}fclose(fp);system("cls");printf("用户%s创建成功\n", end->username);printf("3秒后自动返回主界面....\n");Sleep(3000);
}int isexist(char *name,int flag)
{if (flag == 0){struct userstruct *p;p = head;while (p != NULL && usercount != 0){if (strcmp(name, p->username) == 0)return 1;p = p->next;}}else if (flag == 1){struct adminstruct *p;p = adminhead;while (p != NULL){if (strcmp(name, p->adminname) == 0)return 1;p = p->next;}}else if (flag == 2){struct bookstruct *p;p = bookhead;while (p != NULL){if (strcmp(name, p->bookname) == 0)return 1;p = p->next;}}return 0;
}void adminlogin()
{struct adminstruct *p;char adminname[100];char adminscert[100];p = adminhead;system("cls");printf("\n\n\n\n\n\n\n");printf("**************************************************************");printf("\n输入您的管理员信息: \n");printf("adminname: ");gets(adminname);printf("adminscert: ");gets(adminscert);printf("**************************************************************");printf("\n\n\n\n\n\n\n");while (p != NULL){if (strcmp(p->adminname, adminname) == 0){while (strcmp(p->scert, adminscert) != 0){printf("密码错误!请重新输入\n");printf("adminscert: ");gets(adminscert);}printf("管理员%s登陆成功!3秒后自动跳转至用户界面...", p->adminname);Sleep(3000);adminfunction(p);}p = p->next;}
}void adminfunction()
{int cmd;int end = 0;while (1){system("cls");printf("\n\n\n\n\n\n\n");printf("**************************************************************");printf("\n图书馆管理员功能系统\n");printf("1.添加书籍信息\n");printf("2.删除书籍信息\n");printf("3.修改书籍信息\n");printf("4.查询书籍信息\n");printf("5.查询用户信息\n");printf("0.退出\n");printf("**************************************************************");printf("\n\n\n\n\n\n\n");printf("输入您需要进行的操作: ");scanf("%d", &cmd);getchar();switch (cmd){case 1:addbook();break;case 2:deletebook();break;case 3:changebook();break;case 4:searchbook();break;case 5:searchuser();break;case 0:end = 1;break;default:printf("错误的输入!\n");}if (end == 1)break;}
}void adminregister()
{struct adminstruct *p;char adminname[1000];char adminscert[1000];FILE *fp;system("cls");if (admincount == 0) //第一次添加{adminhead = (struct adminstruct *)malloc(sizeof(struct adminstruct));printf("adminname: ");while (gets(adminname)){if (strlen(adminname) < 10)break;elseprintf("too long");}strcpy(adminhead->adminname, adminname);printf("adminscert: ");while (gets(adminscert)){if (strlen(adminscert) < 10)break;elseprintf("too long");}strcpy(adminhead->scert, adminscert);adminend = adminhead;adminend->next = NULL;}else{p = (struct adminstruct *)malloc(sizeof(struct adminstruct));printf("adminname: ");while (gets(adminname)){if (strlen(adminname) < 10)break;elseprintf("too long");}strcpy(p->adminname, adminname);printf("adminscert: ");while (gets(adminscert)){if (strlen(adminscert) < 10)break;elseprintf("too long");}strcpy(p->scert, adminscert);adminend->next = p;adminend = p;adminend->next = NULL;}admincount++;fp = fopen("admin", "w");p = adminhead;while (p != NULL){fwrite(p, sizeof(struct adminstruct), 1, fp);p = p->next;}fclose(fp);system("cls");printf("管理员%s创建成功\n", adminend->adminname);printf("3秒后自动返回主界面....\n");Sleep(3000);
}void borrowbook(struct userstruct *userp)
{struct bookstruct *p;char bookname[100];int exist = 0;system("cls");p = bookhead;while (p != NULL){printf("bookname: %10s\tbookcount: %3d\n", p->bookname, p->count);p = p->next;}printf("输入您需要借阅的书籍名称: ");getchar();gets(bookname);p = bookhead;while (p != NULL){if (strcmp(bookname, p->bookname) == 0){if (p->count == 0)printf("此书无余量...");else{p->count -= 1;userp->bookcount++;strcpy(userp->booklist[userp->bookcount - 1], p->bookname);writefile(0);writefile(2);exist = 1;break;}}p = p->next;}if (exist == 0)printf("不存在此书!\n");elseprintf("%s借阅成功", p->bookname);printf("3秒后返回用户界面...");Sleep(3000);
}void returnbook(struct userstruct *userp)
{struct bookstruct *p;char bookname[100];int count = userp->bookcount;int exist;int flag;system("cls");p = bookhead;while (count--){printf("booklist:\n");printf("%s\n", userp->booklist[count]);}printf("\n\n\n\n\n");printf("**************************************************************");printf("\n输入你需要归还的书籍名称: ");getchar();while (gets(bookname)){exist = 0;for (int i = 0; i < userp->bookcount; i++){if (strcmp(bookname, userp->booklist[i]) == 0){flag = i;exist = 1;break;}}if (!exist){printf("你借阅的书籍中不存在此书籍...\n");printf("请重新输入你需要归还的书籍名称: ");}elsebreak;}printf("**************************************************************");while (p != NULL){if (strcmp(p->bookname, bookname) == 0){p->count++;break;}p = p->next;}for (int i = flag; i < userp->bookcount - 1; i++){strcpy(userp->booklist[i], userp->booklist[i + 1]);}userp->bookcount--;writefile(0);writefile(2);printf("\n%s归还成功...", bookname);printf("3秒后自动跳转回用户界面...");Sleep(3000);
}void findbook(struct userstruct *userp)
{int count = userp->bookcount;int n;system("cls");printf("\n\n\n\n\n");printf("**************************************************************");printf("\nbooklist:\n");while (count--){printf("%s\n", userp->booklist[count]);}printf("**************************************************************");printf("\n输入0返回用户界面: ");while (1){scanf("%d", &n);if (n == 0)break;elseprintf("无效的输入,请重新输入: ");}
}void addbook()
{struct bookstruct *p;char bookname[100];FILE *fp;system("cls");if (bookcount == 0){printf("输入新增书籍的书名: ");while (gets(bookname)){if (strlen(bookname) > 10)printf("too long\n");elsebreak;}strcpy(bookhead->bookname, bookname);printf("id: ");scanf("%d", &bookhead->id);printf("author: ");scanf("%s", bookhead->author);printf("bookyear: ");scanf("%d", &bookhead->year);printf("bookmonth: ");scanf("%d", &bookhead->month);printf("bookday: ");scanf("%d", &bookhead->day);printf("bookcount: ");scanf("%d", &bookhead->count);bookend = bookhead;bookend->next = NULL;}else{printf("输入新增书籍的书名: ");while (gets(bookname)){if (strlen(bookname) > 10)printf("too long\n");elsebreak;}int isexist = 0;p = bookhead;while (p != NULL){if (strcmp(bookname, p->bookname) == 0){isexist = 1;break;}p = p->next;}if (isexist == 1){int count;printf("输入新添书籍的数量: ");scanf("%d", &count);p->count += count;}else{p = (struct bookstruct *)malloc(sizeof(struct bookstruct));strcpy(p->bookname, bookname);printf("id: ");scanf("%d", &p->id);printf("author: ");scanf("%s", p->author);printf("bookyear: ");scanf("%d", &p->year);printf("bookmonth: ");scanf("%d", &p->month);printf("bookday: ");scanf("%d", &p->day);printf("bookcount: ");scanf("%d", &p->count);bookend->next = p;bookend = p;bookend->next = NULL;}}bookcount++;p = bookhead;fp = fopen("book", "w");while (p != NULL){fwrite(p, sizeof(struct bookstruct), 1, fp);p = p->next;}fclose(fp);system("cls");printf("书籍添加成功\n");printf("3秒后自动返回管理员界面....\n");Sleep(3000);
}void deletebook()
{struct bookstruct *bookp;char bookname[100];int exist = 0;bookp = bookhead;printf("输入你需要删除的书籍名称: ");while (gets(bookname)){while (bookp != NULL){if (strcmp(bookname, bookp->bookname) == 0){exist = 1;break;}bookp = bookp->next;}if (!exist){printf("不存在此书籍名称的书籍...\n");printf("请重新输入: ");}elsebreak;}deleteuserbook(bookname);bookp = bookhead;if (strcmp(bookhead->bookname,bookname) == 0)bookhead = bookhead->next;while (bookp->next != NULL){if (strcmp(bookp->next->bookname, bookname) == 0){bookp->next = bookp->next->next;break;}bookp = bookp->next;}bookp = NULL;writefile(2);
}void searchbook()
{struct bookstruct *p;char bookname[100];int exist = 0;system("cls");printf("\n\n\n\n\n\n\n");printf("\n请输入您需要查询的书籍名称或书籍编号: ");gets(bookname);printf("\n\n\n\n\n\n\n");p = bookhead;while (p != NULL){if (strcmp(p->bookname, bookname) == 0){printf("**************************************************************");printf("\nbookname: ");puts(p->bookname);printf("bookid: %d\n", p->id);printf("author: %s\n", p->author);printf("year/month/day: %d/%d/%d\n", p->year, p->month, p->day);printf("bookcount: %d\n", p->count);printf("**************************************************************\n");exist = 1;break;}p = p->next;}if (exist == 0)printf("未找到相关书籍...\n");printf("输入0返回管理员界面: ");int n;while (1){scanf("%d", &n);if (n == 0)break;}
}void changebook()
{struct bookstruct *bookp;char bookname[100];int exist = 0;int end = 0;int bookyear, bookmonth, bookday, bookid, count;char bookauthor[100];bookp = bookhead;system("cls");printf("booklist:\n");while (bookp != NULL){printf("bookname: %10s\n", bookp->bookname);bookp = bookp->next;}bookp = bookhead;printf("输入你需要修改的书籍名称(按@退出): ");while (gets(bookname)){if (strcmp(bookname, "@") == 0)break;while (bookp != NULL){if (strcmp(bookp->bookname, bookname) == 0){exist = 1;break;}bookp = bookp->next;}if (!exist)printf("不存在该书籍名称,请重新输入: ");elsebreak;}if (!exist)return;else{int cmd;system("cls");printf("\n\n\n\n\n\n\n");printf("**************************************************************\n");printf("1.修改书籍名称\n");printf("2.修改书籍id号\n");printf("3.修改书籍日期\n");printf("4.修改书籍数量\n");printf("5.修改书籍作者\n");printf("0.退出\n");printf("**************************************************************");printf("\n\n\n\n\n\n\n");while (1){printf("输入您需要进行的操作: ");scanf("%d", &cmd);switch (cmd){case 1:{printf("输入你修改后的书籍名称: ");scanf("%s", bookname);changuserbook(bookp->bookname,bookname);strcpy(bookp->bookname, bookname);break;}case 2:{printf("输入你修改后的书籍ID: ");scanf("%d", &bookid);bookp->id = bookid;break;}case 3:{printf("输入你修改后的书籍日期: ");scanf("%d%d%d", &bookyear, &bookmonth, &bookday);bookp->year = bookyear;bookp->month = bookmonth;bookp->day = bookday;break;}case 4:{printf("输入你修改后的书籍数量: ");scanf("%d", &count);bookp->count = count;break;}case 5:{printf("输入你修改后的书籍作者: ");scanf("%s", bookauthor);strcpy(bookp->author, bookauthor);break;}case 0:{end = 1;break;}}if (end == 1)break;}}writefile(2);
}void searchuser()
{struct userstruct *p;char username[100];int flag = 0;p = head;system("cls");printf("\n\n\n\n\n\n\n");printf("**************************************************************");printf("\n输入您需要查询的用户名!\n");printf("username: ");gets(username);while (p != NULL){if (strcmp(p->username, username) == 0){flag = 1;break;}p = p->next;}if (flag == 0){system("cls");printf("不存在该用户信息\n");printf("3秒后自动跳转至管理员页面...\n");Sleep(3000);return;}else{int n;while (1){system("cls");printf("\n\n\n\n\n\n\n");printf("**************************************************************");printf("\n\t用户%s的个人信息\n", p->username);printf("**************************************************************");printf("\nusername: ");puts(p->username);printf("userscert: ");puts(p->scert);printf("bookcount: %d\n", p->bookcount);if (p->bookcount != 0){printf("booklist: ");for (int i = 0; i < p->bookcount; i++)puts(p->booklist[i]);}printf("输入0返回管理员页面!\n");scanf("%d", &n);if (n == 0)break;}}
}void readuserfile()
{struct userstruct *p;FILE *fp;p = head;fp = fopen("user", "ab+");while (fread(p,sizeof(struct userstruct),1,fp)){if (p->next != NULL){p = (struct userstruct *)malloc(sizeof(struct userstruct));end->next = p;end = p;end->next = NULL;}}
}void readadminfile()
{struct adminstruct *p;FILE *fp;p = adminhead;fp = fopen("admin", "ab+");while (fread(p, sizeof(struct adminstruct), 1, fp)){if (p->next != NULL){p = (struct adminstruct *)malloc(sizeof(struct adminstruct));adminend->next = p;adminend = p;adminend->next = NULL;}}
}void readbookfile()
{struct bookstruct *p;FILE *fp;p = bookhead;fp = fopen("book", "ab+");while (fread(p, sizeof(struct bookstruct), 1, fp)){if (p->next != NULL){p = (struct bookstruct *)malloc(sizeof(struct bookstruct));bookend->next = p;bookend = p;bookend->next = NULL;}}
}void writefile(int flag)
{FILE *fp;struct userstruct *userp;struct adminstruct *adminp;struct bookstruct *bookp;userp = head;adminp = adminhead;bookp = bookhead;if (flag == 0){fp = fopen("user", "w");while (userp != NULL){fwrite(userp, sizeof(struct userstruct), 1, fp);userp = userp->next;}}else if (flag == 1){fp = fopen("admin", "w");while (adminp != NULL){fwrite(adminp, sizeof(struct adminstruct), 1, fp);adminp = adminp->next;}}else{fp = fopen("book", "w");while (bookp != NULL){fwrite(bookp, sizeof(struct bookstruct), 1, fp);bookp = bookp->next;}}fclose(fp);
}void changuserbook(char *userbookname,char *bookname)
{struct userstruct *userp;userp = head;while (userp != NULL){for (int i = 0; i < userp->bookcount; i++){if (strcmp(userp->booklist[i], userbookname) == 0){strcpy(userp->booklist[i], bookname);}}userp = userp->next;}writefile(0);
}void deleteuserbook(char *bookname)
{struct userstruct *userp;int flag = -1;userp = head;while (userp != NULL){flag = -1;for (int i = 0; i < userp->bookcount; i++){if (strcmp(userp->booklist[i], bookname) == 0){flag = i;break;}}if (flag != -1){for (int i = flag; i < userp->bookcount - 1; i++){strcpy(userp->booklist[i], userp->booklist[i + 1]);}userp->bookcount--;}userp = userp->next;}writefile(0);
}
如若内容造成侵权/违法违规/事实不符,请联系编程学习网邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
相关文章
- 快速搭建个人免费图床
文章目录前言创建Github仓库生成token配置PicGo成果展示 前言 像七牛云、又拍云、腾讯云COS、阿里云OSS这些图床都需要付费,而穷逼大学生自然没有这么多的钱,所以之前一直用的是一个很小众的图床,当时也没有想太多。那个图床起先速度慢也就不说了,之后直接崩了,随之崩溃的…...
2024/5/3 7:05:02 - 解剖一些外挂制作原理(DNF)
外挂现在大体上来讲分为三种,分别是模拟按键,WPE封包和内存挂。比如模拟键盘的,鼠标的,这种就叫做按键模拟,也叫脚本精灵;还有修改数据包的,这种就叫做WPE封包外挂,这种外挂相对而言比较稳定,但是对于技术要求难度也比较高,因为修改WPE封包,你需要知道和了解加密解密…...
2024/4/17 14:02:14 - php中正则表达式[ ] 和 ^ 详解
”[]”只能匹配单个字符,在使用”[]”的时候,往往配合连接字符”-“一起使用,如[a-d],代表a或b或c或d案例[ ,:;*?~`!@#$%^&+=\-)(<>{}]|\]意思是只要能匹配上这里面的任意一个,这个正则就有效。排除字符,排除操作正则表达式提供了”^”来表示排除不符合的字符,…...
2024/5/2 21:03:19 - IIS7 运行Thinkphp,支持rewrite
TP在本机运行非常好,谁想到服务器上后,连http://www.***.com/wap/login/index都404错误了, 中间的郁闷过程不表。 解决方案分两步: 第一步: 下载rewrite_2.0_rtw_x64.msi,在IIS7的服务器上安装,安装后,重启IIS,我是用开始-运行-iisreset重启IIS的,这时再打开IIS,会发…...
2024/4/17 14:02:02 - idea复制过来的代码格式有点乱,如何美化
idea复制过来的代码格式有点乱,如何美化显示解决方法:框选要格式化的代码--》Code(在最上面的的菜单栏)--》http://www.yayihouse.com/yayishuwu/chapter/2176...
2024/4/25 6:53:37 - SAP HANA 学习指南
SAP HANA 学习指南 第一部分:SAP HANA 概览 第二部分:SAP HANA数据库体系结构2.1 体系结构概览2.2 内存结构2.3 SAP HANA 多版本并发控制(SAP HANA MVCC)2.4 列存储(Column Store)2.5 行存储(Row Store)2.6 持久层(Persistance layer)2.7 数据压缩(Data compress) …...
2024/5/3 8:18:45 - html和css中input输入的样式调整
先说下基础样式,直接加class明就可以修改的 <input class="name" placeholder="请输入名字" type="text" />先看下原来的样子开始调整: .name {width: 200px;height: 30px;border: 1px solid #139be1;border-radius: 5px;color: blue;fon…...
2024/5/3 4:46:57 - php正则
正则:检测字符串的一条规则 Json本质还是字符串 正则的定义 简写 /规则/ 比如/45613/检测字符串必须有45612; 字符串和正则有关的方法。 Match() 查找找到一个或多个正则表达式的匹配 有就返回查找的结果 没有就是null 语法:string.match(reg) Search() 查找与正则表达式相匹…...
2024/5/3 5:00:37 - IIS服务器不能用了, Exchange服务也不能用了
前几天,我们公司一台邮件服务器因某些故障,导致IIS服务无法启动了.最直接的后果就是Exchange也无法启动了. 首先,解决IIS的问题, ,查看事件日志,IIS错误代码 2148073478 0x8009006 , 在网上查找相关资料,发现是IIS的元数据库被破坏了, 解决方法只有,用备份文件进行文件恢复.…...
2024/5/3 9:19:02 - phpCodeBeautifier的批量美化php代码
phpCodeBeautifier是一个非常不错的php代码美化工具,但是美中不足的是要使用它必须在命令行下使用非常长的命令参数来美化程序,更有一点不能忍受的是它一次只能美化一个程序文件的代码。 针对这些问题,我写了一个php的shell 脚本来解决这些问题。 下面有两个 主要功能: 使用…...
2024/5/3 1:01:20 - SAP ScriptForms 教程系列六
SAP ScriptForms 教程系列 一个完整的例子经过前面系列课程的学习我相信大家对SAP Scriptforms 有了一个初步的了解了吧。那我们今天的这个课程就跟大家一步一步的做个完整的列子。现在先看看,最终的实现界面,如下:在现在打印机,这里现在个虚拟的 LOCAL接着按 打印预览 按钮…...
2024/5/3 9:05:14 - 编码不规范,同事两行泪
前言 大一老师教 PHP ,期末让我们自由发挥做一个项目。 我勉勉强强做出来了,老师在下面提问,你的登录页是那个? 我一打开项目,老师好像后悔看我的项目了。 里面的文件命名都是阿拉伯数字或者拼音命名,我满头大汗找了好久。 老师看得眼镜痛说,行了行了,下来吧。 难怪雷军…...
2024/4/17 14:02:45 - 昨天晚上终于去了一次传说中的“物美超市”......
昨天晚上回去的比较早,怕一会肚子会饿,于是回宿舍的路上,特意去了一次传说中的“物美超市”;去“物美”主要是因为我发誓以后再也不去以前的那家黑店了,至于叫什么名字,我就不说了。 早就听说“物美”开张了,而且价格要比那家黑店要便宜,就是地方不好找,在地下二层。昨…...
2024/5/2 11:39:21 - PHP+正则
对于开发人员来说,正则表达式是一个非常有用的功能。它提供了 查找,匹配,替换 句子,单词,或者其他格式的字符串。 【开始使用正则表达式】 对初学者来说,正则 看起来很难学习和使用。事实上他们并非你想想的那么难,在我们深入掌握正则之前,先迅速看看这些入门基础: 正…...
2024/4/15 9:35:38 - IIS6/IIS7无法打开IIS管理器的解决方法。
症状:管理工具中的IIS管理器双击无反应,右键打开无反应。 我的电脑上右键管理,打开服务和应用程序,双击IIS管理器,闪开闪关。 解决办法:开始→运行→输入inetmgr.exe /reset 搞定,原因不明。。哪个大哥懂的话,把原因帮解释下。。...
2024/5/1 5:51:23 - C语言大作业图书管理系统
公众号:爱写bug #include <stdio.h> #include <stdlib.h> #include <string.h> #define N 100typedef struct Books {char num[20];char name[20];char author[20];int price;int total;char introduce[50];}BK; BK bk[N];void inputBk(BK *p, int i); void…...
2024/5/3 1:10:01 - 智慧养老解决方案-智慧养老具体方案之一-新导智能
智慧养老解决方案(SmartSeniorCare),是指使用信息技术等现代科学技术,环绕老人的日子起居、安全保证、医疗卫生、文娱休闲、学习共享等方面支撑老年人的日子服务和管理,对涉老信息自动监测、预警乃至自动处置,完成这些技术与老年人的自主式、个性化智能交互,一方面进步老…...
2024/4/17 14:02:56 - SAP ScriptForms 教程系列二
SAP ScriptForms 教程系列二 SAPscript Control Commands 2.1 Control Commands语法 SAPscript Control Commands和通常文本行一样,在文本编辑器中输入和编辑,然而,和文本行相比,有下面一些区别: l 在格式列输入段落格式“/:”表示一个控制命令; l 在文…...
2024/4/17 14:01:56 - SDOI2017 Round1滚粗记
SDOI2017 Round1在昨天落幕,发挥的非常不好,借此机会好好反思自己。Day0早晨照常来到机房,开始敲板子。感觉没敲几个就到中午了,大概太弱了,板子都敲不熟的缘故吧。 吃完饭,颓了一会,13点从学校出发。 走的下道,真是慢的要死啊。到了济南就赶上下班高峰期,堵了好久。…...
2024/4/22 1:39:51 - 安装IIS后无法访问本地服务器的解决方案
安装IIS后浏览http://localhost提示500内部错误。 1)检查DTC服务(Distributed Transaction Coordinator)是否可以正常启动,如果无法正常启动,运行 msdtc -resetlog 再次启动DTC服务,启动正常则继续,如果还是不行,那对不起,这个解决方案不适合您,另寻它法吧。 2)执行…...
2024/4/27 22:27:47
最新文章
- 消失的VCC和VEE,取而代之的VDD和VSS
一直以来,这些电源电压(Vdd 和 Vss)或(Vcc 和 Vee)的命名都有点耐人寻味,甚至令人困惑。但为什么呢? It has always been a bit intriguing and even confusing the nomenclature of these powe…...
2024/5/3 10:43:48 - 梯度消失和梯度爆炸的一些处理方法
在这里是记录一下梯度消失或梯度爆炸的一些处理技巧。全当学习总结了如有错误还请留言,在此感激不尽。 权重和梯度的更新公式如下: w w − η ⋅ ∇ w w w - \eta \cdot \nabla w ww−η⋅∇w 个人通俗的理解梯度消失就是网络模型在反向求导的时候出…...
2024/3/20 10:50:27 - 在 Visual Studio Code (VSCode) 中隐藏以 . 开头的文件
打开VSCode。 按下Ctrl ,快捷键打开设置。您也可以点击屏幕左下角的齿轮图标,然后选择“Settings”。 在设置搜索框中,键入files.exclude。 在找到的Files: Exclude项中,点击Add Pattern按钮来添加一个新的模式,或者直接在搜索…...
2024/5/2 2:37:00 - 【C++】C++中的list
一、介绍 官方给的 list的文档介绍 简单来说就是: list是可以在常数范围内在任意位置进行插入和删除的序列式容器,并且该容器可以前后双向迭代。list的底层是双向链表结构,双向链表中每个元素存储在互不相关的独立节点中,在节点中…...
2024/5/2 2:35:45 - 【外汇早评】美通胀数据走低,美元调整
原标题:【外汇早评】美通胀数据走低,美元调整昨日美国方面公布了新一期的核心PCE物价指数数据,同比增长1.6%,低于前值和预期值的1.7%,距离美联储的通胀目标2%继续走低,通胀压力较低,且此前美国一季度GDP初值中的消费部分下滑明显,因此市场对美联储后续更可能降息的政策…...
2024/5/1 17:30:59 - 【原油贵金属周评】原油多头拥挤,价格调整
原标题:【原油贵金属周评】原油多头拥挤,价格调整本周国际劳动节,我们喜迎四天假期,但是整个金融市场确实流动性充沛,大事频发,各个商品波动剧烈。美国方面,在本周四凌晨公布5月份的利率决议和新闻发布会,维持联邦基金利率在2.25%-2.50%不变,符合市场预期。同时美联储…...
2024/5/2 16:16:39 - 【外汇周评】靓丽非农不及疲软通胀影响
原标题:【外汇周评】靓丽非农不及疲软通胀影响在刚结束的周五,美国方面公布了新一期的非农就业数据,大幅好于前值和预期,新增就业重新回到20万以上。具体数据: 美国4月非农就业人口变动 26.3万人,预期 19万人,前值 19.6万人。 美国4月失业率 3.6%,预期 3.8%,前值 3…...
2024/4/29 2:29:43 - 【原油贵金属早评】库存继续增加,油价收跌
原标题:【原油贵金属早评】库存继续增加,油价收跌周三清晨公布美国当周API原油库存数据,上周原油库存增加281万桶至4.692亿桶,增幅超过预期的74.4万桶。且有消息人士称,沙特阿美据悉将于6月向亚洲炼油厂额外出售更多原油,印度炼油商预计将每日获得至多20万桶的额外原油供…...
2024/5/2 9:28:15 - 【外汇早评】日本央行会议纪要不改日元强势
原标题:【外汇早评】日本央行会议纪要不改日元强势近两日日元大幅走强与近期市场风险情绪上升,避险资金回流日元有关,也与前一段时间的美日贸易谈判给日本缓冲期,日本方面对汇率问题也避免继续贬值有关。虽然今日早间日本央行公布的利率会议纪要仍然是支持宽松政策,但这符…...
2024/4/27 17:58:04 - 【原油贵金属早评】欧佩克稳定市场,填补伊朗问题的影响
原标题:【原油贵金属早评】欧佩克稳定市场,填补伊朗问题的影响近日伊朗局势升温,导致市场担忧影响原油供给,油价试图反弹。此时OPEC表态稳定市场。据消息人士透露,沙特6月石油出口料将低于700万桶/日,沙特已经收到石油消费国提出的6月份扩大出口的“适度要求”,沙特将满…...
2024/4/27 14:22:49 - 【外汇早评】美欲与伊朗重谈协议
原标题:【外汇早评】美欲与伊朗重谈协议美国对伊朗的制裁遭到伊朗的抗议,昨日伊朗方面提出将部分退出伊核协议。而此行为又遭到欧洲方面对伊朗的谴责和警告,伊朗外长昨日回应称,欧洲国家履行它们的义务,伊核协议就能保证存续。据传闻伊朗的导弹已经对准了以色列和美国的航…...
2024/4/28 1:28:33 - 【原油贵金属早评】波动率飙升,市场情绪动荡
原标题:【原油贵金属早评】波动率飙升,市场情绪动荡因中美贸易谈判不安情绪影响,金融市场各资产品种出现明显的波动。随着美国与中方开启第十一轮谈判之际,美国按照既定计划向中国2000亿商品征收25%的关税,市场情绪有所平复,已经开始接受这一事实。虽然波动率-恐慌指数VI…...
2024/4/30 9:43:09 - 【原油贵金属周评】伊朗局势升温,黄金多头跃跃欲试
原标题:【原油贵金属周评】伊朗局势升温,黄金多头跃跃欲试美国和伊朗的局势继续升温,市场风险情绪上升,避险黄金有向上突破阻力的迹象。原油方面稍显平稳,近期美国和OPEC加大供给及市场需求回落的影响,伊朗局势并未推升油价走强。近期中美贸易谈判摩擦再度升级,美国对中…...
2024/4/27 17:59:30 - 【原油贵金属早评】市场情绪继续恶化,黄金上破
原标题:【原油贵金属早评】市场情绪继续恶化,黄金上破周初中国针对于美国加征关税的进行的反制措施引发市场情绪的大幅波动,人民币汇率出现大幅的贬值动能,金融市场受到非常明显的冲击。尤其是波动率起来之后,对于股市的表现尤其不安。隔夜美国股市出现明显的下行走势,这…...
2024/5/2 15:04:34 - 【外汇早评】美伊僵持,风险情绪继续升温
原标题:【外汇早评】美伊僵持,风险情绪继续升温昨日沙特两艘油轮再次发生爆炸事件,导致波斯湾局势进一步恶化,市场担忧美伊可能会出现摩擦生火,避险品种获得支撑,黄金和日元大幅走强。美指受中美贸易问题影响而在低位震荡。继5月12日,四艘商船在阿联酋领海附近的阿曼湾、…...
2024/4/28 1:34:08 - 【原油贵金属早评】贸易冲突导致需求低迷,油价弱势
原标题:【原油贵金属早评】贸易冲突导致需求低迷,油价弱势近日虽然伊朗局势升温,中东地区几起油船被袭击事件影响,但油价并未走高,而是出于调整结构中。由于市场预期局势失控的可能性较低,而中美贸易问题导致的全球经济衰退风险更大,需求会持续低迷,因此油价调整压力较…...
2024/4/26 19:03:37 - 氧生福地 玩美北湖(上)——为时光守候两千年
原标题:氧生福地 玩美北湖(上)——为时光守候两千年一次说走就走的旅行,只有一张高铁票的距离~ 所以,湖南郴州,我来了~ 从广州南站出发,一个半小时就到达郴州西站了。在动车上,同时改票的南风兄和我居然被分到了一个车厢,所以一路非常愉快地聊了过来。 挺好,最起…...
2024/4/29 20:46:55 - 氧生福地 玩美北湖(中)——永春梯田里的美与鲜
原标题:氧生福地 玩美北湖(中)——永春梯田里的美与鲜一觉醒来,因为大家太爱“美”照,在柳毅山庄去寻找龙女而错过了早餐时间。近十点,向导坏坏还是带着饥肠辘辘的我们去吃郴州最富有盛名的“鱼头粉”。说这是“十二分推荐”,到郴州必吃的美食之一。 哇塞!那个味美香甜…...
2024/4/30 22:21:04 - 氧生福地 玩美北湖(下)——奔跑吧骚年!
原标题:氧生福地 玩美北湖(下)——奔跑吧骚年!让我们红尘做伴 活得潇潇洒洒 策马奔腾共享人世繁华 对酒当歌唱出心中喜悦 轰轰烈烈把握青春年华 让我们红尘做伴 活得潇潇洒洒 策马奔腾共享人世繁华 对酒当歌唱出心中喜悦 轰轰烈烈把握青春年华 啊……啊……啊 两…...
2024/5/1 4:32:01 - 扒开伪装医用面膜,翻六倍价格宰客,小姐姐注意了!
原标题:扒开伪装医用面膜,翻六倍价格宰客,小姐姐注意了!扒开伪装医用面膜,翻六倍价格宰客!当行业里的某一品项火爆了,就会有很多商家蹭热度,装逼忽悠,最近火爆朋友圈的医用面膜,被沾上了污点,到底怎么回事呢? “比普通面膜安全、效果好!痘痘、痘印、敏感肌都能用…...
2024/4/27 23:24:42 - 「发现」铁皮石斛仙草之神奇功效用于医用面膜
原标题:「发现」铁皮石斛仙草之神奇功效用于医用面膜丽彦妆铁皮石斛医用面膜|石斛多糖无菌修护补水贴19大优势: 1、铁皮石斛:自唐宋以来,一直被列为皇室贡品,铁皮石斛生于海拔1600米的悬崖峭壁之上,繁殖力差,产量极低,所以古代仅供皇室、贵族享用 2、铁皮石斛自古民间…...
2024/4/28 5:48:52 - 丽彦妆\医用面膜\冷敷贴轻奢医学护肤引导者
原标题:丽彦妆\医用面膜\冷敷贴轻奢医学护肤引导者【公司简介】 广州华彬企业隶属香港华彬集团有限公司,专注美业21年,其旗下品牌: 「圣茵美」私密荷尔蒙抗衰,产后修复 「圣仪轩」私密荷尔蒙抗衰,产后修复 「花茵莳」私密荷尔蒙抗衰,产后修复 「丽彦妆」专注医学护…...
2024/4/30 9:42:22 - 广州械字号面膜生产厂家OEM/ODM4项须知!
原标题:广州械字号面膜生产厂家OEM/ODM4项须知!广州械字号面膜生产厂家OEM/ODM流程及注意事项解读: 械字号医用面膜,其实在我国并没有严格的定义,通常我们说的医美面膜指的应该是一种「医用敷料」,也就是说,医用面膜其实算作「医疗器械」的一种,又称「医用冷敷贴」。 …...
2024/5/2 9:07:46 - 械字号医用眼膜缓解用眼过度到底有无作用?
原标题:械字号医用眼膜缓解用眼过度到底有无作用?医用眼膜/械字号眼膜/医用冷敷眼贴 凝胶层为亲水高分子材料,含70%以上的水分。体表皮肤温度传导到本产品的凝胶层,热量被凝胶内水分子吸收,通过水分的蒸发带走大量的热量,可迅速地降低体表皮肤局部温度,减轻局部皮肤的灼…...
2024/4/30 9:42:49 - 配置失败还原请勿关闭计算机,电脑开机屏幕上面显示,配置失败还原更改 请勿关闭计算机 开不了机 这个问题怎么办...
解析如下:1、长按电脑电源键直至关机,然后再按一次电源健重启电脑,按F8健进入安全模式2、安全模式下进入Windows系统桌面后,按住“winR”打开运行窗口,输入“services.msc”打开服务设置3、在服务界面,选中…...
2022/11/19 21:17:18 - 错误使用 reshape要执行 RESHAPE,请勿更改元素数目。
%读入6幅图像(每一幅图像的大小是564*564) f1 imread(WashingtonDC_Band1_564.tif); subplot(3,2,1),imshow(f1); f2 imread(WashingtonDC_Band2_564.tif); subplot(3,2,2),imshow(f2); f3 imread(WashingtonDC_Band3_564.tif); subplot(3,2,3),imsho…...
2022/11/19 21:17:16 - 配置 已完成 请勿关闭计算机,win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机...
win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机”问题的解决方法在win7系统关机时如果有升级系统的或者其他需要会直接进入一个 等待界面,在等待界面中我们需要等待操作结束才能关机,虽然这比较麻烦,但是对系统进行配置和升级…...
2022/11/19 21:17:15 - 台式电脑显示配置100%请勿关闭计算机,“准备配置windows 请勿关闭计算机”的解决方法...
有不少用户在重装Win7系统或更新系统后会遇到“准备配置windows,请勿关闭计算机”的提示,要过很久才能进入系统,有的用户甚至几个小时也无法进入,下面就教大家这个问题的解决方法。第一种方法:我们首先在左下角的“开始…...
2022/11/19 21:17:14 - win7 正在配置 请勿关闭计算机,怎么办Win7开机显示正在配置Windows Update请勿关机...
置信有很多用户都跟小编一样遇到过这样的问题,电脑时发现开机屏幕显现“正在配置Windows Update,请勿关机”(如下图所示),而且还需求等大约5分钟才干进入系统。这是怎样回事呢?一切都是正常操作的,为什么开时机呈现“正…...
2022/11/19 21:17:13 - 准备配置windows 请勿关闭计算机 蓝屏,Win7开机总是出现提示“配置Windows请勿关机”...
Win7系统开机启动时总是出现“配置Windows请勿关机”的提示,没过几秒后电脑自动重启,每次开机都这样无法进入系统,此时碰到这种现象的用户就可以使用以下5种方法解决问题。方法一:开机按下F8,在出现的Windows高级启动选…...
2022/11/19 21:17:12 - 准备windows请勿关闭计算机要多久,windows10系统提示正在准备windows请勿关闭计算机怎么办...
有不少windows10系统用户反映说碰到这样一个情况,就是电脑提示正在准备windows请勿关闭计算机,碰到这样的问题该怎么解决呢,现在小编就给大家分享一下windows10系统提示正在准备windows请勿关闭计算机的具体第一种方法:1、2、依次…...
2022/11/19 21:17:11 - 配置 已完成 请勿关闭计算机,win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机”的解决方法...
今天和大家分享一下win7系统重装了Win7旗舰版系统后,每次关机的时候桌面上都会显示一个“配置Windows Update的界面,提示请勿关闭计算机”,每次停留好几分钟才能正常关机,导致什么情况引起的呢?出现配置Windows Update…...
2022/11/19 21:17:10 - 电脑桌面一直是清理请关闭计算机,windows7一直卡在清理 请勿关闭计算机-win7清理请勿关机,win7配置更新35%不动...
只能是等着,别无他法。说是卡着如果你看硬盘灯应该在读写。如果从 Win 10 无法正常回滚,只能是考虑备份数据后重装系统了。解决来方案一:管理员运行cmd:net stop WuAuServcd %windir%ren SoftwareDistribution SDoldnet start WuA…...
2022/11/19 21:17:09 - 计算机配置更新不起,电脑提示“配置Windows Update请勿关闭计算机”怎么办?
原标题:电脑提示“配置Windows Update请勿关闭计算机”怎么办?win7系统中在开机与关闭的时候总是显示“配置windows update请勿关闭计算机”相信有不少朋友都曾遇到过一次两次还能忍但经常遇到就叫人感到心烦了遇到这种问题怎么办呢?一般的方…...
2022/11/19 21:17:08 - 计算机正在配置无法关机,关机提示 windows7 正在配置windows 请勿关闭计算机 ,然后等了一晚上也没有关掉。现在电脑无法正常关机...
关机提示 windows7 正在配置windows 请勿关闭计算机 ,然后等了一晚上也没有关掉。现在电脑无法正常关机以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!关机提示 windows7 正在配…...
2022/11/19 21:17:05 - 钉钉提示请勿通过开发者调试模式_钉钉请勿通过开发者调试模式是真的吗好不好用...
钉钉请勿通过开发者调试模式是真的吗好不好用 更新时间:2020-04-20 22:24:19 浏览次数:729次 区域: 南阳 > 卧龙 列举网提醒您:为保障您的权益,请不要提前支付任何费用! 虚拟位置外设器!!轨迹模拟&虚拟位置外设神器 专业用于:钉钉,外勤365,红圈通,企业微信和…...
2022/11/19 21:17:05 - 配置失败还原请勿关闭计算机怎么办,win7系统出现“配置windows update失败 还原更改 请勿关闭计算机”,长时间没反应,无法进入系统的解决方案...
前几天班里有位学生电脑(windows 7系统)出问题了,具体表现是开机时一直停留在“配置windows update失败 还原更改 请勿关闭计算机”这个界面,长时间没反应,无法进入系统。这个问题原来帮其他同学也解决过,网上搜了不少资料&#x…...
2022/11/19 21:17:04 - 一个电脑无法关闭计算机你应该怎么办,电脑显示“清理请勿关闭计算机”怎么办?...
本文为你提供了3个有效解决电脑显示“清理请勿关闭计算机”问题的方法,并在最后教给你1种保护系统安全的好方法,一起来看看!电脑出现“清理请勿关闭计算机”在Windows 7(SP1)和Windows Server 2008 R2 SP1中,添加了1个新功能在“磁…...
2022/11/19 21:17:03 - 请勿关闭计算机还原更改要多久,电脑显示:配置windows更新失败,正在还原更改,请勿关闭计算机怎么办...
许多用户在长期不使用电脑的时候,开启电脑发现电脑显示:配置windows更新失败,正在还原更改,请勿关闭计算机。。.这要怎么办呢?下面小编就带着大家一起看看吧!如果能够正常进入系统,建议您暂时移…...
2022/11/19 21:17:02 - 还原更改请勿关闭计算机 要多久,配置windows update失败 还原更改 请勿关闭计算机,电脑开机后一直显示以...
配置windows update失败 还原更改 请勿关闭计算机,电脑开机后一直显示以以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!配置windows update失败 还原更改 请勿关闭计算机&#x…...
2022/11/19 21:17:01 - 电脑配置中请勿关闭计算机怎么办,准备配置windows请勿关闭计算机一直显示怎么办【图解】...
不知道大家有没有遇到过这样的一个问题,就是我们的win7系统在关机的时候,总是喜欢显示“准备配置windows,请勿关机”这样的一个页面,没有什么大碍,但是如果一直等着的话就要两个小时甚至更久都关不了机,非常…...
2022/11/19 21:17:00 - 正在准备配置请勿关闭计算机,正在准备配置windows请勿关闭计算机时间长了解决教程...
当电脑出现正在准备配置windows请勿关闭计算机时,一般是您正对windows进行升级,但是这个要是长时间没有反应,我们不能再傻等下去了。可能是电脑出了别的问题了,来看看教程的说法。正在准备配置windows请勿关闭计算机时间长了方法一…...
2022/11/19 21:16:59 - 配置失败还原请勿关闭计算机,配置Windows Update失败,还原更改请勿关闭计算机...
我们使用电脑的过程中有时会遇到这种情况,当我们打开电脑之后,发现一直停留在一个界面:“配置Windows Update失败,还原更改请勿关闭计算机”,等了许久还是无法进入系统。如果我们遇到此类问题应该如何解决呢࿰…...
2022/11/19 21:16:58 - 如何在iPhone上关闭“请勿打扰”
Apple’s “Do Not Disturb While Driving” is a potentially lifesaving iPhone feature, but it doesn’t always turn on automatically at the appropriate time. For example, you might be a passenger in a moving car, but your iPhone may think you’re the one dri…...
2022/11/19 21:16:57