学校运动会管理系统

#include<iostream>
#include<fstream>
#include<string>
using namespace std;
void fun1()
{   cout<<"******************************"<<endl;
    cout<<endl; 
	cout<<"******学校运动会管理系统******"<<endl;
	cout<<"----数据录入       请按:1----"<<endl;
	cout<<"----数据修改       请按:2----"<<endl;
	cout<<"----数据删除       请按:3----"<<endl;
	cout<<"----数据查询       请按:4----"<<endl;
	cout<<"----数据显示       请按:5----"<<endl;
	cout<<"----退出系统       请按:6----"<<endl;
	cout<<endl;
	cout<<"*******************************"<<endl;
	cout<<endl;
	cout<<"*****请输入一个数据,并按回车键!*****"<<endl;
}
class Match
{
public:
	Match  *next;//为创建链表做准备
	int number;   //比赛项目编号
	char call[10];   //比赛项目名称
	char time[10];         //比赛时间
	char place[20];   //比赛地点
  friend	void input1();
};
void input1()
{   ofstream fout("e:\\比赛项目.dat",ios::app);
	char ch;
	Match a;
	do
	{ cout<<"请分别输入比赛项目编号、名称、比赛时间、比赛地点."<<endl;
	  cin>>a.number>>a.call>>a.place>>a.time;
	  a.next=NULL;
      fout.write((char *)&a,sizeof(Match));
	  cout<<"是否继续输入,如果继续键入Y|y"<<endl;
	  cin>>ch;
	}while(ch=='y'||ch=='Y');
  fout.close();
}
Match  *head1;
void creat()
{  head1=NULL;
   Match *p,*q=head1;
   ifstream fin("e:\\比赛项目.dat",ios::in);
   if(!fin)
   {  cout<<"文件打开失败!"<<endl; exit(0);
   }
     p=new  Match;
	 fin.read((char*)p,sizeof(Match));
	 while(!fin.eof()) 
	 {  if(head1==NULL)  head1=p;
	    else  
		q->next=p;
		q=p;
        p=new  Match;
       fin.read((char*)p,sizeof(Match));
	 }
    fin.close();
}
int change1()           //对比赛项目相关信息修改
{
	cout<<"您正在进行修改比赛项目有关事项操作!"<<endl;	
	creat();
    Match *p1;
    p1=head1;
	cout<<"请输入要修改比赛项目的编号:"<<endl;
	int number1;       //要修改的比赛项目编号
	int sign=0;        //设置的标记变量
	cin>>number1;
	while(p1!=NULL)
	{  if(p1->number==number1)   {sign=1;break;}
         p1= p1->next;
	}
    if (sign==0)
	cout<<"没有找到要修改的记录!"<<endl;
    else
	{
		cout<<"请选择要修改比赛项目的那些信息"<<endl;
		cout<<"------修改比赛项目的编号----1"<<endl;
		cout<<"------修改比赛项目的名称----2"<<endl;
		cout<<"------修改比赛时间----3"<<endl;
		cout<<"------修改比赛地点----4"<<endl;
		cout<<"请输入对应信息的编号"<<endl;
		int a;
		int nu;            //新的整形数据
		char info[20];         //新的字符数组
		cin>>a;
		switch(a)
		{
		case 1:cout<<"请输入新的比赛编号:"<<endl;
			  cin>>nu;
			  p1->number=nu;	  
			  cout<<"比赛项目编号修改成功!"<<endl;	
             break;
        case 2:cout<<"请输入新的比赛项目名称:"<<endl;
			cin>>info;
            strcpy(p1->call,info);
			cout<<"比赛项目名称修改成功!"<<endl;	   
	        break;
        case 3:cout<<"请输入新的比赛时间:"<<endl;
			cin>>info;
			strcpy(p1->time,info);
			cout<<"比赛项目时间修改成功!"<<endl;			
		       break;
        case 4:cout<<"请输入新的比赛地点:"<<endl;
			cin>>info;
			strcpy(p1->place,info);
			cout<<"比赛项目地点修改成功!"<<endl;				
		   break;
		}
		ofstream fout("e:\\比赛项目.dat",ios::out);
		p1=head1;
     	while(p1!=NULL)
		{  
          fout.write((char*)p1,sizeof(Match));
		  p1=p1->next;
		}   
       fout.close();
    }	
return 0;
}
int delete1()                        //对比赛项目相关信息进行删除
{  creat();
   Match *p1,*p2;
   p2=p1=head1;
	cout<<"请选择要删除比赛项目的那些信息"<<endl;
		cout<<"------删除比赛项目的编号----1"<<endl;
		cout<<"------删除比赛项目的名称----2"<<endl;
	    cout<<"请输入对应信息的编号"<<endl;
        int n;
		cin>>n;
   int num,flag=0;
   char cal[10];
   switch(n)
   {case 1:  cin>>num;
             while(p1!=NULL)
			 {  if(p1->number==num)   {flag=1;break;}
                p2=p1;
	            p1= p1->next;
			 }
             if (flag==0)
	            cout<<"没有找到要删除的记录!"<<endl;
               else
               p2->next=p1->next;
	case 2:   cin>>cal;
             while(p1!=NULL)
			 {  if(!strcmp(p1->call,cal))   {flag
  • 22
    点赞
  • 149
    收藏
    觉得还不错? 一键收藏
  • 7
    评论
课程设计任务书 题目:运动会成绩管理系统 一、课程设计时间 共计1周,20学时。 二、课程设计内容 用C语言编写软件完成以下任务: 1 录入运动员信息; 2 按项目查询运动员成绩; 3 按系排名(参照运动员的总成绩)。 三、课程设计要求 1. 程序质量: 贯彻结构化的程序设计思想。 用户界面友好,功能明确,操作方便。 用户界面中的菜单至少应包括"运动员信息录入"、"按项目查询运动员信息"、" 按系排名"、"退出"4项。 代码应适当缩进,并给出必要的注释,以增强程序的可读性。 2. 课程设计说明书: 课程结束后,上交课程设计说明书和源程序。课程设计说明书的格式和内容参见 提供的模板。 四、指导教师和学生签字 指导教师:________ 学生签名:________ 五、说明书成绩 目 录 一、需求分析 1 二、程序流程图 2 三、核心技术的实现说明及相应程序段 5 四、课设总结 9 五、参考文献 9 六、源程序 10 一、需求分析 经过对程序设计题目的分析可知,整个程序的设计实现大致分为3个模块,每一个模 块对应一个函数。在这些函数当中,添加学生数据函数,按系排名(参照学生总成绩) 函数,按项目查询学生成绩函数的实现严格按照题目的要求。主函数及菜单函数控制程 序的整体运行。 1. 添加学生数据函数 主要实现程序最初运行时学生数据的录入以及其后的运行中学生数据的追加功能; 2. 按系排名(参照学生总成绩)函数 按照题目的具体要求实现的是参照不同院系的学生的总成绩给出院系的排名; 3. 按项目查询函数 允许按照项目名称对学生的各项成绩进行查询; 除上面介绍的功能之外,程序还具有退出功能,可以在程序的一次运行当中循环执 行所有的功能,并根据需要终止程序的执行。 每一个学生记录都包含学号、姓名、系别,以及赛跑比赛、跳远比赛、跳高比赛三 门成绩,在程序当中,将学生记录类型定义为结构体类型,添加以及追加的学生信息直 接写入定义的结构体中,其它函数每次对学生记录的访问,其数据来源都是该结构体, 这样做不但可以保证学生数据的一致性,而且可以对学生数据进行永久保存,保证每次 运行程序都可以采用原来的数据。 二、程序流程图 1. 程序总体结构图 图1程序总体结构图 2. 具体功能框图 (1)添加学生数据函数add 图2 添加学生数据函数 (2)按系排名(参照学生总成绩)函数sort 图3按系别排名 (3)按项目查询函数query 三、核心技术的实现说明及相应程序段 本程序主要由三个自定义函数和一个主函数组成,其中主函数以菜单的形式调用其 它函数来实现要求的所有功能。在这些函数当中,添加学生数据函数、按系排名函数和 按项目查询函数是程序中较为核心的部分,下面分别进行说明。 1. 添加数据函数 当执行学生成绩录入功能时,所录入的数据被储存程序开头所定义的结构体中,并 且各种数据被保存其中,方便以后其他的功能函数调用。具体的程序段如下: int n,i; printf("请输入要添加的学生数量,按回车键确认:"); scanf("%d",&n); for(i=1;i<=n;i++) { printf("\n请输入第%d个学生的学号、姓名,系别,用空格分开,并按回车键确认:\n" ,i); scanf("%s%s%s",stu[i].num,stu[i].name,stu[i].xibie); printf("\n请输入第%d个学生的赛跑比赛、跳远比赛、跳高比赛,用空格分开,并按回 车键确认:\n",i); scanf("%f%f%f",&stu[i].race,&stu[i].jump,&stu[i].high); printf("%s %s %s %f %f %f \n",stu[i].num,stu[i].name,stu[i].xibie,stu[i].race,stu[i].jump,stu[i].high) ; } 2. 按系排名函数(参照学生总成绩) 对于按系的排名采用的排序算法是冒泡法排序,其中总成绩的求得是在排序的过程 中实现的,整个排序过程在结构体数组stu中实现,由于排序算法涉及到两个数组元素的 信息交换,因此还需要定义一个中间变量来协助。排序函数使学生数据的排列顺序发生 了变化,因此也需要对结构体进行更新。此外,对于系别排序后名次的确定,仅在结果 输出时予以显示。具体的程序段如下: int i,j; printf("*********************按系成绩排序结果如下*************************** *******\n\n"); printf(" 名次 系别 总成绩 \n"); printf("*******************************************************
YOLO高分设计资源源码,详情请查看资源内容中使用说明 YOLO高分设计资源源码,详情请查看资源内容中使用说明 YOLO高分设计资源源码,详情请查看资源内容中使用说明 YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值