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

该图书馆管理系统使用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的条件所以换成case10printf("\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的条件所以换成case7printf("\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语言图书馆管理系统(功能众多)相关推荐

  1. 图书馆系统c语言作业,C语言图书馆管理系统课程设计报告

    <C语言图书馆管理系统课程设计报告>由会员分享,可在线阅读,更多相关<C语言图书馆管理系统课程设计报告(16页珍藏版)>请在人人文库网上搜索. 1.高级语言程序设计课程设计报告 ...

  2. C语言图书馆管理系统

    C语言图书馆管理系统 全部代码如下: #include <stdio.h> #include<string.h> #include<stdlib.h> #inclu ...

  3. c语言图书借出归还系统,c语言图书馆管理系统(codeblocks版).docx

    c语言图书馆管理系统(codeblocks版) /* *图书馆管理系统 *@author 琴卓 *@time 2015-12-10 */#include#include#include#include ...

  4. c语言图书馆管理系统中数据存放位置,c语言数据结构图书馆系统

    //#define var 333; //移动光标位置 void gotoxy(int x,int y) { COORD xy; HANDLE hstdout; hstdout=GetStdHandl ...

  5. C语言期末大作业15个(附源码)成绩管理系统、图书馆管理系统、学生打卡系统、超市信息管理系统、学生考勤系统、职工信息管理系统源码、歌曲信息管理系统、超市收款系统等等

    C语言期末作业15个(上) 1.C语言学生成绩管理系统 2.C语言图书馆管理系统(复杂版) 3.C语言图书馆管理系统(简洁版) 4.C语言停车管理系统(两个版本) 5.C语言学生考勤系统 6.C语言班 ...

  6. 商品管理系统c语言功能模板,C语言课程报告图书馆管理系统可做模板套用.doc

    课 程 报 告 课 程 名 称: 程序设计实践 专 业 班 级 : 学 生 姓 名 : 学 号 : 任 课 教 师 : 学 期 :2010-2011学年第二学期 课程报告任务书 题 目 图书信息管理系 ...

  7. 图书馆管理系统(C语言实现)

    源代码在这里 1   图书馆管理系统(C语言实现). 2  功能相对简单, 增删改查而已. 3  详细的介绍都在链接里了. 转载于:https://www.cnblogs.com/zzusunjs/p ...

  8. c语言课程设计(图书馆管理系统)

    大一c语言课程设计:图书馆管理系统. 图书管理系统,功能齐全拿来就能用 1.主界面 代码段 void main() { int n;Sleep(300);loop1:tongji(); printf( ...

  9. 图书馆管理系统利用c语言编写,图书馆管理系统 c语言编写.doc

    图书馆管理系统 c语言编写 #include "stdio.h"#include "stdlib.h"#include "conio.h"# ...

最新文章

  1. 两款带有WiFI的MicroPython模块:ESP32,ESP8266
  2. js实现excel块拖拉数据_小程序导出数据到excel表,借助云开发云函数实现excel数据的保存...
  3. CocoaPods集成ShareSDK
  4. 基于知识图谱的推荐系统总结
  5. 数据库的增加,删除,更新操作--mysql
  6. java 反解析cron_Java解析Cron表达式
  7. 转载:PAL/NTSC/BT601/BT656/BT1120基本概念
  8. Python 自动化教程(3) : 自动生成PPT文件 Part 1 (干货)
  9. 在用JAVA写一个简易CAD程序时的笔记
  10. 图形评审技术(GERT)与计划评审技术(PERT)
  11. 认知神经科学常用的研究工具和技术
  12. ubuntu防火墙安装和设置-ufw
  13. C语言根据汉字拼音首字母排序
  14. 右下角弹窗 html 怎么写,右下角弹窗广告.html
  15. python写闲鱼脚本_自动化篇 - 躺着收钱!闲鱼自动发货机器人来啦~
  16. 在 VS Code 中开始使用 Python
  17. Windows10 1903 应用商店错误 代码: 0x80131500 解决办法
  18. 年轻人,你活着不是为了观察K线做布朗运动 ——从“全要素参与分配理论”谈股票市场的赚钱陷阱
  19. js网状特效源代码下载
  20. one-hot编码的理解

热门文章

  1. jqury 获取第三个_使您的手机游戏成功。 第三部分:获取用户
  2. 现货白银价格怎么观察
  3. 信号处理(3)——调制
  4. 选择偏好_网站如何记住您的偏好(以及关于Cookie的选择)?
  5. 【论文笔记】Towards Probabilistic Verification of Machine Unlearning
  6. 网站无法打开的解决方法
  7. ORA-01704: string literal too long
  8. linux卸载oneinstack,Linux服务器OneinStack安装工具
  9. 新领域、新探索、新规划,以色列老牌安全厂商 Check Point 新变化:AI、零日安全
  10. 智能运维AIOps,aiops对比传统运维工具的优势