版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
h
面向对象程序
设计
歌曲信息管理系统
一.实验目的:
h
h
1、进一步巩固所学程序设计语言(主要是C、C++)的基本概念和
理论;
2、熟练掌握结构化程序设计和面向对象程序设计的方法和理念;
2、培养实际分析问题、实践动手编程的能力;
3、培养团队协作精沔。
二、实验内容:
本系统是一个歌曲信息管理系统,采用VC++6.0编译器作为开发
环境,这个环境是我们在学习C++的平台。输入数据类型主要是
char、int、float等数据类型,输入内容包括:歌曲编号、歌曲
名称、歌唱者、歌曲风格等数据。用户在歌曲信息数据时要保证
输入数据格式的正确性,系统不会自动检测输入的数据是否正
确。输出形式与输入形式类似,根据需要可以选择显示输入的各
项内容,还可以选择显示计算好平均分后并排序后的记录,显示
内容包括:歌曲编号、歌曲名称、歌唱者、歌曲风格等数据。用
户运行程序后进入系统主界面,在主界面用户可以输入所有歌曲的
数据并保存到文件中,也可以读取文件中已有的学生数据。用户在
保存数据的时候,如果保存位置没有文件则自动新建一个文件进行
保存。本系统同时只能对一个数据文件进行相关操作,不能同时打
h
h
开多个数据文件,其类似于单用户操作系统。当用户读取学生数据
后可对其进行显示,再入,删除,修改等相关操作。用户在操作过
程中可随时对当前文件进行保存到文件操作,以防止修改的数据丢
失。
三、算法描述
1)主函数main():调用增加、删除、修改、查找、显示等函
数对歌曲信息进行处理;
2)增加函数add():输入歌曲信息;
3)修改函数change。:修改指定歌曲信息;
4)查找函数search。:查找指定歌曲信息;
5)删除函数Del():删除指定歌曲信息;
6)显示函数shcw():显示所有歌曲信息;
h
h
四、程序结构
h
h
五、代码
#include<iostream>
#include<fstream>
#include<string>
staticintlength;
usingnamespacestd;
//属性类
classMusic{
publie:
friendclassMusicSystem;
private:
intnum;
stringname,singer,style;
);
//功能类
classMusicSystem{
public;
MusicSystem();
h
h
-MusicSystem(){);
voidadd();
voidchange();
voidsearch();
voiddel();
voidshow();
private:
Musicmusic;
);
MusicSystem::MusicSystem(){};
//输入信息
voidMusicSystem::add()
(
ofstreamoutfile("musicl.txt",ios::out);
if(ioutfile)
(
ceir«"openfileeiior!";exit(1);
h
h
while(1)
(
cout<<"--请输入歌曲信息:--"«endl;
cout«"-请输入歌曲编号:"«endl;
cin»music.num;
if(music.num=O)break;
cout«n-请输入歌曲名称:”《endl;
cin»;
cout«".请输入歌曲演唱者:"ccendl;
cin»music.singer;
cout«"■请输入歌曲风格:”《endl;
cin»music.style;
cout«endl;
outfile«,r"«music.num«"
U«music.name«""«music.singer«"
“«music.style«endl;
length-H-;
h
h
outfile.close();
)
〃修改信息
voidMusicSystem::change()
(
Musicmusic[IOC];
intnewnum;
stringnewname,newsinger,newstyle;
ifstreaminfile("musicl.txt",ios::ini;
if(!infile)
(
cerr«"openfileerror!";exit(l);
)
for(inti=0;i<length;i++)
(
(
infi1e»music[i].num;
infile»music[i].name;
h
h
infile»music[i].singer;
h
h
infile»music[i].style;
)
)
infile.close();
ofstreamoutfile("musicl.txt",ios::out);
if(!outfile)
(
cerr«"openfileerror!";exit(l);
}
while(1)
(
cout<<"--请输入要修改的歌曲编号:”《endl;
cin»ncwnum;
cout«endl;
if(newnum=O)break;
cout«”-请输入修改后的歌曲名称:”《endl;
cin»newnamc;
cout«endl;
h
h
cout«”■请输入修改后的歌曲演唱者:n«endl;
cin»newsinger;
cout«endl;
cout<<"-请输入修改后的歌曲风格:”《endl;
cin»newstyle;
cout«endl;
for(inti=0;i<length;i++)
(
if(music[i].num=newnum)
(
music[i].name=newname;
music[i].singer=newsinger;
music[i].style=newstyle;
)
outfile«""«music[i].num«"
,r«music[i].name«"n«music[i].singer«"
U«inusic[i].style«endl;
)
h
h
outfile.close();
h
h
cout<<“修改完毕!”《endl;
)
)
〃查找信息
voidMusicSystem::search()
{
Musicmusic[IOC];
intch;
ifstreaminfile("musicl.txt",ios::ini;
if(!infile)
(
cerr«"openfileerror!";exit(l);
)
for(inti=0;i<length;i++)
(
infi1e»music[i].nuni»music[i].name»niusic[i].singer»
music[i].style;
h
h
infile.close();
while(1)
(
cout<<"--请输入查找方式:・・”<<endl;
cout«"l.按歌曲编号查找:"ccendl;
cout«”2.按歌曲名称查找:”《endl;
cout«"3.按歌曲演唱者查找:"<<endl;
cout<<"4.返回主菜单:"ccendl;
cout«"0.退出查找:"<<endl;
cin»ch;
if(ch=4)break;
switch(ch)
(
case1:while(1)
(
cout<<"请输入要查找歌曲编号:"<<endl;
cin»music[100].num;
h
h
if(music[100].num=0)break;
h
h
for(inti=0;i<length;i++)
(
if(music[i].num=music[100].num)
(
coul«"查找结果为:"《endl;
cou【<〈”歌曲编号歌曲名称歌曲演
唱者歌曲风格"<<endl;
cout«""«music[i].num«"
"<<music[i].name«""«music[i].singer«"
"«music[i].style«end1;
)
)
cout<<”查找完毕!"<<endl;
Jbreak;
case2:while(1)
(
cout<<”请输入要查找歌曲姓名:"<<cndl;
cin»music[100].name;
h
h
if(music[100].name=nO")break;
for(inti=0;i<length;i++)
(
if(music[i].name=music[100].name)
(
coutxc”查找结果为:"ccendl;
coul<〈”歌曲编号歌曲名称歌曲演
唱者歌曲风格”<念血1;
cout«""«music[i].num«"
"<<miisic[i].name«""«music[i].singer«"
"<<music[i].style«end1;
}
)
cout<<”查找完毕!“<<endl;
}break;
case3:while(1)
(
COUY〈”请输入你要查找的歌曲演唱者:
h
h
H«endl;
h
h
cin»music[100].singer;
for(inti=0;i<length;i++)
(
if(music[i].singer=music[100].singer)
(
coul<<”查找结果为:"ccendl;
coutc〈”歌曲编号歌曲名称歌曲演
唱者歌曲风格”《©血1;
cout«""«music[i].num«"
"«music[i].name«""«music[i].singer«"
U«music[i].style«endl;
)
)
cout«”查找完毕!“<<endl;
Jbreak;
default;
cout<<"输入错误!”<<endl;
h
h
break;
)
)
)
//删除信息
voidMusicSystem::del()
(
intdelnum;
Musicmusic[10C];
ifstreaminfile("musicl.txt",ios::ini;
if(!infile)
(
cerr«"openfileerror!";exit(l);
)
cout«M歌曲编号歌曲名称歌曲演唱者歌曲风格
n«endl;
foi(inti=0;i<length;i++)
h
h
infile»music[i].num»music[i].name»music[i].singer»
music[i].style;
h
h
cout«""«music[i].num«"
"«music[i].name«""«music[i].singer«"
“«music[i].style«endl;
)
infile.close();
ofstreamoutfile("musicl.txt",ios::out);
if(!outfile)
(
cerr«"openfileerror!";exit(1);
)
while(1)
(
cout<〈"请输入你要删除的歌曲编号:"cccndl;
cin»delnum;
if(delnum=O)break;
for(inti=0;i<length;i-H-)
{
if(music[i].num!二delnum)
h
h
outfile«""«music[i].num«"
"«music[i].name«""«music[i].singer«"
“«music[i].style«endl;
)
cout«”删除完毕!”《endl;
length--;
}
outfile.close();
)
〃显示信息
voidMusicSystem::show()
(
ifstreaminfile("musicl.txt",ios::ini;
if(!infile)
(
cerr«"openfileerror!";exit(l);
)
h
h
COUl<〈”歌曲编号歌曲名称歌曲演唱者歌曲风格
H«endl;
for(inti=0;i<length;i++)
(
infi1e»music.num»music.name»music.singer»music.sty
le;
cout«""«music.n
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 光伏组件设备安全培训课件
- 流行病学考试试题及答案
- 口腔助理考试修复题及答案
- 先进自造技术
- 值班安全培训班课件
- 企划专员培训课件
- 法学概论试题库及答案
- 法律常识题库及答案
- 小学五年级语文上册非连续性文本信息提取训练题组课件
- 小学五年级语文上册第一单元万物有灵单元导入课件
- 2025年寻甸县功山镇中心卫生院乡村医生招聘备考题库及答案详解参考
- 采购激光打标机合同范本
- 2025西部机场集团航空物流有限公司招聘笔试备考重点试题及答案解析
- 2025年健康科普大赛试题及答案
- 2025年1月黑龙江省普通高中学业水平合格性考试语文试卷(含答案)
- 卫健系统2025年上半年安全生产工作总结
- 四川省成都市2024-2025学年高一上学期期末教学质量监测生物试卷(含答案)
- 2026届安徽省皖南八校高三第二次大联考化学试卷
- 元旦联欢会:疯狂动物城
- 数据资产管理实践指南8.0
- GB/T 46490-2025生物技术分析方法细胞治疗产品的试验和表征的一般要求和考虑
评论
0/150
提交评论