软件工程课程设计doc 30页.docx
- 文档编号:7573307
- 上传时间:2023-01-25
- 格式:DOCX
- 页数:32
- 大小:447.40KB
软件工程课程设计doc 30页.docx
《软件工程课程设计doc 30页.docx》由会员分享,可在线阅读,更多相关《软件工程课程设计doc 30页.docx(32页珍藏版)》请在冰豆网上搜索。
软件工程课程设计doc30页
软件工程课程设计(doc30页)
分类号编号
华北水利水电大学
NorthChinaInstituteofWaterConservancyandHydroelectricPower
课程设计
题目田径运动会管理信息系统
学院信息工程学院
专业计算机科学与技术
小组成员1吴辉密(201219619)
小组成员2张秋敏(201219621)
小组成员3张馥雅(201219622)
小组成员4张倩倩(201219623)
指导教师白娟
田径运动会管理系统的设计与实现
摘要
运动会管理是一个重要内容,随着时代的进步,参加运动会的运动员数量也不断增加、项目也越来越多、运动会举办也越来越频繁,对运动会管理要求也越来越高。
如何管理好各单位、运动员的成绩的信息,对运动会管理系统的要求也越来越高,所以必须要不断地更新运动会管理系统,才能满足社会日益发展的需要。
本文是采用VC++6.0作为前台开发工具,旨在实现对现有的运动会管理的基础上,提供信息录入,信息删除,信息查询,信息输出等服务,在此实验报告中主要实现对存储在管理系统中的数据表进行这些简单的操作,为提高运动会管理系统的效率提供了便利。
关键词:
VC++6.0;运动会信息管理;
第一章需求分析
1.1可行性分析
计算机以其强大的性能价格优势给人们的工作、学习和生活带来极大的方便.计算机代替人工处理一些事务已成为必然。
整个人类社会已进入高度信息化,人们对信息和数据的利用和处理已经进入自动化、网络化和社会化的阶段。
如在查找资料、处理日常办公事务、科研生产等方面,无不需要利用大量的信息资源。
因此,如何有效地进行数据信息的管理和利用,已经成为人们普遍关注的课题。
信息在不同的领域里有着不同的概念,在管理科学领域中,通常认为信息是经过加工处理后的一种数据形式,是一种有次序的符号排列,它是系统传输和处理的对象。
处在信息时代的今天,信息的作用越来越为人们所重视。
制定成绩计划,研究投资策略,都离不开对信息的充分利用。
在当今社会上,体育运动越来越普及,参与运动会的人越来越多,素质越来越高。
传统的运动会,一般是以人手组织为主,运动员的报名、赛事的安排、比赛场地的安排和成绩的记录等操作全都由人手操作,参加人数越多,运动会的规模就越大,管理工作就更加费时费力,而且容易出错。
学校田径运动会管理系统则为组织者提供一个简捷方便的方式来组织管理运动会,学校田径运动会管理系统是一种“人机交互系统”,通过简单的键盘输入与鼠标点击来完成烦琐的记录与安排工作,保证运动会的正常流畅的进行。
学校田径运动会管理系统是典型的数据库应用系统,可完成田径运动会管理中的运动员基本信息录入,竞赛成绩处理及公告,成绩统计.信息查询等事务处理功能。
根据学校田径运动会的一般进程,本系统分为数据修改、查询、删除、计算等四个工具模块来完成所期望的功能。
依据关系型数据库理论设计数据库的结构。
使用该系统可以极大地减小工作人员的劳动量,同时还可大大提高工作效率、可靠性和正确性。
1.2开发环境和开发工具
1.2.1C/C++语言简介
C语言是一种计算机程序设计语言。
它既具有高级语言的特点,又具有汇编语言的特点。
它由美国贝尔研究所的D.M.Ritchie于1972年推出。
1978后,C语言已先后被移植到大、中、小及微型机上。
它可以作为工作系统设计语言,编写系统应用程序,也可以作为应用程序设计语言,编写不依赖计算机硬件的应用程序。
它的应用范围广泛,具备很强的数据处理能力,不仅仅是在软件开发上,而且各类科研都需要用到C语言,适于编写系统软件,三维,二维图形和动画。
1.2.2开发背景
随着科学技术的不断发展,计算机科学日渐成熟,其强大的功能已为人们所深刻认识,它己进入人类社会的各个领域并发挥着越来越重要的作用。
采用计算机进行信息化管理已成为衡量企业管理科学化和现代化的重要标志,而人事管理的全面自动化、信息化则是其中重要的组成部分。
人事管理的好坏对于企业的决策者和管理者来说都至关重要,在很大程度上影响着企业的经济效益和社会效益。
因此,本文所研究的人事管理信息系统具有一定的使用价值和现实意义。
信息录入,学生信息录入,成绩录入三个模块的相关内容,最后的整体代码由两个人组合完成。
1.2.3开发环境
本文所采用的开发环境主要是基于C++语言在VisualC++平台上开发的系统,界面友好,功能强大,调试也很方便。
这是微软出的一个C语言集成开发环境(IDE),主要有:
VC++6.0等,分为企业版和学生版等。
对于初学者VC++6.0是比较容易上手的,但其对标准支持的不好可能使人养成不良的编程习惯。
1.3系统需求分析
本实验中,对不同的对象采取不同的存储结构,对比赛项目采取链式结构,而对于参赛运动员采取一个结构就可以了。
本程序中主要用到线性表的一些基本操作,将比赛项目信息,运动员信息,赛事信息都构造成线性表。
具体功能通过主函数分别调用各函数实现。
参考本实验的功能要求,本程序分为七个模块:
主函数、信息录入函数、信息修改函数、信息删除函数、信息查询函数,信息输出函数。
信息录入函数有包括比赛项目信息录入函数(包括比赛编号、名称等),运动员信息录入函数(运动员的编号、姓名、性别、年龄、工作单位或省份)、比赛赛事信息录入函数(某运动员参加某比赛项目,成绩、名次)。
信息修改函数包括比赛项目、运动员信息、赛事信息修改。
信息查询函数包括根据比赛项目、运动员编号进行查修
信息输出函数包括比赛项目、运动员信息、赛事信息输出等。
1.4系统总体设计
支持输入各个项目的基本信息;
可以按比赛项目编号或名称查询、删除、修改信息。
可以按运动员编号或姓名查询、删除、修改信息
数据输入信息并能随时查询
1.5数据流图
第二章概要设计
说明本系统中用到的所有数据类型的定义及存储结构,主程序的流程以及各程序模块之间的调用关系。
2.1数据结构
从整个管理系统来看,我们知道这里主要有三个主体,一个是比赛项目信息,一个是运动员,另一个是比赛事项目信息。
这三者不单单是作为简单的主体存在,他们都有很多功能,所以我们使用类和链表来定义。
如下:
比赛项目的定义:
classMatch
{
public:
Match*next;//为创建链表做准备
intnumber;//比赛项目编号
charcall[10];//比赛项目名称
chartime[10];//比赛时间
charplace[20];//比赛地点
friendvoidinput1();
};
运动员的定义:
classAthlete
{
public:
Athlete*next;
intnumber;//运动员的编号
charname[10];//运动员的姓名
charpart[20];//运动员所属工作单位或省份
charsex[20];//运动员性别
intage;//运动员年龄
friendvoidinput2();
};
比赛赛事项目的定义:
classMessage
{
public:
Message*next;
charname[10];//运动员姓名
charavent[10];//运动员参加的某比赛项目名称
intscore;//成绩
intca;//名次
friendvoidinput3();
};
2.2程序模块
田径运动会管理系统
通过对某高校运动会管理信息系统的基本功能调研和分析,各个子系统的主要功能如下:
比赛项目信息管理:
主要负责比赛项目信息的录入、修改、查询,显示比赛项目信息;
运动员注册:
负责参赛运动员的注册登记,并可随时查询、打印参赛运动员信息;
成绩统计:
用于录入、统计各项比赛的的预、决赛成绩,统计各运动员积分。
本模块可以查询每个参赛运动员的成绩信息,打印各种成绩报表。
第3章详细设计
N
NNN
Y
YYYN
N
YY
图3-1主菜单流程图
图3-2数据的录入流程图
图3-3数据的查询流程图
第四章程序代码
比赛项目信息录入:
voidinput1()
{ofstreamfout("e:
\\比赛项目.dat",ios:
:
app);
charch;
Matcha;
do
{cout<<"请分别输入比赛项目编号、名称、比赛时间、比赛地点."< cin>>a.number>>a.call>>a.place>>a.time; a.next=NULL; fout.write((char*)&a,sizeof(Match)); cout<<"是否继续输入,如果继续键入Y|y"< cin>>ch; }while(ch=='y'||ch=='Y'); fout.close(); } 运动员信息修改: intchange2()//对运动员相关信息修改 { cout<<"您正在进行修改运动员基本信息操作! "< creat2(); Athlete*p1; p1=head4; cout<<"请输入要修改运动员的编号: "< intnumber1;//要修改的运动员编号 intsign=0;//设置的标记变量 cin>>number1; while(p1! =NULL) {if(p1->number==number1){sign=1;break;} p1=p1->next; } if(sign==0) cout<<"没有找到要修改的记录! "< else { cout<<"请选择要修改运动员的哪些信息"< cout<<"------修改运动员的编号----1"< cout<<"------修改运动员的姓名----2"< cout<<"------修改运动员所属工作单位或省份----3"< cout<<"------修改运动员性别----4"< cout<<"------修改运动员年龄----4"< cout<<"请输入对应信息的编号"< inta; intnu;//新的整形数据 charinfo[20];//新的字符数组 cin>>a; switch(a) { case1: cout<<"请输入新的运动员编号: "< cin>>nu; p1->number=nu; cout<<"运动员的编号修改成功! "< break; case2: cout<<"请输入新的运动员姓名: "< cin>>info; strcpy(p1->name,info); cout<<"运动员姓名修改成功! "< break; case3: cout<<"请输入新的运动员所属工作单位或省份: "< cin>>info; strcpy(p1->part,info); cout<<"运动员所属工作单位或省份修改成功! "< break; case4: cout<<"请输入新的性别: "< cin>>info; strcpy(p1->sex,info); cout<<"运动员性别修改成功! "< break; case5: cout<<"请输入新的年龄: "< cin>>nu; p1->age=nu, cout<<"运动员年龄修改成功! "< break; } ofstreamfout("e: \\运动员.dat",ios: : out); p1=head4; while(p1! =NULL) { fout.write((char*)p1,sizeof(Athlete)); p1=p1->next; } fout.close(); } return0; } 比赛赛事信息显示: voidprint3() { creat3(); Message*p1=head7; cout<<"请分别输出比赛参赛运动员姓名、比赛项目名称、比赛成绩、比赛名次."< while(p1! =NULL) {cout< p1=p1->next; } } 第五章结果与测试 5.1实验结果: 算法结果以截屏的形式显示出: 信息录入 信息修改 信息删除 信息查询 信息输出及退出系统 5.2测试 5.2.1数据的录入测试 表5-1比赛项目的录入时输入名称测试用例 输入 预期的输出 实际的输出 评价 比赛项目的名称(不超过20个字节) 成功,不会出现信息的错误 显示结果第正确的 该功能可行 比赛项目的名称(超过20个字节) 不成功,会出现错误信息 显示结果是错误的 该功能不可行 表5-2比赛项目的录入时输入时间测试用例 输入 预期的输出 实际的输出 评价 比赛时间(不超过10个字节) 成功,不会出现信息的错误 显示结果第正确的 该功能可行 比赛时间(超过10个字节) 不成功,会出现错误信息 显示结果是错误的 该功能不可行 表5-3比赛项目的录入时输入地点测试用例 输入 预期的输出 实际的输出 评价 比赛地点(不超过20个字节) 成功,不会出现信息的错误 显示结果是正确的 该功能可行 比赛地点(超过20个字节) 不成功,会出现错误信息 显示结果是错误的 该功能不可行 表5-5运动员的录入时输入名称测试用例 输入 预期的输出 实际的输出 评价 运动员名字(不超过10个字节) 成功,不会出现信息的错误 显示结果是正确的 该功能可行 运动员名字(超过10个字节) 不成功,会出现错误信息 显示结果是错误的 该功能不可行 表5-6运动员的录入时输入名称测试用例 输入 预期的输出 实际的输出 评价 运动员单位(不超过20个字节) 成功,不会出现信息的错误 显示结果是正确的 该功能可行 运动员单位(超过20个字节) 不成功,会出现错误信息 显示结果是错误的 该功能不可行 5.2.1数据的删除测试 表5-4运动员的删除时输入编号测试用例 输入 预期的输出 实际的输出 评价 要删除的运动员的编号 成功 显示结果是错误的 该功能不可行 第六章附录 源代码: #include #include #include usingnamespacestd; voidfun1() {cout<<"******************************"< cout< cout<<"******学校运动会管理系统******"< cout<<"----数据录入请按: 1----"< cout<<"----数据修改请按: 2----"< cout<<"----数据删除请按: 3----"< cout<<"----数据查询请按: 4----"< cout<<"----数据显示请按: 5----"< cout<<"----退出系统请按: 6----"< cout< cout<<"*******************************"< cout< cout<<"*****请输入一个数据,并按回车键! *****"< } classMatch { public: Match*next;//为创建链表做准备 intnumber;//比赛项目编号 charcall[10];//比赛项目名称 chartime[10];//比赛时间 charplace[20];//比赛地点 friendvoidinput1(); }; voidinput1() {ofstreamfout("e: \\比赛项目.dat",ios: : app); charch; Matcha; do {cout<<"请分别输入比赛项目编号、名称、比赛时间、比赛地点."< cin>>a.number>>a.call>>a.place>>a.time; a.next=NULL; fout.write((char*)&a,sizeof(Match)); cout<<"是否继续输入,如果继续键入Y|y"< cin>>ch; }while(ch=='y'||ch=='Y'); fout.close(); } Match*head1; voidcreat() {head1=NULL; Match*p,*q=head1; ifstreamfin("e: \\比赛项目.dat",ios: : in); if(! fin) {cout<<"文件打开失败! "< } p=newMatch; fin.read((char*)p,sizeof(Match)); while(! fin.eof()) {if(head1==NULL)head1=p; else q->next=p; q=p; p=newMatch; fin.read((char*)p,sizeof(Match)); } fin.close(); } intchange1()//对比赛项目相关信息修改 { cout<<"您正在进行修改比赛项目有关事项操作! "< creat(); Match*p1; p1=head1; cout<<"请输入要修改比赛项目的编号: "< intnumber1;//要修改的比赛项目编号 intsign=0;//设置的标记变量 cin>>number1; while(p1! =NULL) {if(p1->number==number1){sign=1;break;} p1=p1->next; } if(sign==0) cout<<"没有找到要修改的记录! "< else { cout<<"请选择要修改比赛项目的那些信息"< cout<<"------修改比赛项目的编号----1"< cout<<"------修改比赛项目的名称----2"< cout<<"------修改比赛时间----3"< cout<<"------修改比赛地点----4"< cout<<"请输入对应信息的编号"< inta; intnu;//新的整形数据 charinfo[20];//新的字符数组 cin>>a; switch(a) { case1: cout<<"请输入新的比赛编号: "< cin>>nu; p1->number=nu; cout<<"比赛项目编号修改成功! "< break; case2: cout<<"请输入新的比赛项目名称: "< cin>>info; strcpy(p1->call,info); cout<<"比赛项目名称修改成功! "< break; case3: cout<<"请输入新的比赛时间: "< cin>>info; strcpy(p1->time,info); cout<<"比赛项目时间修改成功! "< break; case4: cout<<"请输入新的比赛地点: "< cin>>info; strcpy(p1->place,info); cout<<"比赛项目地点修改成功! "< break; } ofstreamfout("e: \\比赛项目.dat",ios: : out); p1=head1; while(p1! =NULL) { fout.write((char*)p1,sizeof(Match)); p1=p1->next; } fout.close(); } return0; } intdelete1()//对比赛项目相关信息进行删除 {creat(); Match*p1,*p2; p2=p1=head1; cout<<"请选择要删除比赛项目的那些信息"< cout<<"------删除比赛项目的编号----1"< cout<<"------删除比赛项目的名称----2"< cout<<"请输入对应信息的编号"< intn; cin>>n; intnum,flag=0; charcal[10]; switch(n) {case1: cin>>num; while(p1! =NULL) {if(p1->number==num){flag=1;break;} p2=p1; p1=p1->next; } if(flag==0) cout<<"没有找到要删除的记录! "< else p2->next=p1->next; case2: cin>>cal; while(p1! =NULL) {if(! strcmp(p1->call,cal)){flag=1;break;} p2=p1; p1=p1->next; } if(flag==0) cout<<"没有找到要删除的记录! "< else p2->next=p1->next; } ofst
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 软件工程课程设计doc 30页 软件工程 课程设计 doc 30