欢迎来到沃文网! | 帮助中心 分享知识,传播智慧!
沃文网
全部分类
  • 教学课件>
  • 医学资料>
  • 技术资料>
  • 学术论文>
  • 资格考试>
  • 建筑施工>
  • 实用文档>
  • 其他资料>
  • ImageVerifierCode 换一换
    首页 沃文网 > 资源分类 > DOC文档下载
    分享到微信 分享到微博 分享到QQ空间

    图书管理系统程序设计C实验报告.doc

    • 资源ID:828528       资源大小:94KB        全文页数:20页
    • 资源格式: DOC        下载积分:20积分
    快捷下载 游客一键下载
    账号登录下载
    微信登录下载
    三方登录下载: QQ登录 微博登录
    二维码
    微信扫一扫登录
    下载资源需要20积分
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP,下载更划算!
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    图书管理系统程序设计C实验报告.doc

    1、一、实习题目介绍(包括:题目名称,及题目要求完成的工作任务、要求实现的功能目标等) 1.题目名称 图书管理系统 2.基本功能(1) 查询图书: 输入要查询图书的信息,如书名,位置,索书号等,系统即可自动查询使用者所需要的图书,能查询到则输出完整的图书信息,查询不到则提示使用者该书不存在。(2) 添加图书: 输入要添加图书的数目,即可根据系统的提示逐项添加图书的基本信息,直至添加完毕为止。结束时显示使用者添加的所有图书。(3) 修改图书: 输入要修改的图书信息,找到该图书后即可修改书名,位置,索书号等基本信息。(4) 删除图书: 输入要删除的图书信息,找到该图书后即可自动删除。二、开发工作内容1

    2、.主要思路 (1)首先建立一个记录图书信息的档。 (2) 使用界面函数,使使用者更方便。 (3)使用者键入数字实现选择。 (4)使用者输入要查询的图书信息,如图书名,通过逐项比较找到图书,并输出图书的所有信息。 (5)使用者输入要修改的图书信息,通过逐项比较找到图书,再使用fseek,以及fwrite函数实现修改。 (6)使用者输入要删除的图书信息,通过逐项比较找到图书,建立新结构体Struct Book n=“0”,”0”,”0”,”0”,使用新结构体替换要删除的图书结构体,即可实现删除功能。 (7)使用者输入要添加的图书数目,系统自动提示使用者添加内容,直到添加完毕为止。 (8)使用死循环

    3、,每次功能完成之后提醒使用者,按0退出,按其他数字继续。2.各模块功能的实现过程 (1)建立记录图书信息的档 代码:void save()FILE*fp;int i;if(fp=fopen(book.dat,wb)=NULL)printf(cannotn);return ; for(i=0;i5) system(cls);jiemian(); printf(*n);printf( 请重新输入n);printf(*n);scanf(%d,&i);if(i=5)break;switch(i)case 1:chaxun();break;case 2:xiugai();break;case 3:add

    4、();break;case 4:shanchu();break;case 5:chaxunsuoyou();break;if(i=0)break;printf(nnnnnnn);printf(*按0退出,按其他数字继续*n);scanf(%d,&j);system(cls);(4)输入要查询的图书信息 原理:系统通过比较,如果图书存在则输出图书详细信息,图书不存在则输出图书不存在的信息。 代码: void chaxun() int p;int i,n=0;char b100;FILE*fp; printf( );printf( $=|n); printf( );printf( $-图书查询系统

    5、-|n); printf( ); printf( $_|n);printf( ); printf( $1.查询图书名 |n);printf( ); printf( $_|n); printf( );printf( $2.查询图书类型 |n); printf( );printf( $_|n); printf( );printf( $3.查询图书位置 |n);printf( ); printf( $_|n); printf( );printf( $4.查询图书编号 |n); printf( );printf( $_|n); printf( );printf(请输入服务类型(数字)n);printf

    6、( ); scanf(%d,&p); system(cls); if(p=1) printf(请输入要查询的图书名:n); scanf(%s,b);if(fp=fopen(bok.dat,rb)=NULL)printf(cannotn);exit(0);for(i=0;iN;i+) fread(&booki,sizeof(struct Book),1,fp);if(strcmp(b,booki.name)=0)printf(_n);printf(|%-15s|%-20s|%-20s|%-5s|n,booki.name,booki.lei,booki.floor,booki.hao);n=1;

    7、if(n=0) printf(对不起,你查询的图书不存在n); fclose(fp); if(p=2) printf(请输入要查询的图书类型:n); scanf(%s,b);if(fp=fopen(bok.dat,rb)=NULL)printf(cannotn);exit(0); for(i=0;iN;i+) fread(&booki,sizeof(struct Book),1,fp);if(strcmp(b,booki.lei)=0)printf(_n);printf(%-15s%-20s%-20s%-5sn,booki.name,booki.lei,booki.floor,booki.ha

    8、o);n+; fclose(fp); if(n=0) printf(对不起,你查询的图书不存在n);printf(%s类型书的数目为%dn,b,n); if(p=3) printf(请输入要查询的位置:n); scanf(%s,b); if(fp=fopen(bok.dat,rb)=NULL)printf(cannotn);exit(0); for(i=0;iN;i+) fread(&booki,sizeof(struct Book),1,fp);if(strcmp(b,booki.floor)=0) printf(_n);printf(|%-15s|%-20s|%-20s|%-5s|n,bo

    9、oki.name,booki.lei,booki.floor,booki.hao);printf(_n);n+; if(n=0) printf(对不起,你查询的图书不存在n); printf(%s位置书的数目为%dn,b,n); fclose(fp); if(p=4) printf(请输入要查询的图书编号:n); scanf(%s,b); if(fp=fopen(bok.dat,rb)=NULL)printf(cannotn);exit(0); for(i=0;iN;i+)fread(&booki,sizeof(struct Book),1,fp);if(strcmp(b,booki.hao)

    10、=0)printf(%-15s%-20s%-20s%-5sn,booki.name,booki.lei,booki.floor,booki.hao);n=1;if(n=0)printf(查无此书n); fclose(fp); (5)修改图书时只需输入要修改的图书信息及新的图书信息即可实现。 实现原理:先逐项对比找到图书,再用fseek函数指向该图书,然后用fwrite函数进行修改。 代码: void xiugai() int i,j,k=0,u;struct Book n; char boo100; FILE*fp;printf(请输入要修改的图书名n); scanf(%s,boo); if(

    11、fp=fopen(bok.dat,rb)=NULL) printf(cannot open filen); exit(0); for(i=0;iN;i+) fread(&booki,sizeof(struct Book),1,fp); if(strcmp(boo,booki.name)=0) j=i; k=1; fclose(fp); if(k=1) printf( _n); printf( $-图书修改系统-$n); printf( |_|n); printf( |1.修改图书名 |n); printf( |_|n); printf( |2.修改图书类型 |n); printf( |_|n)

    12、; printf( |3.修改图书编号 |n); printf( |_|n); printf(请输入修改内容(数字)n); scanf(%d,&u); system(cls); if(u=1) printf(请输入新的书名n); scanf(%s,&n.name); if(fp=fopen(bok.dat,rb+)=NULL) printf(cannotn); exit(0); fseek(fp,j*sizeof(struct Book),SEEK_SET); strcpy(n.lei,bookj.lei); strcpy(n.floor ,bookj.floor);strcpy(n.hao

    13、,bookj.hao);fwrite(&n,sizeof(struct Book),1,fp);printf(修改前:n);printf(%-15s%-20s%-20s%-5sn,bookj.name,bookj.lei,bookj.floor,bookj.hao); printf(修改后:n);printf(%-15s%-20s%-20s%-5sn,n.name,bookj.lei,bookj.floor,bookj.hao); printf(*修改成功*n); if(u=2) printf(请输入新的类型n); if(fp=fopen(bok.dat,rb+)=NULL) printf(c

    14、annotn); exit(0); fseek(fp,j*sizeof(struct Book),SEEK_SET); scanf(%s,&n.lei); strcpy(n.name,bookj.name); strcpy(n.floor ,bookj.floor);strcpy(n.hao ,bookj.hao);fwrite(&n,sizeof(struct Book),1,fp);printf(修改前:n);printf(%-15s%-20s%-20s%-5sn,bookj.name,bookj.lei,bookj.floor,bookj.hao); printf(修改后:n);prin

    15、tf(%-15s%-20s%-20s%-5sn,bookj.name,n.lei,bookj.floor,bookj.hao); printf(*修改成功*n); if(u=3) printf(请输入新的编号n); if(fp=fopen(bok.dat,rb+)=NULL) printf(cannotn); exit(0); fseek(fp,j*sizeof(struct Book),SEEK_SET); scanf(%s,&n.hao); strcpy(n.lei,bookj.lei); strcpy(n.floor ,bookj.floor);strcpy(n.name ,bookj.

    16、name);fwrite(&n,sizeof(struct Book),1,fp); printf(* n);printf(%-15s%-20s%-20s%-5sn,bookj.name,bookj.lei,bookj.floor,bookj.hao); printf(*n);printf(%-15s%-20s%-20s%-5sn,bookj.name,bookj.lei,bookj.floor,n.hao); printf( =修改成功=n); if(k=0) printf(查无此书n); fclose(fp);(6)删除图书。 实现原理:使用者输入要删除的图书信息,通过逐项比较找到图书,建

    17、立新结构Struct Book n=“0”,”0”,”0”,”0”,使用新结构体替换要删除的图书结构体,即可实现删除功能。 代码:/删除图书功能void shanchu() FILE*fp; int i,u,j,k,m=0; char b100;struct Book n=0,0,0; printf( $=|n); printf( $-图书删除系统-|n); printf( $_|n); printf( $1.删除图书名 |n); printf( $_|n); printf( $2.删除图书类型 |n); printf( $_|n); printf( $3.删除图书位置 |n); printf

    18、( $_|n); printf( $4.删除图书编号 |n); printf( $_|n); printf(请输入服务类型(数字)n); scanf(%d,&u); if(u=1) printf(请输入要删除的内容:n);scanf(%s,b); for(k=0;kN;k+) if(fp=fopen(bok.dat,rb)=NULL) printf(cannotn);exit(0); for(i=0;iN;i+) fread(&booki,sizeof(struct Book),1,fp); if(strcmp(b,booki.name)=0) printf(%-15s%-20s%-20s%-

    19、5sn,booki.name,booki.lei,booki.floor,booki.hao); j=i;m=1; printf(%dn,j); fclose(fp);if(fp=fopen(bok.dat,rb+)=NULL)printf(cannotn);exit(0);fseek(fp,j*sizeof(struct Book),SEEK_SET);fwrite(&n,sizeof(struct Book),1,fp); fclose(fp);if(m=0)printf(您要删除的图书不存在:n); if(u=2) printf(请输入要删除的内容:n);scanf(%s,b);for(

    20、k=0;kN;k+) if(fp=fopen(bok.dat,rb)=NULL)printf(cannotn);exit(0);for(i=0;iN;i+) fread(&booki,sizeof(struct Book),1,fp);if(strcmp(b,booki.lei)=0)j=i;m=1;printf(%-15s%-20s%-20s%-5sn,bookj.name,bookj.lei,bookj.floor,bookj.hao); break; fclose(fp);if(fp=fopen(bok.dat,rb+)=NULL)printf(cannotn);exit(0);fsee

    21、k(fp,j*sizeof(struct Book),SEEK_SET);fwrite(&n,sizeof(struct Book),1,fp); fclose(fp);if(m=0)printf(您要删除的图书不存在:n); if(u=3) printf(请输入要删除的内容:n);scanf(%s,b);for(k=0;kN;k+) if(fp=fopen(bok.dat,rb)=NULL)printf(cannotn);exit(0);for(i=0;iN;i+) fread(&booki,sizeof(struct Book),1,fp);if(strcmp(b,booki.floor)

    22、=0)printf(%-15s%-20s%-20s%-5sn,booki.name,booki.lei,booki.floor,booki.hao); j=i;m=1;break; fclose(fp);if(fp=fopen(bok.dat,rb+)=NULL)printf(cannotn);exit(0);fseek(fp,j*sizeof(struct Book),SEEK_SET);fwrite(&n,sizeof(struct Book),1,fp);printf(%-15s%-20s%-20s%-5sn,bookj.name,bookj.lei,bookj.floor,bookj.

    23、hao); fclose(fp);if(m=0)printf(您要删除的图书不存在:n); if(u=4) printf(请输入要删除的内容:n);scanf(%s,b); if(fp=fopen(bok.dat,rb)=NULL)printf(cannotn);exit(0);for(i=0;iN;i+) fread(&booki,sizeof(struct Book),1,fp);if(strcmp(b,booki.hao)=0)printf(%-15s%-20s%-20s%-5sn,booki.name,booki.lei,booki.floor,booki.hao); j=i;m=1;

    24、break; fclose(fp);if(fp=fopen(bok.dat,rb+)=NULL)printf(cannotn);exit(0); fseek(fp,j*sizeof(struct Book),SEEK_SET);fwrite(&n,sizeof(struct Book),1,fp); fclose(fp); if(m=0)printf(您要删除的图书不存在:n); (7) 增加图书。 实现原理:使用追加方式打开档,即可在档尾增加图书。通过输入数字控制输入图书的数目。代码: void add() FILE*fp;struct Book n100;int i,j;printf(请输

    25、入添加图书的数目:n);scanf(%d,&i); if(fp=fopen(bok.dat,ab)=NULL)printf(cannotn);exit(0);for(j=0;ji;j+) printf(请输入图书名:); scanf(%s,&nj.name);printf(请输入图书类别:);scanf(%s,&nj.lei);printf(请输入图书位置:); scanf(%s,&nj.floor);printf(请输入图书号码:);scanf(%s,&nj.hao);fwrite(&nj,sizeof(struct Book),1,fp);printf(*添加成功*n);printf(您添

    26、加的图书为:n); for(j=0;ji;j+) printf(%-15s%-20s%-20s%-5sn,nj.name,nj.lei,nj.floor,nj.hao); fclose(fp);三、 实验总结该实验主要使用文档来实现一系列功能,主要使用建立文档,读档,写档,删除档,追加文档等。该系统较为简单,其主要功能也较为简单,所以比较容易实现。其主要存在的问题是占用内存,由于数组开销较大,所以运行起来比较慢,虽然文档中图书的数目并不多,只有100本书,但也是比较慢的,主要是删除图书时比较慢,因为是替换,所以要逐个查找,然后进行替换,这不但费时间,而且占用空间,图书并不是被删除,只是被替换,所以位置依然存在,这也使得系统开销增大,只能通过较大的数组来实现,防止读档失误,这也是问题之一,当然,现在学的东西遗忘的较多,而且使用起来并不是十分娴熟,这些都是要解决的问题。现在已经是大一学生了,马上就要步入社会,要成为一个软件设计师,就需要更多的努力。通过这个系统,也让我看见了自己的不足之处,更给了我努力的方向和目标。总的来说,以后还应加强这方面的练习。


    注意事项

    本文(图书管理系统程序设计C实验报告.doc)为本站会员(精***)主动上传,沃文网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知沃文网(点击联系客服),我们立即给予删除!




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服点击这里,给沃文网发消息,QQ:2622162128 - 联系我们

    版权声明:以上文章中所选用的图片及文字来源于网络以及用户投稿,由于未联系到知识产权人或未发现有关知识产权的登记,如有知识产权人并不愿意我们使用,如有侵权请立即联系:2622162128@qq.com ,我们立即下架或删除。

    Copyright© 2022-2024 www.wodocx.com ,All Rights Reserved |陕ICP备19002583号-1

    陕公网安备 61072602000132号     违法和不良信息举报:0916-4228922