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语言程序课程设计报告标题:图书管理系统专业:软件工程类:设计主题图书馆管理系统主要包括管理图书的库存信息,每本书的借阅信息,每个人的借阅信息。
每本书的库存信息包括数量、书名、作者、出版日期、金额、类别、总入库数量、当前库存、已借出图书数量等。
每本借书包括以下信息:编号、书名、金额、借书证号、借阅日期、到期日期、罚款金额等。
每个人的图书馆信息包括借书证号、班级、学号等。
该系统的功能包括以下几个方面:一、借阅资料管理要求对图书、期刊、报纸、期刊进行分类管理,这样操作会更加灵活方便。
可以随时添加、删除、修改、查询等相关资料。
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语言课程设计图书馆管理系统程序代码

#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语言图书管理系统实验报告

程序设计实践信息类 1110开辟一个图书信息管理系统,图书信息包括:图书编号、书名、作者、出版社、类别、出版时间、价格等基本信息(也可以根据自己情况进行扩充,比如是否借出、库存量等)(1)图书信息录入功能(图书信息用文件保存)--输入(2)图书信息浏览功能--输出(3)查询功能(至少一种查询方式)、排序功能(至少一种排序方式):①按书名查询②按作者名查询③ 按照价钱排序④按出版时间排序等等(4)图书信息的删除与修改(1)简单的权限处理 (2)报表打印功能(3)甚至根据自己情况,可以加之学生信息,并扩充为图书借阅系统。
(4) 含糊查询 (5)综合查询 (6)统计功能比如统计处某一类别的图书信息或者筛选出小于指定数量库存的图书信息等等,总之,可以根据自己需求进行分析功能。
一、提交材料应包括: (1)系统源代码 (2)课程报告二、整个设计过程具体要求(1要求学生对案例系统进行分析,设计出需要完成的功能,完善各个模块的调用关系;(2要求学生进一步明确各模块调用关系,进一步完善模块函数细节(函数名、参数、返回值等)(3要求学生养成良好的编码习惯、完成各个模块并进行测试,最终完成系统整体测试;(4按照要求完成系统设计和实现报告,并进行总结、答辩。
1 需求分析这是一个能简单管理图书的小型图书管理系统,其中图书信息包括:书名,作者名,书编号,分类,出版单位,出版时间,价格等。
通过这些信息使之提供以下功能:(1)图书信息创建功能。
其中图书信息包括:书名,作者名,书编号,分类,出版单位,出版时间,价格等。
(图书信息用文件保存)。
(2)图书信息查看功能。
用来查看各项图书信息。
(3)图书信息查找功能。
通过已知信息来查找想要的图书。
(4)图书信息的删除。
可以删除特定图书。
(5)图书信息的修改。
可以修改图书的各项信息。
(6)图书信息的排序功能。
按图书信息对录入的图书进行排序。
(7)菜单选择功能,此功能也是图书信息信息管理系统的入口,用户所要进行的各种操作均需在此模块中进行选择并进而调用其他模块实现相应的功能2 概要设计图书管理系统中主要的数据结构包含书名、图书书号、作者名、分类、出版社、出版时间、价格等;在处理过程中各项可以作为一本图书的不同属性来进行处理。
基于c语言的图书管理系统毕业(设计)论文

基于c语言的图书管理系统毕业(设计)论文图书分类号:密级:毕业设计论文基于C语言的图书管理系统Design and Implementation of Books Management System Based on C Language学生姓名学院名称专业名称指导教师2012年5月日摘要人类已经跨入了新世纪,正在进入信息化时代。
信息化浪潮、网络革命在给社会带来冲击的同时,也使图书馆业务受到了强烈的冲击,图书馆传统的管理和服务方式已不能适应读者对日益增长的文献信息的需求。
随着馆藏量的不断增加,图书资料的录入和查询的难度也就相应增加,数据处理手工操作,工作量大,出错率高,出错后不易更改的手工方式,已经不能满足要求。
基于此问题,建立一个规范化,系统化,程序化的图书管理系统迫不急待。
为方便对图书馆书籍、读者资料、借还书等进行高效的管理,特编写程序以提高图书馆的管理效率。
使用程序之后,工作人员可以查询某位读者、某种图书的借阅情况,还可以对当前图书借阅情况进行一些统计,以便全面掌握图书的流通情况等等。
关键词:C语言;图书管理;数据处理;信息技术AbstractMankind has entered the new century, which is entering the information age. Wave of information technology, the network revolution has brought about the impact, but also make the library service has been badly hit,and library management and services of traditional methods can not meet the growing literature on the information the reader needs. With the continuous increase in the collections, books, data entry and also a corresponding increase in the difficulty of queries, data processing manual operation, heavy workload, error rate, error is not easy to changeafter the manual mode can no longer meet the requirements.Based on this problem, the establishment of a standardized, systematic, process-oriented library management system can not wait. For the convenience of library books, readers information, such as borrowing and returning books for efficient management, especially the preparation of the management procedures to enhance the efficiency of the library. After using the program, staff can search for certain readers, borrow some books, can also borrow books on the current situation of some statistics in order to fully grasp the flow of books.KEY WORDS:C language, Library Management, Data Processing, Information Technology目录摘要IAbstract II1 绪论11.1 选题的背景和选题的意义 1 选题的背景 1选题的意义 11.2 系统的特点 21.3 需求分析 22 系统的总体设计 32.1 系统总体设计 32.2运行环境和开发工具 3具 3境 42.3 系统流程图 43 系统的详细设计 63.1主体界面设计 66块 7块 8块 9块 10块 12块 14数 154 系统调试165系统运行17结论21致谢22参考文献23附录程序源代码 241.1 选题的背景和选题的意义选题的背景随着社会,信息系统。
图书信息管理系统c语言程序设计流程图

图书信息管理系统c语言程序设计流程图下载温馨提示:该文档是我店铺精心编制而成,希望大家下载以后,能够帮助大家解决实际的问题。
文档下载后可定制随意修改,请根据实际需要进行相应的调整和使用,谢谢!并且,本店铺为大家提供各种各样类型的实用资料,如教育随笔、日记赏析、句子摘抄、古诗大全、经典美文、话题作文、工作总结、词语解析、文案摘录、其他资料等等,如想了解不同资料格式和写法,敬请关注!Download tips: This document is carefully compiled by theeditor.I hope that after you download them,they can help yousolve practical problems. The document can be customized andmodified after downloading,please adjust and use it according toactual needs, thank you!In addition, our shop provides you with various types ofpractical materials,such as educational essays, diaryappreciation,sentence excerpts,ancient poems,classic articles,topic composition,work summary,word parsing,copy excerpts,other materials and so on,want to know different data formats andwriting methods,please pay attention!图书信息管理系统C语言程序设计流程图详解在计算机科学中,设计和开发一个图书信息管理系统是一个常见的实践项目。
c语言课程设计报告图书管理系统

c语言课程设计报告图书管理系统一、教学目标本课程的目标是使学生掌握C语言的基本语法,熟悉图书管理系统的开发流程,培养学生运用C语言解决实际问题的能力。
具体目标如下:1.知识目标:–掌握C语言的基本语法和数据结构。
–理解图书管理系统的需求和设计原理。
2.技能目标:–能够使用C语言编写简单的程序。
–学会使用C语言实现图书管理系统的功能。
3.情感态度价值观目标:–培养学生的团队协作意识和沟通能力。
–增强学生对计算机科学和编程的兴趣和热情。
二、教学内容本课程的教学内容主要包括C语言的基本语法、数据结构以及图书管理系统的开发。
具体安排如下:1.C语言的基本语法:–变量和数据类型–运算符和表达式–函数和数组–指针和引用2.数据结构:3.图书管理系统的开发:–系统测试和优化三、教学方法本课程采用多种教学方法,以激发学生的学习兴趣和主动性。
具体方法如下:1.讲授法:用于讲解C语言的基本语法和数据结构。
2.案例分析法:通过分析具体的图书管理系统案例,使学生更好地理解系统设计和功能实现。
3.实验法:让学生动手编写程序,巩固所学知识,提高实际操作能力。
4.小组讨论法:鼓励学生分组讨论,培养团队协作意识和沟通能力。
四、教学资源本课程所需的教学资源包括:1.教材:《C语言程序设计》2.参考书:《C Primer Plus》、《数据结构与算法分析》3.多媒体资料:教学PPT、视频教程4.实验设备:计算机、网络设备以上教学资源将用于支持教学内容和教学方法的实施,丰富学生的学习体验。
五、教学评估本课程的评估方式包括平时表现、作业、考试等。
评估方式应客观、公正,能够全面反映学生的学习成果。
具体安排如下:1.平时表现:包括课堂参与度、提问回答、小组讨论等,占总评的20%。
2.作业:包括编程练习和理论作业,占总评的30%。
3.考试:包括期中和期末考试,占总评的50%。
期中和期末考试将涵盖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语言程序设计)

图书管理系统/*图书数据由编号、书名、出版社、单价和图书状态(库存用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语言图书管理系统

一引言随着计算机及网络技术的飞速发展,Internet/Intranet应用在全球范围内日益普及,当今社会正快速向信息化社会前进,信息系统的作用也越来越大。
图书馆在正常运营中总是面对大量的读者信息,书籍信息以及由两者相互作用产生的借书信息,还书信息。
随着图书的大量增加,其管理难度也越来越大,如何优化图书馆的日常管理也就成为一个大众化的课题。
数据处理手工操作,工作量大,出错率高,出错后不易更改。
当前图书馆采取手工方式对图书借阅情况进行人工管理,由于信息比较多,图书借阅信息的管理工作混乱而又复杂;一般借阅情况是记录在借书证上,图书的数目和内容记录在文件中,图书馆的工作人员和管理员也只是当时对它比较清楚,时间一长,如再要进行查询,就得在众多的资料中翻阅、查找了,造成查询费时、费力。
如要对很长时间以前的图书进行更改就更加困难了。
因此图书管理信息化是发展的必然趋势。
用结构化系统分析与设计的方法,建立一套有效的图书信息管理系统,可以减轻工作,将工作科学化、规范化,提高了图书馆信息管理的工作质量因此根据图书馆目前实际的管理情况开发一套图书管理系统是十分必要的。
建立一个图书管理系统可以使图书管理工作规范化、系统化、程序化、避免图书管理的随意性,提高信息处理的速度和准确性,能够及时、准确、有效的查询和修改图书信息。
图书管理系统是一个对图书进行录入、删除、修改和查询的管理应用软件,管理员可以对文件中存储的图书进行查询和管理,了解图书的基本信息。
该系统充分利用计算机的功能实现对书籍管理的自动化控制,将会使图书馆管理工作大大减轻,方便友好的图形用户界面,简便的操作,完善的数据库管理,将会使图书馆信息管理系统极大限度地应用于现代化图书管理,成为图书管理人员的得力助手。
应用程序说明:本次设计主要通过应用结构体、链表、循环等C语言结构的设计实现对书籍信息的录入、删除、全显、修改等功能。
使用结构体[1]可使不同类型的数据存储在相邻存储单元中,便于对相关信息的处理。
图书管理系统程序设计

四川师范大学成都学院高级语言程序课程设计基于C语言的图书管理系统程序设计学生姓名XXX学号XXXX所在学院通信工程学院专业名称通信工程班级XXXX指导教师XX成绩四川师范大学成都学院二○一四年十二月基于C语言的图书管理系统程序设计内容摘要:图书管理系统是图书馆的重要组成部分,图书是我们最好的获取信息的方式,但由于图书馆图书收藏量大大增加,使传统的图书管理员的工作日益繁重起来,迫使人们起用新的管理方法来管理图书。
基于C语言的设计和开发图书馆管理系统的实践,阐述了图书管理软件中所应具有的功能、设计、实现。
介绍了图书管理系统的设计和系统功能的实现过程。
该系统可以运用于高校的图书管理,由图书编目,图书流通,标准管理,资料管理,系统维护等多个子系统组成,实现对新进图书基本信息的输入、图书基本信息的查询、对撤消图书信息的删除、为借书人办理注册、办理借书手续、办理还书手续等。
实现了图书资料的计算机网络管理。
关键词:图书管理 C语言程序设计Based on the C language library management systemprogram designAbstract:Library management system is an important part of the library, the book is our best way to get information, but due to the large increase in collection of library books, so that the traditional librarian's work increasingly heavy up, forcing people hired new management ways to manage books.Based on the practice of the C language library management system design and development, described the library management software should have the functionality, design, implementation. Describes the design and implementation of system functions library management system. The college library management system can be applied by cataloging, book circulation, standard management, data management, system maintenance, and other subsystems to realize new books into the input basic information, basic information queries books, books for revocation delete information,registration for the borrower, for the library procedures apply also book procedures. Achieve a computer network management library materials. Keywords:Library management C language Program design目录前言 (1)1绪论 (1)1.1选题背景和选题意义 (1)1.1.1选题背景 (1)1.1.2选题意义 (1)1.2图书管理系统简介 (1)1.3图书管理系统需求分析 (2)2系统分析 (3)2.1题目分析 (3)2.2系统分析 (3)3管理系统的总体设计与详细设计 (4)3.1总体设计 (4)3.2详细设计 (5)4调试与测试 (16)5编码实现 (16)6结论 (21)附录程序源代码 (21)参考文献 (29)基于C语言的图书管理系统程序设计前言图书馆管理信息系统是对学校图书进行全面信息管理的系统。
C语言图书管理系统程序设计报告

目录一、设计任务书 (3)二、本组课题及本人任务 (3)三、程序功能简介 (4)四、主体内容 (4)1.设计分析 (4)2.程序结构 (5)3.各模块的功能及程序说明 (5)4. 源程序 (6)5.操作方法 (17)6.试验结果 (18)7.设计体会 (22)五、附录 (23)1.流程图 (23)2.过程列表 (26)一、设计任务书1.目的1)复习、巩固C语言的基础知识,进一步加深对C语言的理解和掌握。
2)课程设计为学生提供了一个既动手又动脑,独立实践的机会,将课本上的理论知识和实际有机的结合起来,锻炼学生的分析解决实际问题的能力。
提高学生适应实际,实践编程的能力。
3)培养学生在项目开发中团队合作精神、创新意识及能力。
2.要求:1)对系统进行功能模块分析、控制模块分析正确,符合课题要求,实现相应功能;可以加以其他功能或修饰,使程序更加完善、合理。
2)系统设计要实用,编程简练,可用,功能全面。
3)说明书、流程图要清楚。
4)记录设计情况(备查,也为编写设计说明书作好准备)。
5)要求采用模块化程序设计方法,及锯齿型书写格式,要求上机调试通过和按设计报告格式。
6)设计上交内容:设计报告一份(按格式书写);源程序一份,能编译成可执行文件并能正常运行。
二、本组课题及本人任务课题:图书信息管理系统设计图书信息包括:登录号、书名、作者名、分类号、出版单位、出版时间、价格等。
试设计一图书信息管理系统,使之能提供以下功能:1.系统以菜单方式工作。
2.图书信息录入功能(图书信息用文件保存)--输入。
3.图书信息浏览功能--输出。
4.查询和排序功能:(至少一种查询方式)--算法。
a. 按书名查。
b.按作者名查询。
本人任务:负责设计和编写图书信息管理系统的修改图书信息部分。
三、程序功能简介本系统是以visual C++ 环境下用C语言开发的一个图书管理系统。
本系统具有图书信息录入、浏览、删除、修改、查找(包括按书名、作者查找)功能。
C语言课程设计图书管理系统课程设计报告

C语言课程设计图书管理系统Books Management System学生姓名张朝柱学院名称徐州工程学院学号20130566140班级13计转本专业名称计算机科学与技术指导教师李子龙2016年5月10日一、需求分析为了满足图书管理的要求,通过计算机技术给图书管理人员和读者借、还书带来便利。
使用c语言编写了图书管理系统。
本系统主要实现图书信息管理的功能,通过此系统可对图书馆库存图书信息进行管理和维护操作。
实现了图书馆内管理的一般功能,包括查询、借书、还书、添加、删除、修改图书信息等。
所设计的系统以菜单方式工作,为用户提供清晰的使用提示,依据用户的选择来进行各种处理,并且在此过程中能够尽可能的兼容用户使用过程中可能出现的异常情况。
图书信息包括编号、书名、作者、数量、在库状态等。
图书信息的录入和显示要求有一定的规范格式,录入的图书信息用文件形式保存,并可以对其进行浏览、查询、借阅、还书等基本操作。
整个程序实现顺序表操作,对图书信息的操作逐个地进行,一个图书信息的更改不应影响其他的图书记录。
二、算法设计:1.设计思想:整个系统制造的而过程中,涉及了较多C语言知识点,对于不同的数据类型、程序控制结构、数据结构作以分析和总结,并结合这个课题进行综合的应用,在一定程度上做到了对所学知识融会贯通。
进一步加深、巩固了所学的专业的基本理论知识,培养了综合分析问题、解决问题的能力。
在设计程序时,实现了程序的模块化、结构化。
在主函数中调用各种子函数,操作界面简单,易操作。
2,设计表示:(1)、整个系统除了主函数外,另外还有各种功能子函数,利用无限次循环语句while()和选择语句swithch()实现各个子函数的调用,系统根据输入的数字选项来调用相应的函数,以实现相应的功能。
主要实现了图书的录入、存储、查询、借书、还书、显示库存等功能。
(2)、void Book_Entering(struct SqList &SL);这是一个录入图书信息的函数,它主要实现了顺序表的创建,并且在创建过程中从文件读取信息到顺序表中,以用于后面其他函数的操作。
!图书管理系统(含要求)

设计性实验——图书管理系统1.通过本实验全面掌握《C/C++语言程序设计》关键知识点,掌握C/C++语言中函数、数组、指针、结构体、文件、类、继承等方面的基本知识。
2.通过本实验了解并掌握C/C++语言程序设计的方法,熟悉C/C++程序设计的开发环境及C/C++程序的调试过程。
3.对于能力较好的同学,要求将面向对象的程序设计方法引入到本实验中。
4.培养学生查阅参考资料、手册的自学能力,通过独立思考深入钻研有关问题,学会自己分析、解决问题的方法。
图书信息管理系统设计要求:图书信息包括:编号、书名、作者名、出版单位、出版时间、价格、存量等。
(设计的系统要求有10本以上的书)人员信息包括:借书人的姓名,性别,编号,班级等。
(设计的系统要求有5个以上的人员)试设计一图书信息管理系统,使之能提供以下功能:系统以菜单方式工作(为各项操作功能设计一个菜单.应用程序运行后,先显示这个菜单,然后用户通过菜单项选择希望进行的操作项目。
进入每个操作后根据应用程序的提示信息,从键盘输入相应的信息)强调必须使用c语言或c++语言完成,不能使用数据库实现,能力高的同学可采用图形化窗口模式设计。
1.借书功能(图书信息浏览、查询、借阅)2.归还功能(图书信息浏览、查询、归还)3.注册新书(图书信息录入、修改)4.注销旧书(图书信息的删除、修改)5.读者登记(人员信息录入、修改)6.注销读者(人员信息删除、修改)7.退出图书信息录入功能(图书信息最好用文件保存)--用户输入数据时,要给出清晰,明确的提示信息,包括输入的数据内容,格式及结束方式等(人员信息录入功能类似)图书信息浏览功能--输出格式清晰,一目了然。
查询和排序功能:(至少一种查询方式)--按编号查询(给定图书编号,显示该本图书的信息)按书名查询(给定书名,显示所有相同书名的图书信息)按作者名查询(给定作者姓名,显示所有该作者编写的图书信息)并且要求书借出时可以通过书的编号或名字查找到对应的借书人的资料图书信息的删除与修改要求使用文件进行储存提供一些统计各类信息的功能(可选项)设计报告撰写指导1、需求分析以无歧义的陈述说明所选设计题目的任务,强调的是程序要做什么?明确规定:输入的形式和输出、值的范围;输出的形式;程序所能达到的功能;测试的数据:包括正确的输入和错误的输入及其相应的输出结果;2、概要设计问题解决的思路概述;说明程序中用到的所有抽象数据类型的定义,主程序的流程以及各程序模块之间的层次(调用)关系。
图书馆信息管理系统实验报告

集美大学诚毅学院软件工程课设计报告题目:图书管理系统系部名称:计算机信息工程专业:软件工程学生姓名:余传贵班级:软件1271学号:201242059027时间: 2013年 12月 23 日至2013年 12 月 27日指导老师:王宗跃课程设计题目:图书管理系统一、实验目的:1、通过系统分析、系统设计、编程调试,写实验报告等环节,初步掌握软件系统设计的方法和步骤。
2、熟悉C语言程序的编辑、编译、链接和运行的过程,掌握C语言的数据类型。
3、掌握文件和文件指针的概念以及文件的定义方法,认识文件打开、关闭、读写等文件基本操作函数。
4、训练自己灵活运用程序设计语言进行软件开发的能力,提高分析问题和解决问题的能力,培养必要的工程实践能力,从而提高程序设计水平。
二、实验内容:1、键盘输入密码。
2、键盘按照提示进行操作。
3、键盘按照提示实现对图书信息的输入。
4、查询模块,实现按编号、名称、类型进行查询5、更新模块,实现对图书信息的删除、更改和添加.。
6、排序模块,实现按编号、名称、类型进行排序。
7、统计模块,实现按名称、类型出版社进行数量统计。
三、需求分析:程序实现以菜单形式进入并操作,对图书信息的查询、更新、排序、统计功能,为此可以做出一系列操作函数,以链表保存图书的图书编号、图书名称、图书作者、图书类型、图书出版社、图书出版时间、图书数量,并用文件指针对信息进行保存和以实现对图书信息的录入、保存、修改、删除、添加、查询、排序和统计等功能。
四、概要设计1、方案设计设计图2、模块功能说明。
对各个模块进行功能描述:1)各模块间通过菜单切换和调用。
2)主函数通过调用菜单函数实现对各功能模块的调用,各功能模块间根据需要可相互调用。
3)程序能够保证各模块功能的独立和数据共享。
4)可以保存到文件,可以从文件读入已有的文件。
5)录入模块可以用来录入图书信息。
6)输出模块可以用来输出已经录入的图书信息。
7)查询模块可以用来查询图书的信息,包括按编号查询、按名称查询和按类型查询。
图书馆管理系统设计(C语言)

C程序设计报告图书管理系统设计题目:图书管理系统设计要求:利用C语言实现小型的图书管理系统,能够满足基本的借阅功能。
1.1问题提出:本人计划编写一个图书管理系统,主要是提供具有图书管理的程序。
本人的主要工作就是,编写出一个正确的程序,使其正常运行,实现图书管理功能!1.2本系统主要会涉及的知识点:结构,数组,循环,函数,判断,指针等语句的应用。
1.3主要功能要求:功能分析:从图书馆的管理功能上分析,图书馆一共有三个方面的需求。
1 对用户的管理。
2 对图书的管理。
3 对借阅的管理。
因此,本系统也从以上三个方面进行了设计,以实现上面的功能。
具体分析如下1 注册用户管理(以学校为样体,用户为学生)学生信息包括:学生ID,学生姓名,学生学号,所在院系,所在班级,性别,年龄。
(1)学生加入需要依次输入学生ID,学生姓名,学生学号,所在院系,所在班级,性别,年龄。
不能为空。
(2)学生删除此处用一个查询功能,是你方便的找到要删除的学生,同时显示该学生的信息,并要求删除确认。
(3)学生信息修改使用系统提供的查找功能可以迅速的找到要修改的学生,并提示修改的信息。
2 图书信息管理图书信息包括:图书ID,图书名字,图书作者,在馆状态。
(1)新书入库需要填入图书ID,图书名字,图书作者,在馆状态;其中在馆状态需要填:true,表示图书在馆。
(2)旧书删除对不用的旧书可以执行该操作。
可以使用系统提供的查找符合条件的图书,并可以同步显示该图书的信息,以便确认所删图书的正确性。
(3)图书信息修改当图书的信息发生改变的时候可以使用该功能来更新图书的信息,以保证图书信息的正确性。
操作是只要用系统提供的查找功能找到该图书,就可以在信息显示栏中对图书信息做修改。
3 图书借阅管理:图书借阅信息包括:借阅号,图书ID,学生ID,是否借出,借出日期,是否归还,归还日期。
(1)图书借阅:需要图书ID,学生ID。
(2)图书归还:需要图书ID,学生ID。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
中国地质大学本科生课程论文封面课程名称c语言课程设计教师姓名樊媛媛本科生姓名本科生学本科生专业所在院系类别:日期:课程设计评语注:1、无评阅人签名成绩无效;2、必须用钢笔或圆珠笔批阅,用铅笔阅卷无效;3、如有平时成绩,必须在上面评分表中标出,并计算入总成绩。
目录课程设计评语 (2)目录 (3)1.课程论文题目 (4)2.程序设计思路 (4)3.功能模块图 (5)4.数据结构设计 (5)5.算法设计 (5)6.程序代码 (6)7.程序运行结果 (16)8.编程中遇到的困难及解决方法 (20)9.总结心得及良好建议 (20)10.致谢 (20)1.课程论文题目图书管理系统2.程序设计思路根据要求,图书管理系统以文本文件存放在文件中,故需要提供文件的输入、输出等操作;还需要保持记录以进行删除,查询,借书,还书,退出,添加等等操作;另外还有键盘式旋转菜单以实现功能选择模块。
3.功能模块图系统功能模块图4.数据结构设计先写主函数main (),然后设计个功能选项,用switch选择,然后进入不同模块,进行不同选择,实现不同功能。
每个图书信息设置一个结构体,将输入信息存入文件,提供查询功能,还有删除功能以及借书还书功能。
每运行一功能后都返回主界面,方便再次选择,还有设置退出模块,方便退出。
5.算法设计先定义结构体数组struct books,然后设置主界面,主界面出现6个功能选项,分别是输入sr()、借书js()、还书hs()、删除sc()、退出tc()、查询cx().各模块设计如下:输入模块sr(),先调用文件eup,对其进行读取,然后增加,再对其进行保存和调用。
其中结构体只输入tsmc图书名称,tsbh图书编号,dj单价,zz作者, 然后自动生成,czzt存在状态,姓名xm,学号xh,性别xb.查询模块cx(),有选项图书编号和图书名称,然后选择,用if选择,然后用for循环查找,当输入名称与文件中的名称相同时,便显示此信息。
删除模块就是在查找功能的图书后,选择删除,将strcpy将s[i+1]的值赋给s[i]。
借出模块也是在查询的基础上,若s[i]的存在状态为已借出,则显示已借出,无法再借,若未借出,则将s[i]的存在状态czzt变为已借出,然后输入姓名,学号,性别,最后显示出已借出。
还书模块就是在查询的基础上,若s[i]的存在状态为未借出,则无法归还,若借出,则将存在状态变为未借出,然后自动将姓名,学号,性别变为初始值。
退出模块使flag=1,而在main就有bool flag 且main中已令main=0.这样就实现了退出功能。
其中若输入超过选项值后,都会显示输入错误,请重新输入。
若字符错误,程序就直接出现错误了。
6.程序代码#include<stdio.h>#include<windows.h>#include<string.h>#include<conio.h>#define M 100struct books{char tsmc[12];int tsbh;float dj;char zz[12];char czzt[12];char xm[12];char xb[12];int xh;}s[M];int N;bool flag;int main (){int sele;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(){int n,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].tsmc);printf("图书编号:");scanf("%d",&s[N-n-1+i].tsbh);printf("单价:");scanf("%f",&s[N-n-1+i].dj);printf("作者:");scanf("%s",&s[N-n-1+i].zz);strcpy(s[N-n-1+i].czzt,"未借出");strcpy(s[N-n-1+i].xm,"无");}}/********查询**********/void cx(){int i,j[100]={-1},d,k,t=0;char m[20];printf("查询:");printf("1:图书名称2:图书编号");printf("\n\n请输入查询选项:");scanf("%d",&k);if(k==1){printf("请输入图书名称:");scanf("%s",m);for(i=0;i<N;i++)if(strcmp(m,s[i].tsmc)==0){j[t]=i;t=t+1;}}else if(k==2){printf("请输入图书编号:");scanf("%d",&d);for(i=0;i<N;i++)if(d==s[i].tsbh){j[t]=i;t++;}}if(j[0]==-1&&t==0)printf("没有找到!\n");if(j[0]!=-1 && t!=0){printf("\t图书名称\t图书编号\t单价\t作者\t存在状态\t借书人姓名\t性别\t 学号\n");for(i=0;i<t;i++)printf("\t%s \t%d \t%f \t%s \t%s \t%s \t%s \t%d ",s[j[i]].tsmc,s[j[i]].tsbh,s[j[i]].dj,s[j[i]].zz,s[j[i]].czzt,s[j[i]].xm,s[j[i]].xb,s[j[i]].xh);}}/********删除模块*********/void sc(){int i,d,k,t=0;char ms[20];int ja=-1;printf("查询:");printf("1:图书名称2:图书编号");printf("\n\n请输入查询选项:");scanf("%d",&k);if(k==1){printf("请输入图书名称:");scanf("%s",ms);for(i=0;i<N;i++)if(strcmp(ms,s[i].tsmc)==0){ja=i;break;}}else if(k==2){printf("请输入图书编号:");scanf("%d",&d);for(i=0;i<N;i++)if(d==s[i].tsbh){ja=i;break;}}printf("确定删除该图书吗?1表示Yes,其他No");int p;scanf("%d",&p);if(p==1)printf("Congratulations,删除成功||\n");if(ja!=-1 && p){N=N-1;for(i=ja;i<N;i++){strcpy(s[i].tsmc,s[i+1].tsmc);s[i].tsbh=s[i+1].tsbh;s[i].dj=s[i+1].dj;strcpy(s[i].zz,s[i+1].zz);strcpy(s[i].czzt,s[i+1].czzt);strcpy(s[i].xm,s[i+1].xm);strcpy(s[i].xb,s[i+1].xb);s[i].xh=s[i+1].xh;}}else if(ja==-1)printf ("没有找到!\n");}/**********借书模块***********/void js(){int i,j[100]={-1},d,k,t=0;char m[20];printf("查询:");printf("1:图书名称2:图书编号");printf("\n\n请输入查询选项:");scanf("%d",&k);if(k==1){printf("请输入图书名称:");scanf("%s",&m);for(i=0;i<N;i++)if(strcmp(m,s[i].tsmc)==0){j[t]=i;t=t+1;}}else if(k==2){printf("请输入图书编号:");scanf("%d",&d);for(i=0;i<N;i++)if(d==s[i].tsbh){j[t]=i;t++;}}if(j[0]==-1&&t==0)printf("没有找到!\n");strcpy(s[j[i]].czzt,"已借出");printf("此书已借出\n");if(j[0]!=-1&&t!=0&&s[j[i]].czzt==" 未借出"){printf("%s %d %f %s %s %s %s %d ",s[j[i]].tsmc,s[j[i]].tsbh,s[j[i]].dj,s[j[i]].zz,s[j[i]].czzt,s[j[i]].xm,s[j[i]].xb,s[j[i]].xh); }printf("1:确定借阅2:退出\n");scanf("%d",&k);switch(k){case 1:printf("请输入学号:\n");scanf("%d",&s[j[i]].xh);printf("请输入姓名:\n");scanf("%s",&s[j[i]].xm);printf("请输入性别:\n");scanf("%s",&s[j[i]].xb);strcpy(s[j[i]].czzt,"已借出");printf("已借出,按任意键继续\n");//getch();case 2:break;}}/*************还书模块***************/void hs(){int i,j[100]={-1},d,k,t=0;char m[20];printf("查询:");printf("1:图书名称2:图书编号");printf("\n\n请输入查询选项:");scanf("%d",&k);if(k==1){printf("请输入图书名称:");scanf("%s",&m);for(i=0;i<N;i++)if(strcmp(m,s[i].tsmc)==0){j[t]=i;t++;break;}}else if(k==2){printf("请输入图书编号:");scanf("%d",&d);for(i=0;i<N;i++)if(d==s[i].tsbh){j[t]=i;t++;break;}}if(t==0)printf("没有找到!\n");else{printf("%s %f %s %s %s %s %d \n",s[j[i]].tsmc,s[j[i]].dj,s[j[i]].zz,s[j[i]].czzt,s[j[i]].xm,s[j[i]].xb,s[j[i]].xh);printf("1:确定归还2:退出\n");int p;scanf("%d",&p);if(p==1){strcpy(s[j[i]].czzt,"未借出");strcpy(s[j[i]].xm,"无");s[j[i]].xh=0;printf("已归还,按任意键继续\n");}//getch();}}/*************结束模块***************/void jsh(){flag=1;}7.程序运行结果各模块均能执行。