C语言课程设计 学校运动会管理系统含调试图计算机.docx
《C语言课程设计 学校运动会管理系统含调试图计算机.docx》由会员分享,可在线阅读,更多相关《C语言课程设计 学校运动会管理系统含调试图计算机.docx(37页珍藏版)》请在冰点文库上搜索。
C语言课程设计学校运动会管理系统含调试图计算机
XXXXX大学
XXXXXXXXX学院
XXXX—XXXX学年第一学期
《C程序设计》课程设计
题目名称:
学校运动会管理系统
姓名
学号
班级
指导教师
编写日期
成绩:
1需求分析
在进行管理得方法和手段方面,最有效得工具就是电脑管理了
系统实现运动,会的信息记录和存储,进行全面自动管理,大幅度提高了信息管理得效率,使得运动会能够更加圆满得完成。
因此,校运动会管理系统显得尤为重要。
2总体设计
本文研究开发的运动会管理系统用于支持用于查询各个学校在运动会中的成绩。
有几种目标:
●支持输入各个项目的基本信息;
●可以按比赛项目编号或名称查询、删除、修改信息;
●可以按运动员编号或姓名查询、删除、修改信息;
●数据输入信息并能随时查询。
3详细设计:
3.1信息录入
3.2信息修改
3.3信息删除
3.4信息查询
3.5信息输出及退出系统
4程序运行结果及分析
5结论与心得
由于对较为复杂的系统程序不能很灵活地开发,在整个过程中遇到了不少的困难;但整个实践过程使我们在C编程方面有了更好的了解,同时在程序开发方面的能力得到了一定的提高,而且还增强了我们对于各种实践的兴趣。
整个实践过程让我们认识到:
勤奋与实践最能挺升自身的能力。
6参考文献
[1]谭浩强,《C程序设计(第四版)》,北京:
清华大学出版社,2010.6
7致谢
能够完成这次课程设计要感谢c语言课程的老师,他渊博的知识、开阔的视野和敏锐的思维给了我深深的启迪。
这篇论文是在老师的精心指导和大力支持下才完成的。
最后还要感谢各位同学的帮助。
8附源代码
#include
#include
#include
usingnamespacestd;
voidfun1()
{
cout<<"******************************"<cout<cout<<"----数据录入请按:
1----"<cout<<"----数据修改请按:
2----"<cout<<"----数据删除请按:
3----"<cout<<"----数据查询请按:
4----"<cout<<"----数据显示请按:
5----"<cout<<"----退出系统请按:
6----"<cout<cout<*****"<}
classMatch
{
public:
Match*next;//为创建链表做准备
intnumber;//比赛项目编号
charcall[10];//比赛项目名称
chartime[10];//比赛时间
charplace[20];//比赛地点
friendvoidinput1();
};
voidinput1()
{
ofstreamfout("e:
\\比赛项目.dat",ios:
:
app);
charch;Matcha;
do{cout<<"请分别输入比赛项目编号、名称、比赛时间、比赛地点."<>a.number>>a.call>>a.place>>a.time;
a.next=NULL;
fout.write((char*)&a,sizeof(Match));
cout<<"是否继续输入,如果继续键入Y|y"<>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;
elseq->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;
}ofstreamfout("e:
\\比赛项目.dat",ios:
:
out);
p1=head1;
while(p1!
=NULL)
{
fout.write((char*)p1,sizeof(Match));
p1=p1->next;
}
fout.close();
return0;
}
voidprint1()
{
creat();
Match*p1=head1;
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<<"没有找到要删除的记录!
"<elsep2->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<<"没有找到要删除的记录!
"<elsep2->next=p1->next;
}
ofstreamfout("e:
\\比赛项目.dat",ios:
:
out);
p1=head1;
while(p1!
=NULL)
{
fout.write((char*)p1,sizeof(Match));
p1=p1->next;
}fout.close();
return0;
}
voidprint1()
{
creat();
Match*p1=head1;
cout<<"请分别输出比赛项目编号、名称、比赛时间、比赛地点."<while(p1!
=NULL)
{
cout<number<<'\t'<call<<'\t'<time<<'\t'<place<next;
}
}
voidfind1()
{
creat();
Match*p1;
p1=head1;
intsign=0;
//设置的标记变量cout<<"请选择要查询比赛项目的哪些信息"<cout<<"------按比赛项目的编号查询----1"<cout<<"------按比赛项目的名称查询----2"<cout<<"------按比赛时间查询----3"<cout<<"------按比赛地点查询----4"<cout<<"请输入对应信息的编号"<inta;
intnu;
//查询整形数据条件
charinfo[20];
//查询字符型数据条件cin>>a;
switch(a)
{
case1:
cout<<"请输入要查询的比赛编号:
"<cin>>nu;
while(p1!
=NULL)
{
if(p1->number==nu)
{
sign=1;break;
}
p1=p1->next;
}
if(sign==0)cout<<"没有找到要查询的记录!
"<elsecout<number<<'\t'<call<<'\t'<time<<'\t'<place<break;
case2:
cout<<"请输入要查询的比赛项目名称:
"<cin>>infowhile(p1!
=NULL){if(p1->call==info){sign=1;break;}p1=p1->next;
}
if(sign==0)cout<<"没有找到要查询的记录!
"<else
cout<number<<'\t'<call<<'\t'<time<<'\t'<place<break;
case3:
cout<<"请输入要查询的比赛时间:
"<cin>>info;
while(p1!
=NULL)
{
if(!
strcmp(p1->time,info)){sign=1;break;
}p1=p1->next;
}
if(sign==0)cout<<"没有找到要查询的记录!
"<else
cout<number<<'\t'<call<<'\t'<time<<'\t'<place<case4:
cout<<"请输入要查询的比赛地点:
"<>info;
while(p1!
=NULL)
{
if(!
strcmp(p1->place,info))
{
sign=1;
break;
}
p1=p1->next;
}
if(sign==0)cout<<"没有找到要查询的记录!
"<else
cout<number<<'\t'<call<<'\t'<time<<'\t'<place<break;
}
}
classAthlet
{
public:
Athlete*next;
intnumber;
//运动员的编号charname[10];
//运动员的姓名charpart[20];
//运动员所属工作单位或省份charsex[20];
//运动员性别intage;
//运动员年龄friendvoidinput2();
};
voidinput2()
{
ofstreamfout("e:
\\运动员.dat",ios:
:
app);
charch;
Athleteb;
do
{
cout<<"请分别输入运动员编号、姓名、性别、年龄、所属省份或工作单位."<>b.number>>b.name>>b.sex>>b.age>>b.part;
b.next=NULL;
fout.write((char*)&b,sizeof(Athlete));
cout<<"是否继续输入,如果继续键入Y|y"<cin>>ch;
}while(ch=='y'||ch=='Y');
}
Athlete*head4;voidcreat2()
{
head4=NULL;
Athlete*p,*q=head4;
ifstreamfin("e:
\\运动员.dat",ios:
:
in);
if(!
fin)
{cout<<"文件打开失败!
"<while(!
fin.eof())
{if(head4==NULL)head4=p;
elseq->next=p
q=p;
p=newAthlete;
fin.read((char*)p,sizeof(Athlete));
}
fin.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;
}
intdelete2()//对运动员相关信息进行删除
{
creat2();
Athlete*p1,*p2;
p2=p1=head4;
cout<<"请选择要删除运动员的哪些信息"<cout<<"------删除运动员的编号----1"<cout<<"------删除运动员的姓名----2"<cout<<"请输入对应信息的编号"<intn;
cin>>n;
intnum,flag=0;
charna[10];
switch(n){case1:
cin>>num;
while(p1!
=NULL)