数据结构课程设计——图书管理信息系统内容摘要:
me)。 scanf(%d,amp。 [i].bn1)。 [i].bn2=0。 //将已借书数置 0 for(int j=1。 ji。 j++) if(strcmp([i].rno,[j].rno)==0amp。 amp。 strcmp([i].name,c[j].name)==0) {cout已有该读者的信息 ,请重新输入 !endl。 i=。 break。 } cout继续输入吗 ?y/n:。 cinyn。 i++。 } =i1。 } /* 读入盘中各类文件 */ void readfile(BookDbaseFile amp。 bf,BnoIdxFile amp。 bif,LHFile1 amp。 f1,LHFile2 amp。 f2,LHFile3 amp。 f3,ReadFile amp。 rf,BbookFile amp。 bbf) { FILE *fpout。 int i。 //读图书文件 fpout=fopen(book,rb)。 if(fpout==NULL) { printf(Cannot open this file !\n)。 exit(0)。 } i=1。 while(!feof(fpout)) {fread(amp。 [i],sizeof(BookRecType),1,fpout)。 i++。 if(feof(fpout))break。 } =i1。 fclose(fpout)。 //读书号索引文件 fpout=fopen(bidx,rb)。 if(fpout==NULL) { printf(Cannot open this file !\n)。 exit(0)。 } i=1。 while(!feof(fpout)) {fread(amp。 [i],sizeof(BidxRecType),1,fpout)。 i++。 if(feof(fpout))break。 } =i1。 fclose(fpout)。 //读书名索引链头文件 fpout=fopen(nidx,rb)。 if(fpout==NULL) { printf(Cannot open this file !\n)。 exit(0)。 } i=1。 while(!feof(fpout)) {fread(amp。 [i],sizeof(BNRecType),1,fpout)。 i++。 } =i1。 fclose(fpout)。 //读作者索引文件 fpout=fopen(aidx,rb)。 if(fpout==NULL) { printf(Cannot open this file !\n)。 exit(0)。 } i=1。 while(!feof(fpout)) {fread(amp。 [i],sizeof(BARecType),1,fpout)。 i++。 } =i1。 fclose(fpout)。 //读出版社索引链头文件 fpout=fopen(pidx,rb)。 if(fpout==NULL) { printf(Cannot open this file !\n)。 exit(0)。 } i=1。 while(!feof(fpout)) {fread(amp。 [i],sizeof(BPRecType),1,fpout)。 i++。 } =i1。 fclose(fpout)。 //读读者文件 fpout=fopen(read,rb)。 if(fpout==NULL) { printf(Cannot open this file !\n)。 exit(0)。 } i=1。 while(!feof(fpout)) {fread(amp。 [i],sizeof(RRecType),1,fpout)。 i++。 } =i1。 fclose(fpout)。 //读借还书文件 fpout=fopen(bbff,rb)。 if(fpout==NULL) { printf(Cannot open this file !\n)。 exit(0)。 } i=1。 while(!feof(fpout)) {fread(amp。 [i],sizeof(BbookRecType),1,fpout)。 i++。 } =i1。 fclose(fpout)。 } // /*(1)书号查询算法 .用二分法查找实现书号查询算法如下 */ int BinSearch(BnoIdxFile bif,char key[]) { int low,high,mid。 low=1。 high=。 while(low=high){ mid=(low+high)/2。 if(strcmp(key,[mid].bno)==0)return [mid].RecNo。 else if(strcmp(key,[mid].bno)0) high=mid1。 else low=mid+1。 } return 0。 }//BinSearch /*(2)按书名查询算法 */ int BnameFind(LHFile1 lhf1,char key[]) {int i,k=0。 for(i=1。 i=。 i++) {if(strcmp(key,[i].bname)==0) { k=[i].lhead。 break。 } }return k。 } /*(3)按作者查询算法 */ int BauthFind(LHFile2 lhf2,char key[]) {int i,k=0。 for(i=1。 i=。 i++) {if(strcmp(key,[i].author)==0) { k=[i].lhead。 break。 } } return k。 } /*(4)按出版社查询算法 */ int BnameFind(LHFile3 lhf3,char key[]) {int i,k=0。 for(i=1。 i=。 i++) { if(strcmp(key,[i].press)==0) {k=[i].lhead。 break。 }} return k。 } /*(5)输出一条图书主数据库记录 */ void ShowRec(BookDbaseFile df,int i) { printf(书号 书 名 作者名 出版社 分类号 \n)。 printf(==============================================\n)。 printf(%6s%10s,[i].bno,[i].bname)。 printf(%8s%8s,[i].author,[i].press)。 printf(%6s\n,[i].sortno)。 printf(==============================================\n)。 coutendl。 } /*(6)图书查询控制程序 */ void SearchBook(BookDbaseFile df,BnoIdxFile bif,LHFile1 f1,LHFile2 f2,L。数据结构课程设计——图书管理信息系统
相关推荐
12 { PR(\n\n\n\n\n\t\t 请输入要查询的货物名 :)。 /*按货物名查询数据 */ SC(%s,temp2)。 system(cls)。 for(i=0。 in。 i++) { if(strcmp(temp2,goods[i].name)==0) { PR(\n)。 PR(\n\t 货物编号 货物名 货物类别 货物数量 货物价格 )。 PR(\n\t %5ld %5s %5s
onalInfoDlg、 CRelationsDlg、 CSearchGenerationDlg 类实现用户窗口对于家谱的增加成员、按生日查找、初除 成员、文 件输入输出、修改成员信息、按名字查找、成员关系显示、按代数显示等各种操作。 纵上所示,本程序的两主要类为 CoperationFamilytree 类:所有对家谱的操作均由此类完成。 CFamilytreeDlg 类
Main ShowNth(T)。 SearchByBirthday(T)。 AddChild(T)。 LocateTime()。 SearchByName(T)。 退出 DeleteByName(T)。 ShowFamilyTree(T)。 AddWife(T)。 5 图 3 家谱管理流程图 图 4 创建家谱流程图 源程 序include include include include
ar 16 trainsum 列车次数 No Int 100 创建 order 表: create table order( tid Date( 20) not null, id_number varchar (16) not null, trainsum Int( 100) not null,); 五、系统实现 用户登录及访问权限 本系统设计要求用户通过登录框选择访问权限,登录系统。 其中
信息进行自行录入。 依据数据库中教材库存表( StorageTotal)的信息进行教材出库(也就是教材的领取),用来记录每次教材出库事件的操作。 其中要记录的信息有:教材出库库存号、出库教材数量、领取班级,上面三个信息内容需要人工完成;教材名称、教材作者、出版社、教材所属,这四个信息是由数据库中 StorageTotal 表中的信息进行自行录入。 3.教材库存查询模块 功能需求 :