ImageVerifierCode 换一换
格式:DOCX , 页数:13 ,大小:61.97KB ,
资源ID:11864947      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/11864947.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(C语言程序实践报告.docx)为本站会员(b****4)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

C语言程序实践报告.docx

1、C语言程序实践报告C语言程序设计报告图书管理系统学生学号 XXXXXXXXXX 学生姓名 XXX 学生系别 信息工程系 班 级 XXXX 指导老师 XX 日 期 目录一、 需求分析3二、 概要设计31. 系统功能组成框图32. 程序的文件存储设计43. 模块功能说明44. 主函数流程图5三、 详细设计5 1. 头函数5 2. 主函数6 3. 录入7 4. 输出8 5. 查询8 6 删除9 7 分类10 8 修改11八、 心得13图书管理系统编程实践是学习C语言程序设计的一重要环节,上机实习和课程设计是提高同学们程序设计能力的有效途径,能够使同学们初步掌握程序设计的基本方法和调试技能。学校安排上

2、机时间有限,老师也只能教给我们一些方法,而我们自己需要投入很大的时间和精力来锻炼。一、 需求分析图书信息包括:登录号,书名,作者名,分类号,出版单位,出版时间,价格等。使之提供以下功能: (1)图书信息录入功能。(图书信息用文件保存)。(2)图书信息浏览功能。(3)图书信息查询功能。(4)图书信息的删除和修改。(5)图书信息的排序功能。二、 概要设计1 系统功能组成框图 2程序的文件存储设计 程序数据存取主要由三个文件:book.txt、record.txt、car.txt组成。Book.txt :主要存储图书数据,程序的增加图书、删除图书、查阅图书等功能均是对些文件进行读取操作。 Recor

3、d.txt :借书记录存储文件, 主要用来储存书籍的借出与归还信息。Car.txt : 学生卡号储存文件。另外在程序运行的时候还增加了一个临时文件book1.txt,它的主要功能是防止因为误操作对源文件book.txt的数据破坏。 3模块功能说明本程序包括七个主要模块1 主程序模块main() 清屏并显示主菜单提示用户选择所要执行的操作 根据用户的选择执行相应模块2 录入模块实现图书信息的录入3 显示模块实现图书信息的显示4 查询模块按用户指定要求(书名或书名号)查询指定对象的图书信息5 删除模块删除相应对象的图书信息6 修改模块修改相应对象的图书信息7 排序模块按用户指定要求(书名或书名号)

4、将图书信息进行排序 注:因为分组做程序,本人被安排到修改模块,加上老师要求必做的录入与显示模块,共三个小程序,其余模块皆为同学共同完成。4. 主函数流程图初始化、定义主菜单、分支菜单指针数组及变量读键盘按键的键值判断键值并弹出对应菜单Y用户按了0键吗? N根据按键执行菜单选项对应的函数从被调用函数中返回并转移退出管理系统 图3 系统主函数流程图 三、 详细设计1头函数#include struct library int del; 删除标记,0表示删除int number; 登陆号 char name20; 书名 char author30; 作者名 char sort40; 分类号 char

5、 publisher; 出版社 int price; 价格lib10;int n=3;2主函数main()char ch; doclrscr(); printf(*n); printf(Welcome To Library System!n); printf(*n); printf(i or I-inputn); 录入 printf(p or P-outputn); 浏览 printf(q or Q-inquiren); 查询 printf(d or D-deleten); 删除printf(s or S-sortn); 分类 printf(m or M-modifyn); 修 改 print

6、f(e or E-exitn); 退出 printf(Please select:n); ch=getchar(); if(ch=i|ch=I) input();getch(); else if(ch=p|ch=P) output();getch(); else if(ch=q|ch=Q) inquire();getch(); else if(ch=d|ch=D) delete();getch(); else if(ch=a|ch=A) insert();getch(); else if(ch=s|ch=S) sort();getch(); else if(ch=m|ch=M) modify(

7、);getch(); else if(ch=e|ch=E) exit(0);getch(); while(1);3. 录入增加图书:在管理系统中选择“i or I”, 然后输入书籍的序号,书名、作者和分类号,即可完成添加图书操作。input() FILE *fp; int i; if(fp=fopen(libr.dat,wb)=NULL) printf(cannot open the file!);exit(0); printf(Please input library information:n); for(i=0;in;i+) scanf(%d%s%s%s%d,&libi.number,l

8、ibi.name,libi.author,libi.sort,&libi.price); for(i=0;in;i+) fwrite(&libi,sizeof(struct library),1,fp); fclose(fp);4. 输出浏览图书:在管理系统中选择“p or P”,可查看输入书籍的序号,书名、作者和分类号。output()FILE *fp; int i; if(fp=fopen(libr.dat,rb)=NULL) printf(cannot open the file!);exit(0); n=0; while(fread(&libn,sizeof(struct librar

9、y),1,fp)=1) n+; printf(NO.tNametAuthortSorttPricen); for(i=0;in;i+) printf(%dtt%stt%st%stt%dn,libi.number,libi.name,libi.author,libi.sort,libi. price); fclose(fp); 5. 查询inquire()FILE *fp; int i, k;char name20,author30; if(fp=fopen(libr.dat,rb)=NULL) printf(cannot open the file!);exit(0); n=0; while(

10、fread(&libn,sizeof(struct library),1,fp)=1) n+; printf(1-name, 2-authorn); printf(Please select 1 or 2n); scanf(%d,&k); if(k=1) printf(Please input name:n); scanf(%s,name); for(i=0;in;i+) if(strcmp(name,libi.name)=0) printf(%dtt%stt%st%stt%dn,libi.number,libi.name,libi.author,libi.sort,libi.price);

11、if(k=2) printf(Please input author:n); scanf(%s,author); for(i=0;in;i+) if(strcmp(author,libi.author)=0) printf(%dtt%stt%st%stt%dn,libi.number,libi.name,libi.author,libi.sort,libi. price); fclose(fp); 6. 删除delete()FILE *fp; int i,j,k; char name20,author30; if(fp=fopen(libr.dat,rb)=NULL) printf(canno

12、t open the file!);exit(0); n=0; while(fread(&libn,sizeof(struct library),1,fp)=1) n+; fclose(fp); if(fp=fopen(libr.dat,wb)=NULL) printf(cannot open the file!);exit(0); printf(Please input will be deleted library information:n); printf(1-name, 2-authorn); printf(Please select 1 or 2n); scanf(%d,&k);

13、if(k=1) printf(Please input name:n); scanf(%s,name); for(i=0;in;i+) if(strcmp(name,libi.name)=0) for(j=i;jn-1;j+) libj=libj+1; if(k=2) printf(Please input author:n); scanf(%s,author); for(i=0;in;i+) if(strcmp(author,libi.author)=0) for(j=i;jn-1;j+) libj=libj+1; for(i=0;in-1;i+) fwrite(&libi,sizeof(s

14、truct library),1,fp);fclose(fp); 7分类分类图书:在管理系统中选择“s or S”,选择1按书名号排序,选择2按分类号排序。sort()FILE *fp; int i, k,j,number; struct library t; if(fp=fopen(libr.dat,rb)=NULL) printf(cannot open the file!);exit(0); n=0; while(fread(&libn,sizeof(struct library),1,fp)=1) n+; fclose(fp); if(fp=fopen(libr.dat,wb)=NUL

15、L) printf(cannot open the file!);exit(0); printf(1-number, 2-sortn); printf(Please select 1 or 2n); scanf(%d,&k); if(k=1) for(i=0;in-1;i+) for(j=0;jlibj+1.number) t=libj;libj=libj+1;libj+1=t; if(k=2) for(i=0;in-1;i+) for(j=0;jn-i-1;j+) if(libj.sortlibj+1.sort) t=libj;libj=libj+1;libj+1=t; for(i=0;in

16、;i+) fwrite(&libi,sizeof(struct library),1,fp); fclose(fp);8. 修改修改图书:在管理系统中选择“m or M”, 选择1输入书名号,开始修改;选择2查看书名,开始修改。modify() FILE *fp; int i,k,dlh; char sm20; if(fp=fopen(libr.dat,rb+)=NULL) printf(cannot open the file!);exit(0); n=0; while(fread(&libn,sizeof(struct library),1,fp)=1) n+; printf(1-numb

17、er, 2-namen); printf(Please select 1 or 2n); scanf(%d,&k); if(k=1) printf(Please input number:n); scanf(%d,&dlh); for(i=0;in;i+) if(dlh=libi.number) printf(Please input new data:n) ; scanf(%d %s %s%s%d,&libi.number,libi.name,libi.author,libi.sort,&libi. price); if(k=2) printf(Please input name:n); s

18、canf(%s,sm); for(i=0;in;i+)if(strcmp(sm,libi.name)=0) printf(Please input new data:n) ; scanf(%d%s%s%s%d,&libi.number,libi.name,libi.author,libi.sort,&libi. price); rewind(fp);for(i=0;in;i+) fwrite(&libi,sizeof(struct library),1,fp);fclose(fp);八、心得设计过程的感受与体会 学了一学期C语言课,感觉到自己掌握的不多。在课程设计中,需要更改一部分系统,刚开始

19、的时候真的头都大了,发现以前自以为懂的,用起来却好象并不是那么一回事,只好一点一点的学习,一遍一遍的复习。 课程设计刚开始的时候,我真的感觉无从下手。因为已经过去一个学期了,期间又没有怎么看书,考完试就放下了,许多知识都已经忘记。 不过因为专业原因,实训只有一周,老师也没有为难我们,发了一个样本,要求我们仿写,通过老师的讲解,发现并不是想象中那么难,20人为一大组,大组分4小组,分工明确,任务变少,换句话说,整个程序是与其他同学共同完成的。 一周时间过的很快,经过这一周的努力,自己对C语言的掌握多多少少比以前好一些,可以运用到实践中,渐渐脱离课本。可是总感觉到不够用,因为在设计过程中遇到很多问题自己都不能独立解决。所以,书还是要看的。遇到的问题与解决方法 在设计过程中,由于对各种概念还不是很熟悉,不能随心运用,翻书是经常的事,最头疼的是对程序的理解。并且,在运行中发现的错误通常不知道出错在哪,细节方面,自己掌握的还不足。 解决方法 有问题,第一时间看书,看不懂的请教同学,但有时候他们跟我说了半天我都还是很茫然,然后看同学的代码,看多了就有点感觉了。我也会上网搜,通常都会有解决的方案,再不行的话就打算问老师,问老师是最后的办法,自己掌握的不够,我怕老师越讲我越愧疚,

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1