基于C++的歌曲信息管理系统.docx
《基于C++的歌曲信息管理系统.docx》由会员分享,可在线阅读,更多相关《基于C++的歌曲信息管理系统.docx(15页珍藏版)》请在冰豆网上搜索。
基于C++的歌曲信息管理系统
安阳师范学院课程实践报告
基于C++的歌曲信息管理系统
课程:
面向对象程序设计
学院名称:
物理与电气工程学院
专业名称:
电气工程及其自动化
班级:
11自动化1班
学生姓名:
张***
学号:
*********
一、实践目的
1、进一步巩固所学程序设计语言(主要是C、C++)的基本概念和理论;
2、熟练掌握结构化程序设计和面向对象程序设计的方法和理念;
2、培养实际分析问题、实践动手编程的能力;
3、培养团队协作精神。
二、实践内容
本系统是一个歌曲信息管理系统,采用VC++6.0编译器作为开发环境,这个环境是我们在学习C++的平台。
输入数据类型主要是char、int、float等数据类型,输入内容包括:
歌曲编号、歌曲名称、歌唱者、歌曲风格等数据。
用户在歌曲信息数据时要保证输入数据格式的正确性,系统不会自动检测输入的数据是否正确。
输出形式与输入形式类似,根据需要可以选择显示输入的各项内容,还可以选择显示计算好平均分后并排序后的记录,显示内容包括:
歌曲编号、歌曲名称、歌唱者、歌曲风格等数据。
用户运行程序后进入系统主界面,在主界面用户可以输入所有歌曲的数据并保存到文件中,也可以读取文件中已有的学生数据。
用户在保存数据的时候,如果保存位置没有文件则自动新建一个文件进行保存。
本系统同时只能对一个数据文件进行相关操作,不能同时打开多个数据文件,其类似于单用户操作系统。
当用户读取学生数据后可对其进行显示,插入,删除,修改等相关操作。
用户在操作过程中可随时对当前文件进行保存到文件操作,以防止修改的数据丢失。
三、算法描述
1)主函数main():
调用增加、删除、修改、查找、显示等函数对歌曲信息进行处理;
2)增加函数add():
输入歌曲信息;
3)修改函数change():
修改指定歌曲信息;
4)查找函数search():
查找指定歌曲信息;
5)删除函数Del():
删除指定歌曲信息;
6)显示函数show():
显示所有歌曲信息;
四、程序结构
主菜单
增加歌曲
删除歌曲
修改歌曲
查找歌曲
显示歌曲
输入歌曲编号
输入歌曲名称
输入歌曲歌者
输入歌曲风格
按编号删除
歌曲编号
修改名称
修改歌者
修改风格
号
名
者
格
歌曲编号
歌曲名称
歌曲歌者
歌曲风格
五、程序代码
#include
#include
#include
staticintlength;
usingnamespacestd;
//属性类
classMusic{
public:
friendclassMusicSystem;
private:
intnum;
stringname,singer,style;
};
//功能类
classMusicSystem{
public:
MusicSystem();
~MusicSystem(){};
voidadd();
voidchange();
voidsearch();
voiddel();
voidshow();
private:
Musicmusic;
};
MusicSystem:
:
MusicSystem(){};
//输入信息
voidMusicSystem:
:
add()
{
ofstreamoutfile("music1.txt",ios:
:
out);
if(!
outfile)
{
cerr<<"openfileerror!
";exit
(1);
}
while
(1)
{
cout<<"--请输入歌曲信息:
--"<cout<<"-请输入歌曲编号:
"<cin>>music.num;
if(music.num==0)break;
cout<<"-请输入歌曲名称:
"<cin>>music.name;
cout<<"-请输入歌曲演唱者:
"<cin>>music.singer;
cout<<"-请输入歌曲风格:
"<cin>>music.style;
cout<outfile<<""<length++;
}
outfile.close();
}
//修改信息
voidMusicSystem:
:
change()
{
Musicmusic[100];
intnewnum;
stringnewname,newsinger,newstyle;
ifstreaminfile("music1.txt",ios:
:
in);
if(!
infile)
{
cerr<<"openfileerror!
";exit
(1);
}
for(inti=0;i{
{
infile>>music[i].num;
infile>>music[i].name;
infile>>music[i].singer;
infile>>music[i].style;
}
}
infile.close();
ofstreamoutfile("music1.txt",ios:
:
out);
if(!
outfile)
{
cerr<<"openfileerror!
";exit
(1);
}
while
(1)
{
cout<<"--请输入要修改的歌曲编号:
"<cin>>newnum;
cout<if(newnum==0)break;
cout<<"-请输入修改后的歌曲名称:
"<cin>>newname;
cout<cout<<"-请输入修改后的歌曲演唱者:
"<cin>>newsinger;
cout<cout<<"-请输入修改后的歌曲风格:
"<cin>>newstyle;
cout<for(inti=0;i{
if(music[i].num==newnum)
{
music[i].name=newname;
music[i].singer=newsinger;
music[i].style=newstyle;
}
outfile<<""<}
outfile.close();
cout<<"修改完毕!
"<}
}
//查找信息
voidMusicSystem:
:
search()
{
Musicmusic[100];
intch;
ifstreaminfile("music1.txt",ios:
:
in);
if(!
infile)
{
cerr<<"openfileerror!
";exit
(1);
}
for(inti=0;i{
infile>>music[i].num>>music[i].name>>music[i].singer>>music[i].style;
}
infile.close();
while
(1)
{
cout<<"--请输入查找方式:
--"<cout<<"1.按歌曲编号查找:
"<cout<<"2.按歌曲名称查找:
"<cout<<"3.按歌曲演唱者查找:
"<cout<<"4.返回主菜单:
"<cout<<"0.退出查找:
"<cin>>ch;
if(ch==4)break;
switch(ch)
{
case1:
while
(1)
{
cout<<"请输入要查找歌曲编号:
"<cin>>music[100].num;
if(music[100].num==0)break;
for(inti=0;i{
if(music[i].num==music[100].num)
{
cout<<"查找结果为:
"<cout<<"歌曲编号歌曲名称歌曲演唱者歌曲风格"<cout<<""<}
}
cout<<"查找完毕!
"<}break;
case2:
while
(1)
{
cout<<"请输入要查找歌曲姓名:
"<cin>>music[100].name;
if(music[100].name=="0")break;
for(inti=0;i{
if(music[i].name==music[100].name)
{
cout<<"查找结果为:
"<cout<<"歌曲编号歌曲名称歌曲演唱者歌曲风格"<cout<<""<}
}
cout<<"查找完毕!
"<}break;
case3:
while
(1)
{
cout<<"请输入你要查找的歌曲演唱者:
"<cin>>music[100].singer;
for(inti=0;i{
if(music[i].singer==music[100].singer)
{
cout<<"查找结果为:
"<cout<<"歌曲编号歌曲名称歌曲演唱者歌曲风格"<cout<<""<}
}
cout<<"查找完毕!
"<}break;
default:
cout<<"输入错误!
"<break;
}
}
}
//删除信息
voidMusicSystem:
:
del()
{
intdelnum;
Musicmusic[100];
ifstreaminfile("music1.txt",ios:
:
in);
if(!
infile)
{
cerr<<"openfileerror!
";exit
(1);
}
cout<<"歌曲编号歌曲名称歌曲演唱者歌曲风格"<for(inti=0;i{
infile>>music[i].num>>music[i].name>>music[i].singer>>music[i].style;
cout<<""<}
infile.close();
ofstreamoutfile("music1.txt",ios:
:
out);
if(!
outfile)
{
cerr<<"openfileerror!
";exit
(1);
}
while
(1)
{
cout<<"请输入你要删除的歌曲编号:
"<cin>>delnum;
if(delnum==0)break;
for(inti=0;i{
if(music[i].num!
=delnum)
outfile<<""<}
cout<<"删除完毕!
"<length--;
}
outfile.close();
}
//显示信息
voidMusicSystem:
:
show()
{
ifstreaminfile("music1.txt",ios:
:
in);
if(!
infile)
{
cerr<<"openfileerror!
";exit
(1);
}
cout<<"歌曲编号歌曲名称歌曲演唱者歌曲风格"<for(inti=0;i{
infile>>music.num>>music.name>>music.singer>>music.style;
cout<<""<}
}
//主函数
voidmain()
{
MusicSystema;
intch;
while
(1){
cout<<"----------------欢迎使用歌曲信息管理系统----------------"<cout<<"1.增加歌曲-"<cout<<"2.删除歌曲-"<cout<<"3.修改歌曲信息-"<cout<<"4.查找歌曲-"<cout<<"5.显示歌曲信息-"<cout<<"--请选择:
--"<cin>>ch;
cout<if(ch==0)break;
switch(ch)
{
case1:
a.add();break;
case2:
a.del();break;
case3:
a.change();break;
case4:
a.search();break;
case5:
a.show();break;
default:
break;
}
}
六、运行结果
输入
查找
删除
添加
保存到文件
读取文件
按作者排序
七、总结
通过这次C程序设计,我掌握了模块化设计方法,能够深入的理解结构化程序设计思想,熟练运用结构化程序设计方法,提高了运用C语言进行程序设计的能力。