C语言程序设计模板:图书馆管理系统简介_第1页
C语言程序设计模板:图书馆管理系统简介_第2页
C语言程序设计模板:图书馆管理系统简介_第3页
C语言程序设计模板:图书馆管理系统简介_第4页
C语言程序设计模板:图书馆管理系统简介_第5页
已阅读5页,还剩62页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

HUNANUNIVERSITY

c语言程序训练

报告

【设计目的】

图书信息包括:读者登录号、管理员登录号、图书编号、作者名、种类、出版社、图书库存、图书借出数目

等.

图书信息管理系统,使之能提供如下功能:

1)系统以菜单方式工作

2)读者注册功能

3)读者登录功能

4)读者借书还书功能

5)查询读者借阅记录

6)行而在管图书信息功能

7)修改密码功能

8)管理员登录功能

9)增长、修改、删除图书功能

10)查看图书信息功能

【设计思绪】

根据题目规定,应当杷图书信息用构造体形式输入,应当提供如下构造体和文献的输入等操作:在程序中

需要实现图书信息录入,浏览,查询,删除和修改等功能的操作,因此需要建立对应的模块来实现:此外

还需提供选择菜单实现功能,在运行时到达所规定的目的:管理员和读者登录界面和各自功能应有不一样

的实现。

【总体设计】

【详细设计】

1.主函数

主函数设计规定简洁,只提供部分提醒语和函数的调用

源代码为

//rkou.c程序的入口

#include<stdio.h>

#include<stdlib.h>

ttinclude<string.h>

ftinclude<conio.h>

Uinclude*head,h*

#include*fuc.h*

#include*picture.h"

Uinclude*jiangzhuol.h"

ttinclude~output.h"

main()

(inti=setup();

switch(i)

{case0:while(n<53)

{conects(n);

default:eros(i):

syslem("pause");

2.程序中全局变量申明定义,以和所有函数申明

源代码为

structbook〃图书构造体申明

charname[50],classic[10].writer[20];//书名,类别,作者

intjn://借出数量

intzn;〃在馆数量

intbh;〃图书编号

structinformation〃管理员和读者构造体申明

(charnamc[10],no[12],key[10];〃姓名,账号,密码

structshow〃图书借阅记录的I构造体申明

charnamel[10],name2[50],writer[20],no[12];〃书名,读者姓名,书的作者,读

者账号

intbh,o:〃图书编号,借阅状况(未还,己

还)

〃如下为用到的全局变量

structbookbk:

structinformationaa,rr;

structinformationstu[100]:

structbookbb[100J;

structinformationad[100];

structshowss[100];

inti,j,k,s;

intn=0:

intx:

FILE*fp;

〃如下函数重要功能:以便窗口与顾客之间互换信息

intregstO:

voidpassword(char*a,intb,intj);//登陆时的输入函数

voidexamine(int*b);〃保证钺入H勺数据是数字

voidchangepaw(inta,intb);〃修改密码用到的提醒函数

voidinputsOO:〃输出图书类别以供顾客选择

voidinputsl(inta,intb,intc,intd,inte):〃以便顾客输入图书各项信息(如书名,编

号)

voidinputs2(inta,intb,intc):〃以便顾客输入管理员的信息(如账号姓

名)

voidinputs3(inta,intb,intc);〃以便顾客输入读者的信息(如账号姓名)

voideros(inti):〃错误显示函数,操作一旦出错,则会出现

对应1句错误信息

voidconects(intj);〃连接函数,选择界面

〃•下函数重要用于变化文献的内容并保留

intsetupO;〃数据初始化函

intxzc(charno[12],charkey1[10],charkey2[10],charname[10]);〃读者注册函数

intexam(charno「101.charkeyF101,intn):〃密码账号蛤杳

函数

intmp(charno[12],charkeyl[10],charkey2[10],charkey3[10],intn);〃密码修改函数

voidpaixuO;〃对图书按照编号从小到大的次

序进行排列

intsc(intbh);〃管理员删除图书信息函数

intzj(structbookbb):〃管理员增长图H信息函数

intxg(structbookbb);〃管理员修改图书信息函数

intjs(intbh,charno[12]);〃借书函数

inths(intbh,charno[12]);〃还书函数

intbhl(intbh);〃判断该编号的图H信息与否存在函数

voidbh2(intbh):〃按照图H编号显示图竹信息函数

intsml(charname[50]):〃判断与否存在该名字口勺图书信息函数

voidsm2(charname[50]);〃按照图书名字显示图书信息函数

intzzKcharwriter[20]):〃判断与否存在该作者的图书信息函数

voidzz2(charwriter[20]);//按照图书作者显示图书信息函数

voidlb(charclassic[1。]);〃按类别显示图书信息

intrckl(intbh);〃判断该编号的图书的借书记录与否存在

voidrck2(intbh);〃按编号显示图书借书状况

intgck21(charnot12]):〃判断该账号读者的借书记录与否存在

voidgck22(charno[12]);〃按读者显示借书状况2

voidgckl2():〃他示所有借书状况

voidgck230;〃管理员查看所有书的信息

voidcopy(intbh)://按编图书编号将图书信息临时保留在此外一种构造

体里面

voidcopy2(charno[12]);〃按管理员账号将管理员信息临时保留在此外一•种构造

体里面

voidcopy3(charno[12]);〃按读者账号将读者信息临时保留在此外一种构造体里

//pic()函数:每个函数表达一种界面,conecis函数将它们连接起来

voidpicOO;

voidpicl():

voidpic2();

voidpic3();

voidpic4():

voidpic5();

voidpic6();

voidpic7();

voidpic8();

voidpic9():

voidpiclOO:

voidpicl1();

voidpicl2():

voidpicl3():

voidpic!4();

voidpicl5();

voidpic16();

voidpic!7();

voidpic18();

voidpic!9();

voidpic20();

voidpic21();

voidpic22();

voidpic23();

voidpic24();

voidpic25();

voidpic26();

voidpic27();

voidpic29();

voidpic30();

voidpic31();

voidpic32();

voidpic33();

voidpic34():

voidpic35();

voidpic36();

voidpic37();

voidpic38();

voidpic39();

voidpic40();

voidpic41();

voidpic42();

voidpic43();

voidpic44();

voidpic45();

voidpic46();

voidpic47();

voidpiccO;

3•顾客输入以和界面反馈用到的功能函数

源代码为

intregst0

{charnum[12]>pawl[10],paw2[10],name[10]:

inti:

printfT请输入账号\n(U字符以内,不能具有中文字符):\n");

password(num.0.11):

printf("输入您的密码\n(9字符以内,不能具有中文字符):\n");

password(pawl,1,9);

printf("请再次输入密码:\n"):

password(paw2,1,9);

printf("输入您的姓名:\n*);

gets(name);

systcm("cls");

i=xzc(num,pawl,paw2,name);

returni;

voidpassword(char*a,intb,intj)

(charc;

inti=0;

while((c=getch())!=’\r)

{if(c==8)

(printf(*\b\b*);

if(i>0)

i—;

elseif(i<j)

(if(b)prinlf("*");

elseprintfc);

afil=c:

i++;

if(i=j)

printf

a[i]=\0';

printf(*,\n*):

voidexamine(int*b)

(whilc(!scanfa))

{while(getchar()!=,\n);

printf("请输入数字!!\n");

rewind(stdin);

if(b)system(*cls*);

voidchangepaw(inta,intb)

(inti;

charcl[10],c2[10],c3[10]:

printf("请输入原密码、n");

password(cl,1,9);

printf(”请输入新密码\n");

password(c2,1,9):

prinlf("请再次输入新密码\n"):

password(c3,1,9);

syslem("cls"):

if(b)

i-mp(aa.no,c1,c2,c3,b);

if(i)

{eros(i);n=27;

elsen=26;

else

{i=mp(rr.no,c1,c2,c3,b);

if⑴

{eros(i);n=44;

elsen=43;

voidinputsOO

{inti=l;

while(i==l)

{printf(*1.A类\n2.B类\n3.C类一4.D类\n5.E类\(16.F类\n");

examine(&i,1);

switch(i)

{casei:strcpy(bk.classic,"A类");i=0;break;

case2:strcpy(bk.classic,;i=0;break;

case3:strcpy(bk.classic,"C类");i=0;break;

case4:strcpy(bk.classic,"D类");i=0;brcak;

case5:strcpy(bk.classic,*E:i=0:break:

case6:strcpy(bk.classic,"F类");i=0;break;

default:i=l;

voidinputs!(inta.intb,intc,intd,inte)

(inti:

switch(a)

{case1:printf("请输入图书编号:\n*):examine(&bk.bh,1);

default:;

switch(b)

{case1:printf("请输入图书名称:\n*);gets(bk.name);

default:;

switch(c)

{caseI:printf("请输入图书II勺\n*);gets(bk.writer);

default::

switch(d)

{case1:printf("请输入该图书的库存:\n*);examine(&bk.zn,1);

default:;

system("cls");

switch(e)

{case1:printf("请选择图书类别:\n");inputs。();

default:;

voidinputs2(inta.intb.intc)

(switch(a)

case1:printf("请输入账号:\n*);password(aa.no,0,11);

default:;

switch(b)

{case1:prinlf("请输入密码:\n");password(aa.key,1,9);

default:;

switch(c)

{case1:prinlf("谙输入姓名:\n");gels(aa.name);

default:;

system(^cls*);

voidinputs3(inta,intb,intc)

{switch(a)

{case1:prinlf("请输入账号:\n");password(rr.no,0,11);

default:;

switch(b)

{case1:prinlf("请输入密码:\n");password(rr.key,1,9):

default:;

switch(c)

{case1:printf(”请输入姓名:\n");gels(rr.name);

default:;

system(^cls^):

voideros(inti)〃错误函数

switch(i)

case-1:printf("error]!初始化失败、n\n");break;

case-2:printf(*error2!账号不存在'n'n");break;

case-3:printf(*error3!账号不存在\n\n"):break;

caseprintf(*error4!密码错误\n\n");break:

caseprintf(*error5!输入的密码不一致\n'n");break:

caseprintf(*error6!编号不存在\n\n");break;

case-7printf("error7!书名不能为空\n\n");break;

caseprintf(*errorS!作者名字不能为空\n'n");break;

caseprintf(*error9!无此图书编号的记录\n\n");break;

case-10:printf("errorlO!无此账号口勺记录\n\n");break;

case-11:printf(*errorl1!原始密码输入^^\n\n");break;

caseprintf(*errorl2!您已经偿还此书'n'n");break:

case-13:printf(^errorlB!您所增长的图书编号已存在[n\n");break;

case-14:printf("errorl4!搜索不到此书的有关信息break;

case-15:printf(*errorl5!搜索不到该作者的信息\n'n'):break;

case-16:prinlf("error16!打不开文献,保留失败\n\n");break;

caseprintf(*errorl7!该图书信息己存在\n'n"):break;

case-18:printf(*errorl8!您没有借过这本书\n'n");break;

caseprintf(^errorlO!您已经借阅了这本书,不能花借\n'n"):break::

case-20:printf(werror20!抱敝,图书已经借完了\n'n");break;

case-21:printf("error21!账号已存在\n\n");break;

case-22:printf(*error22!尚有图书未还,不能删除该条信息\n'n");break;

default:;

voidconects(intj)

(switch(j)

{case0:pic0();break;

case1:picl():break;

case2:pic2():break;

case3:pic3():break;

case4:pic4():break:

case5:pic5();break;

case6:pic6():break;

case7:pic7();break;

case8:pic8();break;

case9:pic9():break;

case10:piclO();break;

case11:picl1();break:

case12:picl2():break;

case13:pic13();break:

case14:pic14():break:

case15:picl5();break:

case16:picl6();break;

case17:picl7();break:

case18:picl8();break:

case19:pic19();break;

case20:pic200;break:

case21:pic21();break;

case22:pic22();break;

case23:pic23();break:

case24:pic24():break;

case25:pic250;break:

case26:pic26();break:

case27:pic27();break;

case29:pic29();break:

case30:pic30();break:

case31:pic31();break;

case32:pic32();break;

case33:pic33();break;

case34:pic340:break:

case35:pic35();break;

case36:pic36():break:

case37:pic37();break:

case38:pic38();break;

case39:pic39();break:

case40:pic40();break;

case41:pic41():break:

case42:pic42();break;

case43:pic43();break:

case44:pic44();break;

case45:pic45();break;

case46:pic46():break:

case47:pic47();break;

default:;

4.文献操作多种函数

源代码为

//jiangzhuol.h文献操作多种函数

intsetupO//数据初始化函数

FILE*fp;

fp=fopen(*reader.txC,*1*);//对文档以只读方式进行操作

if(fp=NULL)

return-1;〃当文献打不开时返回T

else

i=0;

while(!feof(fp))

fscanf(fp,*%s%s%s",stu[i].name,stu[i].no,stu[i].key):〃将文档里面的数据格式化读取

到构造体数组里面

i++;

i=i-l;

fclosc(fp);

fp=fopCnrad.txt*/r*);〃对文档以只读的方式进行操作

if(fp=NULL)

return-1://当文献打不开时返回T

else

j=0;

while(!feof(fp))

fscanf(fp,"%s%s%s",ad[j].name,ad[j].no,ad[j].key);//将文档里面的数据格式化读取到

构造体数组里面

j++;

j=j-l;

fclose(fp);

fp=fopenCbook.txt*,*r*):〃对文档以只读的方式进行操作

if(fp=NULL)

return-1:〃当文献打不开时返回T

else

k=0;

whiledfeof(fp))

fscanf(fp,"%d%s%s%s%d%d

”,&bb[k].bh,bb[k].name,bb[k].classic,bblk].writer,&bb[k].zn,&bb[k].jn)://将文档里面的数据

格式化读取到构造体数组里面

k++;

k=k-l;

fclose(fp);

fp=fopen(*show.txt*,*r*);〃对文档以只读的方式进行操作

if(fp=NULL)

return-I;〃当文献打不开时返向-1

else

s=0:

while(!feof(fp))

fscanf(fp,*%s%s%s%s%d

”,ss[s].nameI,ss[s].no,&ss[s].bh,ss[s].name2,ss[s].writer,&ss[s'.o);〃将文档里面口勺数据格式

化读取到构造体数组里而

s++;

s=s-l;

fclose(fp):

return0;〃当操作所有对时时返回0

intxzc(charno[12],charkey1[10],charkey2[10],charname[10])//读者注册函数

intx=0;

for(x=0;x<=i;x++)

if(istrcmp(no,stu[x].no))〃判断读者输入的账号与构造体里面的账号与否相似

return-21;

break;

if(x==i&&strcmp(n。,slu[x].no))〃判断读者输入的账号与构造体里面的账号与否相似

if(!strcmp(keyl,key2))〃判断读者两次输入的密码与否一致

i=i+l;

strcpy(stu[i].name,name):

strcpy(stu[i].no,no);

strcpy(stu[i].key,keyl):

fp=fopen("reader.;//时文献以写的方式将注册的信息保留到文献里面

if(fp=NULL)

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==O)〃对读者的密码和账号信息进行检查

for(x=0:x<=i;x++)

if(!strcmp(no,stu[x].no))〃判断该账号与否存在

if(!strcmp(kcy,stufx].key))〃当账号存在时判断与之对应I向密码与否相似

return0;

break;

else

return一4;

break:

if(x==i&&strcmp(no,stu[x].no))

return-3;

if(n==l)〃对管理员的密码账号信息进行检查

for(x=0;x<=i;x++)

if(!strcmp(no,ad[x].no))//判断该账号与否存在

if(!strcmp(key,ad[x].key))//判断与之对应的密码与否存在

return0;

break;

else

return-4:

break;

if(x==j&&strcmp(no,ad[x].no))

return-3;

intzj(structbookb)//管理员增长图书信息函数

{intx;

for(x=0;x<=k;x++)

{if(bb[x].bh=b.bh)〃判断所增长的图书编号与否已存在

return-13;

break;

if(!strcmp(b.name,bb[x].name)&&!strcmp(b.writer,bb[x].writer))//判断所增长的J图书

与否存在

{return-17;

break:

if(x=k)

{if(strlen(bb[O].nane)==O)〃判断文档的第一行与否为空

k=k;

else

k=k+l:

bb[k].bh=b.bh;〃将所增长的图书信息添加到构造体里面

strcpy(bbFkl.name.b.name):

strcpy(bb[k].classic,b.classic):

strcpy(bbCkl.writer,b.writer);

bb[k].zn=b.zn:

bb[k].jn=b.jn:

fp=fopen("book.txl"Ja");〃将增长的图书信息追加到文献里面

if(fp==NULL)

return-16;

else

fprintf(fp,*%d\t%-30s\t%-30s\t%-10s\t%d\t%d\n*»bb[k].bh,bb[k].name,bb[k].classic,bb[k].write

r,bb[k].zn,bb[k].jn):

fclose(fp);

return0;

intsc(intbh)〃管理员删除图书信息函数

(intx;

for(x=0;x<=k;x++)

if(bb[x].bh==bh)//判断所删除图书的编号与否存在

if(bb[x].jn!=0)

return-22:

for(x=x;x<=k-l;x++)

bb「xl=bb-x+ll:〃删除图书信息后将该图书信息背面的图书信息依次前移

k—;

fp=fopen("book,txt","w+”);〃将删除后的所有图书信息亘新写入文档

if(fp==Nl-LL)

return-16;

else

for(x=0:x<=k;x++)

fprintf(fp,*%d\t%-30s\t%-30s\tV10s\t%d\t%d\n*,bb[x].bh,bb[x].name,bb[x].classic,bb[x].write

r,bb[x].zn,bb[x].jn):

fclose(fp);

return0;

break;

intmp(charnot12],charkeyl[13]»charkey2[10],charkey3[10],intn)〃密码修改函数

(intx:

if(n==0)〃读者密码修改

for(x=0:x<=i;x++)

if(Istrcmp(no,stu[x].no))〃定位读者账号位置

if(!strcmp(stu[x].key,key1))//判断输入的原密码与否对小J

{if(!strcmp(key2fkey3))〃判断两次输入的新密码与否一致

strcpy(stu[x].key,key3);

fp=fopen("reader.Ixl"."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);

return0;

else

return-5;

else

return-11:

if(n==l)〃管理员密码修改

for(x=0;x<=j;x++)

if(Istrcmp(no,ad[x].no))〃定位管理员账号位置

if(!strcmp(keyl,adCxl.key))〃判断输入l内原窘码与否时的

if(!strcmp(key2,key3))〃判断两次输入的新密码与否一致

strcpy(ad[x].key,key3);

fp=fopen("ad.txt","w+”);〃将修改后的信息保留在文献里面

if(fp==NULL)

return-16;

else

for(x=0;x<=j;x++)

fprintf(fp,*%s\t\t%s\t\t%s\n*,ad[x].name,ad[x].no,ad[x].key);

fclose(fp);

return0;

else

return-5:

else

return-11;

intxg(structbookb)〃管理员修改图书信息函数

(intx;

if(strlen(b.name)==0)〃判断所输入的要修改的图M名字与否为空

return-7;

else

if(strlen(b.writer)==0)//判断所输入的要修改的图书作者与否为空

return-8;

else

for(x=0;x<=k;x++)

if((bb[x].bh=b.bh))〃定位要修改的图书编号位置

strepy(bb[x].name,b.name):〃将修改后的信息保留在构造体里

strepy(bb[x].classic,b.classic);

strepy(bb「xl.writer,b.writer):

bb[x].zn=b.zn;

bb[x].jn=b.jn:

fp=fopen("b〉ok.ixi","w+”);〃将修改后的所有信息保留在文献里

if(fp==NULL)

return-16;

else

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].write

r,bb[x].zn,bb[x].jn);

fclose(fp);

return0;

voidcopy(intbh)//按编图书编号将图书信息临时保留在此外一种构造体里面

(intx;

for(x=0;x<=k:x++)

if(bb[x].bh==bh)

strcpy(bk.name,bb[x].name);

strepy(bk.classic,bb[x].classic);

strcpy(bk.writer,bb[x].writer):

bk.zn=bbfx].zn;

bk.jn=bb「xl.jn:

bk.bh=bb[x].bh;

voidcopy2(charno[12])〃按管理员账号将管理员信息临时保留在此外一种构造体里面

intx:

for(x=0;x<=j;x++)

if(!strcmp(ad[x].no,no))

strcpy(aa.name,ad[x].name):

strcpy(aa.key,ad[x].key);

voidcopy3(charno[12])〃按读者账号将读者信息临时保留在此外一冲构造体里面

(intx:

for(x=0;x<=i:x++)

if(!strcmp(stutxj.no,no))

strcpy(rr.name,stu[x].name);

strcpy(rr.key,stu[x].key);

intjs(intbh,charno[12])〃借书函数

(intx,y,z;

for(x=0;x<=k;x++)

if(bb[x].bh-bh)//判断借书编号与否存在

if(bb[x].zn>0)//判断在馆数与否为0

if(strlen(ss[O].namel)==0)〃判断文献里面的第一厅信息与否存在

for(y=0;y<=i;y++)

if(Jstrcnpfsturyl.no.no))

(-bb[x].zn:〃修改借书后的信息

++bb[x].jn;

ss[O].o=2;

strcpy(ss[O].name1,stu[y].name);〃将借书后的信息保留在构造体数组

里而

strcpy(ss[O].no,no);

strcpy(ssfO].writer,bbfxl.writer);

slrcpy(ss[O].name2,bb[x].name):

ss[O].bh=bh;

else

for(y=0:y<=s;y++)

if((ss[y].bh=bh)&&!stremp(ss[y].no,no))〃定位与输入的编号和账号•

致的借书记录

if(ss[y].o=2)//判断与否已借过该书

return-19;

else

-bbW.zn:〃修改借书后的信息

++bb[x].jn;

ss[y].0=2:

break;

else

if(y==s)

s++;

for(z=0:z<=i:z++)

if(!strcmp(stu[z].no,no))//定位读者信息

bb[x].zn-;〃修改借书后的信息

bb[x].jn++;

strcpy(ss[s].name1,stufz].name);

strcpy(ss[s].namc2,bb[x].name);

strcpy(ss[s].no,no);

strcpy(ss[s].writer,bb[x].writer);

ss[s].bh=bb[x].bh;

ss[s].0=2;

break;

fp=fopen("book.txi","w+");〃将借书后的图书信息写入文献

if(fp=NULL)

return-16:

else

for(y=0;y<=k;y++)

fprintf(fp,A,%d\t%-30s\t%-30s\t%-10s\t%d\t%d\nA',bb[y].bh,bb[y].name,bb[y].classic,bb[y].write

r.bbfyl.zn.bbTyl.jn):

fclose(fp);

fp=fopen("show.txt","w+")://将借书记录写入文献

if(fp=NULL)

return-16;

else

for(y=0;y<=s;y++)

fprintf(fp,*%-20s\t%s\t%d\t%-30s\t%-10s\t%d\n*,ss[y].name1,ss[y'.no,ss[y].bh,ss[y].name2»ss[

y].writer,ss[y].o);

fclose(fp);

return0;

else

return-20;

inths(intbh,charno[12])〃还书函数

(intx,p;

for(x=0;x<=s:x++)

if(ss[x].bh=bh&&!stremp(ss[x].no,no))〃判断其借书记录与否存在

{if(ss[x].o==2)〃判断该书与否被借过

{for(p=0;p<=k;p++-)

if(bb[p].bh==bh)〃修改还书后的图书信息

f++bbTpl.zn:

—bb[p].jn;

ss[x].0=1;

fp=fopen(*book.txt*,*w+*):〃将还书后的所有图书自息重新写入文献

if(fp==NULL)

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].write

r,bb[p].zn,bb[p].jn);

fclose(fp);

fp=fopen("show,txtW);〃将还书后的所有借书记录重新写入文献

if(fp==NULL)

return-16:

else

for(p=0:p<=s;p++)

fprintf(fp,*%-20s\t%s\t%d\t%-33s\t%-1Os\t%d\n*,ss[p].name1,ss[p..no,ss[p].bh,ss[p].name2,ss[

p].writer,ss[p].o);

fclose(fp);

return0:

else

return-12:

else

if(x=s)

return-18:

voidpaixuO//对图书按照编号从小到大的次序进行排列

(intx,flag;

structbooka:

do〃用冒泡法排序

flag=l:

for(x=0;x<=k-l;x++)

if(bb[x].bh>bb[x+l].bh)

a=bb[x+l]:

bb[x+l]=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*.bbFxl.bh..bbTxl.classic.bbFxl.write

r,bb[x].zn,bb[x].jn);

fclose(fp);

5.登陆界面所有函数

源代码为

//picture.h登陆界面所有函数

voidpicaO

(printf(*\n登陆顾客,T6s登陆者:%T6s权限:管理员\n”,aa.no,aa.name);

printf(*------------------------------------------------------------------------\n\n*);

voidpicbO

(printfC\n登陆顾客:%T6s登陆者:%-16s权限:读者、n”,rr.no,rr.name);

printfC------------------------------------------------------------------------\n\n*):

voidpicOO〃登陆界面

(PrintfC\n\t\t\t欢迎登陆湖南大学图书管理系统\n"):

printfC-----------------------------------------------------------------------\n\n");

printfCl.登陆\n2.读者注卅\n3.退出系统\n\n");

printf(*-----------------------------------------------------------------------\n\n*);

examine(&x,1);

switch(x)

{case1:n=l;break:

case2:n=45;break;

case3:n=50:break:

default:;

voidpiclO〃管理员登陆界面

inti:

printfC\n\t\t\t\t登陆\iT);

printf(*--------------------------------------------------------------------------------\n\n*);

prinifCl.管理员登陆\n2.读者登陆\n3.返回系统界面\n'n");

printf(*--------------------------------------------------------------------------------\n\n*):

examine(&x,1):

switch(x)

{case1:inputs2(l,1,0);

i=exam(aa.no,aa.key,1);

if⑴

{eros(i):n=3;

elsen=2:break;

case2:inputs3(l,1,0);

i=exam(rr.no,rr.key,0);

i

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论