版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、C语言程序设计实训报告课题名称: 图书馆管理系统 专 业: 通信技术 班 级: 10331 学 号: 41 姓 名: 黎清斌 指导教师: 黄 雄 波 2011 年 7 月 1 日目录1 课程设计目的 12 课程设计题目 13 算法原理的分析与实现 14 结束语 115 参考书目 116 附录:(源程序清单) 121 课程设计目的参加实训的学生,应当认真完成实训的全部内容。最终提交实训成果来证明其独立完成各种实际任务的能力。从而反映出理解和运用本课程知识的水平和能力。具体如下:1、代码编写规范,形成良好的编程习惯;2、程序须有一定的健壮性和必要的提示信息,考虑问题的多种可能和边界数据。3、提交实
2、训报告电子稿、装订的打印稿。实训报告内容包括以下几个方面:l 程序的总体设计和算法分析。l 程序流程图、函数说明l 源程序代码清单l 测试数据和测试过程记录l 遇到的问题及解决方法分析l 实训小结2 课程设计题目在老师下发的通讯管理系统的基础上,编写图书管理系统;基本功能包括:数据的增加、删除、修改及查询。3 算法原理的分析与实现(1).插入增加算法 算法的描述:在指定的位置中插入一个新的书号,使此位置中的书及以后的书从最后一位开始,往后退一位(如表1,表2所示);表1书号书名作者出版社出版日期地址定价123表2书号书名作者出版社出版日期地址定价1423实现原理 1 2 3 1 new2 ol
3、d2 old3开 开始,); perjzuozhe,perj-1.zuozhe) perj.adds,perj-1.adds)perj.date,perj-1.date perj.adds,perj-1.adds) perj.date,perj-1.date)请输入您要新数据的位置position-1=nn-p+1j=j-1=j-1结束NY(2)上下限选择算法的描述:在指定区域内选出符合要求的书(如表1,表2所示)如表1书号书名作者出版社出版日期地址定价142232322452512635如表2(定价:2040)书号书名作者出版社出版日期地址定价2204
4、032322635实现原理351232522242 20 40请输入想查询的定价下限开始请输入想查询的定价上限 NOdj=jgxx&dj=jgsxtempj.score=peri.score; ,; tempj.chubanshe,peri.chubanshe; tempj.zuozhe,peri.zuozhe; tempj.date,peri.date; strcpy(tempj.adds,peri.addsj=j+1i=i+1dj=peri Yes结束4.结束语通过将近一个星期的程序调试修改,图书信息管理系统课程程序实验最终完成,我的程序具备了题目所要
5、求的所有功能,各模块之间的衔接也十分的好。并且程序设计实验按时完成了任务。在这一次的课程中我更深的了解了面向对象程序设计的概念,进一步丰富了自己的编程技巧,并在课程设计的实践中学习了更多的实验和理论知识,积累了些许的实战经验,为以后更好的编程奠定良好的基础。此外,在课程设计中遇到的c/c+的一些问题,我们学会了怎样独立自主和自学精神解决问题,这使得我进一步巩固了以前的知识以及c/c+语言的实用性有新的认识的同时还学会、领悟了学习中的遇到问题的解决办法。5.参考书目谭浩强著 C程序设计(第三版) 清华大学出版社夏耘 吉顺如主编 大学程序设计(C)实践手册 复旦大学出版社6 附录:源程序清单#in
6、clude #include#include typedef struct char score; /*书号*/ char name10; /*书名*/ char zuozhe15; /*作者*/ char chubanshe20; /*出版社*/ char date8; /*出版日期*/ char adds20; /*地址*/ float dj; /*定价*/ Person; Person pe80; int menu_select() char c; do system(cls); printf(tt *图书馆* n); printf(ttn); printf(tt 1. 添加记录 n);
7、 printf(tt 2. 显示记录 n); printf(tt 3. 删除记录 n); printf(tt 4. 查询记录 n); printf(tt 5. 修改记录 n); printf(tt 6. 保存记录 n); printf(tt 0. 退出程序 n); printf(ttn); printf(tt请您选择(0-6):); c=getchar(); while(c6); return(c-0); int Input(Person per,int n) int i=0; int j; int position=0; char sign; while(sign!=n&sign!=N) /
8、 printf(t现在共有%d条数据;请输入您要新数据的位置:,n); / scanf(t%d,&position); printf(t请输入您要新数据的位置:); scanf(t%d,&position); / if(position-1)=n) / / printf(t新数据的位置无效:,n); / / else / for(j=n;j=position;j-) strcpy(perj.chubanshe,perj-1.chubanshe); strcpy(,); strcpy(perj.zuozhe,perj-1.zuozhe); strcpy(p
9、erj.adds,perj-1.adds); strcpy(perj.date,perj-1.date); perj.score=perj-1.score; perj.dj=perj-1.dj; printf(t书号:); scanf(t%d,&perposition-1.score); printf(t书名:); scanf(t%s,); printf(t作者:); scanf(t%s,perposition-1.zuozhe); printf(t出版社:); scanf(t%s,perposition-1.chubanshe); printf(t通讯住址
10、:); scanf(t%s,perposition-1.adds); printf(t出版日期:); scanf(t%s,perposition-1.date); printf(t定价:); scanf(t%f,&perposition-1.dj); / printf(nt是否继续添加?(Y/N); scanf(t%c,&sign); i+; return(n+i); void Display(Person per,int n) Person temp; int p,q,k; int i; printf(-n); /*格式*/ printf(书号 书名 作者 出版社 通讯地址 出版日期 定价n
11、); printf(-n); for(p=0;pn-1;p+) k=p; for(q=p+1;qn;q+) if (perk.djperq.dj) k=q; if(k!=p) temp.score=perp.score; strcpy(,); strcpy(temp.chubanshe,perp.chubanshe); strcpy(temp.zuozhe,perp.zuozhe); strcpy(temp.date,perp.date); strcpy(temp.adds,perp.adds); temp.dj=perp.dj; perp.score=pe
12、rk.score; strcpy(,); strcpy(perp.chubanshe,perk.chubanshe); strcpy(perp.zuozhe,perk.zuozhe); strcpy(perp.date,perk.date); strcpy(perp.adds,perk.adds); perp.dj=perk.dj; perk.score=temp.score; strcpy(,); strcpy(perk.chubanshe,temp.chubanshe); strcpy(perk.zuozhe,temp
13、.zuozhe); strcpy(perk.date,temp.date); strcpy(perk.adds,temp.adds); perk.dj=temp.dj; for(i=1;i1&i%10=0) printf(t-n); printf(t); system(pause); printf(t-n); printf(-n); system(pause); int Delete_a_record(Person per,int n) char s20; int i=0,j; printf(t请输入想删除记录中的书名:); scanf(%s,s); while(strcmp(peri.nam
14、e,s)!=0&in) i+; if(i=n) printf(t图书馆中没有此书!n); return(n); for(j=i;jn-1;j+) strcpy(perj.chubanshe,perj+1.chubanshe); strcpy(,perj+1.name); strcpy(perj.zuozhe,perj+1.zuozhe); strcpy(perj.adds,perj+1.adds); strcpy(perj.date,perj+1.date); perj.score=perj+1.score; printf(ttt已经成功删除!n); return(n-1);
15、 void Query_a_record(Person per,int n) int m; printf(tn请选择查询方式:n); printf(tn); printf(t1-书名 n); printf(t2-出版社 n); printf(t3-地址 n); printf(t4-定价 n); printf(t5-返回 n); printf(tn); printf(请选择:); scanf(%d,&m); while(m!=1&m!=2&m!=3&m!=4&m!=5) printf(输入错误,请重新选择:); scanf(%d,&m); if(m=1) char s20; int i=0; p
16、rintf(t请输入想查询的书名:); scanf(t%s,s); while(strcmp(,s)!=0&in) i+; if(i=n) printf(t图书馆中没有此书!n); return; printf(t此人书号: %dn,peri.score); printf(t此人作者: %sn,peri.zuozhe); printf(t出版社: %sn,peri.chubanshe); printf(t通讯地址: %sn,peri.adds); printf(t出版日期: %sn,peri.date); ; if(m=2) char s20; int i=0; printf
17、(t请输入想查询的出版社:); scanf(t%s,s); while(strcmp(peri.chubanshe,s)!=0&in) i+; if(i=n) printf(t图书馆中没有此书!n); return; printf(t此人书号: %dn,peri.score); printf(t此人书名: %sn,); printf(t此人作者: %sn,peri.zuozhe); printf(t通讯地址: %sn,peri.adds); printf(t出版日期: %sn,peri.date); ; if(m=3) char s20; int i=0; printf(t请
18、输入想查询的地址:); scanf(t%s,s); while(strcmp(peri.adds,s)!=0&in) i+; if(i=n) printf(t图书馆中没有此书!n); return; printf(t此人书号: %dn,peri.score); printf(t此人书名: %sn,); printf(t此人作者: %sn,peri.zuozhe); printf(t出版社: %sn,peri.chubanshe); printf(t出版日期: %sn,peri.date); ; if(m=4) Person temp80; float jgxx,jgsx; i
19、nt i=0; int j=0; printf(t请输入想查询的定价下限:); scanf(t%f,&jgxx); printf(t请输入想查询的定价上限:); scanf(t%f,&jgsx); for(i=0;i=jgxx&peri.dj0) Display(temp,j); else printf(t该价格范围内没有找到相应的书!n); ; void Change(Person per,int n) char s20; int i=0; printf(t请输入想修改的记录中的名字:); scanf(%s,s); while(strcmp(,s)!=0&in) i+; i
20、f(i=n) printf(t图书馆中没有此书!n); return; printf(t书号:); scanf(t%d,&peri.score); printf(t书名:); scanf(t%s,); printf(t作者:); scanf(t%s,peri.zuozhe); printf(t出版社:); scanf(t%s,peri.chubanshe); printf(t通讯住址:); scanf(t%s,peri.adds); printf(t出版日期:); scanf(t%s,peri.date); printf(t修改成功!);void WritetoText(Pe
21、rson per,int n) int i=0; FILE *fp; /*定义文件指针*/ char filename20; /*定义文件名*/ printf(t保存到文件n); /*输入文件名*/ printf(t请输入所保存的文件名:); scanf(t%s,filename); if(fp=fopen(filename,w)=NULL) printf(t无法打开文件n); system(pause); return; fprintf(fp,*图书馆*n); fprintf(fp,书号 书名 作者 出版社 通讯地址 出版日期n); fprintf(fp,-n); while(in) fprintf(fp,%-3dt%-6st%-3st%-13st%-20st%-20s
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 零售业供应链管理经理面试须知
- 零售业质量经理岗位面试问题及解答指南
- 链家房产顾问岗位面试要点解读
- 旅游行业导游面试常见问题与回答
- 零售业销售总监的管理经验与面试攻略
- 旅游景区经理面试要点
- 快递物流业供应链管理专家面试技巧
- 旅游网站运维工程师面试全攻略
- 2026云南曲靖市宣威市虹桥街道社区卫生服务中心、宣威市龙场镇卫生院、宣威市热水镇中心卫生院、宣威市羊场镇中心卫生院招聘8人备考题库附答案详解(培优a卷)
- 2026浙江招聘衢州市乡村振兴发展有限公司劳务外包工作人员6人备考题库一套附答案详解
- 2024年高等教育文学类自考-06216中外建筑史考试近5年真题集锦(频考类试题)带答案
- 《AutoCAD 2023基础与应用》 课件全套 劳动 项目1-8 AutoCAD 2023 入门、绘制简单平面图形-综合实训
- 教师读书分享《做温暖的教育者》
- QCT1177-2022汽车空调用冷凝器
- 2.1科学探究感应电流的方向课件-高二物理(2019选择性)
- 2024陆上风电场安全生产标准化实施规范
- 基于PLC的混凝土搅拌站控制系统设计
- 药品经营和使用质量监督管理办法培训
- 2024年福建厦门航空招聘笔试参考题库附带答案详解
- 《仪表飞行课程》课件
- 角度测量-水平角测量误差与注意事项(水利水电工程测量课件)
评论
0/150
提交评论