c语言课程设计ktv点歌系统
- 格式:docx
- 大小:1.82 MB
- 文档页数:13
歌曲管理系统c语言课程设计一、教学目标本课程的学习目标包括知识目标、技能目标和情感态度价值观目标。
知识目标要求学生掌握歌曲管理系统的基本原理和C语言编程;技能目标要求学生能够运用C语言编写简单的歌曲管理程序;情感态度价值观目标要求学生培养对计算机科学和编程的兴趣,提高解决问题的能力。
二、教学内容教学内容主要包括C语言基础知识、歌曲管理系统的设计与实现。
具体安排如下:1.第一部分:C语言基础知识(2课时)介绍C语言的基本语法、数据类型、运算符、控制结构等。
2.第二部分:歌曲管理系统的设计与实现(4课时)介绍歌曲管理系统的基本功能、设计思路和实现方法。
三、教学方法本课程采用讲授法、案例分析法和实验法相结合的教学方法。
1.讲授法:用于讲解C语言的基本语法和概念。
2.案例分析法:通过分析实际案例,让学生掌握歌曲管理系统的设计与实现。
3.实验法:让学生动手编写代码,培养实际编程能力。
四、教学资源教学资源包括教材、参考书、多媒体资料和实验设备。
1.教材:《C程序设计语言》2.参考书:《C语言编程教程》3.多媒体资料:教学PPT、视频教程4.实验设备:计算机、网络环境五、教学评估本课程的评估方式包括平时表现、作业和考试。
平时表现占30%,主要评估学生的课堂参与度和提问回答;作业占30%,主要评估学生的编程能力和对知识的掌握;考试占40%,主要评估学生的综合运用能力。
评估方式客观、公正,全面反映学生的学习成果。
六、教学安排教学进度共安排8课时,每课时45分钟。
第1-2课时进行C语言基础知识讲解,第3-6课时进行歌曲管理系统的设计与实现教学,第7-8课时进行课程总结和复习。
教学地点选在计算机实验室,确保学生能够动手实践。
教学安排合理、紧凑,确保在有限的时间内完成教学任务,同时考虑学生的实际情况和需要。
七、差异化教学根据学生的不同学习风格、兴趣和能力水平,本课程将设计差异化的教学活动和评估方式。
对于学习风格偏向实践的学生,提供更多动手实践的机会;对于学习风格偏向理论的学生,提供更多理论学习的机会。
课程设计报告课程设计题目:歌曲信息管理系统学号:********姓名:***专业:电子商务与软件外包班级:*******指导教师:***2014年01月06日课程设计评分表学生姓名:林禹森班级:学号:课程设计题目:歌曲信息管理系统目录1.需求分析: (4)2.总体设计: (4)3.详细设计: (5)(1)主函数main(): (5)(2)初始化函数 (6)(3)歌曲录入函数 (8)(4)文件输入函数。
(9)(5)信息修改函数。
(10)(6)歌曲删除函数。
(12)(7按歌手查询函数。
(13)(8)按公司查询函数。
(14)(9)歌曲导出或保存函数。
(15)(10)浏览函数。
(16)4.函数功能测试。
(18)初始化函数initialize(): (18)主菜单函数menu_song(): (19)浏览函数output_song(): (19)录入函数input_song(): (20)修改函数revise_song(): (21)删除函数delete_song(): (22)查询函数search_singer():(按歌手查询) (22)查询函数search_corporation():(按公司查询) (23)导入函数load_song(): (24)保存函数save_song(): (24)5.软件使用说明书。
(25)6.总结 (25)歌曲信息管理系统课程设计1.需求分析:根据歌曲信息管理系统的需要,建立一个“歌曲信息管理系统”,以方便对成绩的各项管理操作。
要求完成:i.能对歌曲进行录入和修改;ii.能按唱片公司和歌手统计歌曲信息;iii.能对歌曲进行删除、导入和导出。
2.总体设计:根据以上分析,本系统主要包括:从键盘输入歌曲信息、从指定的文件中读入歌曲信息、按歌手查询(统计)歌曲信息、按公司查询(统计)歌曲信息、删除歌曲信息、将歌曲信息保存到指定文件中等六大功能。
系统定义11个函数以实现各个功能:(1)主函数song_main():定义歌曲结构体数组,输出操作对话菜单,调用录入、导入、查询(统计)、删除、输出等函数对歌曲表进行处理。
目录1 C语言程序设计目的 (1)2题目及需求分析 (1)2.1系统基本功能 (1)2.2具体设计思想 (1)2.3系统的总体流程图 (1)3 .总体设计 (1)3.1主函数设计 (1)3.2各个函数的设计具体设计思想和流程图 (1)4.详细设计 (2)4.1主函数设计 (2)4.2各功能模块设计 (3)4.2.1 输入模块 (3)4.2.2 删除模块 (4)4.2.3 浏览模块 (5)4.2.4 查找模块 (5)4.2.5 公共函数 (7)5 上机操作 (8)6 心得体会 (15)一、C语言课程设计的目的:高级语言课程设计是学习完《高级语言程序设计》课程后进行的一次全面的综合性上机实验。
其目的在于为同学提供了一个既动手又动脑,独立实践的机会,将课本上的理论知识和实际有机的结合起来,锻炼同学的分析解决实际问题的能力。
提高学生适应实际,实践编程的能力。
二、题目:歌曲信息管理系统需求分析:制作一个歌曲信息管理系统使之有以下功能1 歌曲信息包括歌曲名,作者,演唱者,发行年月等。
2 可以对歌曲信息进行输入,删除,浏览。
3 可以查询歌曲名,作者,演唱者信息。
4 可以提供按作者显示功能。
5 用文件存储信息。
三总体设计根据分析,整个系统可设计为以下4个模块:信息输入模块,删除模块,浏览模块。
查找模块。
信息删除:根据输入的歌曲名,作者,演唱者等一项可以删除对应的其他项信息浏览:可以直接浏览歌曲,作者,演唱者,发行年月。
信息查找:可以查找歌曲,作者等。
四详细设计1主函数主函数的设计提供数据输入、数据处理和数据输出以及各种函数的调用。
其中各功能模块用菜单方式选择;另外,部分菜单也可以写成函数。
(流程图如下图1 )[程序]void main(){void menu();void function1();void function2();void function3();void function4();menu();return;}(图 1 )2 各功能模块设计(1)输入模块信息输入时直接按顺序结构(如图2)输入:void input(){ char ch;n=0;if((fp=fopen("song.txt","a"))==NULL){printf("can't open file song.txt");exit(0);}printf("Please input a record:");for(n=0;n<=50;){printf("\nrecord %d:\n歌名:",n+1);gets(song[n].name);printf("\n时间:");gets(song[n].year);printf("\n作者:");gets(song[n].author);printf("\n歌手:");gets(song[n].singer);n++;printf("继续输入吗?(y/n)\n");ch=getchar();getchar();if(ch=='n')break;}fwrite(song,sizeof(song[0]),n,fp);fclose(fp);}( 图2)2删除模块:用户输入要删除的信息,如输入歌曲名,根据歌曲名找到其他记录并删除。
自动化学院C语言课程设计报告课题: KTV点歌系统班级: 自动化1201班小组成员:指导教师:上交日期:二零一三年十一月目录一、概述.................................................错误!未定义书签。
1.设计背景.............................................错误!未定义书签。
2.软件简介.............................................错误!未定义书签。
3.参考文献.............................................错误!未定义书签。
二、需求分析.............................................错误!未定义书签。
1.系统概述.............................................错误!未定义书签。
2.功能需求.............................................错误!未定义书签。
3系统运行环境.........................................错误!未定义书签。
三、功能模块.............................................错误!未定义书签。
1.点歌模块.............................................错误!未定义书签。
2.播放模块.............................................错误!未定义书签。
3.控制模块.............................................错误!未定义书签。
4.管理员模块...........................................错误!未定义书签。
c语言课程设计—ktv点歌系统LT沈阳航空航天大学课程设计任务书学院:自动化学院专业:测控技术与仪器班级:04070101 学号:2010040701020 题目:KTV点歌系统模拟(2)一、课程设计时间2011~2012第1学期第4周,共计1周,20学时。
二、课程设计内容请你模范ktv点歌系统,用C语言编写软件完成以下任务:1.读取功能:从song.txt 文件中读取歌曲的信息;2.查看功能:允许用户浏览所用的歌曲,查看某个歌手演唱的所用歌曲;3.删除功能:删除歌曲。
三、课程设计要求1.程序质量:●贯彻结构化的程序设计思想。
●用户界面友好,功能明确,操作方便。
●用户界面中的菜单至少应包括:“读取”、“查看”、“删除”、“退出”4项。
●代码应适当缩进,并给出必要的注释,以增强程序的可读性。
2.课程设计说明书:课程结束后,上交课程设计说明书和源程序。
课程设计说明书的格式和内容参见提供的模板。
四、指导教师和学生签字指导教师:________ 学生签名:________五、成绩六、教师评语目录一、需求分析 (1)二、设计分析 (2)三、主要界面截图 (6)四、技术要点 (7)五、个人总结 (8)六、参考文献 (9)七、源程序 (9)I一、需求分析根据任务书给定的“课程设计内容”和“课程设计要求”作如下的需求分析。
该系统是一个常用的ktv点歌系统,可以让用户根据自己的喜好进行添加、查看、删除等操作。
系统应该具有便捷、稳定、功能齐全的特点。
1. 便捷性分析系统管理的歌曲涉及到歌曲的各种信息,数据量较大且是一种基础性数据,能够为用户提供许多快捷操作,且操作方便。
2. 稳定性分析该系统比较稳定,也比较人性化,只要是用户的合理操作,系统都应给出合理正确的回应,而不是出现令用户感到意外的系统错误或系统崩溃。
3. 主要功能分析1(1)歌曲的添加:允许用户输入添加歌曲的数量、歌曲名、歌手名、专辑名、歌曲流派。
同时,系统会自动把添加歌曲信息保存下来。
基于CS的KTV点歌管理系统的开发与实现学士学位毕业论文(设计、创作)基于C/S的KTV点歌管理系统的设计与实现所在系别:计算机科学与信息工程专业:网络工程学生姓名:XXX学QQ 号:921980341指导教师:XX职称:教授黑龙江省黑河学院2013年4月30日黑河学院本科生毕业论文(设计)目录摘要 (III)ABSTRACT (IV)第1章绪论 (1)1.1课题背景 (1)1.2前景意义 (1)1.3系统特征 (1)1.4系统开发环境 (2)1.4.1V ISUAL S TUDIO 2005简介 (2)1.4.2 C#语言简介 (2)1.4.3 SQL Server 简介 (2)第2章系统分析 (3)2.1可行性分析 (3)2.2需求分析 (3)第3章概要设计 (6)3.1项目规划 (6)3.2系统功能模块图 (7)第4章系统详细设计 (9)4.1系统主框架布局与实现 (9)4.1.1 歌星点歌子模块 (10)4.1.2 歌手点歌子模块 (11)4.1.3 分类点歌子模块 (12)4.1.4 金曲排行点歌子模块 (13)4.1.5 分类点播模块构建 (15)4.1.6 播放控制模块 (16)4.1.7 后台歌曲添加模块 (18)4.2数据库设计 (18)4.3表结构设计 (18)第5章系统测试 (21)5.1系统测试目的 (21)5.2系统测试方案 (21)5.3系统结果分析与调试 (21)5.4系统测试结果 (22)-I-黑河学院本科生毕业论文(设计)第6章系统总结和展望 (23)6.1总结 (23)6.2展望 (23)参考文献 (24)致谢 (25)-I-黑河学院本科生毕业论文(设计)摘要本论文主要是基于C/S结构的KTV点歌管理系统设计与实现进行全面系统分析和全面总结,系统采用C#作为开发语言,Visual Studio作为开发使用工具,SQL Server 2005作为后台数据库。
系统的设计主要是实现歌星点歌模块、歌名点歌模块、新歌推荐模块、语种点歌模块和后台歌曲的添加,后台歌曲添加是本次开发的重点。
课程设计KTV点歌系统设计一、教学目标本课程旨在让学生了解和掌握KTV点歌系统设计的基本原理和实现方法。
通过本课程的学习,学生应达到以下目标:1.知识目标:–掌握KTV点歌系统的基本组成部分及其功能;–了解KTV点歌系统的实现原理和技术要点;–熟悉常见的KTV点歌系统设计方法和工具。
2.技能目标:–能够运用所学知识,独立完成KTV点歌系统的需求分析;–能够使用相关工具,进行KTV点歌系统的系统设计;–能够编写简单的KTV点歌系统程序,并进行调试。
3.情感态度价值观目标:–培养学生的创新意识和团队协作精神;–培养学生对信息技术行业的兴趣和热情;–培养学生的社会责任感,使其认识到信息技术对社会的影响。
二、教学内容本课程的教学内容主要包括以下几个部分:1.KTV点歌系统的概述:介绍KTV点歌系统的基本概念、功能和应用场景;2.KTV点歌系统的实现原理:讲解KTV点歌系统的技术要点和工作原理;3.KTV点歌系统的设计方法:介绍常见的KTV点歌系统设计方法和工具;4.KTV点歌系统的编程实践:通过实例引导学生动手编写KTV点歌系统程序,并进行调试。
三、教学方法为了提高教学效果,本课程将采用多种教学方法相结合的方式进行教学:1.讲授法:用于讲解KTV点歌系统的理论知识;2.案例分析法:通过分析实际案例,让学生了解KTV点歌系统的应用场景和设计方法;3.实验法:让学生动手实践,编写和调试KTV点歌系统程序;4.讨论法:鼓励学生积极参与课堂讨论,培养学生的创新意识和团队协作精神。
四、教学资源为了支持本课程的教学,我们将准备以下教学资源:1.教材:选用国内外优秀的KTV点歌系统设计教材,为学生提供系统的理论知识;2.参考书:提供相关的参考书籍,丰富学生的知识体系;3.多媒体资料:制作精美的PPT课件,辅助讲解和展示KTV点歌系统的相关内容;4.实验设备:为学生提供必要的实验设备,如计算机、编程软件等,以便进行实践操作。
沈阳工程学院信息学院C语言程序设计实践课程设计设计题目:卡拉ok点歌系统系别班级学生姓名学号指导教师职称副教授/讲师起止日期: 2016年12月16日起——至 2017年01月06日止C语言程序设计实践课程设计成绩评定表系(部):班级:学生姓名:指导教师评审意见评价内容具体要求权重评分加权分调研论证能独立查阅文献,收集资料;能制定课程设计方案和日程安排。
0.1 5 4 3 2工作能力态度工作态度认真,遵守纪律,出勤情况是否良好,能够独立完成设计工作,0.2 5 4 3 2工作量按期圆满完成规定的设计任务,工作量饱满,难度适宜。
0.2 5 4 3 2说明书的质量说明书立论正确,论述充分,结论严谨合理,文字通顺,技术用语准确,符号统一,编号齐全,图表完备,书写工整规范。
0.5 5 4 3 2 指导教师评审成绩(加权分合计乘以8)分加权分合计指导教师签名:年月日评阅教师评审意见评价内容具体要求权重评分加权分查阅文献查阅文献有一定广泛性;有综合归纳资料的能力0.2 5 4 3 2工作量工作量饱满,难度适中。
0.5 5 4 3 2说明书的质量说明书立论正确,论述充分,结论严谨合理,文字通顺,技术用语准确,符号统一,编号齐全,图表完备,书写工整规范。
0.3 5 4 3 2 评阅教师评审成绩(加权分合计乘以4)分加权分合计评阅教师签名:年月日答辩小组评审意见评价内容具体要求权重评分加权分学生汇报汇报准备充分,思路清晰;语言表达准确,概念清楚,论点正确,有层次,有重点,基本上反映了所完成任务的全部内容;时间符合要求。
0.5 5 4 3 2答辩思路清晰;回答问题有理论依据,基本概念清楚;主要问题回答准确,深入,有说服力。
0.5 5 4 3 2 答辩小组评审成绩(加权分合计乘以8)分加权分合计答辩小组教师签名:年月日课程设计总评成绩分C语言程序设计实践课程设计成绩评定表系(部):班级:学生姓名:指导教师评审意见评价内容具体要求权重评分加权分调研论证能独立查阅文献,收集资料;能制定课程设计方案和日程安排。
歌曲管理系统c语言课程设计一、课程目标知识目标:1. 理解C语言在开发歌曲管理系统中的应用,掌握基本的程序结构和编程语法。
2. 学习并运用数组、结构体、文件操作等C语言知识模块,实现对歌曲信息的管理。
3. 掌握模块化编程思想,将歌曲管理系统拆分为多个功能模块,并实现各模块间的协同工作。
技能目标:1. 能够运用C语言编写程序,创建并管理一个歌曲管理系统。
2. 学会使用C语言进行数据存储和读取,实现对歌曲信息的增加、删除、修改和查询功能。
3. 通过课程设计,提高编程实践能力,培养解决实际问题的编程思维。
情感态度价值观目标:1. 培养学生对C语言的兴趣和热情,激发学习积极性,树立编程自信心。
2. 培养学生的团队协作精神,学会与他人共同解决问题,提高沟通与协作能力。
3. 通过课程设计,使学生认识到编程在现实生活中的应用价值,激发他们将所学知识应用于解决实际问题的意识。
本课程针对高年级学生,课程性质为理论与实践相结合。
在分析课程性质、学生特点和教学要求的基础上,将课程目标分解为具体的学习成果,以便后续的教学设计和评估。
通过本课程的学习,使学生能够掌握C语言编程技能,提高解决实际问题的能力,并培养良好的团队协作和沟通能力。
二、教学内容1. C语言基础知识复习:数据类型、运算符、控制结构、函数等。
2. 数组与字符串操作:一维数组、二维数组、字符串处理,为歌曲信息存储打下基础。
3. 结构体与文件操作:结构体定义、结构体数组、结构体与文件读写,用于歌曲信息的管理。
4. 模块化编程:函数的定义与调用、模块划分、模块间数据传递,实现系统功能分解。
5. 歌曲管理系统功能实现:歌曲的增加、删除、修改、查询等操作。
6. 项目实践:以小组为单位,设计并实现一个完整的歌曲管理系统。
教学内容依据课程目标,结合教材相关章节进行选择和组织。
教学大纲安排如下:第一周:C语言基础知识复习;第二周:数组与字符串操作;第三周:结构体与文件操作;第四周:模块化编程;第五周:歌曲管理系统功能设计与实现;第六周:项目实践与展示。
c语言课程设计k t v点歌系统This manuscript was revised by the office on December 22, 2012沈阳航空航天大学课程设计任务书学院:自动化学院专业:测控技术与仪器班级:04070101KTV点歌系统模拟(2)一、课程设计时间2011~2012第1学期第4周,共计1周,20学时。
二、课程设计内容请你模范ktv点歌系统,用C语言编写软件完成以下任务:1.读取功能:从song.txt 文件中读取歌曲的信息;2.查看功能:允许用户浏览所用的歌曲,查看某个歌手演唱的所用歌曲;3.删除功能:删除歌曲。
三、课程设计要求1.程序质量:贯彻结构化的程序设计思想。
用户界面友好,功能明确,操作方便。
用户界面中的菜单至少应包括:“读取”、“查看”、“删除”、“退出”4项。
代码应适当缩进,并给出必要的注释,以增强程序的可读性。
2.课程设计说明书:课程结束后,上交课程设计说明书和源程序。
课程设计说明书的格式和内容参见提供的模板。
四、指导教师和学生签字指导教师:________ 学生签名:________五、成绩六、教师评语目录一、需求分析根据任务书给定的“课程设计内容”和“课程设计要求”作如下的需求分析。
该系统是一个常用的ktv点歌系统,可以让用户根据自己的喜好进行添加、查看、删除等操作。
系统应该具有便捷、稳定、功能齐全的特点。
1. 便捷性分析系统管理的歌曲涉及到歌曲的各种信息,数据量较大且是一种基础性数据,能够为用户提供许多快捷操作,且操作方便。
2. 稳定性分析该系统比较稳定,也比较人性化,只要是用户的合理操作,系统都应给出合理正确的回应,而不是出现令用户感到意外的系统错误或系统崩溃。
3. 主要功能分析(1)歌曲的添加:允许用户输入添加歌曲的数量、歌曲名、歌手名、专辑名、歌曲流派。
同时,系统会自动把添加歌曲信息保存下来。
用户由于疏忽录入的非法数据,能够及时提示并更正。
(2)歌曲的查看:用户可以根据自己的需求,输入歌曲名、歌手名、专辑名、歌曲流派中的一项或几项其查看自己想要的歌曲。
(3)歌曲的删除:用户在查看歌曲之后,可以根据自己的喜好,删除系统原有的歌曲。
用户只需输入歌曲名就可以删除歌曲。
删除之后系统自动更新歌曲库。
二、设计分析主要有5个功能模块,每个模块对应一个C语言自定义函数。
这些函数原型及其功能简述如下:1、程序总体结构图图1程序总体结构图2、主要功能模块框图(1)读取歌曲函数choice图2读取流程图(2)添加歌曲函数add图3 添加流程图(3)删除歌曲函数dele图4删除流程图三、主要界面截图图1 程序主界面图2 数据修改界面四、技术要点1、结构体的应用用结构体来定义描述歌曲编号、歌曲名、歌手名、专辑名、歌曲流派。
具体的定义如下:struct song_info{int songnum;char songname[15];char songername[15];char ablumname[15];char type[10];}; 所定义的结构体主要用于定义数组。
2、文件操作包括了文件的写入和读取两个方面。
文件的写入操作,用于保存录入的歌曲的有关数据,也用于保存所修改的数据。
3、多分支选择结构在主函数中使用switch语句,利用自定义函数,实现查看、添加、删除歌曲的功能。
五、个人总结刚开始做的时候,我基本上摸不找头脑,不知道从何处下手。
后来,我通过查资料和请教老师,慢慢地学会许多,开始自己做。
虽然这期间,我遇到了很多很多的困难,但我收获很多。
这次课程设计使我对C语言有了更深的理解,使我知道原来日常生活中的许多系统都是以C语言为基础的,C语言在生产生活应用十分广泛。
同时他也锻炼我的逻辑思维能力,提高我解决实际问题的能力。
六、参考文献1 谭浩强.C程序设计.北京:清华大学出版社,2005七、源程序#include<stdio.h>#include<stdlib.h>#include<conio.h>#include<string.h>#define N 30int i,j,k;FILE *fp;struct song_info{int songnum;char songname[15];char songername[15];char ablumname[15];char type[10];};typedef struct song_info SINFO;SINFO *pso;void choice(SINFO *pso){char a[15];int q,t;FILE *fp;printf("请输入要查看歌手的名字:");scanf("%s",a);fp=fopen("d:\\song.txt","rt");if(fp==NULL){printf("the file :song.txt not found!");exit(-1);}for(k=0;(!feof(fp));k++)fread(&pso[k],sizeof(SINFO),1,fp);fclose(fp);t=0;for(q=0;q<k;q++){if(!strcmp(a,pso[q].songername)){if(t==0)printf("该歌手有以下歌曲:\n");t++;printf("%s\n",pso[q].songname);}}if(t==0)printf("本系统还无该歌手歌曲,请增添!\n");fclose(fp);}void add(SINFO *pso){FILE *fp;fp=fopen("d:\\song.txt","a+");printf("请你输入要增添歌曲的数量:");scanf("%d",&j);fflush(stdin);for(i=0;i<j;i++){printf("这是要增添的第%d首歌的信息:\n",i+1);printf("歌曲编号是:");scanf("%d",&pso[i].songnum);fflush(stdin);printf("歌曲名字是:");gets(pso[i].songname);fflush(stdin);printf("歌手名字是:");gets(pso[i].songername);fflush(stdin);printf("专辑的名字是:");gets(pso[i].ablumname);fflush(stdin);printf("歌曲流派是:");gets(pso[i].type);fflush(stdin);system("cls");fwrite(&pso[i],sizeof(SINFO),1,fp);}fclose(fp);printf("歌曲增添成功!\n");}void show(SINFO *pso){FILE *fp;fp=fopen("d:\\song.txt","rt");if(fp==NULL){printf("the file :song.txt not found!");exit(-1);}printf("所有歌曲信息如下:\n");for(k=0;!feof(fp);k++){fread(&pso[k],sizeof(SINFO),1,fp);}fclose(fp);printf("%s%15s%20s%15s%15s","歌曲编号","歌名","歌手","专辑","歌曲流派");printf("\n");for(i=0;i<k-1;i++){printf("%03d%20s%20s%15s%15s",pso[i].songnum,pso[i ].songname,pso[i].songername,pso[i].ablumname,pso[i].typ e);printf("\n");}}void dele(SINFO *pso){char a[15];int q;FILE *fp;printf("请输入要删除歌曲的名字:");scanf("%s",a);fp=fopen("d:\\song.txt","rt");if(fp==NULL){printf("the file :song.txt not found!");exit(-1);}for(k=0;(!feof(fp));k++)fread(&pso[k],sizeof(SINFO),1,fp);fclose(fp);for(q=0;q<k;q++)if(!strcmp(a,pso[q].songname))memset(&pso[q],0,sizeof(SINFO));fp=fopen("d:\\song.txt","w+");for(k=0;k<q;k++)fwrite(&pso[k],sizeof(SINFO),1,fp);fclose(fp);printf("删除信息成功!\n");}void out(){char a;printf("确认退出系统(y/n)");scanf("%c",&a);if('y'==a)exit(0);}main(){SINFO *pso;loop: printf(" 欢迎使用KTV选歌系统 \n");printf(" 1.选歌\n");printf(" 2.新增歌曲\n");printf(" 3.查看歌曲信息\n");printf(" 4.删除歌曲\n");printf(" 5.退出\n");printf("请选择功能: ");scanf("%d",&i);fflush(stdin);pso=(SINFO*)malloc(N*sizeof(SINFO));memset(pso,0,(N*sizeof(SINFO)));system("cls");switch(i){case 1:choice(pso);goto loop;break;case 2:add(pso);goto loop;break;case 3:show(pso);goto loop;break;case 4:dele(pso);goto loop;break;case 5:out();goto loop;break;default:printf("输入错误!请重新选择!\n");goto loop;}}。