足球明星管理系统c++ 面向对象技术.docx
- 文档编号:11718083
- 上传时间:2023-03-31
- 格式:DOCX
- 页数:29
- 大小:159.39KB
足球明星管理系统c++ 面向对象技术.docx
《足球明星管理系统c++ 面向对象技术.docx》由会员分享,可在线阅读,更多相关《足球明星管理系统c++ 面向对象技术.docx(29页珍藏版)》请在冰豆网上搜索。
足球明星管理系统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 #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;
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 足球明星管理系统 c+ 面向对象技术 足球明星 管理 系统 面向 对象 技术
![提示](https://static.bdocx.com/images/bang_tan.gif)