Bootstrap

第十一周程序片段题

 1.学生信息基本操作(结构体)

编写程序用来记录n个学生的学号(num)、姓名(name)和成绩(score)。

【要求】

1、要求使用结构,从键盘获得数据输入,同时计算全班平均分;

2、输出显示全部学生的信息和全班平均分;

3、查找最高分、最低分学生和不及格学生并输出显示其信息;

【思路】

1、定义一个结构体,动态申请一个结构体数组,每个数组元素记录一个学生的信息;

2、函数完成输出信息

片段一:

    int num;
    char name[10];
    int score;

片段二:

 struct Student stu[n];
    float average=0;
    int flag=0;
    for (int i=0;i<n;i++)
    {
    	cin>>stu[i].num>>stu[i].name>>stu[i].score;
    	if (stu[i].score<60)
    	{
    		flag=1;
        }
          average+=stu[i].score;
	}

片段三:

    for (int i=0;i<n;i++)
    {
    	output_message(stu[i]);
    }
    cout<<"\naverage="<<average/(n*1.0)<<endl;

片段四:

int max_index=0;
    int max_score=0;
    int min_index=0;
    int min_score=1000;
    if (flag)
    {   
	    cout<<"\nFail students:\n";
    	output_title();
	}
    for (int i=0;i<n;i++)
    {
    	
    	if (stu[i].score<60)
    	{
    		
    		output_message(stu[i]);
		}
	}
    for (int i=0;i<n;i++)
    {
    	if (min_score>stu[i].score)
		{
		    min_score=stu[i].score;
			min_index=i;	
		} 
    	if (max_score<stu[i].score)
		{
		    max_score=stu[i].score;
			max_index=i;	
		} 
	}
    cout<<"\nmax_score student:\n";
    output_title();
    output_message(stu[max_index]);
    cout<<"\nmin_score student:\n";
    output_title();
    output_message(stu[min_index]);

2. 雇员排序(结构数组排序)

结构数组Person中存放着雇员信息,每个雇员的信息包含姓名,工号和工资。

请根据工资以升序排列的方式输出所有雇员的信息。

要求:使用索引对排序进行优化

片段一:

	
 	for (int k = 0; k < 6; k++) 
	{
        index[k]=&allone[k];
    } 
    for (i=0;i<5;i++)
	{
		for (j=0;j<5-i;j++)
		{
			if (index[j]->salary>index[j+1]->salary)
			{
			       temp=index[j];
				   index[j]=index[j+1];
				   index[j+1]=temp;	
			} 
		}
	}

;