当前位置:首页 » 编程语言 » 书籍销售信息管理系统c语言
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

书籍销售信息管理系统c语言

发布时间: 2023-01-11 15:35:56

c语言图书管理信息系统

借书的限制:教师180天,借15本;学生120天,借10本

图书的信息:书的编号号,书名,作者,书的种类,书的总量以及书的剩余量

学生/教师信息:学号/工号(4位数字字符),姓名,借书日期,还书日期(以此判定是否超出有效期)

(一)、查询:(无条件或有条件指按所有字段查询)

一、单链表上实现图书信息管理

利用链表结构实现图书存储

二、二叉排序树或平衡树上实现图书信息管理

利用二叉排序树或平衡树实现图书的存储

三、B_树的操作(手工题)

插入、删除操作:

从空的3阶B_树开始,依次插入20,30,50,52,60,68,70,10,80,90,40,75。画出建树过程,然后分别画出删除50,60,10,75,20的B_树状态。

1.课程设计的题目内容要求

2.数据结构的设计思想和任务的总体结构

链接:https://pan..com/s/11BBC4ec7x3l62u83lJeGpw

提取码:1234

② C语言编程图书管理系统

#include#include#include#include#includestructbook{charnumber[100];chartittle[100];charwriter[100];charpublisher[100];chardate[100];charprice[100];charstatus[100];charreader[100];};voidsearch_book();voidborrow_book();voidreturn_book();voidadd_book();voiddelete_book();voidmodify_book();voidscan_book();intmain(){intc1=0,c2,c3;intl,x,z;while(1){system("color2C");printf("\t\t\t^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^\n");printf("\t\t\t|*-*-*-图书管理系统*-*-*|\n");printf("\t\t\t*[1]用户登录*\n");printf("\t\t\t*[2]管理员登录*\n");printf("\t\t\t^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^\n");printf("\n");printf("请选择你的操作:");scanf("%d",&c1);system("cls");break;}if(c1==1){while(1){system("color2C");printf("\t\t\t^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^\n");printf("\t\t\t|*-*-*-图书管理系统*-*-*|\n");printf("\t\t\t*[1]查询图书*\n");printf("\t\t\t|[2]借阅图书|\n");printf("\t\t\t*[3]借还图书*\n");printf("\t\t\t*[4]浏览图书信息*\n");printf("\t\t\t|[5]退出图书管理系统|\n");printf("\t\t\t^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^\n");printf("\n");printf("请选择你的操作:");scanf("%d",&c2);getchar();switch(c2){case1:search_book();break;case2:borrow_book();break;case3:return_book();break;case4:scan_book();break;case5:system("cls");return0;}}}if(c1==2){while(1){system("color2C");printf("\t\t\t^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^\n");printf("\t\t\t|*-*-*-图书管理系统*-*-*|\n");printf("\t\t\t|[1]添加图书|\n");printf("\t\t\t*[2]删减图书*\n");printf("\t\t\t|[3]修改图书信息|\n");printf("\t\t\t*[4]浏览图书信息*\n");printf("\t\t\t|[5]退出图书管理系统|\n");printf("\t\t\t^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^\n");printf("\n");printf("请选择你的操作:");scanf("%d",&c3);getchar();switch(c3){case1:add_book();break;case2:delete_book();break;case3:modify_book();break;case4:scan_book();break;case5:system("cls");return0;}}}}/*查询图书*/voidsearch_book(){FILE*fp;structbookn;structbooknn;intl,r;charx,z;fp=fopen("F:\\课程设计\\图书管理系统.txt","rb");while(1){l=0;system("cls");printf("请输入图书名称:");scanf("%s",n.tittle);fflush(stdin);rewind(fp);while(1){fread(&nn,sizeof(nn),1,fp);if(feof(fp))break;r=strcmp(n.tittle,nn.tittle);if(r==0){l=1;break;}}if(l==0){printf("没有要查询的图书!!!\n\n");}else{printf("查询的图书为:");printf("\n");printf("****************************************\n");printf("编号书名作者出版社出版时间价格状态借阅者\n");printf("\n");printf("%s%s%s%s%s%s%s",nn.number,nn.tittle,nn.writer,nn.publisher,nn.date,nn.price,nn.status,nn.reader);printf("\n\n\n");}printf("是否继续查询图书?[是(y)/否(n)]?\n\n");do{x=getche();}while(x!='n'&&x!='y');if(x=='n')break;}fclose(fp);system("cls");}//添加voidadd_book(){FILE*fp;structbookn;structbooknn;charx,z;intl,r;fp=fopen("F:\\课程设计\\图书管理系统.txt","ab+");do{system("cls");do{l=0;printf("\n");printf("编号书名作者出版社出版时间价格状态借阅者\n");fflush(stdin);scanf("%s%s%s%s%s%s%s%s",n.number,n.tittle,n.writer,n.publisher,n.date,n.price,n.status,n.reader);system("cls");rewind(fp);while(!feof(fp)){fread(&nn,sizeof(nn),1,fp);r=strcmp(n.tittle,nn.tittle);if(r==0){l=1;printf("该图书已存在,请输入新的图书信息:\n\n");break;}}}while(l);fwrite(&n,sizeof(n),1,fp);printf("\n");printf("是否继续输入新的图书信息[y/n]\n\n");do{x=getche();}while(x!='n'&&x!='y');}while(x=='y');fclose(fp);system("cls");}//删除图书voiddelete_book(){FILE*fp,*fp1;charx,z;structbookn;structbooknn;intl,r;fp=fopen("F:\\课程设计\\图书管理系统.txt","ab+");while(1){l=0;system("cls");printf("\n");printf("请输入需要删除的图书名:\n\n");fflush(stdin);scanf("%s",&n.tittle);rewind(fp);while(1){fread(&nn,sizeof(nn),1,fp);if(feof(fp))break;r=strcmp(n.tittle,nn.tittle);if(r==0){l=1;break;}}if(l==0){printf("\n");printf("对不起,未找到该图书\n");}else{printf("\n");printf("****************************************\n");printf("编号书名作者出版社出版时间价格状态借阅者\n");printf("\n");printf("%s%s%s%s%s%s%s%s",nn.number,nn.tittle,nn.writer,nn.publisher,nn.date,nn.price,nn.status,nn.reader);printf("\n");printf("确认删除图书信息?[是(y)/否(n)]\n\n");do{z=getche();}while(z!='n'&&z!='y');if(z=='n')break;else{fp1=fopen("F:\\课程设计\\图书管理系统new.txt","wb");rewind(fp);while(1){fread(&nn,sizeof(nn),1,fp);if(feof(fp))break;r=strcmp(n.tittle,nn.tittle);if(r!=0)fwrite(&nn,sizeof(nn),1,fp1);}fclose(fp);fclose(fp1);fp=fopen("F:\\课程设计\\图书管理系统.txt","wb");fp1=fopen("F:\\课程设计\\图书管理系统new.txt","rb");while(1){fread(&nn,sizeof(nn),1,fp1);if(feof(fp1))break;fwrite(&nn,sizeof(nn),1,fp);}fclose(fp);fclose(fp1);}}printf("\n");printf("是否继续删除图书信息?[是(y)/否(n)]\n");do{x=getche();}while(x!='n'&&x!='y');if(x=='n')break;}fclose(fp);system("cls");}//修改图书信息voidmodify_book(){FILE*fp;structbookn;structbooknn;intl,r;charx,z;fp=fopen("F:\\课程设计\\图书管理系统.txt","rb+");while(1){l=0;printf("\n");system("cls");printf("请输入需要修改的图书名:\n\n");fflush(stdin);scanf("%s",&n.tittle);system("cls");rewind(fp);while(1){fread(&nn,sizeof(nn),1,fp);if(feof(fp))break;r=strcmp(n.tittle,nn.tittle);if(r==0){l=1;break;}}if(l==0){printf("\n");printf("对不起,未找到该图书信息\n\n");}else{printf("\n");printf("****************************************\n");printf("编号书名作者出版社出版时间价格状态借阅者\n");printf("\n");printf("%s%s%s%s%s%s%s%s",nn.number,nn.tittle,nn.writer,nn.publisher,nn.date,nn.price,nn.status,nn.reader);printf("请依次修改图书信息\n\n\n");fflush(stdin);scanf("%s%s%s%s%s%s%s%s",n.number,n.tittle,n.writer,n.publisher,n.date,n.price,n.status,n.reader);fseek(fp,sizeof(nn),1);fwrite(&n,sizeof(nn),1,fp);}printf("\n");printf("是否继续修改用户信息[y/n]?\n\n");do{x=getch();}while(x!='n'&&x!='y');if(x=='n')break;}fclose(fp);system("cls");}//借书voidborrow_book(){FILE*fp;structbookn;structbooknn;charx,z;intl,r;fp=fopen("F:\\课程设计\\图书管理系统.txt","rb+");while(1){l=0;system("cls");printf("\n");printf("请输入需要借阅的图书名:\n");fflush(stdin);scanf("%s",&n.tittle);rewind(fp);while(1){fread(&nn,sizeof(nn),1,fp);if(feof(fp))break;r=strcmp(n.tittle,nn.tittle);if(r==0){l=1;break;}}if(l==0){printf("\n");printf("对不起,未找到该图书。\n");}else{printf("\n");printf("****************************************\n");printf("编号书名作者出版社出版时间价格状态借阅者\n");printf("\n");printf("%s%s%s%s%s%s%s%s",nn.number,nn.tittle,nn.writer,nn.publisher,nn.date,nn.price,nn.status,nn.reader);printf("\n");fflush(stdin);printf("请输入图书信息并修改在库状态及借阅者信息");printf("****************************************\n");printf("编号书名作者出版社出版时间价格状态借阅者\n");printf("\n");scanf("%s%s%s%s%s%s%s%s",n.number,n.tittle,n.writer,n.publisher,n.date,n.price,n.status,n.reader);fseek(fp,sizeof(nn),1);fwrite(&n,sizeof(nn),1,fp);}printf("\n");printf("是否继续借书?[是(y)/否(n)]\n\n");do{x=getch();}while(x!='n'&&x!='y');if(x=='n')break;}fclose(fp);system("cls");}//还书voidreturn_book(){FILE*fp;structbookn;structbooknn;charx,z;intl,r;fp=fopen("F:\\课程设计\\图书管理系统.txt","rb+");while(1){l=0;system("cls");printf("\n");printf("请输入需要借还的图书名:\n");fflush(stdin);scanf("%s",&n.tittle);rewind(fp);while(1){fread(&nn,sizeof(nn),1,fp);if(feof(fp))break;r=strcmp(n.tittle,nn.tittle);if(r==0){l=1;break;}}if(l==0){printf("\n");printf("对不起,未找到该图书。\n");}else{printf("\n");printf("****************************************\n");printf("编号书名作者出版社出版时间价格状态借阅者\n");printf("\n");printf("%s%s%s%s%s%s%s%s",nn.number,nn.tittle,nn.writer,nn.publisher,nn.date,nn.price,nn.status,nn.reader);printf("\n");fflush(stdin);printf("请输入图书信息并修改在库状态\n\n");printf("****************************************\n");printf("编号书名作者出版社出版时间价格状态借阅者\n");printf("\n");scanf("%s%s%s%s%s%s%s%s",n.number,n.tittle,n.writer,n.publisher,n.date,n.price,n.status,n.reader);fseek(fp,-(int)sizeof(nn),1);fwrite(&n,sizeof(nn),1,fp);}printf("\n");printf("是否继续还书?[是(y)/否(n)]\n");do{x=getche();}while(x!='n'&&x!='y');if(x=='n')break;}fclose(fp);system("cls");}//浏览voidscan_book(){FILE*fp;charx,z;structbookn;fp=fopen("F:\\课程设计\\图书管理系统.txt","rb");rewind(fp);system("cls");while(1){fread(&n,sizeof(n),1,fp);if(feof(fp))break;else{printf("********************************************\n");printf("编号书名作者出版社出版时间价格状态借阅者\n");printf("\n");printf("%s%s%s%s%s%s%s%s",n.number,n.tittle,n.writer,n.publisher,n.date,n.price,n.status,n.reader);printf("\n");}}printf("\n");printf("回到主菜单请按回车");do{x=getche();}while(x!='\r');if(x=='\r'){fclose(fp);system("cls");}}

③ 图书信息管理系统设计 c语言

高级语言程序设计(2)课程设计 一程序设计说明书【设计题目】图书馆借阅管理【问题描述】图书馆,适合用C++面向对象的功能来描述。图书馆管理系统分为借书、还书、图书管理和读者服务等四个部分。设计一个读者类Reader,记录每个读者基本信息;读者库类Rdatabase,记录所有读者信息;图书类Book,记录每本书的基本信息;图书库类Bdatabase,记录所有图书信息。【基本要求】1读者库类RDatabase中,其构造函数中,将read.txt文件中所有读入读者记录rede[]中。处理完毕,在析构函数中将read[]中的所有未删记录写入到read.txt中。2图书库类BDatabase中,其构造函数中,将book.txt文件中所有读入图书记录book[]中。处理完毕,在析构函数中将book[]中的所有未删记录写入到book.txt中。3利用构造函数完成读者和图书数据初始化,完成内存分配。程序结束前,析构函数完成所申请的堆内存空间。4编写主函数,对所编写的矩阵类进行全面测试。要求用户界面采用菜单方式。测试中需要读者和图书数据通过I/O流从磁盘文件读入,同时显示在屏幕上。得到的数据通过I/O流写入磁盘文件保存,同时显示在屏幕上。5源程序中要有充分的注释,报告中要有详细的流程图和文字材料。【类的设计】该程序包含了四个类,如下:1.Reader类,有读者的基本管理功能,具有以下私有数据:inttag;//删除标记1:已删;0:未删intno;//读者编号charname[10];//读者姓名intborbook[Maxbor];//所借图书2.读者库类Rdatabase,具有以下私有数据:inttop;//读者记录指针Readerread[Maxr];//读者记录3.图书库类Book,有一本图书的基本功能,有以下私有数据:inttag;//删除标记1:已删;0:未删intno;//图书编号charname[20];//书名intonshelf;//是否在架1在架0已借4.图书库类BDatabase,有以下私有数据:inttop;//图书记录指针Bookbook[Maxb];//图书记录【特殊函数的设计说明】构造函数1.Reader类中构造函数Reader(),初始化函数;2.读者库类RDatabase中,其构造函数Rdatabase(),将read.txt文件中所有读入读者记录rede[]中。3.Book类中构造函数Book(),初始化函数;4.图书库类BDatabase中,其构造函数中,将book.txt文件中所有读入图书记录book[]中。 拷贝构造函数Reader类中的拷贝构造函数将getname()的返回值读者姓名拷贝到setname()中,Book类中的拷贝构造函数将getname()函数的返回值图书名拷贝到图书名设置函数setname()中。 析构函数1.读者库类RDatabase中,其析构函数~Rdatabase(),将read[]中的所有未删记录写入到read.txt中;2.图书库类BDatabase中,其析构函数~Bdatabase(),将book[]中的所有未删记录写入到book.txt中。 运算符重载重载了“=”,当比较读者编号和图书编号时,重载;重载位运算符“〈〈”和“〉〉”等。 【主要函数算法流程图】 【程序的使用方法】1.进入操作页面,按提示操作;2.首先,新增图书和读者信息,之后就可以对以存在的信息进行操作;3.操作当中,可以随时增加,更改和删除图书或读者信息;4.当选择退出时,进行清屏。 二程序上机调试报告【语法错误及其排除】1.在敲程序时,有很多拼写错误,例好多处把Readdata()误打Readdate();结束的分号,在不同的输入法状态下输入,这些小错误刚开始很难发现,不过有了经验,就很容易了。2.创建新的构造函数时,使用出现了错误。重载构造函数要注意函数的访问权限,结果就不会出现错误。【算法错误及其排除】1.读者类中借书操作函数中,采用循环语句时判断读者已借图书量时for(inti=0;i#include#include#includeconstintMaxr=1000;//最多的读者constintMaxb=10000;//最多的图书constintMaxbor=8;//每位读者最多借8本书classReader//读者类{inttag;//删除标记1已删;0未删intno;//读者编号charname[10];//读者姓名intborbook[Maxbor];//所借图书public:Reader(){}//构造函数char*getname(){returnname;}//获取读者姓名intgettag(){returntag;}//获取删除标记intgetno(){returnno;}//获取读者编号voidsetname(charna[])//设置读者姓名{strcpy(name,na);}voiddelbook(){tag=1;}//设置删除标记voidaddreader(intn,char*na)//增加读者{tag=0;no=n;strcpy(name,na);for(inti=0;i>choice;switch(choice){case1:cout>readerid;cout>rname;addreader(readerid,rname);break;case2:cout>readerid;r=query(readerid);if(r==NULL){cout>rname;r->setname(rname);break;case3:cout>readerid;r=query(readerid);if(r==NULL){coutdelbook();break;case4:cout>readerid;r=query(readerid);if(r==NULL){cout>choice;switch(choice){case1:cout>bookid;cout>bname;addbook(bookid,bname);break;case2:cout>bookid;b=query(bookid);if(b==NULL){cout>bname;b->setname(bname);cout>bookid;b=query(bookid);if(b==NULL){coutdelbook();break;case4:cout>bookid;b=query(bookid);if(b==NULL){coutdisp();break;case5:disp();break;case6:clear();break;}}} voidmain(){intchoice=1,bookid,readerid;RDatabaseReaderDB;Reader*r;BDatabaseBookDB;Book*b;while(choice!=0){cout>choice;switch(choice){case1:cout>readerid;cout>bookid;r=ReaderDB.query(readerid);if(r==NULL){coutborrowbook()==0){coutborrowbook(b->getno());break;cout>readerid;cout>bookid;r=ReaderDB.query(readerid);if(r==NULL){coutretbook();r->retbook(b->getno());break;cout<<"还书成功!"<

④ C语言程序设计图书信息管理系统

俺也想要,[email protected]
谢谢

⑤ 用C语言设计和实现一个“图书信息管理系统”,满足以下要求:

const int MAXLEN=100;int count; //记录书籍数量char fName[20]="backup.dat"; //磁盘文件:书籍信息文件名 int LEN; //全局变量,通讯录中当前联系人总数int n;char *key;
typedef struct book //联系人数据结构
{ char no[20]; //序号 char book_name[20]; // 书名 char writer[30]; //作者名 char booknum[20]; //书籍分类 char press[20]; //出版单位 char price[10]; //书籍价格 }BOOK;BOOK b[MAXLEN];
typedef struct index{ int len; //数组长度 BOOK b[MAXLEN]; //指针数组}Index;
int Select();int Menu(void);int SubMenu2(void);int SubMenu4(void);int addbook(BOOK b[]);int output(BOOK b[]);int deletebook(BOOK b[]);void printno(BOOK b[]);int modifyIndo(BOOK b[]);int Save(BOOK b[]); int loaddata(BOOK b[]);int Copy(void);void New(BOOK b[]);int Load(BOOK b[]);void List(BOOK b[]);//void findbook(char *name,BOOK b[],char *key);
#include<stdio.h>#include<stdlib.h>#include<conio.h>#include<string.h>#include<memory.h>int main(int argc, char* argv[]){ int select=0;
/*int select;用户所选的菜单项代码: 主菜单:1 查找图书信息、2 更新图书信息 、3 备份图书信息、0 退出程序 更新图书信息子菜单:21 新增图书信息、 22 编辑图书信息、 23 删除图书信息、 20 返回主菜单 查看图书信息子菜单:11 图书信息库 、12书名查找、13 作者名查找、14 序号查找 */
BOOK b[MAXLEN]; memset(b,0,sizeof(b)); //将b初始化为空,memory.h loaddata(b); //从图书库文件中读取信息 //循环显示菜单,供用户选择 do{
if(select<10||select==20||select==40) select=Menu(); else if(select>20 && select<30) select=SubMenu2(); else if(select>40 && select<50) select=SubMenu4(); switch(select) { case 11:// 图书信息库 break; case 12://书名查找 break;
case 13://作者名查找 break; case 14://类别查找 break;
case 21://新增图书信息、 break; case 22://编辑图书信息、 break; case 23://删除图书信息、 break; case 20://返回主菜单 break; case 3: system("cls"); Save(b); Copy(); break; case 0://退出程序 break; } }while(select!=0); return 0;}
int SubMenu4(void){ char menu; do{ system("cls");//清屏,需要使用到stdlib.h puts("\n\t======更新图书信息======\n"); puts("\t 1.新增图书信息"); puts("\t 2.删除图书信息"); puts("\t 3.编辑图书信息"); puts("\t 0.返回主菜单"); puts("\n\t=================="); printf("\t请选择:");//提示选择 menu=getche(); switch(menu) { case '0': puts("\n\n\t返回主菜单!"); break; case '1': addbook(b); break; case '2': deletebook(b); break; case '3': modifyIndo(b); break; default: puts("\n\n\t选择错误!"); menu='9'; } }while(menu=='9'); return 40+menu-'0';}
void New(BOOK b[]){ int t=0; //找到BOOK中第一个空的位置,存放新输入 if(LEN>=MAXLEN) { printf("\n\n\t图书库已满!"); return ; }
while(strcmp(b[t].book_name,"")!=0) //找到b中第一个空的位置t t++; addbook(b); //新增,输入 LEN++; //增1}
int modifyIndo(BOOK b[])//编辑图书信息{ char no[20]; int i; printno(b);again: printf("\n请输入你想要编辑的书籍编号:"); fflush(stdin); gets(no); for(i=0;i<=count;i++) { if(strcmp(no,b[i].no)==0) break; } if(i>count) { printf("对不起,你输入的编号不存在,是否继续?Y/N:"); if((getchar()=='Y')||(getchar()=='y')) goto again; else return 0; } printf("\n正在修改《%s》的信息……\n",b[i].book_name); printf("请输入图书的名字:"); gets(b[i].book_name); printf("请输入图书的作者名:"); gets(b[i].writer); printf("请输入书籍类别:"); gets(b[i].booknum); printf("请输入书籍的出版单位:"); gets(b[i].press); printf("请输入书籍的价格:"); gets(b[i].price); printf("\n图书信息编辑成功!\n");

}
void printno(BOOK b[]){ int i; printf("\n当前库存中的书籍目录:\n"); for( i=0;i<=count;i++) { printf("%s %s ",b[i].no,b[i].book_name); if(i%3==0&&i>0) printf("\n"); }}
int output(BOOK b[]) //输出图书信息{ if(count<0) { printf("对不起,当前图书数量为0\n"); return 0; } for(int i=0;i<=count;i++) { printf("\n*************************书籍信息*****************************\n"); printf("序号:%s\n",b[i].no); printf("书名:%s\n",b[i].book_name); printf("作者名:%s\n",b[i].writer); printf("书籍类别:%s\n",b[i].booknum); printf("出版单位:%s\n",b[i].press); printf("书籍价格:%s\n",b[i].price); } return 1; }
int deletebook(BOOK b[]) { char no[20]; int i; printno(b);loop: printf("\n请输入你要删除的书籍编号:"); fflush(stdin); gets(no); for(i=0;i<=count;i++) { if(strcmp(no,b[i].no)==0) break; } if(i>count) { printf("对不起,你输入的编号不存在,是否继续?Y/N:"); if((getchar()=='Y')||(getchar()=='y')) goto loop; else return 0; } printf("您确定要删除《%s》吗?Y/N:",b[i].book_name); if((getchar()=='Y')||(getchar()=='y'))
{ if(i==count) { count--; } else { for(;i<=count;i++) { b[i]=b[i+1]; count--; }
}
} else return 0; }
int loaddata(BOOK b[]){ int i=0; //i:b数组的下标 FILE *fp=fopen(fName,"r"); if(!fp) { printf("\n\t对不起,路径或者文件错误,无法读入!请重新增加!"); getch(); return 0; } fscanf(fp,"书籍编号\t书名\t作者\t类别\t出版单位\t价格"); while((!feof(fp))) { fscanf(fp,"\n%s\t%s\t%s\t%s\t%s\t%s",&b[i].no,&b[i].book_name,&b[i].writer,&b[i].booknum,&b[i].press,&b[i].price); i++; } count=i; fclose(fp); printf("加载成功!!"); return 1;}
int Select(){ int i=0; int c; //c:scanf输入的返回值,输入成功返回1;否则返回0 printf("\n\t请按需要选择图书信息:"); c=scanf("%d",&i); while(i<1 || i>LEN) { printf("\n\t输入错误!请按序号选择图书信息:"); if(c==0) fflush(stdin); c=scanf("%d",&i); } return i-1;} int addbook(BOOK b[]) //增加图书信息{ int i=0; char c; printf("\n*******************************新增图书信息****************************\n"); for(;;i++) { if(i>=MAXLEN) { printf("\n对不起,库存已满!不能继续添加。"); } printf("请输入图书的序号:"); gets(b[i].no); printf("请输入图书的名字:"); gets(b[i].book_name); printf("请输入图书的作者名:"); gets(b[i].writer); printf("请输入书籍类别:"); gets(b[i].booknum); printf("请输入书籍的出版单位:"); gets(b[i].press); printf("请输入书籍的价格:"); gets(b[i].price); printf("图书增加成功!\n"); printf("请问您要继续添加书籍信息吗?(Y/N): "); c=getchar(); if(c=='Y'||c=='y') { getchar(); printf("\n"); continue; } else break; } count=i; return i;
}//查重。int Duplicate(char *name,BOOK b[],char *original){ int i,j; int p=0; //重复标志:1 重复 ,0 没有重复 if(strcmp(name,original)!=0) for(i=0,j=0;j<LEN;) { while(strcmp(b[i].book_name,"")==0) i++;
if(strcmp(name,b[i].book_name) ==0) { p=1; printf("\n\t重复!请重新输入:"); break; } i++; j++; } return p; }int SubMenu2(void){ char menu,*name; do{ system("cls"); //清屏,需要使用到stdlib.h puts("\n\t======查找图书信息======\n"); puts("\t 1.图书信息库"); puts("\t 2.书名查找"); puts("\t 3.作者名查找"); puts("\t 4.序号查找"); puts("\t 0.返回主菜单"); puts("\n\t=================="); printf("\t请选择:"); //提示选择 menu=getche(); switch(menu) { case '0': puts("\n\n\t返回主菜单!"); break; case '1': output(b); getch(); break; case '2': //findbook(name,b,key); getch(); break; case '3': case '4': printno(b); break; default: puts("\n\n\t选择错误!"); menu='9'; } }while(menu=='9'); return 20+menu-'0';}
int Menu(void){ char menu; do{ system("cls"); puts("\n\t======主菜单======\n"); puts("\t 1.查找图书信息"); puts("\t 2.更新图书信息"); puts("\t 3.备份图书信息"); puts("\t 0.退出程序"); puts("\n\t=================="); printf("\t请选择:"); //提示选择 menu=getche(); switch(menu) //将用户输入的选项menu转换成系统定义的菜单代码 {
case '0': puts("\n\n\t退出程序!"); menu=menu-'0'; break;
case '2': menu=SubMenu4();
break; case '3': menu=menu-'0';
break; case '1': menu=SubMenu2();
break; default: puts("\n\n\t选择错误!"); menu='9'; //输入了无效的菜单代码,需要重新输入 } }while(menu=='9'); return menu;}
int Load(BOOK b[]){ FILE *fin; int i=0; fin=fopen(fName,"rb"); if(!fin) { printf("\n\t书籍信息不存在,请先新增加图书信息!\n\n按任意键继续……"); getch(); return 0; } while(1) { fread(&b[i],sizeof(BOOK),1,fin); if(feof(fin)) break; i++; } fclose(fin); LEN=i; return i;
}
int Save(BOOK b[])//存入文件 {
int i; //i:b数组的下标 FILE *fp=fopen(fName,"w"); if(!fp) { printf("\n\t不能正确保存书籍信息!按任意键继续……"); getch(); return 0; } fprintf(fp,"书籍编号\t书名\t作者\t类别\t出版单位\t价格"); for( i = 0; i <=count; i++) { fprintf(fp,"\n%s\t%s\t%s\t%s\t%s\t%s",b[i].no,b[i].book_name,b[i].writer,b[i].booknum,b[i].press,b[i].price); } fclose(fp); printf("保存成功!!"); return 1;}
int Copy(void) //备份图书信息,复制图书信息文件{ FILE *fout,*fin; BOOK *p=(BOOK *)malloc(sizeof(BOOK)); //存放从图书信息库读入的临时数据 char name[20];
fin=fopen(fName,"rb"); if(!fin) { printf("\n\t没有此图书信息!"); return 0; }
do{ printf("\n\t请输入备份文件名:"); scanf("%s",name); strcat(name,".bak"); fout=fopen(name,"wb"); if(!fout) printf("\t无效文件名或路径!\n"); }while(!fout);
while(1) { fread(p,sizeof(BOOK),1,fin); if(feof(fin)) break; fwrite(p,sizeof(BOOK),1,fout); }
printf("\n\t备份成功!"); free(p); return 1;}
void findbook(char *name,BOOK b[],char *key){
int i,j; //i:数组下标 j:除姓名为空串以外的实际人数 int p=0; printf("请输入您需要查找图书信息的书名:"); scanf("%s",name); if(strcmp(name,key)!=0) for(i=0,j=0;j<LEN;) { while(strcmp(b[i].book_name ,"")==0) i++; if(strcmp(name,b[i].book_name) ==0) { p=1; printf("\n%s\t%s\t%s\t%s\t%s\t%s",&b[i].no,&b[i].book_name,&b[i].writer,&b[i].booknum,&b[i].press,&b[i].price); } }}

⑥ 谁能用c语言帮忙说一下这个图书销售管理系统的做法最好能给个样板,要定义两个结构体吗

#include "stdio.h"
#include "string.h"
#include "stdlib.h"
#define N 100 /*定义图书总容量为100*/
int Count=0; /*定义全局变量,用来表示图书的个数*/

struct book /*定义结构体类型*/
{
int num; /*序号为整型*/
char name[40]; /*书名为字符串*/
char author[20]; /*作者为字符串*/
char publish[50]; /*出版社为字符串*/
float price; /*价格为浮点型*/
};
struct book list[N]; /*定义struct book类型的变量 list N个*/

void show_bookinformation(struct book list[]); /*声明图书信息浏览函数*/
void check_bookinformation (struct book list[]); /*声明图书信息查询函数*/
void modify_bookinformation (struct book list[]); /*声明图书信息修改函数*/
void delete_bookinformation (struct book list[]); /*声明图书信息删除函数*/
void reorder_bookinformation(struct book list[]); /*声明图书信息排序函数*/
void buytotal(struct book list[]); /*声明图书购买信息函数*/
void read(); /*声明数据读入函数*/
void input(); /*声明图书信息录入函数*/
void open(); /*声明数据信息打开函数*/

/*主函数*/
void main()
{

int choice1;
printf(" *~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*\n");
printf(" * 欢迎进入图书销售管理系统 *\n");
printf(" *~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*\n");
do
{
printf("################################################################################"); /*显示菜单*/
printf(" 功能选项: \n");
printf(" 1 : 图书信息录入 \n");
printf(" 2 : 图书信息浏览 \n");
printf(" 3 : 图书信息查询 \n");
printf(" 4 : 图书信息修改 \n");
printf(" 5 : 图书信息删除 \n");
printf(" 6 : 图书信息排序 \n");
printf(" 7 : 图书的购买 \n");
printf(" 0 : 退出系统 \n");
printf("################################################################################");
printf("\t请选择操作:");
scanf("%d", &choice1);
switch (choice1) /*菜单选择*/
{
case 1 :
input();
break;
case 2 :
show_bookinformation(list);
break ;
case 3 :
check_bookinformation (list);
break ;
case 4 :
modify_bookinformation (list);
break ;
case 5 :
delete_bookinformation(list);
break ;
case 6 :
reorder_bookinformation(list);
break;
case 7 :
buytotal(list);
break;
case 0 :
break ;
}
}while (choice1!=0);
printf("谢谢! 欢迎下次使用使用!\n");

}

/*打开文件函数*/

void open()
{
int i;
FILE *fp;
if((fp=fopen("book.txt","rb"))==NULL)
{
printf("无法操作,无文件信息!!!\n");
exit(0);
}
for(i=0;i<N;i++)
{
if(fread(&list[i],sizeof(struct book),1,fp)==0)
{
printf("数据输出失败!!!\n");
exit(0);
}
}
fclose(fp);
}

/*录入文件函数*/

void read()
{
int i;
FILE *fp;
if((fp=fopen("book.txt","wr"))==NULL)
{
printf("\n不能打开文件!!!\n");
exit(0);
}
for(i=0;i<N;i++)
if(fwrite(&list[i],sizeof(struct book),1,fp)!=1)
printf("文件写入错误!!!\n");
fclose(fp);
}

/*录入函数*/

void input()
{
int i,k,j,t;
for(j=0;list[j].num!=0;j++)
t=j+1;
for(i=0;i<N;i++)
{
printf("\t请输入您的图书序号:");
scanf("\t%d",&list[i].num);
printf("\t请输入书名:");
scanf("\t%s",list[i].name);
printf("\t请输入作者:");
scanf("\t%s",list[i].author);
printf("\t请输入出版社:");
scanf("\t%s",list[i].publish);
printf("\t请输入价格:");
scanf("\t%f",&list[i].price);
fflush(stdin);
printf("\t\n是否继续录入?(1.是 2.否)");
scanf("%d",&k);
if(k==2) break;
}
Count=i+1;
read();
}

/*删除函数*/

void delete_bookinformation (struct book list[])
{
int j,k,d,i=0;
open();
printf("请输入要删除的图书的序号:\n");
scanf("%d",&d);
for(j=0;list[j].num!=0;j++)
{
if(list[j].num==d)
{
for(k=j;list[k].num!=0;k++)
list[k]=list[k+1];
i++;
}
}
if(i==0)
printf("图书销售系统没有你输入的图书序号,请重新选择输入!!!\n");
else
Count=Count-1;
read();
printf("删除成功\n");
}

/*修改函数*/

void modify_bookinformation (struct book list[])
{
int j,k=0,number;
open();
printf("\t请输入您要修改的图书的序号:");
scanf("%d",&number);
for (j=0;list[j].num!=0;j++)
if (list[j].num==number)
{
printf("\n\t请输入您修改后的图书信息!\n\n");
printf("\t请输入您要修改的图书的序号:");
scanf("%d",&list[j].num);
printf("\t请输入您修改后的书名:");
scanf("%s",list[j].name);
printf("\t请输入您修改后的作者名:");
scanf("%s",list[j].author);
printf("\t请输入您修改后的出版社:");
scanf("%s",list[j].publish);
printf("\t请输入您修改后的书的价格:");
scanf("%f",&list[j].price);
read();
printf("\n修改成功!\n");
k++;
}
if (k==0)
printf("\n\n\t找不到需要修改的图书!!");

}

/*输出函数*/

void show_bookinformation(struct book list[])
{
int i;
open();
printf("\n******************************图书信息显示*******************************\n");
printf("图书序号\t图书名\t\t作者名\t\t出版社\t\t图书价格\n");
for(i=0;list[i].num!=0;i++)
{
printf(" %d\t\t%s\t%s\t\t%s\t%6.2f\n",list[i].num,list[i].name, list[i].author,list[i].publish,list[i].price);
}
}

/*查询函数*/

void check_bookinformation (struct book list[]) /*查询图书信息*/
{
int j,i,t,k=0;
char c[20],d[20];
printf("请输入查询方式:\n 1.按书名查询 2按作者查询:\n");
scanf("%d",&t);
if(t==1)
{
open();
printf("请输入要查询的书名号:\n");
scanf("%s",c);
printf("\n **********************你想要查询的图书信息(按作者名)********************** \n");
printf("图书序号\t图书名\t\t作者名\t\t出版社\t\t图书价格\n");
for(j=0;list[j].num!=0;j++)
if(strcmp(c,list[j].name)==0)
{
printf(" %d\t\t%s\t%s\t\t%s\t%6.2f\n",list[j].num,list[j].name, list[j].author,list[j].publish,list[j].price);
k++;
}

if(k==0)
printf("\n不存在你要查询的图书信息!!!\n");
}
if(t==2)
{
open();
printf("请输入要查询的作者名:\n");
scanf("%s",d);
printf("图书序号\t图书名\t\t作者名\t\t出版社\t\t图书价格\n");
for(i=0;list[i].num!=0;i++)
if(strcmp(d,list[i].author)==0)
{
printf(" %d\t\t%s\t%s\t\t%s\t%6.2f\n",list[i].num,list[i].name, list[i].author,list[i].publish,list[i].price);
k++;
}

if(k==0)
printf("\n不存在你要查询的图书信息!!!\n");
}
}

/*排序函数*/

void reorder_bookinformation(struct book list[])
{
int i,j,a,k;
struct book t;
FILE *fp;
char temp[40];
open();
printf("\n请选择排序方式\n1---书名(按字母顺序)\n2---价格(按从高到低)\n");
scanf("%d",&a);
switch(a)
{
case 1:
for(i=0;i<Count-1;i++)
{k=i;
for(j=i+1;j<Count;j++)
if(strcmp(list[k].name,list[j].name)>0) k=j;
if(k!=i)
{ strcpy(temp,list[i].name);
strcpy(list[i].name,list[k].name);
strcpy(list[k].name,temp);
}
}
if((fp=fopen("book.txt","w"))==NULL)
{
printf("can't open the file!\n");
exit(0);
}
printf("新序列为:\n");
printf("图书序号\t图书名\t\t作者名\t\t出版社\t\t图书价格\n");
for(j=0;j<Count;j++)
{
printf(" %d\t\t%s\t%s\t\t%s\t%6.2f\n",list[j].num,list[j].name, list[j].author,list[j].publish,list[j].price);
}
read();
break;
case 2:
for(k=0;list[k].num!=0;k++)
for(j=0;list[j].num!=0;j++)
if(list[j].price<list[j+1].price)
{t=list[j];list[j]=list[j+1];list[j+1]=t;}
printf("图书序号\t图书名\t\t作者名\t\t出版社\t\t图书价格\n");
for(j=0;list[j].num!=0;j++)
{
printf(" %d\t\t%s\t%s\t\t%s\t%6.2f\n",list[j].num,list[j].name, list[j].author,list[j].publish,list[j].price);
k++;
}
read();
break;
}
}

/*购书清单*/

void buytotal(struct book list[])
{
int k,m,n,q,r,t=0;
float sum=0;
char e[50],f[50],l[50],o[50],p[50];
printf("\n ***************************************************\n");
printf("\n 人民邮电出版社样书清单 \n");
printf("\n ***************************************************\n");
printf(" 请输入所购各图书的序号(输入0 结束):\n");
scanf("%d",&q);
do
{
for(r=0;r<N;r++)
{
if(q==list[r].num)
{
sum=sum+list[r].price;
t++;
}
}

scanf("%d",&q);
} while(q!=0);

printf(" 合计发书:%d\n",t);
printf(" 收书单位:");
scanf("%s",e);
printf(" 发书依据:");
scanf("%s",f);
printf(" 价格:%.2f\n",sum);
printf(" 邮政编码:");
scanf("%d",&k);
printf(" 收货地址:");
scanf("%s",l);
printf(" 联系电话:");
scanf("%d",&m);
printf(" 制单日期:");
scanf("%d",&n);
printf(" 货运公司:");
scanf("%s",o);
printf(" 验书人:");
scanf("%s",p);
}

这个给你参考,不知行不行,行的话,分给我吧

⑦ 如何使用C语言编写图书管理系统

图书管理系统是运行于Windows系统下的应用软件,主要用于对图书馆中的图书信息进行增、删、改、查等操作,并且还可对使用该系统的用户进行登录名和密码的管理等。系统给用户提供了一个简单的人机界面,使用户可以根据提示输入操作项,调用系统提供的管理功能。
所需功能类似于学生成绩管理系统,界面可参考附录C。用户分为管理员和一般人员两大类。
功能需求描述如下。
①用户登录:根据用户输入的用户名和密码判断是否允许该用户使用本系统,并且当用户登录后根据用户权限判断用户可以使用哪些功能。学生只有浏览等权限而不能进行实质性改动。
②提供系统主控平台:系统主控平台也应根据用户权限不同而有所区别,只列出在用户权限范围内的功能供用户选择。系统主控平台包括输入功能选项、调用相应程序两大需求。教师和学生对应的系统主控平台是不同的。所能进行的操作也不相同。
③创建图书信息文件:用户根据提示输入图书编号、图书分类号、书名、作者姓名、出版社名、出版年月、定价、存库数量和借阅和上架情况等等信息存储在系统磁盘的文件中。以便进行管理、查找和备份。
④增加图书信息:可在原有图书信息文件的基础上增加新的图书信息记录并继续保存至磁盘,并且将增加后的文件存储状况显示给用户。
⑤删除图书信息:提示用户输入要进行删除操作的图书编号,如果在文件中有该信息存在,则将该书号所对应的记录删除。并选择是否继续进行删除操作。
⑥修改图书信息:提示用户输入要进行修改操作的书号,如果在文件中有该息存在,则将提示用户输入该书号对应的要修改的选项,结果存储于文件。该部分需求也需要提示用户选择是否继续进行修改操作。
⑦查询图书信息:提供按书号或书名等查询。在该功能中,也需提示用户是否需要继续查再继续查找,则返回主界面。
⑧一般用户查询个人的借阅情况并按日期进行排序:。
⑨管理员和一般用户管理:管理员对用户的管理也需要进行用户的创建、增加、删除、浏览。管理员创建的用户存储在名为yonghu的磁盘文件中,每当有用户登录系统时,会根据该文件中的用户名和密码进行核实判断,用户才能够顺利登录。管理员还具有用户的功能。增加的用户及密码、权限等也被继续存储在yonghu文件中。当某些用一用该系统时,还可以进行删除操作,并且管理员具有修改用户权限的功能,一般用户和管理员对于系统的权限是不一样的。