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

上传人:b****1 文档编号:2174874 上传时间:2023-05-02 格式:DOCX 页数:75 大小:95.52KB
下载 相关 举报
图书馆管理系统C语言程序设计.docx_第1页
第1页 / 共75页
图书馆管理系统C语言程序设计.docx_第2页
第2页 / 共75页
图书馆管理系统C语言程序设计.docx_第3页
第3页 / 共75页
图书馆管理系统C语言程序设计.docx_第4页
第4页 / 共75页
图书馆管理系统C语言程序设计.docx_第5页
第5页 / 共75页
图书馆管理系统C语言程序设计.docx_第6页
第6页 / 共75页
图书馆管理系统C语言程序设计.docx_第7页
第7页 / 共75页
图书馆管理系统C语言程序设计.docx_第8页
第8页 / 共75页
图书馆管理系统C语言程序设计.docx_第9页
第9页 / 共75页
图书馆管理系统C语言程序设计.docx_第10页
第10页 / 共75页
图书馆管理系统C语言程序设计.docx_第11页
第11页 / 共75页
图书馆管理系统C语言程序设计.docx_第12页
第12页 / 共75页
图书馆管理系统C语言程序设计.docx_第13页
第13页 / 共75页
图书馆管理系统C语言程序设计.docx_第14页
第14页 / 共75页
图书馆管理系统C语言程序设计.docx_第15页
第15页 / 共75页
图书馆管理系统C语言程序设计.docx_第16页
第16页 / 共75页
图书馆管理系统C语言程序设计.docx_第17页
第17页 / 共75页
图书馆管理系统C语言程序设计.docx_第18页
第18页 / 共75页
图书馆管理系统C语言程序设计.docx_第19页
第19页 / 共75页
图书馆管理系统C语言程序设计.docx_第20页
第20页 / 共75页
亲,该文档总共75页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

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

《图书馆管理系统C语言程序设计.docx》由会员分享,可在线阅读,更多相关《图书馆管理系统C语言程序设计.docx(75页珍藏版)》请在冰点文库上搜索。

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

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

HUNANUNIVERSITY

C语言程序训练

报告

 

【设计目的】

图书信息包括:

读者登录号、管理员登录号、图书编号、作者名、种类、、图书库存、图书借出数目等.

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

1)系统以菜单方式工作

2)读者注册功能

3)读者登录功能

4)读者借书还书功能

5)查询读者借阅记录

6)查询在管图书信息功能

7)修改密码功能

8)管理员登录功能

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

10)查看图书信息功能

【设计思路】

根据题目要求,应当把图书信息用结构体形式输入,应该提供以下结构体和文件的输入等操作:

在程序中需要实现图书信息录入,浏览,查询,删除和修改等功能的操作,所以需要建立相应的模块来实现:

另外还需提供选择菜单实现功能,在运行时达到所要求的目的;管理员和读者登录界面及各自功能应有不同的实现。

【总体设计】

图书馆管理系统

读者注册、登陆及密码修改

修改图书信息

删除图书信息

管理员登陆

查找图书信息

浏览图书信息

【详细设计】

1.主函数

主函数设计要求简洁,只提供部分提示语和函数的调用

显示一系列功能选项

输入n,n为1,2或3

根据n的值调用各功能模块函数

结束

开始

n

源代码为

//rkou.c程序的入口

#include

#include

#include

#include

#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);

}

system("pause");

}

 

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

源代码为

structbook//图书结构体声明

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

intjn;//借出数量

intzn;//在馆数量

intbh;//图书编号

};

structinformation//管理员和读者结构体声明

{charname[10],no[12],key[10];//,账号,密码

};

structshow//图书借阅记录的结构体声明

{

charname1[10],name2[50],writer[20],no[12];//书名,读者,书的作者,读者账号

intbh,o;//图书编号,借阅状况(未还,已还)

};

//以下为用到的全局变量

structbookbk;

structinformationaa,rr;

structinformationstu[100];

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]);//读者注册函数

intexam(charno[10],charkey[10],intn);//密码账号检验函数

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

voidpaixu();//对图书按照编号从小到大的顺序进行排列

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

intzj(structbookbb);//管理员增加图书信息函数

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

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

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

intbh1(intbh);//判断该编号的图书信息是否存在函数

voidbh2(intbh);//按照图书编号显示图书信息函数

intsm1(charname[50]);//判断是否存在该名字的图书信息函数

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

intzz1(charwriter[20]);//判断是否存在该作者的图书信息函数

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

voidlb(charclassic[10]);//按类别显示图书信息

intrck1(intbh);//判断该编号的图书的借书记录是否存在

voidrck2(intbh);//按编号显示图书借书情况

intgck21(charno[12]);//判断该账号读者的借书记录是否存在

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

voidgck12();//显示全部借书情况

voidgck23();//管理员查看所有书的信息

voidcopy(intbh);//按编图书编号将图书信息暂时保存在另外一个结构体里面

voidcopy2(charno[12]);//按管理员账号将管理员信息暂时保存在另外一个结构体里面

voidcopy3(charno[12]);//按读者账号将读者信息暂时保存在另外一个结构体里面

 

//pic()函数:

每个函数表示一个界面,conects函数将它们连接起来

voidpic0();

voidpic1();

voidpic2();

voidpic3();

voidpic4();

voidpic5();

voidpic6();

voidpic7();

voidpic8();

voidpic9();

voidpic10();

voidpic11();

voidpic12();

voidpic13();

voidpic14();

voidpic15();

voidpic16();

voidpic17();

voidpic18();

voidpic19();

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();

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;

}

voidpassword(char*a,intb,intj)

{charc;

inti=0;

while((c=getch())!

='\r')

{if(c==8)

{printf("\b\b");

if(i>0)

i--;

}

elseif(i

{if(b)printf("*");

elseprintf("%c",c);

a[i]=c;

i++;

}

if(i==j)

{printf("\a");

}

}

a[i]='\0';

printf("\n");

}

voidexamine(int*a,intb)

{while(!

scanf("%d",a))

{while(getchar()!

='\n');

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;

}

else

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

if(i)

{eros(i);n=44;

}

elsen=43;

}

}

voidinputs0()

{inti=1;

while(i==1)

{printf("1.A类\n2.B类\n3.C类\n4.D类\n5.E类\n6.F类\n");

examine(&i,1);

switch(i)

{case1:

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

case2:

strcpy(bk.classic,"B类");i=0;break;

case3:

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

case4:

strcpy(bk.classic,"D类");i=0;break;

case5:

strcpy(bk.classic,"E类");i=0;break;

case6:

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

default:

i=1;

}

}

}

voidinputs1(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)

{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:

;

}

}

voidinputs2(inta,intb,intc)

{switch(a)

{case1:

printf("请输入账号:

\n");password(aa.no,0,11);

default:

;

}

switch(b)

{case1:

printf("请输入密码:

\n");password(aa.key,1,9);

default:

;

}

switch(c)

{case1:

printf("请输入:

\n");gets(aa.name);

default:

;

}

system("cls");

}

voidinputs3(inta,intb,intc)

{switch(a)

{case1:

printf("请输入账号:

\n");password(rr.no,0,11);

default:

;

}

switch(b)

{case1:

printf("请输入密码:

\n");password(rr.key,1,9);

default:

;

}

switch(c)

{case1:

printf("请输入:

\n");gets(rr.name);

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;

case-12:

printf("error12!

您已经归还此书\n\n");break;

case-13:

printf("error13!

您所增加的图书编号已存在\n\n");break;

case-14:

printf("error14!

搜索不到此书的相关信息\n\n");break;

case-15:

printf("error15!

搜索不到该作者的信息\n\n");break;

case-16:

printf("error16!

打不开文件,保存失败\n\n");break;

case-17:

printf("error17!

该图书信息已存在\n\n");break;

case-18:

printf("error18!

您没有借过这本书\n\n");break;

case-19:

printf("error19!

您已经借阅了这本书,不能再借\n\n");break;;

case-20:

printf("error20!

抱歉,图书已经借完了\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:

pic1();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:

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;

case31:

pic31();break;

case32:

pic32();break;

case33:

pic33();break;

case34:

pic34();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.文件操作各种函数

源代码为

//jiangzhuo1.h文件操作各种函数

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;//当文件打不开时返回-1

}

else

{

j=0;

while(!

feof(fp))

{

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

j++;

}

j=j-1;

}

fclose(fp);

fp=fopen("book.txt","r");//对文档以只读的方式进行操作

if(fp==NULL)

{

return-1;//当文件打不开时返回-1

}

else

{

k=0;

while(!

feof(fp))

{

fscanf(fp,"%d%s%s%s%d%d",&bb[k].bh,bb[k].name,bb[k].classic,bb[k].writer,&bb[k].zn,&bb[k].jn);//将文档里面的数据格式化读取到结构体数组里面

k++;

}

k=k-1;

}

fclose(fp);

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

if(fp==NUL

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 工程科技 > 能源化工

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2