分屏处理数据系统

随机产生1000个数,并分屏显示(每行显示10个数字,每页显示10行),而且在每一屏的下方显示本屏中数据的最大值、最小值和平均值。

提示:循环显示,在分屏点上输出press any key to continue…,通过getchar()函数让用户以按回车键的方式进入下一屏。

附加要求:能够前后循环翻页,且输入页码可以回显该页码数据,如果页码错误默认回到第一页。

 1.处理分屏

首先定义二维数组用来划分每一屏,并且是每一屏都生成随机数(参考),记录入数组中。

#include<stdio.h>
#include<stdlib.h>
#include<time.h> 
int main()
{
	int a[10][100];
	int i,j,k,m=0;
	srand((unsigned)time(NULL));
	for(i=0;i<10;i++){
		for(j=1;j<=100;j++){
			a[i][j]=rand()%200;
		}
	}
    return 0;
}

2.处理最大值,最小值,平均值,页码数

 遍历二维数组比较最大最小等,根据题目要求在每一屏显示后停顿等待用户下一步命令,所以加入停顿的处理(system("pause"))。

void show(int a[10][100],int i)
{
	int j;
	for(j=1;j<=100;j++){
		printf("%5d",a[i][j]);
		if(j%10==0)
		printf("\n");
	}
}
void zong(int a[10][100],int i)
{
	int j;
	int max,min,sum=0;
	float ave;
	max=a[i][1];
	min=a[i][1];
	for(j=1;j<=100;j++){
		if(a[i][j]>max)
		max=a[i][j];
		if(a[i][j]<min)
		min=a[i][j];
		sum+=a[i][j];
	}
	ave=sum/100;
	printf("最大值为:%d\n",max);
	printf("最小值为:%d\n",min);
	printf("平均值为:%.2f\n",ave);
	printf("当前页面为:%d\n",i);
	printf("press any key to continue…");
	system("pause");
}

3.每一屏处理(下一页,查询页数)。

 运用switch语句进行处理,定义一个ch,getchar()进行读入处理(由于使用char,所以需要加入' '),使用k,m来保证独立性,确保下一页和查询不起冲突。

 while(1){
	    	char ch;
	    	ch=getchar();
	    	system("cls");
		    switch(ch){
			    case '1':
			    	k=1;
			    	show(a,k);
			    	zong(a,k);
			    	break;
			    case '2':
			    	k=2;
			    	show(a,k);
					zong(a,k);
			    	break;
			    case '3':
			    	k=3;
			    	show(a,k);
			    	zong(a,k);
			    	break;
			    case '4':
			    	k=4;
			    	show(a,k);
					zong(a,k);
			    	break;
			    case '5':
			    	k=5;
			    	show(a,k);
					zong(a,k);
			    	break;
			    case '6':
			    	k=6;
			    	show(a,k);
			    	zong(a,k);
			    	break; 
			    case '7':
		    		k=7;
		    		show(a,k);
		    		zong(a,k);
		    		break;
		       	case '8':
		    		k=8;
		    		show(a,k);
		    		zong(a,k);
			    	break;
		        case '9':
			    	k=9;
			    	show(a,k);
			    	zong(a,k);
			    	break;
		        case '0':
			    	k=0;
			    	show(a,k);
			    	zong(a,k);
			    	break;
			    case 'w':
			    	if(m>0){
						m--;
					}else{
						m=0;
					}
					show(a,m);
					zong(a,m);
					break;
				case 's':
					if(m<9){
						m++;
					}else{
						m=0;
					}
					show(a,m);
					zong(a,m);
					break;
		        default:
		        	m++;
		        	if(m==10)
		        	return 0;
		        	show(a,m);
					zong(a,m);
					break; 
		    }
		    system("cls");
	    }

完整代码:

#include<stdio.h>
#include<stdlib.h>
#include<time.h> 
void show(int a[10][100],int i)
{
	int j;
	for(j=1;j<=100;j++){
		printf("%5d",a[i][j]);
		if(j%10==0)
		printf("\n");
	}
}
void zong(int a[10][100],int i)
{
	int j;
	int max,min,sum=0;
	float ave;
	max=a[i][1];
	min=a[i][1];
	for(j=1;j<=100;j++){
		if(a[i][j]>max)
		max=a[i][j];
		if(a[i][j]<min)
		min=a[i][j];
		sum+=a[i][j];
	}
	ave=sum/100;
	printf("最大值为:%d\n",max);
	printf("最小值为:%d\n",min);
	printf("平均值为:%.2f\n",ave);
	printf("当前页面为:%d\n",i);
	printf("press any key to continue…");
	system("pause");
}
int main()
{
	int a[10][100];
	int i,j,k,m=-1;
	srand((unsigned)time(NULL));
	for(i=0;i<10;i++){
		for(j=1;j<=100;j++){
			a[i][j]=rand()%200;
		}
	}
	 while(1){
	    	char ch;
	    	ch=getchar();
	    	system("cls");
		    switch(ch){
			    case '1':
			    	k=1;
			    	show(a,k);
			    	zong(a,k);
			    	break;
			    case '2':
			    	k=2;
			    	show(a,k);
					zong(a,k);
			    	break;
			    case '3':
			    	k=3;
			    	show(a,k);
			    	zong(a,k);
			    	break;
			    case '4':
			    	k=4;
			    	show(a,k);
					zong(a,k);
			    	break;
			    case '5':
			    	k=5;
			    	show(a,k);
					zong(a,k);
			    	break;
			    case '6':
			    	k=6;
			    	show(a,k);
			    	zong(a,k);
			    	break; 
			    case '7':
		    		k=7;
		    		show(a,k);
		    		zong(a,k);
		    		break;
		       	case '8':
		    		k=8;
		    		show(a,k);
		    		zong(a,k);
			    	break;
		        case '9':
			    	k=9;
			    	show(a,k);
			    	zong(a,k);
			    	break;
		        case '0':
			    	k=0;
			    	show(a,k);
			    	zong(a,k);
			    	break;
			    case 'w':
			    	if(m>0){
						m--;
					}else{
						m=0;
					}
					show(a,m);
					zong(a,m);
					break;
				case 's':
					if(m<9){
						m++;
					}else{
						m=0;
					}
					show(a,m);
					zong(a,m);
					break;
		        default:
		        	m++;
		        	if(m==10)
		        	return 0;
		        	show(a,m);
					zong(a,m);
					break; 
		    }
		    system("cls");
	    }
	return 0;
}

 可能不是最优解,等后续优化.

  • 8
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

努力学习更多

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值