图书馆管理系统 c语言

合集下载

图书馆管理系统C语言程序设计

图书馆管理系统C语言程序设计

HUNANUNIVERSITYC语言程序训练1)2)3)4)5)6)7)8)9)10)在来实现:【总体设计】源代码为//rkou.c程序的入口#include<stdio.h> #include<stdlib.h> #include<string.h> #include<conio.h> #include"head.h"#include"fuc.h"#include"picture.h"#include"jiangzhuo1.h"#include"output.h"main(){inti=setup();switch(i){case0:while(n<50){conects(n);}default:eros(i);}}2.{intzn;//intbh;//};{};{intbh,o;//};//structbookbb[100];structinformationad[100];structshowss[100];inti,j,k,s;intn=0;intx;FILE*fp;//以下函数主要功能:方便窗口与用户之间交换信息intregst();voidpassword(char*a,intb,intj);//登陆时的输入函数voidexamine(int*a,intb); //保证键入的数据是数字voidchangepaw(inta,intb); //修改密码用到的提示函数voidinputs0(); //输出图书类别以供用户选择voidinputs1(inta,intb,intc,intd,inte); //方便用户输入图书各项信息(如书名,编号) voidinputs2(inta,intb,intc); //方便用户输入管理员的信息(如账号姓名) voidinputs3(inta,intb,intc); //方便用户输入读者的信息(如账号姓名) voideros(inti);//错误显示函数,操作一旦出错,则会出现相应的错误信息voidconects(intj); //连接函数,选择界面//一下函数主要用于改变文件的内容并保存intsetup();//数据初始化函数intxzc(charno[12],charkey1[10],charkey2[10],charname[10]);//读者注册函数//pic()函数voidpic0();voidpic1();voidpic2();voidpic3();voidpic4();voidpic5();voidpic6();voidpic7();voidpic8();voidpic9();voidpic10();voidpic11();voidpic12();voidpic13();voidpic14();voidpic15();voidpic16();voidpic17();voidpic18();voidpic19();voidpic20();voidpic47();voidpicc();3.用户输入以及界面反馈用到的功能函数源代码为intregst(){charnum[12],paw1[10],paw2[10],name[10];inti;printf("请输入账号\n(11字符以内,不能含有中文字符):\n");password(num,0,11);printf("输入您的密码\n(9字符以内,不能含有中文字符):\n"); password(paw1,1,9);printf("请再次输入密码:\n");password(paw2,1,9);printf("输入您的姓名:\n");gets(name);system("cls");i=xzc(num,paw1,paw2,name);returni;}{charc;inti=0;{if(c==8)if(i>0)i--;}elseif(i<j)a[i]=c;i++;}if(i==j)}}a[i]='\0';}printf("请输入数字!!\n");}rewind(stdin);if(b)system("cls");}voidchangepaw(inta,intb){inti;charc1[10],c2[10],c3[10];printf("请输入原密码\n");password(c1,1,9);printf("请输入新密码\n");password(c2,1,9);printf("请再次输入新密码\n");password(c3,1,9);system("cls");if(b){i=mp(aa.no,c1,c2,c3,b);if(i){eros(i);n=27;}elsen=26;}elseif(i)}elsen=43;}}{inti=1;switch(i)}}}voidinputs1(inta,intb,intc,intd,inte){inti;switch(a){case1:printf("请输入图书编号:\n");examine(&bk.bh,1); default:;}switch(b){case1:printf("请输入图书名称:\n");gets(); default:;}switch(c){case1:printf("请输入图书的作者:\n");gets(bk.writer); default:;}switch(d){case1:printf("请输入该图书的库存:\n");examine(&bk.zn,1); default:;}system("cls");switch(e){case1:printf("请选择图书类别:\n");inputs0();default:;}}{switch(a)default:;}switch(b)default:;}switch(c)default:;}}{switch(a)default:;}switch(b)default:;}switch(c){case1:printf("请输入姓名:\n");gets();default:;}system("cls");}voideros(inti)//错误函数{switch(i){case-1:printf("error1!初始化失败\n\n");break;case-2:printf("error2!账号不存在\n\n");break; case-3:printf("error3!账号不存在\n\n");break;case-4:printf("error4!密码错误\n\n");break;case-5:printf("error5!输入的密码不一致\n\n");break; case-6:printf("error6!编号不存在\n\n");break;case-7:printf("error7!书名不能为空\n\n");break;case-8:printf("error8!作者名字不能为空\n\n");break; case-9:printf("error9!无此图书编号的记录\n\n");break; case-10:printf("error10!无此账号的记录\n\n");break; case-11:printf("error11!原始密码输入错误\n\n");break;default:;}}{switch(j)case9:pic9();break;case10:pic10();break;case11:pic11();break;case12:pic12();break;case13:pic13();break;case14:pic14();break;case15:pic15();break;case16:pic16();break;case17:pic17();break;case18:pic18();break;case19:pic19();break;case20:pic20();break;case21:pic21();break;case22:pic22();break;case23:pic23();break;case24:pic24();break;case25:pic25();break;case26:pic26();break;case27:pic27();break;case29:pic29();break;case30:pic30();break;default:;}}4.//intsetup()//数据初始化函数{FILE*fp;fp=fopen("reader.txt","r");//对文档以只读的方式进行操作if(fp==NULL){return-1;//当文件打不开时返回-1}else{i=0;while(!feof(fp)){fscanf(fp,"%s%s%s",stu[i].name,stu[i].no,stu[i].key);//将文档里面的数据格式化读取到结构体数组里面i++;}i=i-1;}fclose(fp);fp=fopen("ad.txt","r");//对文档以只读的方式进行操作if(fp==NULL){return-1;//}else{j=0;{j++;}j=j-1;}fclose(fp);{return-1;//}else{k=0;{将文档里面的数据格式化读取到结构体数组里面k++;}k=k-1;}fclose(fp);fp=fopen("show.txt","r");//对文档以只读的方式进行操作if(fp==NULL){{s=0;while(!feof(fp)){fscanf(fp,"%s%s%d%s%s%d",ss[s].name1,ss[s].no,&ss[s].bh,ss[s].name2,ss[s].writer,&ss[s].o);//将文档里面的数据格式化读取到结构体数组里面s++;}s=s-1;}fclose(fp);return0;//}{intx=0;{{return-21;break;}{{i=i+1;return-16;else{fprintf(fp,"%s\t\t%s\t\t%s\n",stu[i].name,stu[i].no,stu[i].key);}fclose(fp);return0;}else{return-5;}intexam(charno[10],charkey[10],intn)//密码账号检验函数{intx;if(n==0)//对读者的密码和账号信息进行检验{for(x=0;x<=i;x++){if(!strcmp(no,stu[x].no))//判断该账号是否存在{}{return-3;}}}if(n==1)//{{return0;break;}else{return-4;break;}}return-3;}}}}intzj(structbookb)//管理员增加图书信息函数{intx;for(x=0;x<=k;x++){if(bb[x].bh==b.bh)//判断所增加的图书编号是否已存在{return-13;break;}break;}if(x==k)k=k;elsek=k+1;return-16;else{}fclose(fp);return0;}}}intsc(intbh)//管理员删除图书信息函数{intx;for(x=0;x<=k;x++){if(bb[x].jn!=0)return-22;for(x=x;x<=k-1;x++){bb[x]=bb[x+1];//删除图书信息后将该图书信息后面的图书信息依次前移}k--;fp=fopen("book.txt","w+");//将删除后的所有图书信息重新写入文档if(fp==NULL)return-16;else{{}}fclose(fp);return0;break;}}}{intx;if(n==0)//{{{{fp=fopen("reader.txt","w+");//将修改后的信息保存在文件里面if(fp==NULL)return-16;else{for(x=0;x<=i;x++)fprintf(fp,"%s\t\t%s\t\t%s\n",stu[x].name,stu[x].no,stu[x].key);}fclose(fp);else{return-5;}}elsereturn-11;}}}if(n==1)//{{{{{return-16;else{}fclose(fp);return0;}else{return-5;}}elsereturn-11;}}}}intxg(structbookb)//管理员修改图书信息函数if(strlen()==0)//判断所输入的要修改的图书名字是否为空{return-7;}else{if(strlen(b.writer)==0)//判断所输入的要修改的图书作者是否为空{return-8;}else{{{return-16;else{{}}fclose(fp);return0;}}}}}voidcopy(intbh)//按编图书编号将图书信息暂时保存在另外一个结构体里面{intx;for(x=0;x<=k;x++){if(bb[x].bh==bh){strcpy(,bb[x].name);strcpy(bk.writer,bb[x].writer);bk.zn=bb[x].zn;bk.jn=bb[x].jn;bk.bh=bb[x].bh;}}}voidcopy2(charno[12])//按管理员账号将管理员信息暂时保存在另外一个结构体里面{intx;for(x=0;x<=j;x++){{}}}{intx;{{}}}{intx,y,z;{{{if(strlen(ss[0].name1)==0)//判断文件里面的第一行信息是否存在{for(y=0;y<=i;y++){if(!strcmp(stu[y].no,no)){--bb[x].zn;//修改借书后的信息++bb[x].jn;ss[0].o=2;strcpy(ss[0].no,no);strcpy(ss[0].writer,bb[x].writer); strcpy(ss[0].name2,bb[x].name); ss[0].bh=bh;}}}else{for(y=0;y<=s;y++){{return-19;else{ss[y].o=2;}break;}else{if(y==s){s++;{{strcpy(ss[s].no,no);strcpy(ss[s].writer,bb[x].writer); ss[s].bh=bb[x].bh;ss[s].o=2;}}break;}}}fp=fopen("book.txt","w+");//将借书后的图书信息写入文件if(fp==NULL)return-16;else{for(y=0;y<=k;y++){fprintf(fp,"%d\t%-30s\t%-30s\t%-10s\t%d\t%d\n",bb[y].bh,bb[y].name,bb[y].classic,bb[y].writer,bb[y].zn,bb[y].jn); }}fclose(fp);return-16;else{{}}fclose(fp);return0;}elsereturn-20;}}}{intx,p;{{for(p=0;p<=k;p++){if(bb[p].bh==bh)//修改还书后的图书信息{++bb[p].zn;--bb[p].jn;}}ss[x].o=1;fp=fopen("book.txt","w+");//将还书后的所有图书信息重新写入文件return-16;else{for(p=0;p<=k;p++){fprintf(fp,"%d\t%-30s\t%-30s\t%-10s\t%d\t%d\n",bb[p].bh,bb[p].name,bb[p].classic,bb[p].writer,bb[p].zn,bb[p].jn); }}fclose(fp);fp=fopen("show.txt","w+");//将还书后的所有借书记录重新写入文件if(fp==NULL)return-16;else{{}}fclose(fp);return0;}else{return-12;}}elseif(x==s)return-18;}}{intx,flag;do//{flag=1;for(x=0;x<=k-1;x++){if(bb[x].bh>bb[x+1].bh){a=bb[x+1];bb[x+1]=bb[x];bb[x]=a;flag=0;}}while(flag==0);fp=fopen("book.txt","w+");//将排序后的信息重新写入文件for(x=0;x<=k;x++)fprintf(fp,"%d\t%-30s\t%-30s\t%-10s\t%d\t%d\n",bb[x].bh,bb[x].name,bb[x].classic,bb[x].writer,bb[x].zn,bb[x].jn); fclose(fp);}5.登陆界面所有函数源代码为//picture.hvoidpica(){printf("\n}voidpicb(){printf("\n}printf("1.switch(x)default:;}}{inti;printf("\n\t\t\t\t登陆\n");printf("------------------------------------------------------------------------\n\n");printf("1.管理员登陆\n2.读者登陆\n3.返回系统界面\n\n");printf("------------------------------------------------------------------------\n\n");examine(&x,1);switch(x){case1:inputs2(1,1,0);i=exam(aa.no,aa.key,1);if(i){eros(i);n=3;elsen=2;break;case2:inputs3(1,1,0);i=exam(rr.no,rr.key,0);if(i){eros(i);n=30;}elsen=29;break;case3:n=0;break;default:;}}pica();printf("1.printf("5.switch(x)default:;}}{printf("1.switch(x)default:;}}voidpic4()//管理员添加图书界面{pica();printf("1.录入新的图书信息\n2.返回上一层\n\n");printf("------------------------------------------------------------------------\n\n"); examine(&x,1);switch(x){case1:inputs1(1,1,1,1,1);n=5;break;case2:n=2;break;default:;}}voidpic5()//添加图书确认界面{inti;pica();printf("你输入的图书信息为:\n\n");printf("书名\t\t\t编号\t作者\t\t种类\t在馆数\t借出数\n");printf("%-24s%-8d%-16s%-8s%-8d%-8d\n\n",,bk.bh,bk.writer,bk.classic,bk.zn,bk.jn); printf("------------------------------------------------------------------------\n\n");printf("1.录入以上信息\n2.返回重新输入图书信息\n\n");switch(x)if(i)}default:;}}{printf("printf("1.switch(x)default:;}}{printf("1.switch(x){case1:n=4;break;case2:n=2;break;default:;}}voidpic8()//修改图书界面{pica();printf("1.进行修改图书操作\n2.返回管理图书界面\n\n");printf("------------------------------------------------------------------------\n\n");examine(&x,1);switch(x){case1:n=9;break;case2:n=2;break;default:;}}voidpic9()//输入编号以选择修改相应的图书{inti;pica();printf("以下是在馆所有图书信息:\n\n");gck23();printf("1.switch(x)if(i)}else{n=10;}break;}}{pica();printf("printf("1.修改书名\n2.修改作者名字\n3.修改图书在馆的数量\n4.修改图书所属的类别\n"); printf("5.修改图书所有信息\n6.返回上一层选择其他编号的书\n\n");printf("------------------------------------------------------------------------\n\n");examine(&x,1);switch(x){case1:inputs1(0,1,0,0,0);n=12;break;case2:inputs1(0,0,1,0,0);n=12;break;case3:inputs1(0,0,0,1,0);n=12;break;case4:inputs1(0,0,0,0,1);n=12;break;case5:inputs1(0,1,1,1,1);n=12;break;case6:n=9;break;default:;}}voidpic11()//获取相应的图书失败提示界面{printf("1.重新输入图书编号\n2.返回图书管理界面\n"); examine(&x,1);switch(x){case1:n=9;break;case2:n=8;break;default:;}}{inti;pica();printf("printf("1.switch(x)if(i)}default:;}}{printf("printf("1.返回继续修改图书\n2.返回管理图书界面\n"); examine(&x,1);switch(x){case1:n=8;break;case2:n=2;break;default:;}}voidpic14()//修改图书失败提示界面{printf("1.重新输入图书修改信息\n2.图书管理界面\n");examine(&x,1);switch(x){case1:n=10;break;case2:n=8;break;default:;}}voidpic15()//删除图书选择界面{pica();printf("1.进行删除图书操作\n2.返回图书管理界面\n\n");printf("------------------------------------------------------------------------\n\n");switch(x)default:;}}{inti;pica();;printf("gck23();printf("1.switch(x)if(i)}else{};break;case2:system("cls");n=2;break;default:system("cls");;}}voidpic17()//删除图书确认界面{inti;pica();printf("编号为%d的图书信息:\n\n",bk.bh);bh2(bk.bh);printf("------------------------------------------------------------------------\n\n");printf("1.删除该图书\n2.返回图书管理界面\n\n");printf("------------------------------------------------------------------------\n\n");examine(&x,1);switch(x){case1:i=sc(bk.bh);if(i){eros(i);n=20;}elsen=19;break;case2:n=2;break;default:;}}{printf("1.switch(x)default:;}}{printf("printf("1.switch(x)default:;}}{printf("1.switch(x){case1:n=16;break;case2:n=15;break;default:;}}voidpic21()//管理员查看借阅记录界面{inti;pica();printf("1.查看指定编号的图书借阅记录\n2.查看指定读者的借阅记录\n3.查看所有图书借阅记录\n4.查看在馆图书的详细信息\n");printf("5.返回图书管理界面\n\n");printf("------------------------------------------------------------------------\n\n"); examine(&x,1);switch(x){case1:inputs1(1,0,0,0,0);i=rck1(bk.bh);if(i){eros(i);n=23;}else{pica();printf("}break;if(i)}else{pica();printf("}break;default:;}}{printf("------------------------------------------------------------------------\n\n"); printf("1.返回查看其它借阅记录\n2.返回图书管理界面\n\n");printf("------------------------------------------------------------------------\n\n"); examine(&x,1);switch(x){case1:n=21;break;case2:n=2;break;default:;}}voidpic23()//查看借阅记录失败界面{printf("1.返回查看记录界面\n2.返回图书管理界面\n"); examine(&x,1);switch(x){case1:n=21;break;case2:n=2;break;default:;}}voidpic24()//图书信息显示界面{pica();printf("gck23();printf("1.switch(x)default:;}}{pica();printf("1.switch(x)default:;}}voidpic26()//修改密码成功提示界面{printf("修改密码操作成功!!!\n");printf("1.返回管理图书界面\n");examine(&x,1);switch(x){case1:n=2;break;default:;}}voidpic27()//修改密码失败提示界面{printf("1.再试一次\n2.返回图书管理界面\n");examine(&x,1);switch(x){case1:n=25;break;case2:n=2;break;default:;}}voidpic29()//读者主页{copy3(rr.no);picb();printf("1.printf("5.switch(x)default:;}}{printf("1.switch(x)default:;}}{inti;picb();printf("1.按编号查询书目\n2.按书名查询书目\n3.按作者查询书目\n4.按类别查询书目\n5.返回我的主页\n\n"); printf("------------------------------------------------------------------------\n\n");examine(&x,1);switch(x){case1:inputs1(1,0,0,0,0);i=bh1(bk.bh);if(i){eros(i);n=33;elsen=34;break;case2:inputs1(0,1,0,0,0);i=sm1();if(i){eros(i);n=33;}else{picb();sm2();n=32;}break;case3:inputs1(0,0,1,0,0);if(i)}else}break;default:;}}{ inti;printf("1.{{eros(i);n=36;}elsen=34;break;case2:system("cls");n=31;break;default:system("cls");}}voidpic33()//查询书目失败界面{printf("1.返回重新查询\n2.返回我的主页\n");switch(x){case1:n=31;break;case2:n=29;break;default:;}}voidpic34()//借书确认界面{inti;picb();printf("编号为%d的图书信息:\n\n",bk.bh);bh2(bk.bh);printf("1.if(i)}elsedefault:;}}{printf("printf("1.switch(x)default:;}}voidpic36()//借书失败提示界面{printf("1.返回重新查询\n2.返回我的主页\n"); examine(&x,1);switch(x){case1:n=31;break;case2:n=29;break;default:;}}{inti;picb();printf("1.输入还书的编号\n2.返回我的主页\n\n");printf("------------------------------------------------------------------------\n\n"); examine(&x,1);switch(x){case1:inputs1(1,0,0,0,0);i=bh1(bk.bh);if(i){eros(i);n=39;}elseif(i)}elsen=38;}break;default:;}}{printf("printf("1.switch(x)default:;}}{printf("1.switch(x){case1:n=37;break;case2:n=29;break;default:;}}voidpic40()//读者的借阅记录界面{picb();printf("以下是您尚未归还的所有书目:\n\n");printf("------------------------------------------------------------------------\n\n"); printf("1.返回我的主页\n\n");printf("------------------------------------------------------------------------\n\n"); examine(&x,1);switch(x){case1:n=29;break;default:;}}voidpic41()//读者浏览在馆图书信息的界面{picb();printf("gck23();printf("1.switch(x)default:;}}{picb();printf("1.switch(x)default:;}}{printf("printf("1.examine(&x,1);switch(x){case1:n=42;break;case2:n=29;break;default:;}}voidpic44()//修改密码失败提示界面{printf("1.我要再试一次\n2.返回我的主页\n");switch(x){case1:n=42;break;case2:n=29;break;default:;}}voidpic45()//新读者注册界面{inti;printf("\t\t\t新用户注册\n\n");printf("------------------------------------------------------------------------\n\n");printf("1.我要注册\n2.返回系统登录界面\n\n");switch(x)if(i)}default:;}}{printf("printf("1.switch(x)default:;}}{switch(x){case1:n=45;break;case2:n=0;break;default:;}}6.按要求读取文件的数据并显示到屏幕上源代码为intbh1(intbh)//判断该编号的图书信息是否存在函数{intx;for(x=0;x<=k;x++){if(bh==bb[x].bh){return0;}if(x==k&&bh!=bb[x].bh){return-6;}}}{intx;{{printf("}}}{intx;{{return0;break;}return-14;}}voidsm2(charname[50])//按照图书名字显示图书信息函数{intx;printf("书名\t\t\t编号\t作者\t\t种类\t在馆数\t借出数\n"); for(x=0;x<=k;x++){if(!strcmp(name,bb[x].name))printf("%-24s%-8d%-16s%-8s%-8d%-8d\n",bb[x].name,bb[x].bh,bb[x].writer,bb[x].classic,bb[x].zn,bb[x].jn); }}printf("\n");}intzz1(charwriter[20])//判断是否存在该作者的图书信息函数{intx;for(x=0;x<=k;x++){if(!strcmp(writer,bb[x].writer)){return0;break;}return-15;}}{intx;printf("{{}}}{intx;printf("{{printf("%-24s%-8d%-16s%-8s%-8d%-8d\n",bb[x].name,bb[x].bh,bb[x].writer,bb[x].classic,bb[x].zn,bb[x].jn); }}printf("\n");}intrck1(intbh)//判断该编号的图书的借书记录是否存在{intx;if(ss[x].bh==bh){return0;}else{if(x==s)return-9;}}}{intx;printf("{{}}}{intx;printf("{{}}}intgck21(charno[12])//判断该账号读者的借书记录是否存在{intx;for(x=0;x<=s;x++){if(!strcmp(ss[x].no,no)){return0;}if(x==s)return-10;}}}voidgck22(charno[12])//按读者显示借书情况2{intx;printf("借书人\t借者账号\t图书编号\t书名\t\t\t作者\n");for(x=0;x<=s;x++){{}}}{intx;printf("{}}1.2.3.4.5.读者登陆界面【心得体会】1.通过这次实训课的训练,我组成员收获了许多新的知识,也锻炼了自己各方面的能力,坚实地打牢了专业知识基础,极大得方便了以后的学习生活。

C语言程序课程设计图书管理系统方案

C语言程序课程设计图书管理系统方案

C语言程序课程设计报告标题:图书管理系统专业:软件工程类:设计主题图书馆管理系统主要包括管理图书的库存信息,每本书的借阅信息,每个人的借阅信息。

每本书的库存信息包括数量、书名、作者、出版日期、金额、类别、总入库数量、当前库存、已借出图书数量等。

每本借书包括以下信息:编号、书名、金额、借书证号、借阅日期、到期日期、罚款金额等。

每个人的图书馆信息包括借书证号、班级、学号等。

该系统的功能包括以下几个方面:一、借阅资料管理要求对图书、期刊、报纸、期刊进行分类管理,这样操作会更加灵活方便。

可以随时添加、删除、修改、查询等相关资料。

b、借贷管理(1)借贷操作(2)还书操作(3)更新治疗提示:以上处理需要相互配合,通过编辑赔偿和违约金金额来完成图书借还业务的各种登记。

例如,读者在还书时,不仅要更新图书的库存信息,还要自动计算图书的罚款金额。

并显示读者当天到期未还图书的所有信息。

c、读者管理读者等级:对借阅的读者进行分类,比如可以分为教师和学生两类。

并定义每类读者可以借阅的图书数量及相关借阅时间等信息。

读者管理:可以录入读者信息,以及挂失或注销读者、查询等服务。

D.统计分析可以随时进行统计分析,及时了解当前的借阅情况和相关数据状态。

统计分析包括借阅列表、数据状态统计、借阅统计等功能分析,显示当日所有到期未还的图书信息。

e系统参数设置:您可以设置相关的系统服务器参数,如违约金金额、最大借用天数等。

根据题目分析这项工作分为六个模块。

1.图书数据2.借款人信息3.借用模块4.还书模块5.照看书籍6.查询模块模块一:书号,书名,作者,出版时间,价格,份数,页数。

模块二:单位、借阅书目、借阅时间模块3:输入书名、书号、借书证。

模块四:登记书号,还书,处理罚款。

模块5:管理书库中的书籍,将新书入库,删除旧书,堆栈查询模块6:图书查询。

数据测试源代码汉字菜单可以参照以下代码编写:#包含“stdio.h”。

主(){ char c;int I;做{clr SCR();for(I = 0;i < 80i++)printf(" * ");printf("\t 1:添加书籍\ n ");printf("\t 2:列出书籍\ n ");printf(" \ t 3:s reach books \ n ");printf("\t 4:借书\ n ");printf("\t 5:返回图书\ n ");printf("\t6:退出\n ")printf(" \ t请选择输入选项[1 \ \ 2 \ \ 3 \ \ 4 \ \ 5 \ \ 6]:\ n ");做{c = getchar();}while(c!='1'&&c!='2'&&c!='3'&&c!='4'&&c!='5'&&!='6');getchar();开关(c){事例“1”:输入();打破;案例“2”:del();打破;事例“3”:find();打破;case“4”:arrange();打破;事例“5”:right();打破;案例“6”:出口(0);}Printf("按任意键返回主菜单:\ n ");getchar();clr SCR();} while(1);}#include <stdio.h >定义图书结构*/结构书{int _ id#include <stdlib.h >#include <string.h >#定义借入1#定义NOBORROW 0/*//数字,唯一char _ name[32];//书的名称,不唯一int _ type//书的类型,不唯一int _ status//书的状态,借出/未借出int _ count//图书借出的次数struct Book * _ next//下一本书结构书* _ prev//前一本书};定义书籍类型*/操作目录提示*/操作目录提示1 */添加图书类型并显示用户信息*/添加图书状态并显示用户信息。

C语言课程设计图书馆管理系统程序代码

C语言课程设计图书馆管理系统程序代码

#include〈stdio.h〉#include<windows.h〉#include〈string。

h〉#include<conio。

h>#define M 100struct books{char tsmc[12];inttsbh;float dj;char zz[12];char czzt[12];char xm[12];char xb[12];intxh; }s[M];int N;bool flag;intmain (){intsele;flag=0;sele=1;void sr();void cx();void sc();void js();void hs();void tc();void jsh();//system ("tsgl”);printf("\n\n");printf(" ************************\n"); printf(" 1:输入2:查询3:删除\n");printf(”4:借书5:还书0:退出\n");printf(” ************************\n"); while(1){printf(”\n\n请输入功能序号:");scanf (”%d",&sele);if(sele>=0 && sele<=5){switch(sele){case 1:sr();break;case 2:cx();break;case 3:sc();break;case 4:js();break;case 5:hs();break;case 0:jsh();break;}if(flag)break;printf(”\n\n");printf(” ************************\n”); printf(" 1:输入2:查询3:删除\n");printf(”4:借书5:还书0:退出\n”);printf(” ************************\n”);}else{printf(”输入错误请再次输入|\n\n");printf("\n\n");printf(” ************************\n”);printf(" 1:输入2:查询3:删除\n”);printf(”4:借书5:还书0:退出\n");printf(" ************************\n");}printf("\n\n让任意键继续\n”);} //wr_file();}/******主函数***//*********输入*********/void sr(){intn,i;N=0;printf("可输入的书本数:");scanf("%d",&n);N=n+N;printf("请输入相关信息:\n");for(i=1;i<=n;i++){printf(”图书名称:”);scanf(”%s",s[N-n-1+i]。

c语言图书管理系统

c语言图书管理系统
rg.h.ah = 0;
int86(0x16, &rg,&rg);
return rg。h。ah;
}
int choose(int bot,int top)/*根据Y的值选择操作*/
{
int ky,y = 7;
gotoxy(30,bot);
do
{
ky = key();
switch(ky)
{
case Key_UP:
gotoxy(x + 1, y + high - 3);
for (i = 1; i < width - 1; i++)

putchar(0xc4);

gotoxy(x + width—1,y + high —1);
putchar(0xd9);
}
int key()/*读键盘*/

union REGS rg;
int halfw(int sum,bbasic binfo[100],char *find);
void sta();
void blist();
void bmoney();
int main(void)

menu();

void menu()

int y;
_window();/*显示窗口*/
words();/*显示菜单文字*/
gotoxy(30,16);
cprintf(”Book Statistic");
gotoxy(30,19);
cprintf(”Exit”);
gotoxy(35,22);
textcolor(LIGHTGRAY);

C语言程序设计大作业--图书管理系统

C语言程序设计大作业--图书管理系统

C语言程序设计大作业设计报告一.设计方案本程序旨在用一个C语言程序实现简单的图书馆图书管理系统,程序包含平时的借书,还书,新书录入,查询功能,用简单明了的人机交互界面快速实现图书管理的目的。

二.模块说明及代码分析1.主函数:源代码:void main(){int a;printf("\n");printf("\n");printf(" ( ^_^ ) WELCOME!\n");printf("\n");printf("\n");printf("\n");printf("\n");printf("\n");printf("\t〉〉-------------BJTU图书管理系统--------------〈〈");printf("\n");printf("\n");printf("\n");printf("\n");printf("\n");printf("\n");printf("\n");do {printf("1.借书 2.还书 3.新书录入4.查询 0.退出");printf("\n");printf("\n");printf("\n");printf("\n");printf("请选择序号:");scanf("%d",&a);switch(a){case 1:jieshu();break;case 2:huanshu();break;case 3:xinshu();break;case 4:chaxun();break;case 0:break;default:printf("请选择正确的序号!\n");printf("\n");}}while(a!=0);printf("谢谢使用图书管理系统!\n");}主函数提供人机交互界面,让操作者选择所需的操作项目,并有退出选项。

C语言图书信息管理系统

C语言图书信息管理系统

#include"stdio.h"#include"conio.h"#include"string.h"#include"stdlib.h"void enter(); /*声明输入函数*/void look(); /*声明查看函数*/void search_name(); /*声明按姓名查看函数*/int openl(); /*声明打开函数*/void save(); /*声明保存函数*/void del(); /*声明删除函数*/void see(); /*打开并查看文件函数*/void add(); /*追加图书信息*/void TSXX_out();void TSXX_back();struct tsxx /*定义学生信息的结构体类型*/{char tsn[15]; /*图书名*/char bh[15]; /*编号*/int pri; /*价格*/char zzn[10]; /*作者名*/int kc; /*库存*/int total; /*总量*/}ts[100];int n; /*声明一个全局变量*/int main() /*主函数即用户的操作界面*/{int b,flag=0; /*声明局部变量*/while(1) /*循环输出以下信息*/{printf("\n\t\t\t欢迎使用图书馆管理系统\n");printf("\n\t\t\t\t秦盛伟阮腾飞制作\n");printf("\t\t\t -------------------------------\n");printf("\t\t\t 1.图书信息输入\n\n"); /*键入学生的信息*/printf("\t\t\t 2.查看录入的图书信息\n\n"); /*查看录入的学生信息*/printf("\t\t\t 3.按书名查看图书的信息\n\n"); /*按姓名查看学生的信息*/printf("\t\t\t 4.删除图书信息\n\n"); /*删除学生信息*/printf("\t\t\t 5.添加图书信息\n\n");printf("\t\t\t 6.保存学生信息\n\n"); /*保存*/printf("\t\t\t 7.打开文件\n\n"); /*打开文件*/printf("\t\t\t 8.借出图书\n\n");printf("\t\t\t 9.归还图书\n\n");/*键入学生的信息*/printf("\t\t\t 0.退出\n\n"); /*退出*/printf("\t\t\t请输入你的选择:");scanf("%d",&b);switch(b){case 1:enter();break; /*调用键入学生信息函数*/case 2:look();break; /*调用查看函数*/case 3:search_name();break; /*调用姓名查看函数*/case 4:del();break;/*调用删除函数*/case 5:add();break;case 6:save();break;/*调用保存函数*/case 7:see();break;/*调用打开文件函数*/case 8:TSXX_out();break;case 9:TSXX_back();break;case 0:flag=1;break;/*退出SWITCH语句*/default :printf("错误!");}if(flag) break; /*如果选择0就退出循环*/}}void save() /*建立保存文件函数*/{system("CLS");FILE *fp; /*定义文件型指针*/int i;if((fp=fopen("ts.txt","wb"))==NULL) /*打开输出文件*/{printf("不能打开文件!\n");return; /*终止程序*/ }for(i=0;i<n;i++) /*向student文件中写入信息*/if(fwrite(&ts[i],sizeof(struct tsxx),1,fp)!=1)printf("文件写入错误\n");fclose(fp); /*关闭文件*/printf("\n\n\n\n\t\t\t图书信息保存成功!\n");printf("\n\n\n\n\t\t\t按任意键返回菜单!!");getch();}void enter() /*定义键入图书信息函数*/{system("CLS");int i; /*定义局部变量*/printf("\t\t输入需录入图书信息的个数:");scanf("%d",&n);for(i=0;i<n;i++) /*输入每个学生的信息*/{printf("\n\t\t\t----------------\n");printf("\t\t\t图书名称:");scanf("%s",ts[i].tsn); /*输入图书名*/printf("\t\t\t编号:");scanf("%s",ts[i].bh); /*输入编号*/printf("\t\t\t单价:");scanf("%d",&ts[i].pri); /*输入价格*/printf("\t\t\t作者:");scanf("%s",ts[i].zzn); /*输入作者名*/printf("\t\t\t总数:");scanf("%d",&ts[i].total);ts[i].kc=ts[i].total;}printf("\n\n\t\t\t按任意键返回菜单!!");getch();save();}void look() /*定义查看函数*/{system("CLS");int i;//n=openl(); /*调用openl函数*/printf("\t书名\t编号\t单价\t作者\t库存\n");for(i=0;i<n;i++) /*输出所有的学生信息*/{printf("%10s\t%s\t%2d\t%s\t%d\n",ts[i].tsn,ts[i].bh,ts[i].pri,ts[i].zzn,ts[i].kc);}printf("\n\n\n\t\t\t按任意键返回菜单");getch();}void search_name() /*按书名查看函数*/{system("CLS");int i;char name[20]; /*声明字符数组*/printf("\t\t\t请输入书名:\n");scanf("%s",name);printf("\t书名\t编号\t单价\t作者\t库存n");for(i=0;i<n;i++)if(strcmp(ts[i].tsn,name)==0) /*将输入的姓名与结构体中的姓名进行比较*/{printf("%10s\t%s\t%2d\t%s\t%d\n",ts[i].tsn,ts[i].bh,ts[i].pri,ts[i].zzn,ts[i].kc);printf("\n\n\n\t\t\t按任意键返回菜单");}getch();}void del() /*定义删除图书信息函数*/{int i;char a;char name[20];system("CLS");printf("\t\t\t输入图书名字:\n");scanf("%s",name);system("CLS");printf("\t书名\t编号\t单价\t作者\t库存\n");for(i=0;i<n;i++)if(strcmp(ts[i].tsn,name)==0){printf("%10s\t%s\t%2d\t%s\t%d\n",ts[i].tsn,ts[i].bh,ts[i].pri,ts[i].zzn,ts[i].kc);getch();printf("真的删除?(y or n)");getchar();scanf("%c",&a);if(a=='y') /*是否删除该信息*/{for(;i<n;i++)ts[i]=ts[i+1];n=n-1;printf("你已经删除信息");}elseprintf("退出");getch();}save();}int openl() /*定义打开文件函数*/{system("CLS");int i;FILE *fp;if((fp=fopen("ts.txt","rb"))==NULL){printf("Cannot open file.\n");exit(0);}for(i=0;!feof(fp);i++)fread(&ts[i],sizeof(struct tsxx),1,fp);fclose(fp);return(i-1);}void see() /*打开并查看文件*/{system("CLS");int i;n=openl();printf("文件打开成功!\n");printf("按任意键查看!\n");getch();printf("\t书名\t编号\t单价\t作者\t库存\n");for(i=0;i<n;i++) /*输出所有的学生信息*/{printf("%10s\t%s\t%2d\t%s\t%d\n",ts[i].tsn,ts[i].bh,ts[i].pri,ts[i].zzn,ts[i].kc);}printf("\n\n\n\t\t\t按任意键返回菜单");getch();}void add() /*定义键入学生信息函数*/{system("CLS");int i=1;while(i){printf("\n\t\t\t----------------\n");printf("\t\t\t书名:");scanf("%s",ts[n].tsn); /*输入学号*/printf("\t\t\t编号:");scanf("%s",ts[n].bh); /*输入姓名*/printf("\t\t\t单价:");scanf("%d",&ts[n].pri); /*输入性别*/printf("\t\t\t作者:");scanf("%s",ts[n].zzn); /*输入英语成绩*/printf("\t\t\t库存:");scanf("%d",&ts[n].kc); /*输入语文成绩*/n++;printf("是否继续添加?\n如果继续请键入1,否则键入0?\n");scanf("%d",&i);}printf("\n\n\t\t\t按任意键返回菜单!!");getch();save();}void TSXX_out(){int i,d;char name[15];char s[10];char num[30];n=openl();printf("请输入需要借阅的图书名称:");scanf("%s",s);for(i=0;i<n;i++){if(strcmp(ts[i].tsn,s)==0&&ts[i].kc>0){printf("姓名:");scanf("%s",name);printf("学号:");scanf("%s",num) ;printf("借阅天数:");scanf("%d",&d);ts[i].kc--;}else if(strcmp(ts[i].tsn,name)==0&&ts[n].kc==0)printf("此书已经全部借出.\n"); else printf("对不起,此书不存在.\n");}printf("\n\n\n\t\t\t按任意键返回菜单");getch();save_student();}save_student(){system("CLS");FILE *fp1; /*定义文件型指针*/int i;if((fp1=fopen("student.txt","wb"))==NULL) /*打开输出文件*/{printf("不能打开文件!\n");return; /*终止程序*/}for(i=0;i<n;i++) /*向student文件中写入信息*/if(fwrite(&ts[i],sizeof(struct tsxx),1,fp1)!=1)printf("文件写入错误\n");fclose(fp1); /*关闭文件*/printf("\n\n\n\n\t\t\t学生借阅图书信息保存成功!\n");printf("\n\n\n\n\t\t\t按任意键返回菜单!!");getch();}void TSXX_back(){int i;char d[15];n=openl();printf("请输入归还图书的编号");scanf("%s",d);for(i=0;i<n;i++){if(strcmp(ts[i].bh,d)==0){ts[i].kc++;}else printf("您输入的编号有误,请重新执行此程序或寻则其他操作.\n");}if(n!=-1&&ts[n].kc==ts[n].total)printf("全部入藏.\n");printf("\n\n\n\t\t\t按任意键返回菜单");getch();save();}。

c语言课程设计图书馆管理系统

c语言课程设计图书馆管理系统

c语言课程设计图书馆管理系统一、教学目标本课程的教学目标是使学生掌握C语言编程基础,能够运用C语言设计简单的图书馆管理系统。

具体分为三个维度:1.知识目标:学生需要掌握C语言的基本语法、数据类型、运算符、控制结构、函数等编程基础。

2.技能目标:学生能够运用C语言进行程序设计,具备编写、调试和运行C语言程序的能力。

3.情感态度价值观目标:培养学生对计算机科学的兴趣,提高学生解决问题的能力,培养学生的创新精神和团队合作意识。

二、教学内容本课程的教学内容主要包括C语言的基本语法、数据类型、运算符、控制结构、函数等编程基础,以及图书馆管理系统的项目实践。

具体安排如下:1.第一章:C语言概述,介绍C语言的历史、特点和基本语法。

2.第二章:数据类型和运算符,学习基本数据类型、字符串、运算符及其优先级。

3.第三章:控制结构,学习条件语句、循环语句和跳转语句。

4.第四章:函数,学习函数的定义、声明和调用,以及常用标准库函数。

5.第五章:数组和字符串,学习一维数组、多维数组、字符串的基本操作。

6.第六章:指针,学习指针的概念、运算和应用。

7.第七章:结构体和文件,学习结构体的定义和应用,以及文件的读写操作。

8.第八章:图书馆管理系统项目实践,运用所学知识设计并实现一个简单的图书馆管理系统。

三、教学方法本课程采用多种教学方法相结合的方式,包括:1.讲授法:讲解C语言的基本语法、数据类型、运算符、控制结构、函数等编程基础。

2.案例分析法:通过分析典型的图书馆管理场景,引导学生运用C语言进行程序设计。

3.实验法:让学生动手编写、调试和运行C语言程序,提高学生的实践能力。

4.小组讨论法:分组进行项目实践,培养学生的团队合作意识和问题解决能力。

四、教学资源1.教材:《C程序设计语言》(K&R)或《C语言 Primer》(第五版)。

2.参考书:《C语言编程思想》、《C语言深度探索》。

3.多媒体资料:课件、教学视频、在线教程。

C语言课程设计-图书信息管理系统设计

C语言课程设计-图书信息管理系统设计

图书信息管理系统设计一、【要求】图书信息包括:登录号、书名、作者名、分类号、出版单位、出版时间、价格等。

设计一图书信息管理系统,使之能提供以下功能:(1)系统以菜单方式工作(2)图书信息录入功能(3)图书信息浏览功能(4)图书信息查询功能(5)图书信息的删除与修改功能二、【各功能模块】1、菜单模块《1》、主函数:建立menu( )void main(){menu();}void menu(){int a;do{printf(” ******赵毅******\n”);printf("\n”);printf(”******中国地质大学******\n”);printf("\n");printf(”\n\n\n\n\n\t\t\t\t图书信息管理系统\t\t\t\t\n”);printf("\t\t********************************************\n");printf(”\t\t\t1 ———--—----—-—-——图书信息录入\n”);printf("\t\t\t2 -—-—-———-—-———-—图书信息浏览\n”);printf(”\t\t\t3 -——-—-——-——-——--图书信息查询\n");printf("\t\t\t4 ——--—-—--——-———-图书信息删除\n”);printf("\t\t\t5 ——————-—-—--—-——图书信息修改\n”);printf(”\t\t\t6 --——-———--——--——图书信息追加\n”);printf(”\t\t\t0 ——--—---—--——---退出图书信息系统\n”);printf("\t\t********************************************\n”);printf(”\t\tplease choose:”);scanf("%d",&a);switch(a){case 1:input();break;case 2:list();break;case 3:search();break;case 4:del();break;case 5:revise();break;case 6:append();break;case 0:exit(0);default:printf(”\n序号不对\n”);}}while(a!=0);}【定义图书信息结构体】#include<stdio。

图书馆管理系统(C语言程序设计)

图书馆管理系统(C语言程序设计)

图书管理系统/*图书数据由编号、书名、出版社、单价和图书状态(库存用0表示或借出用读者编号表示),读者数据由编号、姓名和电话号码构成。

实现功能包括:(1)添加图书的记录(2)图书管理(借书和还书)(3)对图书数据排序(按单价的降序)(4)删除图书记录(5)修改图书记录(6)添加读者记录(7)输出图书信息表和读者信息表*#include <stdio.h>#include <string.h>#include <stdlib.h>#include <windows.h>/*函数的声明*/void bookname();void writername();void booknumber();void press();void bookdate();void Bfind(); //查询主菜单void Bdevise(); //修改函数void Badd(); //添加函数void Bdelete(); //删除函数void Bdisplay(); //显示所以已保存的图书信息函数void Bclean(); //清除所有图书信息函数void lendbook(); // 借书函数void returnbook(); //还书函数void lendorreturnbook();//借书或还书主菜单函数void appealkey();//用户密码申诉函数void devisepeoplekey();//修改用户密码函数void accountapply(); //用户申请账户函数void addpeopleaccount(); //管理员之添加用户帐号函数void addmanageaccount(); //管理员之添加管理员账号函数void addaccount(); //管理员之账户添加主菜单函数void devisepeopleaccount();//管理员之修改用户账号函数void devisemanageaccount();//管理员之修改管理员帐号函数void deviseaccount();//管理员之修改账号主菜单函数void deletepeopleaccount();//管理员之删除用户账号函数void deletemanageaccount();//管理员之删除管理员账号函数void deleteaccount();//管理员之删除账号主菜单函数void displayallpeopleaccounts();//显示所有用户信息函数void displayallmanageaccounts();//显示所有管理员信息函数void displayallaccountsmessage();//显示所有账号信息主菜单函数void highaddpeopleaccount(); //高级管理员添加用户账户函数void highaddmanageaccount(); //高级管理员添加管理员账户函数void highaddaccount(); //高级管理员之添加账户主菜单函数void booksmanage();//图书操作主菜单函数void accountsmanage();//管理员账号操作主菜单函数void highaccountsmanage();//高级管理员账号操作主菜单函数void menu1(); //用户之查询主菜单void menu2(); //管理员之查询主菜单void menu3(); //高级管理员之查询主菜单/*定义书的类型*/struct book{int bookstock; //库存量char bookname[20]; //书名char bookwriter[20]; //作者char booknumber[20]; //书号char press[20]; //出版社char bookdate[20]; //出版日期char price[20]; //出版价格int turefalse; //判断图书是否被借阅}books[20];/*定义用户类型*/struct peopleaccount{char pname[20];char pkey[20];}peopleaccounts[20];/*定义管理员类型*/struct manageaccount{char mname[20];char mkey[20];}manageaccounts[20];/*定义借书卡类型*/struct card{char cardnumber[20]; //借书卡号和用户信息一起写入yonghu.txt文件中的}cards[20];/*定义文件指针变量*/FILE *fp1; //fp1打开用户信息文件FILE *fp2; //fp2打开管理员信息文件FILE *fp3; //fp3打开图书信息文件FILE *fp4; //打开借还书记录的文件FILE *fpa; //fpa是临时文件指针/*改变输出的字体颜色*/void color(const unsigned short color1){if(color1>=0&&color1<=15)SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), color1);/*仅限改变0-15的颜色;如果在0-15那么实现他的颜色因为如果超过15后面的改变的是文本背景色。

c语言图书管理系统流程图

c语言图书管理系统流程图

c语言图书管理系统流程图C语言图书管理系统流程图概述:C语言图书管理系统是一个用于管理图书馆或书店的系统,它可以实现图书的添加、删除、查询和借还等功能。

本文将通过详细的流程图,介绍C语言图书管理系统的运行流程。

1. 添加图书:- 用户输入图书信息,包括书名、作者、出版日期和价格等。

- 系统接收用户输入的信息,并生成一个唯一的图书编号。

- 系统将图书信息和图书编号存储到数据库中。

2. 删除图书:- 用户输入要删除的图书编号。

- 系统在数据库中查找并验证该图书编号是否存在。

- 如果存在,则从数据库中删除该图书信息。

3. 查询图书:- 用户输入要查询的图书名称或作者等信息。

- 系统在数据库中查找与用户输入信息匹配的图书。

- 系统将符合条件的图书信息显示给用户。

4. 借阅图书:- 用户输入要借阅的图书编号。

- 系统在数据库中查找并验证该图书编号是否存在。

- 如果该图书可借,则系统记录借阅人的信息,标记该图书为已借出状态。

5. 归还图书:- 用户输入要归还的图书编号。

- 系统在数据库中查找并验证该图书编号是否存在,并检查该图书是否已借出。

- 如果该图书已借出且由用户借出,则系统记录归还时间,将该图书状态标记为可借。

6. 统计功能:- 用户选择统计功能入口。

- 系统提供多种统计选项,例如按照作者统计、按照出版日期统计、按照价格区间统计等。

- 系统在数据库中进行相应的查询并展示统计结果。

7. 备份与恢复:- 用户选择备份或恢复功能入口。

- 备份功能:系统将数据库中的图书信息备份到指定的文件中。

- 恢复功能:系统从指定的备份文件中还原图书信息到数据库中。

8. 系统维护:- 用户选择系统维护功能入口。

- 维护功能包括数据库清理、数据完整性检查、系统日志管理等。

- 用户可以根据需求选择相应的维护操作。

总结:C语言图书管理系统通过以上流程图所示的各项功能,实现了对图书的添加、删除、查询和借还等操作,同时还提供了统计、备份和维护等实用的功能。

图书管理系统C语言实现代码

图书管理系统C语言实现代码
int number;
char telephone[20];
int NO;
char bookname[20];
int borrowdate;
int returndate;
if((fp=fopen("jieshujilu.txt","r"))==NULL){
scanf("%s",);
fprintf(fp,"%s",);
printf("请输入借书人班级:");
scanf("%s",p.classes);
fprintf(fp," %s",p.classes);
printf("请输入借书人学号:");
scanf("%d",&p.number);
/*随代码必须新建一下文件:jieshujilu.txt shuku.txt tempbook.txt tempshuku.txt */
#include<stdio.h>
#include<stdlib.h>
struct book{
char bookname[20]; //书名
exit(0);
}
printf("请输入此次收到的书本总数:");
scanf("%d",&i);
for(j=0;j<i;j++){
printf("请输入书名:");
scanf("%s",b.bookname);
fprintf(fp,"%s",b.bookname);

图书管理系统的设计(C语言)

图书管理系统的设计(C语言)

图书管理系统设计图书管理信息包括:图书名称、图书编号、单价、作者、存在状态、借书人姓名、性别、学号等功能描述:1 .新进熟土基本信息的输入2 .图书基本信息的查询3 .对撤销图书信息的删除4 .为借书人办理注册5 .办理借书手续6 .办理换书手续要求:以文件方式存储数据,系统以菜单方式工作。

这是本人大一第二学期初 C 语言课程设计的作品,嘿嘿,本来以为已经找不到原稿了,今天无意中居然在QQ 网络硬盘中找到了当初的teta 版,发布于此,以作记念。

C 源代码如下:#include〈stdio 。

h〉#include<stdlib。

h〉#include〈string 。

h>struct book {char book_name [30];int bianhao;double price;char author[20];char state [20] ;char name[20];char sex [10];int xuehao;struct book *book_next;};struct club {char name [20];char sex[10];int xuehao;char borrow [30];struct club *club_next;};void Print_Book(struct book *head_book);/*浏览所有图书信息*/void Print_Club(struct club *head_club);/*浏览所有会员信息*/struct book *Create_New_Book();/*创建新的图书库, 图书编号输入为0 时结束*/struct book *Search_Book_bianhao(int bianhao,struct book *head_book);struct book *Search_Book_name (char *b_name,struct book *head_book);struct book *Search_Book_price (double price_h,double price_l,struct book *head_book);struct book *Insert_Book (struct book *head_book,struct book *stud_book) ;/*增加图书,逐个添加*/struct book *Delete_Book(struct book *head_book,int bianhao);/*删除图书*/struct club *Create_New_Club() ;struct club *Search_Club_xuehao(int xuehao,struct club *head_club);struct club *Search_Club_name (char *c_name,struct club *head_club);struct club *Insert_Club (struct club *head_club,struct club *stud_club);struct club *Delete_Club (struct club *head_club,int xuehao);struct book *Lent_Book (int bianhao ,int xuehao,struct book *head_book,struct club *head_club);struct book *back (int bianhao,int xuehao,struct book *head_book,struct club *head_club); int main(){struct book *head_book,*p_book;char book_name [30],name [20],author [20],sex [10];int bianhao;double price,price_h,price_l;int size_book=sizeof(struct book);int m=1,n=1,f;char *b_name,*c_name;struct club *head_club,*p_club;int xuehao;int size_club=sizeof (struct club) ;int choice;printf ("\n 欢迎您第一次进入图书管理系统!\n\n");printf("---——>[向导]————-〉[新建图书库] \n\n”) ;printf ("注意:当输入图书编号为0 时,进入下一步.\n\n");head_book=Create_New_Book();system(”cls”) ;printf("\n 欢迎您第一次进入图书管理系统!\n\n") ;printf("----—〉[向导]——---〉[新建会员库]\n\n”);printf(”注意:当输入会员学号为0 时,进入主菜单.\n\n”);head_club=Create_New_Club () ;system (”cls”);do {printf(”\n\t\t\t〓〓〓〓〓图书管理系统〓〓〓〓〓\n\n”);printf("\n”);printf ("\t\t\t[1] :借书办理\t");printf(" [6]:还书办理\n”);printf (”\n");printf(”\t\t\t[2]:查询图书\t");printf(" [7]:查询会员\n”);printf (” \t\t\t[3]:添加图书\t");printf (" [8]:添加会员\n”);printf ("\t\t\t[4]:删除图书\t");printf (” [9] :删除会员\n") ;printf (” \t\t\t[5]:遍历图书\t");printf (” [10]:遍历会员\n\n”) ;printf ("\t\t\t〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓\n\n”);printf("\t\t\t0:退出\n\n”) ;printf(”请选择〈0~10〉:”);scanf(”%d",&choice);switch(choice) {case 1:printf ("\n\t\t\t〓〓〓〓〓图书管理系统〓〓〓〓〓\n\n");printf (”输入所借图书编号:\n");scanf (”%d",&bianhao);printf ("输入借书人的学号:\n”);scanf ("%d",&xuehao);head_book=Lent_Book(bianhao,xuehao,head_book,head_club);system (”cls");printf (” \n 借阅成功!\n\n");printf (”相关信息如下:\n\n");head_book=Search_Book_bianhao (bianhao,head_book);break;case 2:system ("cls”) ;printf(”\n\t\t\t〓〓〓〓〓图书管理系统〓〓〓〓〓\n\n”); printf ("1。

c语言图书管理系统实验报告

c语言图书管理系统实验报告

c语言图书管理系统实验报告C语言图书管理系统实验报告引言:图书管理系统是现代图书馆必备的管理工具,它通过计算机技术的应用,实现了图书的借阅、归还、查询等功能,提高了图书馆的管理效率。

本实验旨在通过使用C语言编写一个简单的图书管理系统,掌握C语言的基本语法和数据结构的应用。

一、系统需求分析在开始编写图书管理系统之前,我们首先需要明确系统的需求。

根据实际情况,我们确定了以下几个主要功能模块:1. 图书信息管理:包括图书的录入、修改、删除等操作。

2. 学生信息管理:包括学生的注册、借书、还书等操作。

3. 借阅记录管理:记录学生借阅图书的时间、归还时间等信息。

4. 查询功能:可以根据图书名称、作者、学生姓名等信息进行查询。

二、系统设计与实现1. 数据结构设计:为了实现图书管理系统的各项功能,我们需要定义一些数据结构,如图书信息结构体、学生信息结构体、借阅记录结构体等。

通过定义这些结构体,我们可以方便地对图书信息、学生信息进行管理和操作。

2. 主菜单设计:系统启动后,会显示一个主菜单,用户可以通过输入相应的数字选择不同的功能模块。

我们使用switch语句来实现主菜单的功能选择,确保用户可以根据自己的需求进行操作。

3. 功能实现:根据需求分析中确定的功能模块,我们逐一实现了相应的功能。

例如,对于图书信息管理模块,我们实现了图书的录入、修改、删除等功能。

对于学生信息管理模块,我们实现了学生的注册、借书、还书等功能。

通过合理的函数设计和调用,我们保证了系统的正常运行。

三、系统测试与优化在完成系统的设计与实现后,我们进行了一系列的测试。

通过输入不同的数据,测试系统的各项功能是否正常运行。

我们发现了一些问题,如输入错误时系统的错误提示不够友好、系统的响应速度较慢等。

为了解决这些问题,我们进行了相应的优化。

通过增加错误提示信息、优化算法等方式,提高了系统的用户体验。

四、总结与展望通过本次实验,我们掌握了C语言的基本语法和数据结构的应用。

图书管理系统c语言

图书管理系统c语言

图书管理系统c语言
本文将介绍如何使用C语言来构建基于控制台的图书管理系统。

首先,我们需要定义一些需要使用到的数据结构,用来保存图书信息,包括书名,作者,出版日期,类型,页数等关键信息。

然后,我们可以给每本书分配一个唯一的ISBN(国际标准书号)。

接着,我们应该编写两个函数,第一个函数的作用是维护图书信息,该函数可以添加新的图书,删除旧的图书;第二个函数可以实现基于ISBN的搜索。

最后,我们需要实现一个主函数,它负责管理整个系统,显示菜单以供用户选择,包括添加图书,删除图书,查询图书,显示所有图书,等等。

总而言之,在C语言中编写图书管理系统代码,无非是定义数据结构,编写功能函数和主函数,即可实现所需功能。

C语言图书管理系统源代码

C语言图书管理系统源代码

#include<stdio。

h〉#include<stdlib.h〉#include〈string。

h〉struct tushu{ /*图书结构体*/ char num[10]; /*编号*/char name[20];/*书名*/char writer[20];/*作者*/char press[20];/*出版社*/char kind[20];/*类别*/double time; /*时间*/double price;/*价格*/struct tushu *next;};struct stu /*学生结构体*/ {int snum;/*学号*/char mima[10]; /*密码*/struct stu *next;};FILE *fp; /*图书文件*/FILE *fp1; /*管理员信息文件*/ FILE *fp2; /*学生信息文件*/void menu();/*管理员主菜单(管理员进入对图书及学生信息进行管理操作)*/void xmenu();/*学生主菜单(学生进入可对图书,密码进行操作)*/void gfind(); /*管理员查询(管理员可按一定的方式查询图书)*/void xfind();/*学生查询(学生可按一定的方式查询图书)*/ void secret();/*管理员权限(管理员登陆所用,输入错误次数过多自动退出)*/void sort();/*排序(管理员可按一定的方式对图书进行排序,排序完之后可选择文件进行保存)*/void fprint(struct tushu *head);/*保存(可追加的保存,如添加可用)*/void fprint_(struct tushu *head);/*保存(可覆盖保存如修改,删除,排序后用)*/void hfprint(struct tushu *head); /*还书保存(还书成功后自动保存到文件)*/void jfprint_(struct tushu *head);/*借书保存(借书成功之后自动从图书馆删除)*/struct tushu * Input(); /*图书添加(可进行图书的添加)*/struct tushu *create(); /*从文件创建链表(从文件中读出信息,建立单链表)*/void gBrowse(struct tushu *head);/*管理员浏览(对图书进行遍历)*/void xBrowse(struct tushu *head);/*学生浏览(学生对图书进行遍历)*/void count(struct tushu *head); /*统计数量(管理员可对图书进行统计)*/void Findofname(struct tushu *head); /*按书名查找*/ void Findofwriter(struct tushu *head); /*按作者查找*/void Findofkind(struct tushu *head); /*按类别查找*/void xFindofname(struct tushu *head);/*学生按书名查找*/void xFindofwriter(struct tushu *head);/*学生按作者查找*/ void xFindofkind(struct tushu *head); /*学生按类别查找*/ void Sort_time(struct tushu * head); /*按时间排序(管理员按时间对图书进行排序,排序完之后可选择文件进行保存)*/ void Sort_price(struct tushu *head); /*按价格排序*/void Sort_num(struct tushu * head);/*按编号排序*/ void Delete(struct tushu * head,char m[15]);/*按编号删除(管理员可按编号删除图书)*/void Revise(struct tushu *head);/*修改(管理员可对图书进行修改,并选择是否保存)*/void borrow(struct tushu *head); /*借书*/void huanshu(); /*还书(学生借完书之后进行还书,若没有图书则不能借)*/void gxinxi(); /*管理员信息(有管理员的账号及密码,可进行修改)*/void xmima(struct stu *head1);/*学生密码修改(学生可对自己的密码进行修改)*/struct stu *xcreate();/*从文件创建学生信息(从文件读出学生信息,建立学生链表)*/void xsecret(struct stu *head1);/*学生权限(学生登陆所用)*/void menu() /*管理员主菜单(管理员进入对图书及学生信息进行管理操作)*/{int choice,n=0;struct tushu *head;struct stu *head1,*p;char m[15];there:printf("┏━┓━━━━━━━━━━━━━━━━━━━┏━┓\n"); printf(" ┃┃socat 图书管理系统printf(” ┃┗━━━━━━━━━━━━━━━━━━━┛┃\n"); printf(" ┃●[0]退出系统┃\n");printf(” ┃┃\n”);prin tf(” ┃●[1]帮助┃\n");printf(” ┃┃\n”);printf(” ┃●[2]浏览图书┃\n");printf(” ┃┃\n");printf(” ┃●[3]统计图书数目┃\n”);printf(" ┃┃\n”);printf(” ┃●[4]查询┃\n”);printf(” ┃printf(” ┃●[5]添加┃\n");printf(” ┃┃\n”);printf(” ┃●[6]排序┃\n");printf(” ┃┃\n");printf(" ┃●[7]修改┃\n”);printf(” ┃┃\n");printf(" ┃●[8]删除┃\n”);printf(" ┃┃\n”);printf(" ┃●[9]修改账号及密码┃\n");printf(” ┃┃\n”);printf(” ┃●[10]学生信息printf(”┗━━━━━━━━━━━━━━━━━━━━━━━┛\n");printf(” 请选择:”);fflush(stdin);head=create();scanf("%d”,&choice);if(choice==1){//help();printf(”没有内容!\n”);system("pause”);system(”cls”);menu();}else if(choice==2){system(”cls");if(head==NULL){printf(”没有图书,请先添加图书!\n”);system("pause");system("cls");menu();}gBrowse(head);}else if(choice==3){system(”cls");count(head);}else if(choice==4){system("cls");if(head==NULL){printf(”没有图书,请先添加图书!\n”);system("pause”);system(”cls”);menu();}gfind();}else if(choice==5){Input();}else if(choice==6){system("cls");if(head==NULL){printf(”没有图书,请先添加图书!\n”); system("pause”);system(”cls”);menu();}sort(head);}else if(choice==7){system("cls”);if(head==NULL){printf(”没有图书,请先添加图书!\n”);system("pause");system("cls”);menu();}Revise(head);}else if(choice==8){if(head==NULL){printf("没有图书,请先添加图书!\n");system(”pause");system(”cls");menu();}printf(" 请输入想要删除的图书编号:”);scanf(”%s",m);Delete(head,m);}else if(choice==9){gxinxi();else if(choice==10){system(”cls”);head1=xcreate();if(head1==NULL){printf("没有学生信息,请到xuesheng_list.txt添加!\n”); sys tem(”pause”);system(”cls”);menu();}for(p=head1;p!=NULL;p=p—>next){printf(”学生学号密码\n”);printf("%d %s\n",p->snum,p—>mima);}system(”pause”);system("cls”);menu();}else if(choice==0)system(”cls");printf(”\n\n\n\n”);printf(” ━━━━━━━━感谢使用图书管理系统━━━━━━━━\n\n\n”);exit(0);}else{system("cls");printf(”\n\n\n\n ━━━━输入错误,请重新输入!━━━━\n\n\n ");system("pause”);system(”cls”);n++;if(n==3){printf(” \n\n\n ━━━━━━━━你错误次数太多,自动退出!━━━━━━━━\n\n\n”);printf(" ━━━━━━━━感谢使用图书管理系统━━━━━━━━\n\n\n");system(”pause");exit(0);}goto there;}}void xmenu()/*学生主菜单(学生进入可对图书,密码进行操作)*/{struct tushu *head;struct stu *head1;int choice,n=0;there:printf(”┏━┓━━━━━━━━━━━━━━━━━━━┏━┓\n");printf(” ┃┃socat 图书借阅系统┃┃\n");printf(” ┃┗━━━━━━━━━━━━━━━━━━━┛┃\n"); printf(” ┃●[0]退出系统┃\n”);printf(” ┃printf(” ┃●[1]帮助┃\n”);printf(” ┃┃\n”);printf(” ┃●[2]浏览图书┃\n");printf(” ┃┃\n”);printf(" ┃●[3]查询┃\n”);printf(” ┃┃\n”);printf(” ┃●[4]借书┃\n");printf(” ┃┃\n”);printf(" ┃●[5]还书┃\n");printf(" ┃┃\n”);printf(” ┃●[6]修改密码printf("┗━━━━━━━━━━━━━━━━━━━━━━━┛\n”); printf(" 请选择:");fflush(stdin);head=create();scanf("%d”,&choice);if(choice==1){//xhelp();printf(”没有内容!\n");system(”pa use");system(”cls”);xmenu();}else if(choice==2){system("cls");if(head==NULL){printf(”没有图书!\n");system("pause”);xmenu();}xBrowse(head);}else if(choice==3){if(head==NULL){printf(”没有图书!\n”);system(”pause”);system(”cls”);xmenu();}xfind();}else if(choice==4){if(head==NULL){printf(”没有图书!\n");system(”pause”);xmenu();}borrow(head);}else if(choice==5){huanshu(head);}else if(choice==6){system("cls”);head1=xcreate();if(head1==NULL){printf(”学生信息被清空!!\n”);system("pause");system("cls”);xmenu();}xmima(head1); ;}else if(choice==0){system("cls");printf(”\n\n\n\n”);printf(” ━━━━━━━━感谢使用图书管理系统━━━━━━━━\n\n\n");exit(0);}else{system("cls”);printf("\n\n\n\n ━━━━输入错误,请重新输入!━━━━\n\n\n ”);system(”pause”);system(”cls”);n++;if(n==3){printf(” \n\n\n ━━━━━━━━你错误次数太多,自动退出!━━━━━━━━\n\n\n”);printf(” ━━━━━━━━感谢使用图书管理系统━━━━━━━━\n\n\n”);system("pause”);exit(0);}goto there;}}void gfind()/*管理员查询(管理员可按一定的方式查询图书)*/{int choice,n=0;struct tushu *head;there:system(”cls”);printf(” ┏━┓━━━━━━━━━━━━━━━━━━━┏━┓\n”);printf(” ┃┃socat 图书借阅系统┃┃\n”);printf(” ┃┗━━━━━━━━━━━━━━━━━━━┛┃\n");printf(" ┃●[0]返回┃\n");printf(" ┃┃\n”);printf(" ┃●[1]按书名查找┃\n”);printf(" ┃┃\n”);printf(" ┃●[2]按作者查找┃\n”);printf(” ┃┃\n”);printf(" ┃●[3]按类别查找┃\n”);printf(" ┃┃\n”);printf(" ┃● ┃\n”);printf(”┗━━━━━━━━━━━━━━━━━━━━━━━┛\n”);printf(" 请选择:”);fflush(stdin);head=create();scanf(”%d”,&choice);if(choice==1){system(”cls");Findofname(head); }else if(choice==2){system(”cls”); Findofwriter(head); }else if(choice==3){system(”cls");Findofkind(head); }else if(choice==0){system(”cls”);menu();}else{system(”cls”);printf(”\n\n\n\n ━━━━输入错误,请重新输入!━━━━\n\n\n ”);system("pause");system(”cls");n++;if(n==3){printf(" \n\n\n ━━━━━━━━你错误次数太多,自动退出! ━━━━━━━━\n\n\n”);printf(" ━━━━━━━━感谢使用图书管理系统━━━━━━━━\n\n\n”);system(”pause”);exit(0);}goto there;}}void xfind()/*学生查询(学生可按一定的方式查询图书)*/ {struct tushu *head;int choice,n=0;there:system("cls”);printf(” ┏━┓━━━━━━━━━━━━━━━━━━━┏━┓\n”);printf(” ┃┃socat 图书借阅系统┃┃\n”);printf(” ┃┗━━━━━━━━━━━━━━━━━━━┛┃\n");printf(” ┃●[0]返回┃\n”);printf(” ┃┃\n");printf(" ┃●[1]按书名查找┃\n”);printf(” ┃┃\n”);printf(" ┃●[2]按作者查找┃\n”);printf(" ┃┃\n");printf(” ┃●[3]按类别查找┃\n");printf(” ┃┃\n”);printf(" ┃● ┃\n");printf(”┗━━━━━━━━━━━━━━━━━━━━━━━┛\n"); printf(” 请选择:");fflush(stdin);head=create();scanf(”%d",&choice);if(choice==1){system(”cls”);xFindofname(head);}else if(choice==2){system(”cls”);xFindofwriter(head);}else if(choice==3){system("cls");xFindofkind(head);}else if(choice==0){system(”cls");xmenu();}else{system("cls");printf("\n\n\n\n ━━━━输入错误,请重新输入!━━━━\n\n\n ”);system(”pause”);system(”cls");n++;if(n==3){printf(” \n\n\n ━━━━━━━━你错误次数太多,自动退出!━━━━━━━━\n\n\n”);printf(” ━━━━━━━━感谢使用图书借阅系统━━━━━━━━\n\n\n”);system("pause”);exit(0);}goto there;}}void sort(){struct tushu *head;int choice,n=0;there:system("cls”);printf(” ┏━┓━━━━━━━━━━━━━━━━━━━┏━┓\n");printf(” ┃┃socat 图书借阅系统┃┃\n");printf(" ┃┗━━━━━━━━━━━━━━━━━━━┛┃\n”);printf(" ┃●[0]返回┃\n”);printf(” ┃┃\n");printf(” ┃●[1]按时间排序┃\n”);printf(” ┃┃\n”);printf(” ┃●[2]按价格排序┃\n");printf(" ┃┃\n”);printf(” ┃●[3]按编号排序┃\n”);printf(" ┃┃\n”);printf(” ┃●┃\n”);printf(”┗━━━━━━━━━━━━━━━━━━━━━━━┛\n”);printf(" 请选择:”);fflush(stdin);head=create();scanf("%d",&choice);if(choice==1){system("cls”); Sort_time(head);}else if(choice==2){sys tem(”cls");Sort_price(head);}else if(choice==3){system(”cls”);Sort_num(head); }else if(choice==0){system("cls”); menu();}else{system(”cls");printf("\n\n\n\n ━━━━输入错误,请重新输入!━━━━\n\n\n ”);system(”pause”);system(”cls”);n++;if(n==3){printf(” \n\n\n ━━━━━━━━你错误次数太多,自动退出! ━━━━━━━━\n\n\n”);printf(” ━━━━━━━━感谢使用图书借阅系统━━━━━━━━\n\n\n”);system("pause”);exit(0);}goto there;}}struct tushu *Input(){struct tushu *p1,*p2,*head,*ptr;char num;int x,i=0;system("cls”);p1=(struct tushu *)malloc(sizeof(struct tushu));head=p1;p1-〉price=—1;while(i!=1){printf(”请输入编号,以’#’结束\n”);scanf("%s",p1—>num);if(strcmp(p1-〉num,”#")==0)i=1;while(i!=1){printf(”请依次输入书名作者出版社类别出版时间价格\n”); scanf(”%s%s%s%s%lf%lf”,p1—>name,p1—>writer,p1—〉press,p1-〉kind,&p1-〉time,&p1—〉price);p2=p1;p1=(struct tushu *)malloc(sizeof(struct tushu));p2—〉next=p1;break;}}if(p1-〉price!=-1)p2—〉next=NULL;elsehead=NULL;system("cls”);printf("\n\n\n\t\t\t图书信息输入结束!\n\n\n”);system(”pause”);system(”cls”);printf(”\n\n\n\t\t\t是否保存图书信息?(1。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

图书馆管理系统045072班王磊第三部分13题一、题目要求图书馆管理系统包括:图书名称、图书编号、单价、作者、存在状态,借书人姓名、性别、学号等,此外设计的系统须具有如下功能:1.新进图书及基本信息输入2.图书基本信息查询3.对撤销图书信息的删除4.办理借书手续5.办理书手续二、需求分析根据题目要求,需建立图书管理系统结构体,结构体中应包括图书名称,图书编号,单价、作者、存在状态,借书人姓名,性别、学号等。

其中存在状态设定为整形变量,可用不同的数字来表达,在该系统中用〝1〝来表示可借出,〝0〝来表示已借出。

图书信息应存放在文件中,所以提供文件的输入输出等操作;并且程序需具有实现图书信息浏览,查找、修改等功能,并进行借出借入服务;另外还应提供键盘是选择菜单来实现功能选择。

三、总体设计结合上述分析该系统应包括以下模块:信息输入、图书查找、信息删除,图书借出、图书归还。

结构图如下四、详细设计1、主函数主函数要求设计比较简洁,只提供设输入,处理和输出部分的函数调用。

其中各功能模块用菜单方式选择。

[流程图][程序]main(){int n,t;/*变量保存选择菜单数字,判断输入的数字是否在功能人能够菜单所对应的数字范围内*/do{puts("\t\t\t***欢迎使用图书馆管理系统***\n\n\n");puts("\t\t\t*************MENU************\n\n");puts("\t\t\t1. 图书信息输入\n");puts("\t\t\t2. 新图书信息录入\n");puts("\t\t\t3. 图书信息浏览\n");puts("\t\t\t4. 图书信息查找\n");puts("\t\t\t5. 图书信息修改\n");puts("\t\t\t6. 图书信息删除\n");puts("\t\t\t7. 图书借阅\n");puts("\t\t\t8. 图书归还\n");puts("\t\t\t9. 退出系统\n");puts("\t\t\t\n\n\n*****************************\n\n");/*对功能选项的显示*/printf("选择使用功能种类(1--9)[ ]\b\b");scanf("%d",&n);if(n<1||n>9){t=1;getchar();} /*对选择的数字作判断*/ else t=0;}while(t==1);/*实现选择功能*/switch(n){case 1:enter();break; /*输入功能*/case 2:add();break; /*追加功能*/case 3:browse();break; /*浏览功能*/case 4:search();break;/*查找功能*/case 5:modify();break; /*修改功能*/case 6:del();break;/*删除功能*/case 7:TSXX_out();break;/*图书借出*/case 8:TSXX_back();break;/*归还功能*/case 9:exit(0);break;/*退出*/}}/*以上完成了主函数计主菜单的构成*/2输入模块[数据结构]根据题目中对数据结构的要求每一本图书包含的信息利用一个结构体来存放。

其中结构体需包含:字符变量:图书名称、作者、借书人姓名实型变量:图书编号、单价、学号整型变量:存在状态,、性别、库存定义结构体如下struct TSXX{char tsn[30];/*图书名称*/int bh[15];/*图书编号*/float pri;/*单价*/char zzn[10]; /*作者*/int zt; /*存在状态*/int kc /*库存*/char jsn[10];/*借书人姓名*/int sex;/*性别*/int num[15]; /*学号*/} ts[N]; /*ts[N]中每个数组元素对应一本书的全部信息*/ /*以上完成了对于结构体的定义*/[注意]本程序ts[N]中的个数,采取宏定义的方式,可以随时在源程序宏定义中更改,本程序在此宏定义#define N 10000。

[流程图]Y[程序]void enter(){int i;for(i=0;i<N;i++){printf("请输入图书信息\n\n");input(i);} /*调用输入函数*/if(i!=0) save() ; / */printf_back(); /*一个任务结束时让用户选择是浏览还是返回*/3。

追加模块[需求分析]该模块的功能是假如用户需要新加入新的图书信息,通过键盘输入将新信息逐条加在原来输入文件上但不能覆盖原有信息。

[流程图].[程序]void add(){int i,n,m,k;FILE*fpn=()load;printf(〝可添加信息个数(0-%d):[]\b\b〝,N-n-1);scanf(〝%d〝,&m);k=m+n;for(i>n;i<=k;i++)input(i);if(fp=fopen(〝ts.txt〝, 〝a〝)==NULL){printf(〝文件无法打开\n〝); }for(i>n;i<=k;i++)fclose(fp);printf_back();}4.查找模块[需求分析]该模块的功能是根据输入的图书名称查找相应的记录找到以后,可继续进行删除和修改功能[流程图]Y NY{int i,k,n,t1=1,t2,t3,t4;struct TSXX t;n=load();do{do{k=-1;printf(〝\n\n输入你所要查询的图书名称:〝);scanf(〝%s〝,t.tsn);print_show()for(i=0;i<n;i++;)if(strcmp(t.tsn,ts[i].tsn)==0){k=i;printf_one();break;}if(k==-1)printf(〝对不起,您所查找的图书不存在〝);printf(〝继续吗?\n\t 1).继续查找2)不,返回请选择[ ]\b\b〝);scanf(〝%d〝,&t1);}while(k==-1&&wi==1);t4=0;t3=0;if(k!=-1){printf(〝\n\n您的下一步操作?\n\n 1)查找下一个2} 修改图书信息3)删除图书信息4)回到主菜单请选择[ ]\b\b〝);scanf(〝%d〝,&t2);switch(t2){case 2:w3=modify_data(k,n);break;case 3:{print(〝\n\n你确定吗?\n\t 1)确定删除2}不,返回请选择[ ]\b\b〝);scanf(〝%d〝,&t4);if(t4==1)ts[k].num=0;break;}if(t3==1||t4==1){save(n);printf(〝\n\n信息修改成功〝);printf(〝\n\您的下一步操作?\n\t 1)查找下一个2)返回请选择[ ]\b\b〝);scanf(〝%d〝,&t2);}}}while(t3==1);mneu();}5、修改模块[需求分析]该模块用于显示所有图书信息,由于记录较多,故而采取分屏显示。

显示完所有纪录后,用户需输入图书编号进而查找图书信息[流程图]YN[程序]void modify() /*修改模块*/ {sruct TSXX t;FILE*fp;int i ,n,k,t0=1,t1,t2=0;n=load();do{k=-1;/*让用户查看全部记录以便确认要修改的记录*/printf_show();/*调用数据结构显示函数*/for(i=0;i<n;i++){if((i!=0)&&(i%10==0)) /*用于分屏显示*/{printf(“\n\n请记录需要修改的图书编号。

任意键继续……”);getch();puts(“\n\n”);}printf_one(i); /*调用显示一个记录的函数*/}do{printf(“\n\n请输入您需要修改的图书编号。

NO.:”);scanf(“%f”,&t.bh ); /*输入需要修改的图书编号*/for(i=0;i<n;i++) /*查找要修改的记录*/if(strcmp(t.bh,ts.bh)==0){k=i; /*找到许需修改的记录*/t=ts[i]; /*将ts[i]中原有需修改的记录备份给t,以便用户反悔时恢复*/ }if(k==-1) printf(“\n\n信息不存在!再试一次”);}while(k==-1); /*当k=-1时表示没找到*/print_show();/*调用数据结构显示函数*/printf_one(k); /*调用显示一个记录的函数*/t1=modify_data(k,n);/*修改学生记录并且返回保存控制值t1,t1=1则表示用户已确认修改*/if(t1==1) /*t1=1时则表示用户确定此次修改*/{printf(“\n成功修改,是否继续修改?\n\n\t 1). 是2)返回并保存\t[ ]\b\b);scanf(“%d”,&t0);t2=1; /*来控制保存,使w2=1是标记已有过的记录*/}eles{to=0;if(t2==1)ts[k]=s;}/*到此处由于用户没有确认这次修改。

使t0=0,为了终止循环,ts[k]=s; 则把备份的s恢复给ts[k],这样使得在此之前修改过的成功保存而本次不修改*/ if(t0!=1&&t2==1)/*t0不等于1则表示正常返回,t2=1则表示在此之前有过修改,这时就保存用户已确认的修改并返回*/save(n);/*t2不等于1表示在此之前没有修改过,而又反悔这次修改,则不保存返回*/}while(t0==1);menu();}6.删除模块[需求模块]该模块用于显示所有图书信息,由于记录较多,故而采取分屏显示。

显示完所有纪录后,用户需输入图书编号进而查找图书信息,[流程图]N[程序] void del() {sruct TSXX t;FILE*fp;int i ,n,k,t0=1,t1,t2=0;n=load();do{k=-1; /*让用户查看全部记录以便确认要删除的记录*/printf_show();/*调用数据结构显示函数*/for(i=0;i<n;i++){if((i!=0)&&(i%10==0)) /*用于分屏显示*/{printf(“\n\n请记录需要删除的图书编号。

相关文档
最新文档