




已阅读5页,还剩14页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
软件工程大作业 -运动会管理系统学号:030850113姓名:薛八阳指导老师:陆熊目录:1、 可行性研究报告2、 需求规格说明书3、 总体设计说明书4、 详细设计报告5、 源程序6、 测试用例及结果l1、可行性研究报告l1、引言编写目的:可行性研究的目的是为了对问题进行研究,以最小的代价在最短的时间内确定问题是否可以解决,经过对此项目进行详细调查研究,初拟系统实现报告,对软件开发中将要面临的问题及其解决方案进行初步设计及合理安排。明确开发风险及其所带来的经济效益。软件名称:运动会管理系统开发者:个人用户:用于校运动会的管理软件的功能:设计一个实用的校运动会管理系统,功能包括报名编号、安排比赛、登录成绩、公布名次。基本要求: 主要功能:报名编号,安排比赛,成绩登录,名次公布。 性能要求:能够方便运动员进行报名,登录成绩,查询名次,界面要清晰明了。 输入要求:数据完整,准确。 输出要求:简洁明了。2、技术可行性分析:基于vc+DOS界面,可以很容易的实现各个功能,用户首先运行程序,即可登陆软件,界面相对友好,首先进入界面,显示“欢迎进入系统”的语句,以及软件所提供的功能选择,如;1、报名编号,2、安排比赛,3、登录成绩,4、公布名次,5、退出。如此用户可以根据提示很容易的进行软件操作,这样软件的操作已经具有了可行性,至于软件的实现大体流程如下: 报名编号安排比赛成绩登录名次公布退出 在程序中可多处设计人性化提示,使程序使用起来更方便准确。比如多处提示功能选择,这样可以很方便的切换功能,这样软件更加友好使用,程序实现方面也是比较轻松,具有较高的可实现性。3、决定可行性的主要因素:成本/效益分析结果,效益成本。技术可行,现有技术可完全承担开发任务。操作可行,软件能被原有工作人员快速接受。结论:通过分析,从各方面考虑都具有可行性,可以马上着手进行开发。2、需求规格说明书1、引言编写目的:使用户和软件开发者双方对软件的初始规定有一个共同的理解,使之成为整个开发工作的基础。项目背景:a 、委托单位:校方运动会管理组织b 、开发单位:个人2、任务概述(1) 目标:通过设计及编程最终获得一个具有报名编号、比赛安排、成绩登录、公布名次等功能的运动会管理系统软件。(2) 用户的特点:需在无相关专业知识下即可使用。3、数据描述数据流图: 运动员信息 比赛信息 运动员 姓名、项目 报名编号 项目名称 比赛安排 时间、地点管理员 项目 编号 成绩 登录成绩 项目名称 公布名次 功能选择 退出 成绩档案 名次档案数据字典:运动员 成绩档案 数据流名:运动员 文件名:成绩档案 别名: 描述:用于记录用动员的比赛成绩 组成:姓名+参加项目 组成:姓名+项目+编号+成绩 备注: 组织:按编号有小到大排列 运动员信息 名次档案 文件名:运动员信息 文件名:名次档案 描述:用于记录参加比赛成员的信息 描述:用于保存用动员的比赛名次 组成:姓名+参加项目+编号 组成:姓名+项目+编号+成绩+名次 组织:按编号有小到大排列 组织:按照名次有小到大的顺序排列 3、总体设计说明书1、引言编写目的:项目背景:a 、委托单位:校方运动会管理组织b 、开发单位:个人2、概要设计:(1)需求规定:本系统主要用于运动会系统的管理,包括四个功能:报名编号、安排比赛、成绩登录、公布名次。(2)运行环境:基于DOS界面运行的软件。(3)功能需求与程序的关系在主函数里面进行功能分配: 1、报名编号,2、安排比赛,3、成绩登录,4、公布名次然后,每个功能均通过不同的函数来实现: 1、报名编号:运动员报名时有多个项目(如:110米栏、撑杆跳、长跑、跳远),可以对每个项目创建一个链表用于记录各个参赛运动员的信息,并进行编号,每个链表用不同的头结点进行标记,后面的操作也可针对头结点进行。 2、安排比赛:对每个项目须分别进行比赛安排,可以定义一个结构体,并定义多个变量,每个变量对应一个项目,结构体里面包含两个成员:时间和地点。不同的变量即可记录不同项目的比赛安排,比且可以对变量进行修改,这样就可以实现比赛安排。 3、成绩登录:创建的运动员信息的节点,应包括:姓名、编号、成绩。这样在此功能下,输入编号即可找到运动员信息,并输出姓名,并提示输入成绩,待成绩输入完毕,即可提示成绩登录成功。 4、公布名次:需要针对各个项目依次输出,首先要选择需要公布名次的项目,待确定后,进行遍历链表,按照成绩由大到下排列出名次,并遍历输出,这样就可以是现成的排序输出,即名次公布。 5、退出:待用户使用完毕,可根据功能选择键,退出系统。3、运行设计(1)运行模块组合:不同功能分为不同的模块,选择不同的功能即可运行不同的模块。(2)运行控制:具体操作步骤可根据系统提示进行,控制方式采用功能键选择。4、系统出错处理设计(1)出错信息:软件在使用时,部分地方可能会用于用户输入错误指令而使系统陷入死循环,进而出现软件崩溃,此时只要关闭软件重新启动即可。(2)补救措施:设计人员可以对源代码进行修改,尽量避免死循环的出现,同时设置温馨提示语言提醒用户输入了错误代码,同时返回主功能单或者上次使用的功能。(3)系统维护设计:软件的每个功能均采用独立的模块,相互之间基本不会造成影响,方便软件的测试和维护,软件升级时只需对各个模块但对进行修改和调试。4、详细设计报告1、引言编写目的:用于程序运行过程中的描述,主要内容是对逐个模块的程序描述,包裹算法和逻辑流程,输入/输出项,与外部的接口等。项目背景:来源:校运动会管理系统2、总体设计需求概述:设计一个实用的校运动会管理系统,内容包括报名编号、安排比赛、登录成绩、公布名次。3、程序描述(1)主函数进行功能分配:程序流程图如下:DO CASE CASE 1 CASE 2 CASE 3 CASE 4 CASE 5 报名编号 安排比赛 登录成绩 公布名次 退出(2)报名编号:程序流程图如下: DO CASE CASE 1 CASE 2 CASE 3 CASE 4 110米栏报名 撑杆跳报名 长跑报名 跳远报名(3) 比赛安排:程序N-S图如下: ch =1 =2 =3 =4 项目1 项目2 项目3 项目 4(4)成绩登录:PDL语言如下: IF Set mark to head1-next-mark; ELSE IF Set mark to head2-next-mark; ELSE IFSet mark to head3-next-mark; ELSE IFSet mark to head4-next-mark; ELSE Return 0; END IF;(5)公布名次:程序PAD图如下: =1 110米栏名次公布 =2 撑杆跳名次公布 ch =3 长跑名次公布 =4 跳远名次公布(6)退出:#include Exit (0);5、源程序#include #include struct nodechar name20;int num,ch;int mark;node *next; ;int i=1,j=1,m=1,n=1;node *head1,*head2,*head3,*head4;void f1();void f0();void f11()cout您选择的项目为:110米栏endl;node *p,*p1;p=new node;cout请输入你的姓名:p-name;/cin.getline(p-name,20);p-ch=1;p-num=i;p-next=NULL;cout 报名成功!endl;cout name(先生/女士),你的编号为numendl;cout 预祝您在比赛中取得优异成绩!next!=NULL)p1=p1-next;p1-next=p;i+;coutendl;char sb;cout:继续报名,请输入A; 返回主界面,请输入Bsb;if(sb=A)f1();elsecoutendl;cout欢迎回到主界面!endl;void f12()cout您选择的项目为:撑杆跳endl;node *p,*p1;p=new node;cout请输入你的姓名:p-name;/cin.getline(p-name,20);p-ch=1;p-num=j;p-next=NULL;cout 报名成功!endl;cout name(先生/女士),你的编号为numendl;cout 预祝您在比赛中取得优异成绩!next!=NULL)p1=p1-next;p1-next=p;j+;coutendl;char sb;cout:继续报名,请输入A; 返回主界面,请输入Bsb;if(sb=A)f1();elsecoutendl;cout欢迎回到主界面!endl;void f13()cout您选择的项目为:长跑endl;node *p,*p1;p=new node;cout请输入你的姓名:p-name;/cin.getline(p-name,20);p-ch=1;p-num=m;p-next=NULL;cout 报名成功!endl;cout name(先生/女士),你的编号为numendl;cout 预祝您在比赛中取得优异成绩!next!=NULL)p1=p1-next;p1-next=p;m+;coutendl;char sb;cout:继续报名,请输入A; 返回主界面,请输入Bsb;if(sb=A)f1();elsecoutendl;cout欢迎回到主界面!endl;void f14()cout您选择的项目为:跳远endl;node *p,*p1;p=new node;cout请输入你的姓名:p-name;/cin.getline(p-name,20);p-ch=1;p-num=n;p-next=NULL;cout 报名成功!endl;cout name(先生/女士),你的编号为numendl;cout 预祝您在比赛中取得优异成绩!next!=NULL)p1=p1-next;p1-next=p;n+;coutendl;char sb;coutendl;cout:继续报名,请输入A; 返回主界面,请输入Bsb;if(sb=A)f1();elsecoutendl;cout欢迎回到主界面!endl;void f1()cout您好! 有如下运动项目可供选择:endl; int ch=0;cout1、110米栏endl;cout2、撑杆跳endl;cout3、长跑endl;cout4、跳远endl;coutendl;cout请选择项目(1|2|3|4):ch;switch(ch)case 1:f11();break;case 2:f12();break;case 3:f13();break;case 4:f14();break;default :f0();struct node1int a,b,c,d;char ad20;node1 x1,x2,x3,x4;void f2()cout您好!请根据提示进行比赛安排。endlendl;cout请选择需要进行比赛安排的项目:endl;int ch; cout1、110米栏endl;cout2、撑杆跳endl;cout3、长跑endl;cout4、跳远endl;coutendl;cout请选择项目(1|2|3|4):ch;if(ch=1)cout请输入比赛时间(1月12号10点30分:1 12 10 30):x1.ax1.bx1.cx1.d;cout请输入比赛地点:x1.ad;cout110米栏 比赛时间为:2011年x1.a月x1.b号x1.c点x1.d分endl;cout 比赛地点为:x1.adendl;if(ch=2)cout请输入比赛时间(1月12号10点30分:1 12 10 30):x2.ax2.bx2.cx2.d;cout请输入比赛地点:x2.ad;cout撑杆跳 比赛时间为:2011年x2.a月x2.b号x2.c点x2.d分endl;cout 比赛地点为:x2.adendl;if(ch=3)cout请输入比赛时间(1月12号10点30分:1 12 10 30):x3.ax3.bx3.cx3.d;cout请输入比赛地点:x3.ad;cout长跑 比赛时间为:2011年x3.a月x3.b号x3.c点x3.d分endl;cout 比赛地点为:x3.adendl;if(ch=4)cout请输入比赛时间(1月12号10点30分:1 12 10 30):x4.ax4.bx4.cx4.d;cout请输入比赛地点:x4.ad;cout跳远 比赛时间为:2011年x4.a月x4.b号x4.c点x4.d分endl;cout 比赛地点为:x4.adendl;char sb;cout:继续进行比赛安排,请输入A; 返回主界面,请输入Bsb;if(sb=A)f2();elsecoutendl;cout欢迎回到主界面!endl;void f3()int ch,u,v=0;node *p;cout请输入你所参加项目(1、110米栏|2、撑杆跳|3、长跑|4、跳远)及编号chu;if(ch=1)if(head1-next=NULL)cout尚无队员报名,无法进行成绩登录!endlendl;char sb;cout:需要进行报名编号,请输入A; 返回主界面,请输入Bsb;if(sb=A)f1();elsecoutendl;cout欢迎回到主界面!endl;elsep=head1;while(vnext; v+; cout您好!name(先生|女士),请输入你的成绩:p-mark; cout成绩登录成功!endlendl;char sb; cout:继续进行成绩登录,请输入A; 返回主界面,请输入Bsb; if(sb=A)f3(); elsecoutendl;cout欢迎回到主界面!next=NULL)cout尚无队员报名,无法进行成绩登录!endlendl;char sb;cout:需要进行报名编号,请输入A; 返回主界面,请输入Bsb;if(sb=A)f1();elsecoutendl;cout欢迎回到主界面!endl;elsep=head2; while(vnext; v+; cout您好!name(先生|女士),请输入你的成绩:p-mark; cout成绩登录成功!endlendl;char sb; cout:继续进行成绩登录,请输入A; 返回主界面,请输入Bsb; if(sb=A)f3(); elsecoutendl;cout欢迎回到主界面!next=NULL)cout尚无队员报名,无法进行成绩登录!endlendl;char sb;cout:需要进行报名编号,请输入A; 返回主界面,请输入Bsb;if(sb=A)f1();elsecoutendl;cout欢迎回到主界面!endl;elsep=head3;while(vnext; v+; cout您好!name(先生|女士),请输入你的成绩:p-mark; cout成绩登录成功!endlendl;char sb; cout:继续进行成绩登录,请输入A; 返回主界面,请输入Bsb; if(sb=A)f3(); else coutendl; cout欢迎回到主界面!next=NULL)cout尚无队员报名,无法进行成绩登录!endlendl;char sb;cout:需要进行报名编号,请输入A; 返回主界面,请输入Bsb;if(sb=A)f1();elsecoutendl;cout欢迎回到主界面!endl;elsep=head4; while(vnext; v+; cout您好!name(先生|女士),请输入你的成绩:p-mark; cout成绩登录成功!endlendl;char sb; cout:继续进行成绩登录,请输入A; 返回主界面,请输入Bsb; if(sb=A)f3(); elsecoutendl; cout欢迎回到主界面!endl;void f4()cout各位请注意,现在进行名次公布:endl;cout1、110米栏endl;cout2、撑杆跳endl;cout3、长跑endl;cout4、跳远endlendl;int ch;cout请选择当前需要公布的项目(1|2|3|4):ch;node *p;int g=100;if(ch=1)int o=0;if(head1-next=NULL)cout尚未进行成绩登录,无法公布!endlendl;char sb;cout:需要进行成绩登录,请输入A; 返回主界面,请输入Bsb;if(sb=A)f3();elsecoutendl;cout欢迎回到主界面!endl;elsecout 110米栏名次endlendl;cout 名次 姓名t成绩0)p=head1-next;while(p!=NULL&p-mark!=g)p=p-next;if(p!=NULL)o+; cout 第o名 nametmarkendl;g-; char sb;cout:需要继续进行成绩公布,请输入A; 返回主界面,请输入Bsb;if(sb=A)f4();elsecoutendl;cout欢迎回到主界面!next=NULL)cout尚未进行成绩登录,无法公布!endlendl;char sb;cout:需要进行成绩登录,请输入A; 返回主界面,请输入Bsb;if(sb=A)f3();elsecoutendl;cout欢迎回到主界面!endl;elsecout 撑杆跳名次endlendl;cout 名次 姓名t成绩0)p=head2-next;while(p!=NULL&p-mark!=g)p=p-next;if(p!=NULL)o+;cout 第o名 nametmarkendl;g-;char sb;cout:需要继续进行成绩公布,请输入A; 返回主界面,请输入Bsb;if(sb=A)f4();elsecoutendl;cout欢迎回到主界面!next=NULL)cout尚未进行成绩登录,无法公布!endlendl;char sb;cout:需要进行成绩登录,请输入A; 返回主界面,请输入Bsb;if(sb=A)f3();elsecoutendl;cout欢迎回到主界面!endl;elsecout 长跑名次endlendl;cout 名次 姓名t成绩0)p=head3-next;while(p!=NULL&p-mark!=g)p=p-next;if(p!=NULL)o+;cout 第o名 name markendl;g-;char sb;cout:需要继续进行成绩公布,请输入A; 返回主界面,请输入Bsb;if(sb=A)f4();elsecoutendl;cout欢迎回到主界面!next=NULL)cout尚未进行成绩登录,无法公布!endlendl;char sb;cout:需要进行成绩登录,请输入A; 返回主界面,请输入Bsb;if(sb=A)f3();elsecoutendl;cout欢迎回到主界面!endl;elsecout 跳远名次endlendl;cout 名次 姓名t成绩0)p=head4-next;while(p!=NULL&p-mark!=g)p=p-next;if(p!=NULL)o+;cout 第o名 name markendl;g-;char sb;cout:需要继续进行成绩公布,请输入A; 返回主界面,请输入Bsb;if(sb=A)f4();elsec
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 《口语交际:即兴发言》教学设计 2024-2025学年语文六年级下册统编版
- 2025年全国汽车修理工(高级)职业技能考试复习题库【附答案】
- 第三单元第14课《电子商务》说课稿 2024-2025学年青岛版(2019)初中信息技术第一册
- 第二课 经济全球化说课稿-2025-2026学年初中历史与社会人教版2013九年级下册-人教版(新课程标准)
- 蒸腾作用课件
- 物流运输实务(第三版)习题及答案 项目二同步测试
- 2025年北京pcr考试题及答案
- 蒲柳人家课件观看
- 葡萄酒知识培训课件
- 2025劳动合同韩语模板
- 2025秋人教部编版三年级上册语文教学计划
- 普通高中生物学课程标准 (2025 年版 2025 年修订 )
- 幼儿文学课件完整版
- DB6101T3128-2022养老服务规范 助餐服务
- 临时用地复垦与方案
- 语言学纲要课件
- 地下室开槽引流方案
- 新苏教版科学六年级上册教学计划含进度表
- 2021年新苏教版科学六年级上册知识点整理
- 美的观念(玛丽艳)
- 区委书记在全区惠企政策解读会上的讲话
评论
0/150
提交评论