足球明星管理系统c++ 面向对象技术.docx

上传人:b****4 文档编号:11718083 上传时间:2023-03-31 格式:DOCX 页数:29 大小:159.39KB
下载 相关 举报
足球明星管理系统c++ 面向对象技术.docx_第1页
第1页 / 共29页
足球明星管理系统c++ 面向对象技术.docx_第2页
第2页 / 共29页
足球明星管理系统c++ 面向对象技术.docx_第3页
第3页 / 共29页
足球明星管理系统c++ 面向对象技术.docx_第4页
第4页 / 共29页
足球明星管理系统c++ 面向对象技术.docx_第5页
第5页 / 共29页
点击查看更多>>
下载资源
资源描述

足球明星管理系统c++ 面向对象技术.docx

《足球明星管理系统c++ 面向对象技术.docx》由会员分享,可在线阅读,更多相关《足球明星管理系统c++ 面向对象技术.docx(29页珍藏版)》请在冰豆网上搜索。

足球明星管理系统c++ 面向对象技术.docx

足球明星管理系统c++面向对象技术

C++程序设计课程设计说明

指导教师:

设计者:

专业班级:

设计时间:

《C++程序设计》课程设计任务书

专业班级:

设计题目:

足球明星管理系统

一、已知技术参数或设计前提

1、每个球员信息包含姓名、身价、所在俱乐部、球衣号号码和在球场上的位置。

2、每个球员的信息可以随时修改。

二、设计内容及要求

1、实现球员信息的数据录入。

2、能够对球员的信息进行保护,对球员的信息进行输入和修改的时候必须输入密码才能进行。

3、能够根据球员的姓名,实现该成员信息的修改。

4、实现按球员姓名、球衣号和身价查询现有球员的个人信息。

5、实现按球员姓名删除指定的球员信息。

6、能够以列表方式输出所有球员信息。

7、用类实现以上功能。

8、通过文件存储球员信息。

三、课程设计工作计划

1、了解课程设计大纲的要求,确定题目,成立设计小组。

(9月11-20日)

2、上网查阅资料,确定程序所包含的内容,进行问题分析,制定方案。

(9月20-28日)

3、确定成员分工,根据方案编写程序并进行调试(10月15-26日)

4、撰写设计说明书,完成设计(10月26-10月29日)

5、对说明书及程序中存在的不足进行修改。

(10月29日-11月2日)

6、提交设计内容,答辩(11月2日)

四、相关教材及参考书目

[1]D.S.Malik著.C++基础教程——从问题分析到程序设计(第二版).清华大学出版社,2006

[2]刘娜娜等著.C++程序设计.北京航空航天大学出版社,2009

指导教师签字:

系主任签字:

年月日

足球明星管理系统

一、需求分析

以前,各个球员的资料基本上都是靠手工做表进来管理球员资料。

随着足球的发展,越来越多的国家重视起足球这项体育运动,越来越多的俱乐部产生,也就给球员管理带来了很多麻烦,有关球员资料管理工作所涉及的数据量越来越大。

有的俱乐部或者国家队不得不靠增加人力、物力来进行球员资料管理。

但手工管理具有效率底、出错率高。

所以我想借本次毕业设计之际,开发一个适用于俱乐部或者国家队的球员资料管理系统。

建立球员资料管理系统,采用计算机对球员资料进行管理,进一步提高管理水平和现代化的模式。

帮助广大教练员和相关工作人员提高工作率,实现球员资料信息管理工作流程的系统化、规范化和自动化。

二、系统的软硬件环境

1、硬件环境内存:

1GB硬盘:

80GB。

2、软件环境:

(1)WINDOWSxp操作系统

(2)visaulC++6.0版本。

三、系统模块功能

该程序共由七个模块构成,分别是:

输入模块,输出模块,查找模块,删除模块,显示模块,系统维护模块,系统功能模块框架图如图1所示

 

 

1、输入模块:

该模块用于接收管理输入的明星信息。

2、输出模块:

该模块用于输出管理员输入的明星息。

3、查找模块:

按照姓名和身价查询管理员输入的球员信息。

4、删除模块:

按照管理员输入的姓名进行查找相对应的明星信息,如果找到便显示该生信息并询问是否删除该信息,如果选择“是”就彻底删除该生信息;否则显示“未删除”,如果查找不到显示“未找到”。

5、显示模块:

根据姓名显示单个明星的所有信息。

6、系统维护模块:

修改密码。

四、程序设计分析

1、类结构

(1)球员类ball

1)据成员:

姓名name、球衣号码number、球场上的位置duty、俱乐部address、身价shenjia、密码key。

2)函数:

构造函数ball()(初始化数据成员为0)

首页charinter_face()(设定面向用户的界面,返回一个char值以调用所要的功能函数)

添加球员信息voidaddfootballstar()(添加一个球员的信息,并调用saveall()把信息存到文件)

删除voiddelfootballstar()(创建两个流利用文件间的读取与读入实现删除)

修改voidchange()(先把要改的信息删除再调用saveall()把新信息保存)

显示voidshow_all()(显示全部读者信息)

查询voidselect()(按姓名查询文件里球员的信息)

按身价查询voidsele()(查询大于用户输入的身价的球员信息)

保存voidsaveall()(把修改、新添加的信息写入文件并保存)

系统维护voidyourkey()(利用clear清除文件原来的密码再重设新密码)

验证voidthekey()(用if(youkey!

=key)判断是否输入正确密码)

2、模块设计分析

(1)主函数

1)先用system()清屏,并定义对象abj。

2)使用system("color04f")设定了控制台的颜色。

3)switch(choose=abj.inter_face())调用inter_face()输出主界面运用charinter_face()的返回值以调用各功能函数(例如,当choose=ADD时调用添加球员函数voidaddfootballstar())。

(2)删除模块

1)定义一个文件输入流对象ifp2,并以输入方式打开文件;定义一个文件输出流对象ofp,并以输出方式打开文件。

2)定义一个bool类型把其初始为true;用while(ifp2>>name>>number)和getline(ifp2,str)循环从文本中一行一行读取;用if(sign==name)判断你输入要删除的球员的姓名是否等于从文件中读取的姓名name;不相等是把从文件star2所读取一行的信息输入到文件star.txr里;相等的话把要删除球员的信息显示出来,运用if(d==1)当你确定要删除时输入“1”,把标志flag的值改为FALSE以在下面判断是否删除成功,并用break退出循环同时停止把要删除的球员的信息输入到tar.txt。

3)用if(flag)判断,当flag的值跟初始化的值一样是输出“对不起!

!

!

本次删除失败!

!

!

!

”,当flag的值改为false时用while(getline(ifp2,str))循环继续读取要删除的球员之后的球员信息,并用ofp<

之后关闭两个文件。

4)定义一个文件输入流对象in,并以输入方式打开文件star;定义一个文件输出流对象out,并以输出方式打开文件star2。

5)把star内的球员信息一行一行的读取到字符串str,用out<

Star为删除后的文件,srar2为系统保存信息的文件,利用两个文件数据的输出、输入实现删除。

(3)添加模块

1)利用cin>>输入球员的信息。

2)调用函数saveall()把添加新信息保存到文件里。

3)saveall()函数:

定义一个输出的文件流ofp,并以追加的方式打开文件star2。

4)用ofp<<把新添加的信息添加到文件末尾。

5)用setw()设置输出数据项的域宽。

6)用setiosflags(ios:

:

left)设置输出的数据按输出域左对齐。

(4)修改

1)先把要修改的球员的信息删除,程序的算法跟删除模块一样。

2)删除要修改的球员的信息后再添加球员信息实现修改,添加的的程序算法跟添加模块一样。

当找不到修改的球员,即满足if(flag)用cout<<询问是否添加查找失败的球员,当确实要添加时输入“1”用goto语句指向添加模块;当不想添加时输入“0”

用goto退出修改。

(5)查询

1)定义一个输入流ifp2,以输入方式打开文件。

2)定义一个字符串sign,定义一个bool变量fig并初始化为true。

3)把输入的名字赋值到字符串sign,用ifp2>>name>>number读取文件的信息,用name==sign判断当符合时显示,并把fig的值改为false。

4)用判断语句if判断fig是否为true,为true则显示“没有收录该球员!

按回车返回主菜单!

”以提醒用户。

5)按身价查询则利用条件sign<=shenjia判断,其它部分的算法跟按姓名查询一样。

(6)输出

1)首界面函数charinter_face()用system("cls")实现清屏操作,再用cout<<设定主菜单界面,并返回一个char值returnchoose,其值为用户输入一选择功能模块的值供主函数的switch选择语句实现模块的选择。

2)输出全部球员函数voidshow_all()先定义一个输入流ifp2并以输入的方式打开文件,定义一个bool变量flag并初始化为true,定义一个字符串record。

3)用循环语句while(getline(ifp2,record))一行一行的读取文件的信息并用cout<

4)用判断语句if判断flag的值为true时输出“你的记录中没有球员!

!

!

”else输出“所有球员的信息已经全部显示出来!

!

!

!

”。

(7)系统维护

1)修改密码函数voidthekey()先定义一个输入流ofp并以输入的方式打开文件,当文件打不开时用当文件还没建立则用goto到xia建立密码.txt文件初始密码。

2)当文件存在即有原密码时、定义一个变量yourkey,输入密码赋值到yourkey,用判断语句if判断youkey==key是否满足,当不满足时用exit

(1)退出系统,并提醒“你无权管理,请与管理员联系”。

当满足时关闭文件再定义一个输出流f并以输出的方式打开密码文件,用f.clear()清空文件实现对原密码的删除,关闭文件。

3)定义一个输出流ofp并以追加的方式打开密码文件,用cin>>key输入你的新密码,用ofp<

:

left)<

4)密码判断函数voidball:

:

yourkey()定义一个输入流fp并以输入的方式打开文件,当文件打不开时用cout提示“对不起!

!

!

密码文件不存在!

请进入系统维护设定密码”。

用fp>>key读取密码文件的密码,定义一个double型变量yourkey并把用户输入的密码赋值到yourkey,用if(youkey!

=key)判断用户输入的密码是否正确,不正则用exit

(1)退出系统,正确程序再继续取运行。

五、使用说明

1、主菜单

在WindowsXP环境下点击“足球明星管理系统.exe”运行程序,主界面打开,输入1—7之间的数字选择您想进行的操作,如果输入错误,系统则提示错误。

屏幕如图2所示。

图2足球明星管理系统主界面

2、添加新球员

若选择“添加新球员”,则键入1,按照提示输入相关的信息,如“姓名:

卡卡,球衣号:

8等,输入完毕,按下回车键,系统自动保存”

如图3所示。

图3球明星管理系统添加新球员界面

3、删除球员

在主菜单界面中键入2,进入删除球员菜单,,照提示输入您想删除的球员,如“卡卡”,系统会自动显示出相关信息,如要确定删除请输入“1”,按下回车,删除球员成功,回到主菜单如图4所示。

图4足球明星管理系统删除球员界面

4、显示所有明星姓名

如果想要查看所有球员资料,则输入“3”,如图5所示

图5足球明星管理系统显示所有球员界面

5、修改球员信息

如果想要修改球员信息,则输入数字“4”,如图6所示。

图6足球明星管理系统修改球员信息界面

按照提示输入你想修改球员的姓名,如“梅西”,然后系统会显示球员的所有信息,按照提示输入,输入完毕后按下回车,系统提示新球员信息已经保存好,如图7.所示。

图7足球明星管理系统修改球员信息界面

6、查询球员信息

如果想要查询某个球员的的信息,输入数字“4”,按照提示输入你想要查找的球员,如“卡卡”,系统自动会显示该球员的所有信息,球衣号码,身价等信息。

如图8所示。

图8足球明星管理系统查询球员信息界面

7、身价查询

如果想要查询某个球员的身价,在主菜单输入数字“6”,按照系统的提示,输入要查询的身价,如“900”,系统会自动显示出比900高的和相等身价的球员全部信息。

如图9所示。

图9足球明星管理系统球员身价界面

六、结束语

经过二周多的设计和开发,明星信息管理系统基本开发完毕。

其功能基本符合管理员需求,能够完成明星明星信息的存储和成绩的查询。

但是由于毕业设计时间较短,所以该系统还有许多不尽如人意的地方,比如管理员界面不够美观,不能尽善尽美的想到所有可能出现的情况。

出错处理不够等多方面问题。

这些都有待进一步改善。

七、参考文献

[1]D.S.Malik著.C++基础教程——从问题分析到程序设计(第二版).清华大学出版社,2006

[2]刘娜娜等著.C++程序设计.北京航空航天大学出版社,2009

[3]raphelPender等著,苏剑等译.标准C++编程宝典.电子电工出版社,2005

[4]

八、组员分工

姓名

任务

李雄盛

主函数、ball类、修改、删除功能的实现

潘文俊

密码的设定与实现、程序的编译运行调试

施联生

查询模块、程序说明书内容设计编辑

王蒙

显示模块、数据输入、截图、说明书设计、设计和打印

九、源程序代码

#include

#include//getline()>>>>wenjian

#include

#include

usingnamespacestd;

classball

{

public:

ball();//默认构造函数

charinter_face();//首页

voidaddfootballstar();//添加球员

voiddelfootballstar();//删除球员

voidshow_all();//显示所有球员

voidchange();//修改信息

voidselect();//查询球员

voidsele();//

voidsaveall();//保存新增加的球员

voidthekey();

voidyourkey();

private:

stringname;//姓名

stringaddress;//俱乐部

stringnumber;//球衣号号码

stringduty;//球场上的位置

doubleshenjia;////

doublekey;

};

ball:

:

ball()

{

name="\0";

address="\0";

number="\0";

duty="\0";

shenjia=0;

}

//首页

charball:

:

inter_face()

{

system("cls");

cout<

cout<<"\t\t★★★★★★★★★★★★★★★★★★★★★★★★★★"<

<<"\t\t★★★★★★★★★★★★★★★★★★★★★★★★★★"<

<<"\t\t★★★★★★★★★★★★★★★★★★★★★★★★★★"<

<<"\t\t"<

<<"\t\t设计者:

"<

<<"\t\t首席指导:

"<

<<"\t\t★★★★★★★★★★★★★★★★★★★★★★★★★★"<

<<"\t\t★★★★★★★★★★★★★★★★★★★★★★★★★★"<

<<"\t\t"<

<<"\t\t1.添加新球员4.修改信息"<

<<"\t\t"<

<<"\t\t2.删除球员5.查询球员"<

<<"\t\t"<

<<"\t\t3.显示所有球员6.按身价查询"<

<<"\t\t0.退出7.系统维护."<

<<"\t\t\t选择:

";

charchoose;

cin>>choose;

cin.clear();

cin.sync();

returnchoose;

}

//添加球员

voidball:

:

addfootballstar()

{

cout<

<<"姓名:

";

cin>>name;

cin.clear();cin.sync();

cout<<"球衣号:

";

cin>>number;

cin.clear();cin.sync();

cout<<"身价(百万):

";

cin>>shenjia;

cin.clear();cin.sync();

cout<<"球场上的位置:

";

cin>>duty;

cin.clear();cin.sync();

cout<<"俱乐部:

";

cin>>address;

cin.clear();cin.sync();

saveall();

cout<

!

!

!

!

"<

getchar();

}

//删除球员

voidball:

:

delfootballstar()

{

ofstreamofp("star.txt",ios:

:

out);

ifstreamifp2("star2.txt",ios:

:

in);

if(!

ofp||!

ifp2)

{

cout<

!

!

!

找不到文件!

!

!

!

"<

getchar();cin.sync();

return;

}

stringsign;

cout<

";

cin>>sign;

stringstar;

boolflag=true;

stringstr;

while(ifp2>>name>>number)

{

getline(ifp2,str);

if(sign==name)

{

cout<

"<

<

cout<

:

left)<

<<""<

intd;

cout<<"确定要删除请按‘1’键:

";

cin>>d;

if(d==1)

{

flag=false;

}

break;

}

ofp<

:

left)<

<<""<

}

if(flag)

{

cout<

!

!

本次删除失败!

!

!

!

"<

}

else

{

while(getline(ifp2,str))

{

ofp<

getchar;

}

ofp.close();

ifp2.close();

ofstreamout("star2.txt",ios:

:

out);

ifstreamin("star.txt",ios:

:

in);

if(!

out||!

in)

{

cout<

!

!

"<

return;

}

while(getline(in,str))

{

out<

}

out.close();

in.close();

cout<

!

!

"<

getchar();

}

getchar();

cin.sync();

}

voidball:

:

sele()

{

ifstreamifp2("star2.txt",ios:

:

in);

if(!

ifp2)

{

cout<

!

!

!

!

"<

getchar();

return;

}

doublesign(0);

cout<

cin>>sign;

cin.clear();cin.sync();

stringstar;

boolflag=true;

stringstr;

while(ifp2>>name>>number>>shenjia>>duty>>address)

{

getline(ifp2,str);

if(sign<=shenjia)

{

cout<<"姓名"<<"\t\t"<<"球衣号"<<"\t\t"<<"身价(百万)"<<"\t"<<"球场上的位置"<<"\t"<<"俱乐部"<

cout<

cout<

:

left)<

<<""<

<

<

<

}

}

cout<<"提示:

按0键再按回车返回主菜单"<

for(intk;cin>>k==0;)

{

flag=false;

break;

}

}

//显示所有球员

voidball:

:

show_all()

{

ifstreamifp2("star2.txt",ios:

:

in);

if(!

ifp2)

{

cout<

!

!

!

没有找到文件!

!

!

!

!

"<

getchar();

return;

}

boolflag=true;

stringrecord;

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 总结汇报 > 实习总结

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1