m0_59215689
2021-06-11 17:28
采纳率: 100%
浏览 108

汇编语言编写如下程序

简易成绩分析系统。按优(>=90),良(80-89),中(70-79),及格(60-69),“40-59”, ”40以下”,几个分数段统计。屏幕提示输入每个分数段的人数,然后用柱状图的形式画出每个分数段人数所占百分比,并在相应的柱顶端显示百分比数字、底端显示相应的分数段。

  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

5条回答 默认 最新

  • “吉祥”物 2021-06-15 22:02
    已采纳
    #include<iostream>
    using namespace std;
    int main(){
    	cout<<"请输入每个分数段的人数"<<endl;
    	cout<<"优(>=90):";
    	int f[10]={};
    	char a[101][101]={};//数组最好定大点 
    	//输入 
    	cin>>f[0];
    	cout<<endl<<"良(80-89):";
    	cin>>f[1];
    	cout<<endl<<"中(70-79):";
    	cin>>f[2];
    	cout<<endl<<"及格(60-69):";
    	cin>>f[3];
    	cout<<endl<<"“40-59”:";
    	cin>>f[4];
    	cout<<endl<<"  “40以下”:";
    	cin>>f[5];
    	//初始化
    	int maxf=-1;
    	for(int i=0;i<9;i++){//计算最大值 
    		if(f[i]>maxf){
    			maxf=f[i];
    		}
    	}
    	for(int i=1;i<=maxf;i++){
    		a[0][i]=maxf-i+1+'0';
    		a[1][i]='|';
    	}
    	//绘制 
    	for(int i=0,x=4;i<6;i++){//x为图的纵轴 
    		for(int j=maxf;j>maxf-f[i];j--){
    			a[x][j]='X';
    		}
    		a[x][maxf-f[i]]=f[i]+'0';
    		x+=6;
    	}
    	//输出 
    	for(int i=0;i<maxf+1;i++){
    		for(int j=0;j<101;j++){
    			cout<<a[j][i];
    		}
    		cout<<endl;
    	}
    	cout<<"----------------------------------------"<<endl;
    	cout<<"  >=90 80-89 70-79 60-69 40-59 40以下"<<endl; 
    	return 0;
    }
    

    这个可以吗?

    求采纳<^_^>

    打赏 评论
  • 爱晚乏客游 2021-06-12 16:01

    你确定用汇编而不是C#或者java?汇编前面的还好,画柱状图是不是过分了?这用汇编还得写个UI界面出来,就算是c/C++都得调用系统的窗口句柄才能做吧。

    打赏 评论
  • “吉祥”物 2021-06-16 21:25
    #include<iostream>
    using namespace std;
    int main(){
    	cout<<"请输入每个分数段的人数"<<endl;
    	cout<<"优(>=90):";
    	int f[10]={};
    	int a[101][101]={};//数组最好定大点 
    	//输入 
    	cin>>f[0];
    	cout<<endl<<"良(80-89):";
    	cin>>f[1];
    	cout<<endl<<"中(70-79):";
    	cin>>f[2];
    	cout<<endl<<"及格(60-69):";
    	cin>>f[3];
    	cout<<endl<<"“40-59”:";
    	cin>>f[4];
    	cout<<endl<<"  “40以下”:";
    	cin>>f[5];
    	//初始化
    	int maxf=-1,w=0;
    	for(int i=0;i<9;i++){//计算最大值 
    		if(f[i]>maxf){
    			maxf=f[i];
    		}
    	}
    	for(int i=1;i<=maxf;i++){
    		int i_w=0;
    		for(int j=i;j!=0;j/=10) i_w++;//计算i位数 
    		a[0][i]=maxf-i+1;
    		a[1][i]=-1;
    	}
    	//绘制
    	for(int i=0,x=4;i<6;i++){//x为图的纵轴 
    		for(int j=maxf;j>maxf-f[i];j--){
    			a[x][j]=-2;
    			a[x+1][j]=-3;//取消下个空格以保证统计图笔直 
    		}
    		a[x][maxf-f[i]]=f[i];
    		x+=6;
    	}
    	//输出 
    	for(int i=0;i<maxf+1;i++){
    		for(int j=0;j<101;j++){
    			if(a[j][i]==-1) cout<<"|";
    			else if(a[j][i]==-2) cout<<"■";
    			else if(a[j][i]>0) cout<<a[j][i];
    			else if(a[j][i]!=-3) cout<<" ";
    		}
    		cout<<endl;
    	}
    	cout<<"----------------------------------------"<<endl;
    	cout<<"  >=90 80-89 70-79 60-69 40-59 40以下"<<endl; 
    	return 0;
    }

    新写了一下,可以吗?

    可以请采纳,不可以也请采纳,谢谢<^_^>

    打赏 评论
  • 王大师王文峰 2021-06-17 11:25

      “

    打赏 评论
  • 王大师王文峰 2021-06-11 21:09
    cout<<endl<<"良(80-89):";
    	cin>>f[1];
    	cout<<endl<<"中(70-79):";
    	cin>>f[2];
    	cout<<endl<<"及格(60-69):";
    	cin>>f[3];
    	cout<<endl<<"“40-59”:";
    	cin>>f[4];
    	cout<<endl<<"  “40以下”:";

    条件可以这样写

    3 打赏 评论

相关推荐 更多相似问题