




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、C语言课程设计实习报告姓专院汪通辉学号:20161003364电子信息工程班学号:071162机械与电子信息学院指导教师:董理君2016年12月2016.12中国地质大学C语言课稈设计 #2016.12中国地质大学C语言课稈设计 第一章1.1题目描述题目与要求1)制作一个歌曲信息管理系统歌曲信息包括歌曲名,作者,演唱者,发行年月等可以对歌曲信息进行输入,删除,浏览。可以查询根据歌曲名,作者,演唱者歌曲信息。可以提供按作者分组显示功能。用文件存储信息。需求分析1)根据题目要求,数据以文件的形式存储,所以应提供文件的输入,输出等操作;还需要文件具有查找,修改数据,删除等功能。1.2算法设计1.流程
2、图根据上面的需求分析,可以将这个系统的设计分为如下五大模块*(其中“分组显示”功能未在程序中实现)1.3程序设计及代码分析1.定义声明程序:structsongcharname20;charauthor20;charsinger20;/定义结构体chardata20;soN;voidmenu();voidinput(inti);voidsave(intn);voidenter();voidbrowse();voiddelet();/声明调用函数voidsearch();voidback();main函数程序:intmain()system(color74);menu();exit(0);ret
3、urn0;/改变界面颜色2016.12中国地质大学C语言课稈设计 2016.12中国地质大学C语言课稈设计 printf(ttttttprintf(ttttttprintf(ttttttprintf(ttttttprintf(ttttttprintf(nnttttmenu函数程序:voidmenu()intn;system(cls);printf(nnnnnnntttt*歌曲管理系统*nnn);存入歌曲。n);浏览所有曲目。n);删除歌曲。n);分类查询歌曲。n);退出。n);*n);printf(nntttt请输入一个数字(1-5)选择一项功能:);scanf(%d,&n);printf(%
4、d,n);if(n0&n6)switch(n)case1:enter();break;case2:browse();break;case3:delet();break;case4:search();break;case5:exit(0);/选择语句,调用函数elseprintf(aaaa);menu();return;存入功能程序:voidenter()inti,n;system(cls);printf(nnnn你想输入几首歌?nn);scanf(%d,&n);printf(开始输入歌曲!nn);printf(*n);for(i=0;in;i+)/依次输入数据printf(n请输入第小首歌信息
5、n,i+1);input(i);/调用输入函数if(i!=0)/调用储存函数save(n);printf(n存储成功!n);back();return0;2016.12中国地质大学C语言课稈设计 2016.12中国地质大学C语言课稈设计 浏览功能程序:voidbrowse()FILE*fp;inti;if(fp=fopen(song.txt,r)=NULL)printf(无法打开此文件n);exit(0);system(cls);printf(nnn歌曲名作者演唱者发布日期nn);for(i=0;!feof(fp)&iN;i+)/从文件中读并输出到屏幕上直到结尾fscanf(fp,%s%s%s
6、%s,,soi.author,soi.singer,soi.data);printf(%s%s%s%sn,,soi.author,soi.singer,soi.data);fclose(fp);back();return0;删除功能匹配输入字符串并与结构体重写文件将文件中数据读出并输出在频幕上程序:voiddelet()chars20;inti,n,j;FILE*fp;fp=fopen(song.txt,r);if(fp=NULL)printf(无法打开此文件n);exit(0);system(cls);printf(nnnn所有歌曲记录如下:n);for(i=
7、0;!feof(fp);i+)fscanf(fp,%s%s%s%s,,soi.author,soi.singer,soi.data);printf(%s%s%s%sn,,soi.author,soi.singer,soi.data);j=i-1;printf(n请输入你要删除的歌曲名字:n);scanf(%s,s);printf(%sn共有歌曲小首n”,s,j);for(i=0;ij;i+)if(strcmp(s,)=0)n=i;printf(删除第d首”,n+1);fclose(fp);fp=fopen(song.txt,w);for(i=0;
8、ij;i+)if(i!=n)fprintf(fp,%s%s%s%sn,,soi.author,soi.singer,soi.data);fclose(fp);printf(”删除成功!”);back();return;说明因为已将所有的曲目数据输出到屏幕上,所以选择时未加入容错功能。2016.12中国地质大学C语言课稈设计 #2016.12中国地质大学C语言课稈设计 查找功能程序:voidsearch()FILE*fp;intn=100,k;intch;inti;charc20;if(fp=fopen(song.txt,r)=NULL)printf(无法打开此文件”);exit
9、(0);system(cls);for(i=0;!feof(fp)&iN;i+)fscanf(fp,%s%s%s%s,,soi.author,soi.singer,soi.data);/*printf(%s%s%s%sn,,soi.author,soi.singer,soi.data);*/n=i-1;printf(nnnn你想用什么方式查询nn1.歌名2.时间3.歌手n);scanf(%d,&ch);switch(ch)case1:printf(”请输入歌名n);scanf(%s,c);for(i=0;in;i+)if(strcmp(c,)=0
10、)break;break;case2:printf(请输入时间n);scanf(%s,&c);for(i=0;in;i+)if(strcmp(c,soi.data)=0)break;break;case3:printf(”请输入歌手n);scanf(%s,c);for(i=0;in;i+)if(strcmp(c,soi.singer)=0)break;break;k=i;if(k=n)printf(”并没有这首歌n);elseprintf(”这是第d首歌:n,k+1);printf(”歌名作者歌手时间n);printf(%s%s%s%sn,,sok.author,sok.sin
11、ger,sok.data);fclose(fp);back();各种公共函数(1)输入函数程序:voidinput(inti)printf(”歌名:);scanf(%s,);printf(作者:”);scanf(%s,soi.author);printf(”演唱者:); 汪通辉2016.122016.12中国地质大学C语言课稈设计 2016.12中国地质大学C语言课稈设计 scanf(%s,soi.singer);printf(”发行日期:”);scanf(%s,soi.data);(2)储存函数程序:voidsave(intn)FILE*fp;inti;fp=fopen(so
12、ng.txt,w);if(fp=NULL)printf(ERROR:cannotopenthisfilen);return;for(i=0;i0&n6)switch(n)case1:enter();break;case2:browse();break;case3:delet();break;case4:search();break;case5:exit(0);elseprintf(aaaa);menu();关于文件读写由于对文件读写内容的不熟,刚开始不分“r”和“rb”而且弄不清什么时候读,什么时候写;所以在读写文件上老是出错。但后来经老师详细解答和自己看书复习,分清了两者区别,察觉2016.
13、12中国地质大学C语言课稈设计 #2016.12中国地质大学C语言课稈设计 二进制读写目前难以驾驭,所以统统改成了格式化读写。代码:if(fp=fopen(song.txt,r)=NULL)printf(无法打开此文件n);exit(0);/格式化打开文件for(i=0;!feof(fp)&iN;i+)fscanf(fp,%s%s%s%s,,soi.author,soi.singer,soi.data);printf(%s%s%s%sn,,soi.author,soi.singer,soi.data);/从文件中读文件到结构体中关于删除信息的方式一开始想了很多关
14、于删除信息的方法但大多以我目前水平难以实现,后来找到了一个较简洁的方法就是先找到要删除的那首歌,而后除了那首歌外重写如文件内。代码:for(i=0;ij;i+)if(strcmp(s,)=0)n=i;/找到要删除的那首歌for(i=0;ij;i+)if(i!=n)fprintf(fp,%s%s%s%sn,,soi.author,soi.singer,soi.data);/将除了那首歌外的数据重写进文件里查询歌曲的容错性11/n为从文件中读到的歌曲数目代码:for(i=0;in;i+)if(strcmp(c,soi.singer)=0)break;k=iif(k=n)printf(”并没有这首歌n);/n=i表示比较完所有数据也没breakelse/否则输出该首歌printf(”这是第d首歌:n,k+1);printf(”歌名作者歌手时间n);printf(%s%s%s%sn,,sok.author,sok.singer,sok.data);1.7课程设计总结心得这次C语言课程设计给我留下了十分深刻的印象,通过一步步的摸索,更加了解C语言,一点点被C语言的魅力所感染。自己动手起来,发现课本上那些生涩的逻辑和零碎的知识点都在上机过程中变得鲜活而具体,学起来更有趣味,而且记忆更加深刻,也许有些学科就是这样,实践更能够提升,纸上得来终
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 电商内容营销策略升级:2025年种草经济下的品牌形象塑造报告
- 环保产业园区的产业集聚与区域绿色旅游协同发展报告001
- 2025年医院信息化建设:电子病历系统智能药物市场机遇优化报告
- 2025年医院电子病历系统优化与医疗信息化投资分析报告
- 2025年医院电子病历系统优化构建医疗信息化协同发展报告
- 2025年金融科技安全报告:网络安全与数据保护的关键措施001
- 2025年互联网广告精准投放算法效果评测与广告主满意度调查报告
- 2025年医药流通行业供应链整合与成本控制战略规划与优化策略实施案例分析报告解读
- 周瑜人物介绍
- 建筑信息模型(BIM)在全过程建筑工程抗震加固中的应用报告2025
- 《项目管理WBS分解》课件
- 万科物业新员工入职考试卷附答案
- 极化曲线研究论文
- 幼儿园大班班本课程《再见幼儿园》
- 兴趣与能力的培养的课程设计
- 为什么天空是蓝色的
- 集团分权管理手册
- 设计报价单模板
- 自动控制原理:数学模型 PPT
- 星期音乐会智慧树知到课后章节答案2023年下同济大学
- 幼儿园课件小小银行家
评论
0/150
提交评论