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

上传人:仙*** 文档编号:35464460 上传时间:2021-10-27 格式:DOC 页数:23 大小:218.50KB
收藏 版权申诉 举报 下载
足球明星管理系统c面向对象技术_第1页
第1页 / 共23页
足球明星管理系统c面向对象技术_第2页
第2页 / 共23页
足球明星管理系统c面向对象技术_第3页
第3页 / 共23页
资源描述:

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

1、齐齐哈尔大学C+程序设计课程设计用纸C+程序设计课程设计说明指导教师:设 计 者:专业班级:设计时间:C+程序设计课程设计任务书专业班级: 设计题目:足球明星管理系统一、已知技术参数或设计前提1、每个球员信息包含姓名、身价、所在俱乐部、球衣号号码和在球场上的位置。2、每个球员的信息可以随时修改。二、设计内容及要求1、实现球员信息的数据录入。2、能够对球员的信息进行保护,对球员的信息进行输入和修改的时候必须输入密码才能进行。3、能够根据球员的姓名,实现该成员信息的修改。4、实现按球员姓名、球衣号和身价查询现有球员的个人信息。5、实现按球员姓名删除指定的球员信息。6、能够以列表方式输出所有球员信息

2、。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日)四、相关教材及参考书目1D.S.Malik著.C+基础教程从问题分析到程序设计(第二版).清华大学出版社,20062刘娜娜等著.C+程序设计.北京航

3、空航天大学出版社,2009 指导教师签字: 系主任 签字: 年 月 日足球明星管理系统一、需求分析以前,各个球员的资料基本上都是靠手工做表进来管理球员资料。随着足球的发展,越来越多的国家重视起足球这项体育运动,越来越多的俱乐部产生,也就给球员管理带来了很多麻烦,有关球员资料管理工作所涉及的数据量越来越大。有的俱乐部或者国家队不得不靠增加人力、物力来进行球员资料管理。但手工管理具有效率底、出错率高。所以我想借本次毕业设计之际,开发一个适用于俱乐部或者国家队的球员资料管理系统。建立球员资料管理系统,采用计算机对球员资料进行管理,进一步提高管理水平和现代化的模式。帮助广大教练员和相关工作人员提高工作

4、率,实现球员资料信息管理工作流程的系统化、规范化和自动化。二、系统的软硬件环境1、硬件环境内存:1GB 硬盘:80GB。2、软件环境:(1)WINDOWSxp操作系统(2)visaul C+6.0版本。三、系统模块功能该程序共由七个模块构成,分别是:输入模块,输出模块,查找模块,删除模块, 显示模块,系统维护模块,系统功能模块框架图如图1所示足球明星管理系统系统系统维护修改模块删除模块添加模块查询模 块输出模块图1 明星管理系统功能模块框架图1、输入模块:该模块用于接收管理输入的明星信息。2、输出模块:该模块用于输出管理员输入的明星息。3、查找模块:按照姓名和身价查询管理员输入的球员信息。4、

5、删除模块:按照管理员输入的姓名进行查找相对应的明星信息,如果找到便显示该生信息并询问是否删除该信息,如果选择“是”就彻底删除该生信息;否则显示“未删除”,如果查找不到显示“未找到” 。5、显示模块:根据姓名显示单个明星的所有信息。6、系统维护模块:修改密码。四、程序设计分析1、类结构(1)球员类ball1)据成员:姓名name、 球衣号码number、球场上的位置duty、俱乐部address、身价shenjia、密码key。2)函数:构造函数ball()(初始化数据成员为0)首页char inter_face()(设定面向用户的界面,返回一个char值以调用所要的功能函数)添加球员信息voi

6、d addfootballstar()(添加一个球员的信息,并调用saveall()把信息存到文件)删除void delfootballstar()(创建两个流利用文件间的读取与读入实现删除)修改void change()(先把要改的信息删除再调用saveall()把新信息保存)显示void show_all()(显示全部读者信息)查询void select()(按姓名查询文件里球员的信息)按身价查询void sele()(查询大于用户输入的身价的球员信息)保存void saveall() (把修改、新添加的信息写入文件并保存)系统维护void yourkey()(利用clear清除文件原来的

7、密码再重设新密码)验证void thekey()(用if(youkey!=key)判断是否输入正确密码)2、模块设计分析(1)主函数1)先用system()清屏,并定义对象abj。2) 使用system(color 04f)设定了控制台的颜色。3)switch (choose= abj.inter_face()调用inter_face()输出主界面运用char inter_face()的返回值以调用各功能函数(例如,当choose=ADD时调用添加球员函数void addfootballstar())。(2)删除模块1)定义一个文件输入流对象ifp2,并以输入方式打开文件;定义一个文件输出流对

8、象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)判断

9、,当flag的值跟初始化的值一样是输出“对不起! 本次删除失败!”,当flag的值改为false时用while (getline(ifp2, str)循环继续读取要删除的球员之后的球员信息,并用ofp str把读取的球员的信息输出到star文件内。之后关闭两个文件。4)定义一个文件输入流对象in,并以输入方式打开文件star;定义一个文件输出流对象out,并以输出方式打开文件star2。5)把star内的球员信息一行一行的读取到字符串str,用out 输入球员的信息。2)调用函数saveall()把添加新信息保存到文件里。3)saveall()函数:定义一个输出的文件流ofp,并以追加的方式打

10、开文件star2。4)用ofp 把新添加的信息添加到文件末尾。5)用setw()设置输出数据项的域宽。6)用setiosflags(ios:left)设置输出的数据按输出域左对齐。(4)修改1)先把要修改的球员的信息删除,程序的算法跟删除模块一样。2)删除要修改的球员的信息后再添加球员信息实现修改,添加的的程序算法跟添加模块一样。当找不到修改的球员,即满足if (flag) 用cout name number读取文件的信息,用name=sign判断当符合时显示,并把fig的值改为false。4)用判断语句if判断fig是否为true,为true则显示“没有收录该球员 !按回车返回主菜单!”以提

11、醒用户。5)按身价查询则利用条件sign=shenjia判断,其它部分的算法跟按姓名查询一样。(6)输出1)首界面函数char inter_face()用system(cls)实现清屏操作,再用cout设定主菜单界面,并返回一个char值return choose,其值为用户输入一选择功能模块的值供主函数的switch选择语句实现模块的选择。2)输出全部球员函数void show_all()先定义一个输入流ifp2并以输入的方式打开文件,定义一个bool 变量flag并初始化为true, 定义一个字符串record。3)用循环语句while (getline(ifp2, record)一行一行

12、的读取文件的信息并用cout key输入你的新密码,用ofp setiosflags(ios:left) key读取密码文件的密码,定义一个double型变量yourkey并把用户输入的密码赋值到yourkey,用if(youkey!=key)判断用户输入的密码是否正确,不正则用exit(1)退出系统,正确程序再继续取运行。五、使用说明1、主菜单在Windows XP环境下点击“足球明星管理系统.exe”运行程序,主界面打开,输入17之间的数字选择您想进行的操作,如果输入错误,系统则提示错误。屏幕如图2所示。图 2 足球明星管理系统主界面2、 添加新球员若选择“添加新球员”,则键入1,按照提示

13、输入相关的信息,如“姓名:卡卡,球衣号:8等,输入完毕,按下回车键,系统自动保存”如图3所示。 图3 球明星管理系统添加新球员界面 3、 删除球员在主菜单界面中键入2,进入删除球员菜单,, 照提示输入您想删除的球员,如“卡卡”,系统会自动显示出相关信息,如要确定删除请输入“1”,按下回车,删除球员成功,回到主菜单如图4所示。 图4 足球明星管理系统删除球员界面4、 显示所有明星姓名如果想要查看所有球员资料,则输入“3”,如图5所示图5 足球明星管理系统显示所有球员界面5、修改球员信息如果想要修改球员信息,则输入数字“4”, 如图6所示。图6 足球明星管理系统修改球员信息界面按照提示输入你想修改

14、球员的姓名,如“梅西”,然后系统会显示球员的所有信息,按照提示输入,输入完毕后按下回车,系统提示新球员信息已经保存好,如图7.所示。图7 足球明星管理系统修改球员信息界面6、查询球员信息如果想要查询某个球员的的信息,输入数字“4”, 按照提示输入你想要查找的球员,如“卡卡”,系统自动会显示该球员的所有信息,球衣号码,身价等信息。如图8所示。图8 足球明星管理系统查询球员信息界面7、身价查询如果想要查询某个球员的身价,在主菜单输入数字“6”, 按照系统的提示,输入要查询的身价,如“900”,系统会自动显示出比900高的和相等身价的球员全部信息。如图9所示。图9 足球明星管理系统球员身价界面六、结

15、束语经过二周多的设计和开发,明星信息管理系统基本开发完毕。其功能基本符合管理员需求,能够完成明星明星信息的存储和成绩的查询。 但是由于毕业设计时间较短,所以该系统还有许多不尽如人意的地方,比如管理员界面不够美观,不能尽善尽美的想到所有可能出现的情况。出错处理不够等多方面问题。这些都有待进一步改善。 七、参考文献1D.S.Malik著.C+基础教程从问题分析到程序设计(第二版).清华大学出版社,20062刘娜娜等著.C+程序设计.北京航空航天大学出版社,20093raphel Pender等著,苏剑等译.标准C+编程宝典.电子电工出版社,20054 http:/zhidao八、组员分工姓名 任务

16、李雄盛主函数、ball类、修改、删除功能的实现潘文俊密码的设定与实现、程序的编译运行调试施联生 查询模块、程序说明书内容设计编辑王蒙显示模块、数据输入、截图、说明书设计、设计和打印九、源程序代码 #include #include /getline()wenjian#include #include using namespace std;class ballpublic: ball();/默认构造函数 char inter_face();/首页 void addfootballstar();/添加球员 void delfootballstar();/删除球员 void show_all();

17、/显示所有球员 void change();/修改信息 void select();/查询球员void sele();/ void saveall();/保存新增加的球员void thekey();void yourkey();private: string name;/姓名 string address;/俱乐部 string number;/球衣号号码 string duty;/球场上的位置 double shenjia;/double key;ball:ball() name = 0; address = 0; number = 0; duty = 0; shenjia= 0;/首页ch

18、ar ball:inter_face() system(cls); cout endl; couttt endl tt endl tt endltt endl tt 设计者: endltt 首 席 指 导: endltt endl tt endltt endl tt 1. 添加新球员 4. 修改信息 endl tt endl tt 2. 删除球员 5. 查询球员 endl tt endl tt 3. 显示所有球员 6.按身价查询 endlendl tt 0.退出 7. 系统维护. endlendlendl choose; cin.clear(); cin.sync(); return choo

19、se;/添加球员void ball:addfootballstar() cout endl 根据下面提示输入新球员信息 endl endl name; cin.clear(); cin.sync(); cout number; cin.clear(); cin.sync(); cout shenjia; cin.clear(); cin.sync(); cout duty; cin.clear(); cin.sync(); cout address; cin.clear(); cin.sync(); saveall(); cout endl endl 新球员信息已经保存好! endl endl

20、; getchar(); /删除球员void ball:delfootballstar() ofstream ofp(star.txt, ios:out); ifstream ifp2(star2.txt, ios:in); if (!ofp | !ifp2) cout endl 对不起!找不到文件! endl; getchar(); cin.sync(); return; string sign; cout endl sign; string star; bool flag = true; string str; while (ifp2 name number) getline(ifp2,s

21、tr); if ( sign=name ) cout endl 你想删除的球员: endl endl姓名tt球衣号tt身价(百万)t球场上的位置t俱乐部endl; cout setiosflags(ios:left) setw(17) name number str endl; int d;coutd;if(d=1) flag = false; break; ofp setiosflags(ios:left) setw(17) name number str endl; if (flag) cout endl 对不起! 本次删除失败! endl endl; else while (getlin

22、e(ifp2, str) ofp str endl;getchar; ofp.close(); ifp2.close(); ofstream out(star2.txt, ios:out); ifstream in(star.txt, ios:in); if (!out | !in) cout endl 对不起不能打开文件! endl endl; return; while (getline(in, str) out str endl; out.close(); in.close(); cout endl 这个人的信息已经从你的记录中删除! endl endl;getchar(); getch

23、ar(); cin.sync(); void ball:sele() ifstream ifp2(star2.txt, ios:in); if (!ifp2) cout endl 对不起不能打开文件! endl endl; getchar(); return; double sign(0); cout endl sign; cin.clear(); cin.sync(); string star; bool flag = true; string str; while (ifp2 namenumbershenjiadutyaddress) getline(ifp2, str); if (sig

24、n=shenjia) cout 姓名tt球衣号tt身价(百万)t球场上的位置t俱乐部endl; cout star endl; cout setiosflags(ios:left) setw(17) name setw(16) number setw(18) shenjia setw(14) duty setw(20) address endl; cout提示:按0键再按回车返回主菜单k=0;) flag = false; break;/显示所有球员void ball:show_all() ifstream ifp2(star2.txt,ios:in); if (!ifp2) cout end

25、l 对不起!没有找到文件! endl; getchar(); return; bool flag = true; string record; while (getline(ifp2, record) if (flag) cout endl所有球员信息如下: endl姓名tt球衣号tt身价(百万)t球场上的位置t俱乐部endl; cout record endl; flag = false; if (flag) cout endl 你的记录中没有球员! endl endl; else cout endl 所有球员已经全部显示出来! endl endl; getchar();/修改信息void

26、ball:change() ofstream ofp(star.txt, ios:out); ifstream ifp2(star2.txt, ios:in); /if (!ofp | !ifp2) cout endl 对不起!文件打不开! endl; getchar(); return; string sign; cout endl sign; string star; bool flag = true; string str; while (ifp2 name number) getline(ifp2, str); if ( sign=name ) cout endl 你想修改的球员:en

27、dl 姓名tt球衣号tt身价(百万)t球场上的位置t俱乐部endl; cout star endl; cout setiosflags(ios:left) setw(17) name setw(16) number setw(18) shenjia setw(14) duty setw(20) address endl; flag = false; break; ofp setiosflags(ios:left) setw(17) name number str endl; if (flag) cout endl 对不起!球员中没你找的人! endl 你是否要添加他/她;确定不添加请按“0”键

28、,添加的话按1键再按回车进入添加; _add;if(_add=0) goto the_end;else goto the_add; else while (getline(ifp2, str) ofp str endl; ofp.close(); ifp2.close(); ofstream out(star2.txt, ios:out); ifstream in(star.txt, ios:in); if (!out | !in) cout endl 对不起不能打开文件! endl endl; getchar(); return; while (getline(in, str) out st

29、r endl; out.close(); in.close(); cout endl 请按以下步骤输入修改: endl; the_add: coutname; cin.clear(); cin.sync(); cout number; cin.clear(); cin.sync(); cout shenjia; cin.clear(); cin.sync(); cout duty; cin.clear(); cin.sync(); cout address; cin.clear(); cin.sync(); saveall(); cout endl endl 新球员信息已经保存好! endl

30、endl; the_end: getchar();/查询球员void ball:select() ifstream ifp2(star2.txt, ios:in); if (!ifp2) cout endl 对不起不能打开文件! endl endl; getchar(); return; string sign; cout endl sign; cin.clear(); cin.sync(); string str; while (ifp2 name number) getline(ifp2, str);/ if ( name=sign ) cout endl 你要查找的球员是: endl姓名

31、tt球衣号tt身价(百万)t球场上的位置t俱乐部endl; cout setiosflags(ios:left) setw(17) name number str endl;cout提示:按0键再按回车返回主菜单k=0;) break; elsecoutendl没有收录该球员 !按回车返回主菜单!;getchar();break ; void ball:thekey() /系统维护 ifstream ofp(密码.txt, ios:in);/以读的方式打开 if (!ofp) cout endl 对不起!文件不存在,请输入新密码! endl endl; getchar(); goto xia;

32、 double youkey;coutyoukey; ofpkey;if(youkey=key)ofp.close();xia:fstream f; f.open(密码.txt, ios:out); f.clear();/清空文件 f.close();ofstream ofp(密码.txt, ios:app); cout endl key;coutendl重新设定成功;getchar(); cin.clear(); cin.sync(); ofp setiosflags(ios:left) key endl; ofp.close();elseofp.close();cout你无权管理,请与管理

33、员联系/n再见;exit(1);void ball:yourkey()ifstream fp(密码.txt, ios:in);if (!fp) cout endl 对不起!密码文件不存在!请进入系统维护设定密码! endl key;double youkey;coutendlyoukey;if(youkey!=key)fp.close();cout你无权管理,请与管理员联系/n再见;exit(1);fp.close();void ball:saveall() ofstream ofp(star2.txt, ios:app); if (!ofp) cout endl 对不起!打开文件失败! en

34、dl endl; getchar(); return; ofp setiosflags(ios:left) setw(17) name setw(16) number setw(18) shenjia setw(14) duty setw(20) address endl; ofp.close();enum powerEND = 0,ADD = 1, DEL = 2, SHOW = 3, change = 4, Select = 5,shengjia=6, thekey = 7;/枚举int main() char choose; ball abj; while (choose = abj.i

35、nter_face() system(color 02f); switch (choose) case ADD:abj.yourkey (); abj.addfootballstar();/添加球员 break; case DEL:abj.yourkey (); abj.delfootballstar();/删除球员 break; case SHOW: abj.show_all();/显示所有球员 break; case change:abj.yourkey (); abj.change();/修改信息 break; case Select: abj.select();/查询球员 break; case thekey: abj.thekey();/系统维护 break;case shengjia: abj.sele();/按身价查询 break; case END: cout endl 谢谢使用! endl endl; exit(0); break; default:coutendl你的输入有误,请从新输入;getchar(); break; return 0; - 23 -

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!