[it计算机]图书馆管理系统c语言程序设计内容摘要:

case 26: pic26()。 break。 case 27: pic27()。 break。 case 29: pic29()。 break。 case 30: pic30()。 break。 case 31: pic31()。 break。 case 32: pic32()。 break。 case 33: pic33()。 break。 case 34: pic34()。 break。 case 35: pic35()。 break。 case 36: pic36()。 break。 case 37: pic37()。 break。 case 38: pic38()。 break。 case 39: pic39()。 break。 case 40: pic40()。 break。 case 41: pic41()。 break。 case 42: pic42()。 break。 case 43: pic43()。 break。 case 44: pic44()。 break。 case 45: pic45()。 break。 case 46: pic46()。 break。 case 47: pic47()。 break。 default:。 } } 源代码为 // 文件操作各种函数 int setup() //数据初始化函数 { FILE *fp。 fp=fopen(,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=i1。 } fclose(fp)。 fp=fopen(,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=j1。 } fclose(fp)。 fp=fopen(,r)。 //对文档以只读的方式进行操作 if(fp==NULL) { return 1。 //当文件打不开时返回 1 } else { k=0。 while(!feof(fp)) { fscanf(fp,%d %s %s %s %d %d ,amp。 bb[k].bh,bb[k].name,bb[k].classic,bb[k].writer,amp。 bb[k].zn,amp。 bb[k].jn)。 //将文档里面的数据格式化读取到结构体数组里面 k++。 } k=k1。 } fclose(fp)。 fp=fopen(,r)。 //对文档以只读的方式进行操作 if(fp==NULL) { return 1。 //当文件打不开时返回 1 } else { s=0。 while(!feof(fp)) { fscanf(fp, %s %s %d %s %s %d ,ss[s].name1,ss[s].no,amp。 ss[s].bh,ss[s].name2,ss[s].writer,amp。 ss[s].o)。 //将文档里面的数据格式化读取到结构体数组里面 s++。 } s=s1。 } fclose(fp)。 return 0。 //当操作全部正确时返回 0 } int xzc(char no[12],char key1[10],char key2[10],char name[10]) //读者注册函数 { int x=0。 for(x=0。 x=i。 x++) { if(!strcmp(no,stu[x].no)) //判断读者输入的账号与结构体里面的账号是否相同 { return 21。 break。 } if(x==i amp。 amp。 strcmp(no,stu[x].no))//判断读者输入的账号与结构体里面的账号是否相同 { if(!strcmp(key1,key2)) //判断读者两次输入的密码是否一致 { i=i+1。 strcpy(stu[i].name,name)。 strcpy(stu[i].no,no)。 strcpy(stu[i].key,key1)。 fp=fopen(,a)。 //对文件以写的方式将注册的信息保存到文件里面 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)。 return 0。 } else { return 5。 } } } } int exam(char no[10],char key[10],int n) //密码账号检验函数 { int x。 if(n==0) //对读 者的 密码和账号信息进行检验 { for(x=0。 x=i。 x++) { if(!strcmp(no,stu[x].no)) //判断该账号是否存在 { if(!strcmp(key,stu[x].key)) //当账号存在时判断与之相应的密码是否相同 { return 0。 break。 } else { return 4。 break。 } } if(x==i amp。 amp。 strcmp(no,stu[x].no)) { return 3。 } } } if(n==1) //对管理员的密码账号信息进行检验 { for(x=0。 x=i。 x++) { if(!strcmp(no,ad[x].no)) //判断该账号是否存在 { if(!strcmp(key,ad[x].key)) //判断与之相应的密码是否存在 { return 0。 break。 } else { return 4。 break。 } } if(x==j amp。 amp。 strcmp(no,ad[x].no)) { return 3。 } } } } int zj(struct book b) //管理员增加图书信息函数 { int x。 for(x=0。 x=k。 x++) { if(bb[x].bh==) //判断所增加的图书编号是否已存在 { return 13。 break。 } if(!strcmp(,bb[x].name)amp。 amp。 !strcmp(,bb[x].writer)) //判断所增加的图书是否存在 { return 17。 break。 } if(x==k) { if(strlen(bb[0].name)==0) //判断文档的第一行是否为空 k=k。 else k=k+1。 bb[k].bh=。 //将所增加的图书信息添加到结构体里面 strcpy(bb[k].name,)。 strcpy(bb[k].classic,)。 strcpy(bb[k].writer,)。 bb[k].zn=。 bb[k].jn=。 fp=fopen(,a)。 //将增加的图书信息追加到文件里面 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].writer,bb[k].zn,bb[k].jn)。 } fclose(fp)。 return 0。 } } } int sc(int bh) //管理员删除图书信息函数 { int x。 for(x=0。 x=k。 x++) { if(bb[x].bh==bh) //判断所删除图书的编号是否存在 { if(bb[x].jn!=0) return 22。 for(x=x。 x=k1。 x++) { bb[x]=bb[x+1]。 //删除图书信息后将该图书信息后面的图书信息依次前移 } k。 fp=fopen(,w+)。 //将删除后的所有图书信息重新写入文档 if(fp==NULL) return 16。 else { for(x=0。 x=k。 x++) {。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。