c语言图书管理系统(详细个人理解)
图书管理系统
1.1 前言
这个是我们大一上c语言的课设大作业,以二进制文件操作写一个图书管理系统
要求如下:
1.实现新进图书的信息录入
2.实现图书基本信息的查询
3.实现对图书信息的删除`
4.实现借书人办理注册
5.实现用户办理借书手续
6.实现用户办理还书手续
7.使用二进制文件方式存储数据,系统以菜单方式工作
1.2 语句
先来了解一些程序中常用到的语句
1.2.1 二进制文件操作语句
fwrite()
fwrite(const void* buffer, size_t size, size_t count, FILE* stream);
将buffer中的数据写入文件stream中,写入count个项,输入完后跳过size大小
buffer 获取数据的地址
size 读取的大小
count 写入的项数
stream 写入的路径
fread()
fread ( void *buffer, size_t size, size_t count, FILE *stream) ;
从文件stream中读取数据,读取count个项,读入buffer中,读取完后跳过size大小
buffer 用于接收数据的地址
size 读取的大小
count 读取的项数
stream 读取的路径
!!!fwrite()和fread()操作完后会跳过size大小,在后面的修改数据有大用
fseek()
fseek(FILE *stream, long offset, int fromwhere);
设置指针stream指向以fromwhere为基准,偏移offset大小的位置(+为向下移,-为向上移)
在该程序中设置offset为文件大小,以便于在修改函数中将指针指向上一个数据
fopen()
FILE * fopen(const char * path, const char * mode);
FILE *fd = fopen(filename,"rb"); if(fd == NULL){printf("打开失败");exit(1); //0是正常退出,1是错误退出}
path字符串是欲打开的文件路径和文件名
mode表示文件的打开方式
fclose()
用于关闭文件,有fopen一定就要有fclose
feof()
判断文件是否结束,使用这个函数来便利文件
原理:feof站在光标所在位置,向后看还有没有字符,如果有就返回0;如果没有就返回非0
1.2.2 system语句
1.system(“cls”) 清屏
2.system(“pause”) 暂停
1.2.3 模块思路
添加模块
思路:用fopen以二进制方式ab+打开文件,数据写入时在原内容后追加
tip:ab+表示以二进制文件方式打开,数据写入后在原内容追加,若为空文件则创建一个文件
删除模块
思路:用fopen以二进制方式rb+打开文件,再以wb+建立一个临时文件,用strcmp比较,再fwrite将原文件中除需要删除的数据以外的所有数据写入到临时文件中,然后remove删除原文件,将临时文件rename重新命名为原文件的名字
tip:rb+表示以二进制方式打开,打开文件后不会清空文件原内容,进行写入操作时会覆盖掉原有位置的内容
wb+表示以二进制方式打开,如果文件不存在则建立,若存在则以空文件形式覆盖原文件
查询模块
思路:用fopen以二进制方式rb+打开文件,fseek将指针指向开头,用while以fread为条件循环直至读到文件结尾,循环过程中用strcmp比较,如果读到的数据与输入的数据相同,则输出该数据
显示所有图书模块也是大差不差,利用while以!feof为条件一直从文件头读到文件结束,过程中用fread将数据循环输出
修改模块(借书,还书)
思路:用fopen以二进制方式rb+打开文件,fseek将指针位置移至文件开头,用fread将文件数据读到结构体中,再用strcmp将输入数据与结构体对比,如果相同则输出结构体信息,随后用strcpy将所需修改的内容写入结构体中,再用fseek将指针位置移至该数据开头,随后用fwrite把结构体的信息覆盖掉原数据,完成修改
tip:fread进程结束后会移动offset大小,利用fseek将指针位置移回数据开头位置,再用fwrite覆盖写入即可
2.1 模块
将程序模块化设计,把不同的功能模块化再组合在一起
1.添加模块
void Input() //录入图书
{FILE *fp = NULL; //初始化指针book nidi;char flag = 'y';fp = fopen("book1.data","ab+"); //ab+表示以二进制方式打开,数据写入时在原内容后追加if (fp == NULL){printf("打开失败!\n");exit(1);}while((flag == 'y')){system("cls");printf("请输入书名:\n");scanf("%s",&nidi.bname);printf("请输入书籍id:\n");scanf("%s",&nidi.bid);printf("请输入单价:\n");scanf("%f",&nidi.bprice);printf("请输入作者:\n");scanf("%s",&nidi.bauthor);printf("请输入存在状态: \n(若无的话,填‘无’,下同)\n");scanf("%s",&nidi.state);printf("请输入借书人姓名:\n");scanf("%s",&nidi.student);printf("请输入性别:\n");scanf("%s",&nidi.gender);printf("请输入学号:\n");scanf("%s",&nidi.num);fwrite( &nidi, sizeof(book), 1, fp); //把nidi中的数据写入文件,分成1份,每块是book类型大小 printf("还要继续输入吗?继续的话请输入'y',否则返回主界面\n");scanf("%c",&flag);}fclose(fp); //关闭文件return;
}
2.删除模块
void Delete() //删除
{system("cls");book nid;FILE* fp;char a[10];fp = fopen("book1.data","rb+"); //rb+和wb+的区别 对于rb+如果打开的文件不存在 会报错(返回NULL)//对于wb+ 如果文件不存在则会建立,如果文件存在 会覆盖if ( fp == NULL){printf("打开失败!!\n");exit(1);}printf("请输入图书ID:");scanf("%s",a);printf("删除成功\n");fseek(fp, 0, SEEK_SET);FILE* fp1;fp1 = fopen("linshi.data", "wb+");while(fread(&nid, sizeof(book), 1, fp)) //从fp中读数据 {if ( strcmp(a, nid.bid) != 0) //不是要删除的内容 {fwrite (&nid, sizeof(book), 1, fp1); //将除要删除外的数据写入fp1中 }}fclose(fp);fclose(fp1);remove("book1.data"); //删除原文件rename("linshi.data", "book1.data"); //重命名为原文件fflush(stdin); return;
}
3.查询模块
void IDSearch() //ID查询
{system("cls");FILE *fp = NULL;book nidi;char a[10];bool found = false;printf("请输入图书编号\n");scanf("%s",a);fp = fopen("book1.data","rb+");if (fp == NULL){printf("打开失败! \n");exit(1);}fseek(fp,0,SEEK_SET); while (fread(&nidi, sizeof(book), 1, fp)) {if (strcmp ( a, nidi.bid) == 0 ) {printf("书名: %s\n",nidi.bname);printf("编号: %s\n",nidi.bid);printf("单价: %.1f\n",nidi.bprice);printf("作者: %s\n",nidi.bauthor);printf("存在状态: %s\n",nidi.state);printf("借书人姓名: %s\n",nidi.student);printf("性别: %s\n",nidi.gender);printf("学号: %s\n",nidi.num);found = true;break; }}fclose(fp);if (!found) {printf("没有该图书!");}system("pause");SearchMenu();
}
4.修改模块
void Borrow() //借书
{system("cls");FILE *fp = NULL;book nidi;char a[10];bool found = false;int sta = -1;printf("请输入所要借的图书编号\n");scanf("%s",a);fp = fopen("book1.data","rb+");if (fp == NULL){printf("打开失败! \n");exit(1);}fseek(fp,0,SEEK_SET); //移动文件读写指针位置while (fread(&nidi, sizeof(book), 1, fp)) //从fp中读取数据 {if (strcmp ( a, nidi.bid) == 0 ) //strcmp相同返回0{printf("书名: %s\n",nidi.bname);printf("编号: %s\n",nidi.bid);printf("单价: %.1f\n",nidi.bprice);printf("作者: %s\n",nidi.bauthor);printf("存在状态: %s\n",nidi.state);printf("借书人姓名: %s\n",nidi.student);printf("性别: %s\n",nidi.gender);printf("学号: %s\n",nidi.num);if(strcmp (nidi.state, "1") == 0){printf("该图书已被借出\n");}else{printf("如若借该书请输入'0'\n输入其他即取消\n");scanf("%d",&sta);if ( sta == 0){strcpy(nidi.state, "1");printf("请输入您的姓名:\n");scanf("%s", nidi.student);printf("请输入您的性别:\n");scanf("%s", nidi.gender);printf("请输入您的学号:\n");scanf("%s", nidi.num);fseek(fp, -sizeof(book), SEEK_CUR); //为负值,则向上移动fwrite(&nidi, sizeof(book), 1, fp);printf("借书成功!\n");fclose(fp);}}found = true;break; // 找到匹配的书籍后立即退出循环}}fclose(fp);if (!found) // 没有找到匹配的书籍{printf("没有该图书!");}system("pause");Play();
}
3.源码
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <stdbool.h> typedef struct Book //创建结构体
{char bname[30];//书名 char bid[10];//书编号 float bprice;//单价 char bauthor[10];//作者 char state[6];//存在状态 char student[10];//借书人姓名 char gender[4];//性别 char num[13];//学号 }book;typedef struct User
{char name[30]; //用户名 char password[30]; //密码
}user;void Menu(); //主页面
void Choice(); //主页面用户交互
void BookControl(); //书籍管理
void Choice2(); //书籍管理用户交互
void Input(); //书籍登记
void Delete(); //书籍删除
void SearchMenu(); //查询书籍
void Choice1(); //查询书籍用户交互
void IDSearch(); //ID查询
void NameSearch(); //书名查询
void AuthorSearch(); //作者查询
void AllSearch(); //查询所有书籍
void UserControl(); //用户管理
void Choice3(); //用户管理用户交互
void Registe(); //用户注册
void Load(); //用户登录
void Play(); //借书还书
void Choice4(); //借书还书用户交互
void Borrow(); //借书
void Return(); //还书
void DeleteUser(); //用户注销 void Menu() //菜单管理
{ system("cls");printf("*****************************************\n");printf("*\t\t0.退出系统\t\t*\n");printf("*\t\t1.查询书籍\t\t*\n");printf("*\t\t2.书籍管理\t\t*\n");printf("*\t\t3.用户管理\t\t*\n");printf("*****************************************\n");printf("请输入一个数<0-3>\n");
} void Choice() //主界面用户交互
{int choice = 0;printf("请输入选项:");scanf("%d",&choice);switch(choice){case 0:printf("退出成功\n");exit(0); break;case 1:SearchMenu();break;case 2:BookControl();break;case 3:UserControl();break;default:printf("错误!请输入0-3\n");break; }
}void BookControl() //书籍管理
{system("cls");printf("*****************************************\n");printf("*\t\t0.返回上一级\t\t*\n");printf("*\t\t1.录入书籍\t\t*\n");printf("*\t\t2.删除书籍\t\t*\n");printf("*****************************************\n");printf("请输入一个数<0-2>\n");Choice2();
} void Choice2() //书籍管理用户交互
{int choice = 0;printf("请输入选项:");scanf("%d",&choice);switch(choice){case 0:Menu();break;case 1:Input();break;case 2:Delete();break;default:printf("错误!请输入0-3\n");break; }
}void Input() //录入图书
{FILE *fp = NULL; //初始化指针23book nidi;char flag = 'y';fp = fopen("book1.data","ab+"); //ab+表示以二进制方式打开,数据写入时在原内容后追加if (fp == NULL){printf("打开失败!\n");exit(1);}while((flag == 'y')){system("cls");printf("请输入书名:\n");scanf("%s",&nidi.bname);printf("请输入书籍id:\n");scanf("%s",&nidi.bid);printf("请输入单价:\n");scanf("%f",&nidi.bprice);printf("请输入作者:\n");scanf("%s",&nidi.bauthor);printf("请输入存在状态: \n(若无的话,填‘无’,下同)\n");scanf("%s",&nidi.state);printf("请输入借书人姓名:\n");scanf("%s",&nidi.student);printf("请输入性别:\n");scanf("%s",&nidi.gender);printf("请输入学号:\n");scanf("%s",&nidi.num);fwrite( &nidi, sizeof(book), 1, fp); //把nidi中的数据写入文件,分成1份,每块是book类型大小 //fflush(stdin); //刷新缓冲区printf("还要继续输入吗?继续的话请输入'y',否则返回主界面\n");scanf("%c",&flag);}fclose(fp); //关闭文件return;
}void Delete() //删除
{system("cls");book nid;FILE* fp;char a[10];fp = fopen("book1.data","rb+"); //rb+和wb+的区别 对于rb+如果打开的文件不存在 会报错(返回NULL)//对于wb+ 如果文件不存在则会建立,如果文件存在 会覆盖if ( fp == NULL){printf("打开失败!!\n");exit(1);}printf("请输入图书ID:");scanf("%s",a);printf("删除成功\n");fseek(fp, 0, SEEK_SET);FILE* fp1;fp1 = fopen("linshi.data", "wb+");while(fread(&nid, sizeof(book), 1, fp)) //从fp中读数据 {if ( strcmp(a, nid.bid) != 0) //不是要删除的内容 {fwrite (&nid, sizeof(book), 1, fp1); //将除要删除外的数据写入fp1中 }}fclose(fp);fclose(fp1);remove("book1.data"); //删除原文件rename("linshi.data", "book1.data"); //重命名为原文件fflush(stdin); return;
}void SearchMenu() //查询界面
{system("cls");printf("*************************************************\n");printf("*\t\t0.返回上一级\t\t\t*\n");printf("*\t\t1.按书籍名称查询\t\t*\n");printf("*\t\t2.按书籍编号查询\t\t*\n");printf("*\t\t3.按书籍作者查询\t\t*\n");printf("*\t\t4.显示所有书籍\t\t\t*\n");printf("*************************************************\n");printf("请输入一个数<0-3>\n");Choice1();
}void Choice1() //查询界面用户交互
{int choice = 0;printf("请输入选项:");scanf("%d",&choice);switch(choice){case 0:Menu();break;case 1:NameSearch();break;case 2:IDSearch();break;case 3:AuthorSearch();break;case 4:AllSearch();break;default:printf("错误!请输入0-3\n");break; }
}void IDSearch() //ID查询
{system("cls");FILE *fp = NULL;book nidi;char a[10];bool found = false;printf("请输入图书编号\n");scanf("%s",a);fp = fopen("book1.data","rb+");if (fp == NULL){printf("打开失败! \n");exit(1);}fseek(fp,0,SEEK_SET); while (fread(&nidi, sizeof(book), 1, fp)) {if (strcmp ( a, nidi.bid) == 0 ) {printf("书名: %s\n",nidi.bname);printf("编号: %s\n",nidi.bid);printf("单价: %.1f\n",nidi.bprice);printf("作者: %s\n",nidi.bauthor);printf("存在状态: %s\n",nidi.state);printf("借书人姓名: %s\n",nidi.student);printf("性别: %s\n",nidi.gender);printf("学号: %s\n",nidi.num);found = true;break; }}fclose(fp);if (!found) {printf("没有该图书!");}system("pause");SearchMenu();
}void NameSearch() //书名查询
{system("cls");FILE *fp = NULL;book nidi;char a[30];bool found = false;printf("请输入图书名字\n");scanf("%s",a);fp = fopen("book1.data","rb+");if (fp == NULL){printf("打开失败! \n");exit(1);}fseek(fp,0,SEEK_SET); while (fread(&nidi, sizeof(book), 1, fp)) {if (strcmp ( a, nidi.bid) == 0 ) {printf("书名: %s\n",nidi.bname);printf("编号: %s\n",nidi.bid);printf("单价: %.1f\n",nidi.bprice);printf("作者: %s\n",nidi.bauthor);printf("存在状态: %s\n",nidi.state);printf("借书人姓名: %s\n",nidi.student);printf("性别: %s\n",nidi.gender);printf("学号: %s\n",nidi.num);found = true;break; }}fclose(fp);if (!found) {printf("没有该图书!\n");}system("pause");SearchMenu();
}void AuthorSearch() //作者查询
{system("cls");FILE *fp = NULL;book nidi;char a[10];bool found = false;printf("请输入图书作者\n");scanf("%s",a);fp = fopen("book1.data","rb+");if (fp == NULL){printf("打开失败! \n");exit(1);}fseek(fp,0,SEEK_SET); while (fread(&nidi, sizeof(book), 1, fp)) {if (strcmp ( a, nidi.bid) == 0 ) {printf("书名: %s\n",nidi.bname);printf("编号: %s\n",nidi.bid);printf("单价: %.1f\n",nidi.bprice);printf("作者: %s\n",nidi.bauthor);printf("存在状态: %s\n",nidi.state);printf("借书人姓名: %s\n",nidi.student);printf("性别: %s\n",nidi.gender);printf("学号: %s\n",nidi.num);found = true;break; }}fclose(fp);if (!found) // 没有找到匹配的书籍{printf("没有该图书!");}system("pause");SearchMenu();
}void AllSearch() //所有书籍显示
{system("cls");FILE *fp = NULL;book nidi;fp = fopen("book1.data", "rb+");if (fp == NULL){printf("打开失败! \n");exit(1);}printf("书名\t编号\t单价\t作者\t状态\t姓名\t性别\t学号\n");fseek(fp, 0, SEEK_SET);while (!feof(fp)) //如果文件没有结束则返回非0值 {if (fread(&nidi, sizeof(book), 1, fp)){printf("%s\t%s\t%.1f\t%s\t%s\t%s\t%s\t%s\n",nidi.bname, nidi.bid, nidi.bprice, nidi.bauthor, nidi.state, nidi.student, nidi.gender, nidi.num);}}fclose(fp);return;
}void UserControl()
{system("cls");printf("*****************************************\n");printf("*\t\t0.返回上一级\t\t*\n");printf("*\t\t1.学生登录\t\t*\n");printf("*\t\t2.注册\t\t\t*\n");printf("*\t\t3.注销\t\t\t*\n");printf("*****************************************\n");printf("请输入一个数<0-3>\n");Choice3();
}void Choice3() //登录界面用户交互
{int choice = 0;printf("请输入选项:");scanf("%d",&choice);switch(choice){case 0:Menu(); break;case 1:Load();break;case 2:Registe();break;case 3:DeleteUser();break;default:printf("错误!请输入0-2\n");break; }
}void Registe() //用户注册
{system("cls"); user nidia;FILE* fp = NULL;char name[10];fp = fopen("user.data","ab+");int i = 0;if ( fp == NULL){printf("打开失败!\n");exit(1);}printf("请输入用户名\n");scanf("%s",name);if( strcmp( name, nidia.name) == 0){printf("该用户名存在\n");}else{strcpy( nidia.name, name);printf("请输入密码\n");scanf("%s",&nidia.password);printf("注册成功!!\n");fwrite ( &nidia, sizeof(user), 1, fp);fclose(fp);} system("pause"); UserControl();
}void Load() //用户登录
{system ("cls");FILE* fp = NULL;char z[31],m[31];user nidi;int i = 3;fp = fopen("user.data","rb+");if ( fp == NULL){printf("打开失败!\n");exit(1);}fseek( fp, 0, SEEK_SET); while ( fread( &nidi, sizeof(user), 1, fp) != 0){printf("请输入用户名:\n");scanf("%s",z);if (!strcmp(z,nidi.name)) {printf("请输入密码:\n你有三次机会\n");while (i != 0) {scanf("%s",m);if (!strcmp(m,nidi.password)) {printf("登录成功!\n");i = 0;Play();}else{printf("密码错误!\n");i--;}}} else {printf("帐号不存在!\n");}}fclose(fp);return;
}void DeleteUser() //用户注销
{system("cls");user nid;FILE* fp;char a[30];fp = fopen("user.data","rb+"); if ( fp == NULL){printf("打开失败!!\n");exit(1);}printf("请输入名字:");scanf("%s",a);printf("删除成功\n");fseek(fp, 0, SEEK_SET);FILE* fp1;fp1 = fopen("linshi.data", "wb+");while(fread(&nid, sizeof(user), 1, fp)) {if ( strcmp(a, nid.name) != 0) {fwrite (&nid, sizeof(user), 1, fp1); }}fclose(fp);fclose(fp1);remove("user.data"); rename("linshi.data", "user.data"); fflush(stdin); return;
}void Play() //借书还书
{system("cls");printf("*****************************************\n");printf("*\t\t0.返回上一级\t\t*\n");printf("*\t\t1.办理借书手续\t\t*\n");printf("*\t\t2.办理还书手续\t\t*\n");printf("*****************************************\n");printf("请输入一个数<0-2>\n");Choice4();
} void Choice4() //借书还书用户交互
{int choice = 0;printf("请输入选项:");scanf("%d",&choice);switch(choice){case 0:UserControl();break;case 1:Borrow();break;case 2:Return();break;default:printf("错误!请输入0-2\n");break; }
}void Borrow() //借书
{system("cls");FILE *fp = NULL;book nidi;char a[10];bool found = false;int sta = -1;printf("请输入所要借的图书编号\n");scanf("%s",a);fp = fopen("book1.data","rb+");if (fp == NULL){printf("打开失败! \n");exit(1);}fseek(fp,0,SEEK_SET); //移动文件读写指针位置while (fread(&nidi, sizeof(book), 1, fp)) //从fp中读取数据 {if (strcmp ( a, nidi.bid) == 0 ) //strcmp相同返回0{printf("书名: %s\n",nidi.bname);printf("编号: %s\n",nidi.bid);printf("单价: %.1f\n",nidi.bprice);printf("作者: %s\n",nidi.bauthor);printf("存在状态: %s\n",nidi.state);printf("借书人姓名: %s\n",nidi.student);printf("性别: %s\n",nidi.gender);printf("学号: %s\n",nidi.num);if(strcmp (nidi.state, "1") == 0){printf("该图书已被借出\n");}else{printf("如若借该书请输入'0'\n输入其他即取消\n");scanf("%d",&sta);if ( sta == 0){strcpy(nidi.state, "1");printf("请输入您的姓名:\n");scanf("%s", nidi.student);printf("请输入您的性别:\n");scanf("%s", nidi.gender);printf("请输入您的学号:\n");scanf("%s", nidi.num);fseek(fp, -sizeof(book), SEEK_CUR);fwrite(&nidi, sizeof(book), 1, fp);printf("借书成功!\n");fclose(fp);}}found = true;break; // 找到匹配的书籍后立即退出循环}}fclose(fp);if (!found) // 没有找到匹配的书籍{printf("没有该图书!");}system("pause");Play();
}void Return() //还书
{system("cls");FILE *fp = NULL;book nidi;char a[10];bool found = false;int sta = -1;printf("请输入所要还的图书编号\n");scanf("%s",a);fp = fopen("book1.data","rb+");if (fp == NULL){printf("打开失败! \n");exit(1);}fseek(fp,0,SEEK_SET); //移动文件读写指针位置while (fread(&nidi, sizeof(book), 1, fp)) //从fp中读取数据 {if (strcmp ( a, nidi.bid) == 0 ) //strcmp相同返回0{printf("书名: %s\n",nidi.bname);printf("编号: %s\n",nidi.bid);printf("单价: %.1f\n",nidi.bprice);printf("作者: %s\n",nidi.bauthor);printf("存在状态: %s\n",nidi.state);printf("借书人姓名: %s\n",nidi.student);printf("性别: %s\n",nidi.gender);printf("学号: %s\n",nidi.num);if(strcmp (nidi.state, "1") == 0){printf("如若还该书请输入'0'\n输入其他即取消\n");scanf("%d",&sta);if ( sta == 0){strcpy(nidi.state, "0");strcpy(nidi.gender, "0");strcpy(nidi.student, "0");strcpy(nidi.num, "0");fseek(fp, -sizeof(book), SEEK_CUR);fwrite(&nidi, sizeof(book), 1, fp);printf("还书成功!\n");system("pause");fclose(fp);}}found = true;break; }}fclose(fp);if (!found){printf("没有该图书!");}system("pause");Play();}int main(int argc, char *argv[])
{while (1){Menu();Choice();system("pause"); system("cls");}return 0;
}
4.总结
程序方面大同小异,都是由4个主要模块进行调整修改,这个程序不足的地方就是冗余,在函数调用返回上一个函数的过程中有大问题
·
c语言图书管理系统(详细个人理解)相关推荐
- c语言学生综合测评系统_c语言图书管理系统_c语言学生综合测评系统_c语言个人账本管理系统...
c语言销售管理系统设计 c语言设计管理系统,c图书管理系统设计,学生管理系统c语言,职工管理系统c语言,c语言图书管理系统,c语言成绩管理系统,c语言管理系统,c语言银行管理系统,c语言工资管理系统, ...
- c语言图书馆管理程的运行截图,c语言图书管理系统
广告 Apple iPad,AirPods Pro,Bose耳机,机械键盘,健身环等着您 对于seo工程师,更多使用永久重定向. 如果您想成为永久重定向,则只需将此代码添加到redirect()中. ...
- c语言课程设计北京电子工业出版社,c语言图书管理系统课程设计报告
c语言图书管理系统课程设计报告 五.小节: 在这一个星期的实践中,通过编写这个图书管理系统,我体会到了c语言学习的实用性.将理论和实践结合在一起,用先进的计算机工具方便人们的生活.C语言程序的编写首先 ...
- C语言图书管理系统[2023-01-06]
C语言图书管理系统[2023-01-06] 模仿图书馆的借书还书操作,用C语言实现图书管理系统.系统必须先登录方可进入系统. 该系统分为读者和图书管理员2类用户,若是读者登录成功后可显示该读者的借阅信 ...
- c语言-图书管理系统(顺序表)
c语言-图书管理系统--顺序表实现增删改查 采用外部控制台运行,若直接控制台输出,则清屏命令无效 每种图书信息包括ISBN.书名.价格 具有以下几种功能 0.初始化图书表, 1.录入图书信息 ,2. ...
- c语言课程设计图书管理系统报告,C语言图书管理系统课程设计报告[1]
C语言图书管理系统课程设计报告[1] 第三章 图书管理系统的设计与实现3.1 系统的需求分析图书登记管理系统作为一个应用软件将为学校的老师和学生提供一个对学校图书馆深入了解并借阅.还书的平台.根据系统 ...
- c语言图书管理系统用什么软件,编写c语言的软件 纯C语言编写图书管理系统.doc...
编写c语言的软件 纯C语言编写图书管理系统 编写c语言的软件 纯C语言编写图书管理系统WORD文档bbszp 导读:就爱阅读网友为您分享以下"纯C语言编写图书管理系统WORD文档bbszp& ...
- c语言图书管理系统解析,基于C语言的图书管理系统的设计与实现解析.doc
毕业论文 题目:基于C语言的图书管理系统的设计与实现 英文题目:Design and Implementation of Books Management System Based on C Lang ...
- 课程设计图书管理系统c语言,图书管理系统c语言课程设计c语言课程设计作业获得95分全院第一......
> 下载中心 > > 图书管理系统 c语言课程设计 english version 图书管理系统 c语言课程设计 所属分类: 开发工具:c/c++ 文件大小:2720kb 下载 ...
最新文章
- 涨姿势,Java中New一个对象是个怎么样的过程?
- c# 自然序号,在C#中的自然排序
- Sorry,关注这些 IT 技术类公众号,真的可以为所欲为
- 获取DOM元素方法小结
- lodash 根据某个字段排序处理
- 12-Factor与云原生
- java 事件分发机制_用两段代码带你看懂事件分发机制
- mysql can't open file: '..frm'_mysqldump 导出数据时出现can’t opne file ‘xx.frm’ (errno:24)错误...
- [USACO09HOL]假期绘画Holiday Painting
- Windows内存映射步骤
- su root 后还是不能使用useradd ,useradd 等命令
- 万万没想到,区块链将提升无人驾驶安全性!
- java作用域对象笔记_Java学习笔记(七)——对象
- java poi设置单元格格式为数值_java中导出excel设置单元格的样式为数字格式怎样设置?...
- 转载:SQL入门教程
- 用拉普拉斯变换求零状态响应_什么是UPS?为什么用UPS?关于UPS电源的知识都在这里!...
- 应对雾霾,哪款口罩适合你?
- 机器学习导论(一)绪论
- Arnold阿诺德电影级渲染器完全教学
- 不用邀请照样申请Gmail免费邮箱