C语言课程设计实习报告
专 业:
学 号:
班级序号:
姓 名:
指导教师:
C语言程序设计报告
(实习日期: -8至-9)
一、C语言课程设计的目的:?
高级语言课程设计是学习完《高级语言程序设计》课程后进行的一次全面的综合性上机实验。其目的在于为同学提供了一个既动手又动脑,独立实践的机会,将课本上的理论知识和实际有机的结合起来,锻炼同学的分析解决实际问题的能力。提高学生适应实际,实践编程的能力。
题目:歌曲信息管理系统
需求分析:制作一个歌曲信息管理系统使之有以下功能
1 歌曲信息包括歌曲名,作者,演唱者,发行年月等。
2 可以对歌曲信息进行输入,删除,浏览。
3 可以查询歌曲名,作者,演唱者信息。
4 可以提供按作者显示功能。
5 用文件存储信息。
三、 总体设计
根据分析,整个系统可设计为以下4个模块:
信息输入模块,删除模块,浏览模块。查找模块。
(图 1)
信息输入:依次按顺序结构输入歌曲名,作者,演唱者,发行年月。
(图 2)
信息删除:根据输入的歌曲名,作者,演唱者等一项可以删除对应的其他项
( 图 3)
信息浏览:可以直接浏览歌曲,作者,演唱者,发行年月。
(图4)
信息查找:可以查找歌曲,作者等。并且可以选择查找的方式:按作曲者、按演唱者、按歌曲名字。
(图 5)
退出模块点击直接退出
四 详细设计
1 结构体
#include
#include
#include
#include
int i=0;
struct system
{
char author[20];
char singer[20];
char time[20];
char name[20];
} dan[100];
2 主函数
主函数的设计提供数据输入、数据处理和数据输出以及各种函数的调用。其中各功能模块用菜单方式选择;另外,部分菜单也可以写成函数。
void main()
{
void menu();
void function1();
void function2();
void function3();
void function4();
menu();
return;
}
题目对应具体的程序如下:
main()
{
int a;
while(1)
{
printf("\t\tWelcome to the song'system!------by long\n");
printf("\t\t******************^o^ MENU ^o^*******************\n\n");
printf("\t\t\t(1).Enter\n");
printf("\t\t\t(2).Delete\n");
printf("\t\t\t(3).Browse\n");
printf("\t\t\t(4).Search\n");
printf("\t\t\t(0).exit\n");
printf("\t\t*************************************************\n");
printf("\n\t\t\tPlease choose the number(0-4):");
scanf("%d",&a);
if(a==0) break;
switch(a)
{
case 1:enter();break;
case 2:delete();break;
case 3:browse();break;
case 4:search();break;
}
}
}
主函数的流程图如图6
(图 6)
3 各功能模块设计
(1)输入模块
void enter()
{
int j;
char c[2];
FILE *fp;
if((fp=fopen("data.txt","w"))==NULL)
{
printf("Can not open the file!\n");
exit(0);
}
for(j=0;j
{
fwrite(&dan[