C 语 言 课 程 设 计 学 号 : *********** 班 级 序 号 : 5507133 * 名 : *** 指 导 教 师 : *** 成 绩 : 实习日期: 2008-12 至2009-1 C 语言程序设计报告 一、 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...