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语言课程设计报告图书管理系统
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语言图书管理系统
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语言程序实现简单的图书馆图书管理系统,程序包含平时的借书,还书,新书录入,查询功能,用简单明了的人机交互界面快速实现图书管理的目的。
二.模块说明及代码分析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语言课程设计-图书信息管理系统设计
图书信息管理系统设计一、【要求】图书信息包括:登录号、书名、作者名、分类号、出版单位、出版时间、价格等。
设计一图书信息管理系统,使之能提供以下功能:(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语言程序设计)
图书管理系统/*图书数据由编号、书名、出版社、单价和图书状态(库存用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语言程序设计实验报告
books[i].price=f;
i++;
flushall();
printf("is Continue(y/n)?:");
scanf("%c",&isCon);
}
printf("\n --%d种图书信息输入完毕!--\n",i);
printf("\n按任意键返回主菜单!");
{
FILE*fp;
int i;
char filename[40];
//clrscr();
printf("\n input SAVE filename=");
scanf("%s",filename);
if ( (fp=fopen(filename, "w")) == NULL)
{
printf("\n %s file NOT open! press any key exit system.");
printf("\n input READ filename=");
scanf("%s",filename);
if ( (fp=fopen(filename, "r")) == NULL)
{
printf("\n %s file NOT open! press any key exit system.");
〔2〕执行编译操作,并根据提示调试此程序,排除所有的错误和警告。直到编译成功为止。
〔3〕执行运行操作,逐一对每个模块进行调试,直到全部程序运行成功为止。
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);这是一个录入图书信息的函数,它主要实现了顺序表的创建,并且在创建过程中从文件读取信息到顺序表中,以用于后面其他函数的操作。
图书管理系统C语言实现代码
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语言)
图书管理系统设计图书管理信息包括:图书名称、图书编号、单价、作者、存在状态、借书人姓名、性别、学号等功能描述: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语言的基本语法和数据结构的应用。
一、系统需求分析在开始编写图书管理系统之前,我们首先需要明确系统的需求。
根据实际情况,我们确定了以下几个主要功能模块:1. 图书信息管理:包括图书的录入、修改、删除等操作。
2. 学生信息管理:包括学生的注册、借书、还书等操作。
3. 借阅记录管理:记录学生借阅图书的时间、归还时间等信息。
4. 查询功能:可以根据图书名称、作者、学生姓名等信息进行查询。
二、系统设计与实现1. 数据结构设计:为了实现图书管理系统的各项功能,我们需要定义一些数据结构,如图书信息结构体、学生信息结构体、借阅记录结构体等。
通过定义这些结构体,我们可以方便地对图书信息、学生信息进行管理和操作。
2. 主菜单设计:系统启动后,会显示一个主菜单,用户可以通过输入相应的数字选择不同的功能模块。
我们使用switch语句来实现主菜单的功能选择,确保用户可以根据自己的需求进行操作。
3. 功能实现:根据需求分析中确定的功能模块,我们逐一实现了相应的功能。
例如,对于图书信息管理模块,我们实现了图书的录入、修改、删除等功能。
对于学生信息管理模块,我们实现了学生的注册、借书、还书等功能。
通过合理的函数设计和调用,我们保证了系统的正常运行。
三、系统测试与优化在完成系统的设计与实现后,我们进行了一系列的测试。
通过输入不同的数据,测试系统的各项功能是否正常运行。
我们发现了一些问题,如输入错误时系统的错误提示不够友好、系统的响应速度较慢等。
为了解决这些问题,我们进行了相应的优化。
通过增加错误提示信息、优化算法等方式,提高了系统的用户体验。
四、总结与展望通过本次实验,我们掌握了C语言的基本语法和数据结构的应用。
图书馆管理系统C语言课程设计报告(原创)
char room[N];
//馆藏地址
double price; //价格
int amount;
//库存量
struct book *next;
};
(2) 模块划分
主函数
void main()
自定义子函数即功能函数
struct book * create(); struct book * scanf1_(); void printf1_(struct book *);
getchar(); p1->next=NULL; return p1; }
5
//输出单本书的信息 void printf1_(struct book *head) {
struct book *p; p=head; printf("图书编号: "); puts(p->num); printf("书名: "); puts(p->name); printf("作者: "); puts(p->writer); printf("出版社: "); puts(p->publisher); printf("出版日期: "); puts(p->time); printf("图书类别: "); puts(p->category); printf("馆藏地址: "); puts(p->room); printf("价格 库存量:%5.1f%5d\n",p->price,p->amount); printf("\n"); } // 新建图书信息库
选出小于指定数量库存的图书信息等等,总之,可以根据自己需求进行分析功能。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
题目:图书馆管理系统院系:信息科技学院专业:姓名:学号:指导教师:日期: 2015年7月15日桂林电子科技大学信息科技学院实训报告目录1 问题定义 =================================12 系统设计 ---------------------------------5 2.1 总体设计 ---------------------------------5 2.2 详细设计 ---------------------------------6 2.2.1 数据结构设计 ---------------------------------6 2.2.2 主控流程 ---------------------------------8 2.2.3 增加信息模块 ---------------------------------7 2.2.4 查找信息模块 ---------------------------------7 2.2.7 删除信息模块 ---------------------------------7 2.2.8 修改信息模块 ---------------------------------72.2.8 数据功能描述 ---------------------------------73 系统实现 ================================ 2 3.1 编码 -------------------------------- 83.1.1 程序预处理 -------------------------------- 93.1.2 主函数main() --------------------------------- 93.1.3 主菜单界面 -------------------------------- 113.1.7 增加图书信息 -------------------------------- 143.1.8 查询图书信息 -------------------------------- 143.1.9 删除图书信息 -------------------------------- 153.2.0 修改图书信息 -------------------------------- 153.2 测试与调试 -------------------------------- 133.2.1 概述 -------------------------------- 143.2.2 程序测试 -------------------------------- 14 5 归纳总结 ============================================== 3 5.1 开发经验 -------------------------------- 16 5.2 实训中遇到的问题及解决方法------------------------- 16 5.3 设计中的不足之处 --------------------------------- 165.4 感想和心得体会 --------------------------------- 166 参考资料 ================================= 16前言课程设计环节是应用型本科院校非常重要的一个教学环节,是学完一门课后应用本课知识及以前的知识积累而进行的综合性、开放性的训练。
通过课程设计,不仅能够使学生得到系统的技能训练,巩固和加强所学得专业理论知识,而且能够培养学生工程意识、创新能力、团队精神等综合素质,培养学生的设计能力和解决实际问题的能力。
C语言由于其强大的功能,丰富的表达能力,高效的代码,良好的移植性和灵活性,自1972年问世以来,经久不衰,即使现在出现了面向对象的程序设计方法和开发工具,但它仍然是人们学习程序设计的首选语言,用它训练和提高编程技术,以及开发应用程序等。
我们通过《C语言程序设计》这门课程的学习,已经能编写解决小问题的程序,对程序的开发也有了初步的认识,还掌握了C 语言的基本语法,这一过程确确实实令我们感到欣喜,有点计算机可以完成自我任务的成就感。
但是,对于程序设计而言,学习C 的步伐不应该停留于此。
我们最终的目的应该是掌握开发大型综合程序的方法,即遵循软件工程的开发步骤和结构化程序设计思想,用C 语言开发出解决复杂问题的大型综合程序。
可是对于多数学生来说,学习了C语言后,除了应付各种考试之外,别无它用,对Turbo C语言丰富的函数知之甚少,加上DOS环境所限,因而对C语言兴趣不大,也感到C语言比较难以掌握。
本实训就是为了让学生在学完C语言后进一步了解C语言的知识,掌握C语言在软件开发方面的使用方法,希望通过此次实训,不仅能提高学生学习C语言的兴趣,更为今后学习其它专业知识及开发程序打下坚实的基础。
本指导书中有些内容借鉴了互联网上相关程序的设计思想,在此对相关者表示衷心的感谢。
由于时间、经验及水平的原因,不当、不足之处,请大家提出宝贵意见。
编者图书馆管理系统一.实训目的:1.巩固C语言的三种基本结构、数组、函数调用的基本知识;2.掌握利用C语言编写程序的基本方法,提高C语言编程技巧,培养分析问题、解决问题的能力;3.熟练掌握C语言的编译、调用方法。
二.实验内容创建一个图书馆管理系统。
假设系统中每本图书只包括图书名字、图书书号、图书出版社、图书作者等信息。
程序的运行效果如图1.1所示,选择任意菜单中的数字,实现相应功能。
图1.1 图书管理系统功能需求在问题定义阶段要考虑题目的可行性和需求分析,接下来进入开发阶段,完成系统设计和系统实现的任务。
2. 系统设计2. 1 总体设计采用模块化的程序设计方法,即将较大的任务按照一定的原则分为一个个较小的任务,然后分别设计各个小任务。
需要注意的是划分出来的模块应该相对独立但又相关,且容易理解。
可以用模块化层次结构图(即模块图)来分析其任务的划分,一般从上到下进行,最上面一层是主模块,下面各层是其上一层模块的逐步细化描述。
本图书管理系统采用了数组来实现,如下图1.2所示,它由五大功能模块组成:•增加图书信息模块。
通过输入图书的书名、书号、出版社、作者来实现增加信息。
•查找图书信息模块。
根据增加的图书的书名来查找图书的信息。
•删除图书信息模块。
根据增加的图书信息记录通过查找定位找到信息进行删除。
•修改图书信息模块。
根据增加的图书信息记录通过查找找到该书信息进行修改。
2.2详细设计2.2.1数据结构设计●图书馆信息结构体结构体struct book将用于储存图书的基本信息,它将作为文件的数据域。
●Struct book /* 定义结构体*/{char Name[20]; /* 书名*/char Number[20]; /* 书号*/char publish[20]; /* 出版社*/char author[10]; /* 作者*/} book[500];这样就定义了一个数组的结构2.2.2 主控main()函数执行流程2.2.3增加信息模块:主要实现图书信息的增加功能。
2.2.4查找信息模块:主要实现图书查找书籍的功能。
2.2.5删除信息模块:主要实现图书删除图书记录的功能2.2.6修改信息模块:主要实现修改增加后的图书信息功能。
2.2.7函数功能述•add()函数原型:void add();add()函数用于在增加图书信息的功能。
•chazhao()函数原型:chazhao();chazhao()函数用于在查找图书信息的功能。
•del()函数原型:del();del()函数用于在删除图书信息的功能。
•xiugai()原型函数:xiugai();xiugai()函数用于在修改图书信息的功能。
主函数main()整个成绩管理系统控制部分。
void main() /* 整个图书管理系统控制部分*/{int i;do /* 控制返回菜单*/{Menu();printf("请输入要实现的功能");scanf("%d",&i);if(i<=4&&i>=0) /*请输入0到4之间的数字*/switch(i){case 1 : add() ;break;case 2 : chazhao() ;break;case 3 : del() ;break;case 4 : xiugai() ;break;case 0 : exit(0) ;break;}elseprintf("对不起,请重新输入并按回车确定\n\n");}while(1);}注:图书馆信息管理系统的控制部分。
3、系统实现3.1 编码3.1.1 程序预处理包括定义结构体、常量和变量、声明部分,并对它们进行初始化工作。
#include <stdio.h> /*标准函数输入输出函数库*/#include <stdlib.h> /*标准函数库*/#include <string.h> /*字符串函数库*//*^TTT^TTT^^TT^TT^TT^T函数声明部分T^TTT^T^TT^TT^TT^TT^T*/void add(); /* 增加*/void chazhao(); /* 查找*/void del(); /* 删除*/void xiugai(); /* 修改*/void exti(); /* 退出*/void Menu(); /* 菜单*//*T^^TT^TT^TT^TT^T定义结构体部分T^TTT^TT^TT^TT^TT^TT^T*/struct book /* 定义结构体*/{char Name[20]; /* 书名*/char Number[20]; /* 书号*/char publish[20]; /* 出版社*/char author[10]; /* 作者*/} book[500];#include <stdio.h> /*标准函数输入输出函数库*/#include <stdlib.h> /*标准函数库*/#include <string.h> /*字符串函数库*//*^TTT^TTT^^TT^TT^TT^T函数声明部分T^TTT^T^TT^TT^TT^TT^T*/void add(); /* 增加*/void chazhao(); /* 查找*/void del(); /* 删除*/void xiugai(); /* 修改*/void exti(); /* 退出*/void Menu(); /* 菜单*//*T^^TT^TT^TT^TT^T定义结构体部分T^TTT^TT^TT^TT^TT^TT^T*/struct book /* 定义结构体*/{char Name[20]; /* 书名*/char Number[20]; /* 书号*/char publish[20]; /* 出版社*/char author[10]; /* 作者*/} book[500];3.1.2主函数main()main()函数主要实现了对整个程序的运行控制,以及相关功能模块的调用。