1、 图书管理系统2程序设计思路根据要求,图书管理系统以文本文件存放在文件中,故需要提供文件的输入、输出等操作;还需要保持记录以进行删除,查询,借书,还书,退出,添加等等操作;另外还有键盘式旋转菜单以实现功能选择模块。3功能模块图 系统功能模块图4数据结构设计先写主函数main (),然后设计个功能选项,用switch选择,然后进入不同模块,进行不同选择,实现不同功能。每个图书信息设置一个结构体,将输入信息存入文件,提供查询功能,还有删除功能以及借书还书功能。每运行一功能后都返回主界面,方便再次选择,还有设置退出模块,方便退出。5算法设计先定义结构体数组struct books,然后设置主界面,主
2、界面出现6个功能选项,分别是输入sr()、借书js()、还书hs()、删除sc()、退出tc()、查询cx().各模块设计如下:输入模块sr(),先调用文件eup,对其进行读取,然后增加,再对其进行保存和调用。其中结构体只输入tsmc图书名称,tsbh图书编号,dj单价,zz作者, 然后自动生成,czzt存在状态,姓名xm,学号xh,性别xb.查询模块cx(),有选项图书编号和图书名称,然后选择,用if选择,然后用for循环查找,当输入名称与文件中的名称相同时,便显示此信息。删除模块就是在查找功能的图书后,选择删除,将strcpy将si+1的值赋给si。借出模块也是在查询的基础上,若si的存在
3、状态为已借出,则显示已借出,无法再借,若未借出,则将si的存在状态czzt变为已借出,然后输入姓名,学号,性别,最后显示出已借出。还书模块就是在查询的基础上,若si的存在状态为未借出,则无法归还,若借出,则将存在状态变为未借出,然后自动将姓名,学号,性别变为初始值。退出模块使flag=1,而在main就有bool flag 且main中已令main=0.这样就实现了退出功能。其中若输入超过选项值后,都会显示输入错误,请重新输入。若字符错误,程序就直接出现错误了。6程序代码#includewindows.hstring.hconio.h#define M 100struct books char
4、 tsmc12; int tsbh; float dj; char zz12; char czzt12; char xm12; char xb12; int xh;sM;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(nn *n 1:输入 2:查询 3:删除 n 4:借书 5:还书 0:退出 n while(1) nn请输入功能序号:
5、scanf (%d,&sele); if(sele=0 & sele=5) switch(sele) case 1:sr();break; case 2:cx(); case 3:sc(); case 4:js(); case 5:hs(); case 0:jsh(); if(flag) break; else printf(输入错误请再次输入|nn nn让任意键继续n /wr_file();/*主函数*/*输入*/void sr() int n,i; N=0;可输入的书本数: scanf(n); N=n+N;请输入相关信息:n for(i=1;i=n;i+)图书名称:%s,sN-n-1+i.
6、tsmc);图书编号:sN-n-1+i.tsbh);单价:%fsN-n-1+i.dj);作者:sN-n-1+i.zz); strcpy(sN-n-1+i.czzt,未借出 strcpy(sN-n-1+i.xm,无/*查询*/void cx() int i,j100=-1,d,k,t=0; char m20;查询:1:图书名称 2:图书编号nn请输入查询选项:k); if(k=1)请输入图书名称: scanf(,m); for(i=0;N; if(strcmp(m,si.tsmc)=0) jt=i; t=t+1; else if(k=2)请输入图书编号:d); if(d=si.tsbh) t+;
7、 if(j0=-1&t=0)没有找到! if(j0!=-1 & t!=0)t图书名称 t图书编号 t单价 t作者 t存在状态 t借书人姓名 t性别 t学号n for(i=0;t;t%s t%d t%f t%s t%s t%s t%s t%d , sji.tsmc,sji.tsbh,sji.dj,sji.zz,sji.czzt,sji.xm,sji.xb,sji.xh);/*删除模块*/void sc() int i,d,k,t=0; char ms20; int ja=-1;,ms); if(strcmp(ms,si.tsmc)=0) ja=i; break;确定删除该图书吗?1表示Yes,其
8、他No int p;p); if(p=1)Congratulations,删除成功|n if(ja! p) N=N-1; for(i=ja; strcpy(si.tsmc,si+1.tsmc); si.tsbh=si+1.tsbh; si.dj=si+1.dj; strcpy(si.zz,si+1.zz); strcpy(si.czzt,si+1.czzt); strcpy(si.xm,si+1.xm); strcpy(si.xb,si+1.xb); si.xh=si+1.xh; else if(ja=-1) printf (没有找到!/*借书模块*/void js() int i,j100=-1,d,k,t=0; char m20; if(k=1) printf( scanf(m); for(i=0; if(strcmp(m,si.tsmc)=0) jt=i; t=t+1;
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1