C语言

船舶停靠系统

实现功能

1:船舶停靠
2:船舶驶离
3:船舶统计
4:船舶质量排序
0:退出系统
项目整体文件
在这里插入图片描述
将船舶结构体变量存放在头文件中

#include<stdio.h>
struct ship 
{
	//船舶编号
	int biao;
	//船舶名称
	char name[10];
	//船舶类别
	char classic;
	//船舶质量
	int num_kg;
};

界面

#include<stdio.h>
void jie()
{
	printf("\n*********船舶停靠系统*********\n");
	printf("*********1:船舶停靠*********\n");
	printf("*********2:船舶驶离*********\n");
	printf("*********3:船舶统计*********\n");
	printf("*********4:船舶质量排序*****\n");
	printf("*********0:退出系统*********\n");

}

实现船舶停靠

//停船的方法
void input(struct ship s[],int n,int k)
{
	int i;
	for(i=k;i<n;i++)
	{
		flushall();
		printf("输入第%d船舶编号、名称、和质量:\n",i+1);
		scanf("%d %s %d",&s[i].biao,s[i].name,&s[i].num_kg);
		if(s[i].num_kg<10)
		{
			s[i].classic='x';
		}else if(s[i].num_kg>10&&s[i].num_kg<20)
		{
			s[i].classic='y';
		}else 
		{
			s[i].classic='z';
		}
	}
}

船舶驶离

//出船的方法
void output(struct ship s[],int biao,int count)
{
	int i;
	for(i=0;i<count;i++)
	{
		if(s[i].biao==biao)
		{
			break;
		}
	}
	int k;
	for(k=i;k<count-1;k++)
	{
		s[k]=s[k+1];
	}
}

船舶质量排序

//排序
void pai(struct ship s[],int n)
{
	int i,j;
	struct  ship temp;
	for(i=0;i<n;i++)
	{
		for(j=0;j<n-i-1;j++)
		{
			if(s[j].num_kg>s[j+1].num_kg)
			{
				temp=s[j];
				s[j]=s[j+1];
				s[j+1]=temp;
			}
			
		}
	}
}

main函数

#include<stdio.h>
#include "variable.h"
struct ship SHIP[10];
void jie();
void input(struct ship s[],int n,int k);
void output(struct ship s[],int biao,int count);
void stat(struct ship s[],int n);
void pai(struct ship s[],int n);
int count=0;
void main()
{
	//jie();
	//printf("%s",SHIP.biao);
	//input(SHIP,5);
	int flag=1;
	while(flag==1)
	{
		jie();
		int a;
		scanf("%d",&a);
		switch(a)
		{
		case 1:
			{
				int num,start=count;
				printf("请输入要进入港口的数量:\n");
				scanf("%d",&num);
				count+=num;
				input(SHIP,count,start);
			}
			break;
		case 2:
			{
				int biao_shi;
				printf("请输出驶离的船舶编号:\n");
				scanf("%d",&biao_shi);
				output(SHIP,biao_shi,count);
				count--;
			}
			break;
		case 3:
			{
				stat(SHIP,count);
			}
			break;
		case 4:
			{
				pai(SHIP,count);
			}
			break;
		case 0:
			flag=0;
			break;
		}
	}
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值