求c语言帝帮助

实验大作业
编写一个应用于火力发电厂节能减排的程序,要求完成下列功能:
要求:
1.输入统计日期为2010年5月的N个电厂M台机组(额定容量为60万千瓦)的机组能耗指标信息。包括电厂名称、机组代码、额定容量(万千瓦)、本月发电量(万kWh)、本月上网电量(万kWh)、本月厂用电率(%)、本月供电标准煤耗(g/kWh)。
2、计算每个厂的能耗指标信息。其中全厂装机容量(万千瓦)等于该厂各机组额定容量之和,全厂发电量(万kWh)等于该厂各机组发电量之和,全厂上网电量(万kWh)等于该厂各机组上网电量之和,厂用电率(%)等于计算期间用于发电的厂用电量与全厂总发电量的之比,既发电厂厂用电率=∑(每台机组的厂用电率*机组发电量)/全厂发电量,全厂供电标准煤耗(g/kWh)= ∑(每台机组的供电标准煤耗*机组上网电量)/全厂上网电量。
3.输出每个电厂的电厂名称、装机容量、全厂发电量、全厂上网电量、发电厂厂用电率和全厂供电标准煤耗。
4.对M台机组按照供电煤耗从低到高进行排序。要求编写一个排序函数。
5.输出排序后的机组信息。包括电厂名称、机组代码、发电量(万kWh)、上网电量(万kWh)、供电标准煤耗(g/kWh)。
注意:厂用电率的范围是3-25,供电煤耗的范围是200-500,上网电量<发电量。

明天就要交了.....我编出来的全是死循环--
求各位c语言帝帮忙,感激不尽
编好后请发送至[email protected]
谢谢

给一个程序你参考一下^_^

程序:
/*
要求:
1.输入统计日期为2010年5月的N个电厂M台机组(额定容量为60万千瓦)的机组能耗指标信息。
包括电厂名称、机组代码、额定容量(万千瓦)、本月发电量(万kWh)、本月上网电量(万kWh)、本月厂用电率(%)、本月供电标准煤耗(g/kWh)。

2、计算每个厂的能耗指标信息。
其中全厂装机容量(万千瓦)等于该厂各机组额定容量之和,
全厂发电量(万kWh)等于该厂各机组发电量之和,
全厂上网电量(万kWh)等于该厂各机组上网电量之和,
厂用电率(%)等于计算期间用于发电的厂用电量与全厂总发电量的之比,
即发电厂厂用电率=∑(每台机组的厂用电率*机组发电量)/全厂发电量,
全厂供电标准煤耗(g/kWh)= ∑(每台机组的供电标准煤耗*机组上网电量)/全厂上网电量。

3.输出每个电厂的电厂名称、装机容量、全厂发电量、全厂上网电量、发电厂厂用电率和全厂供电标准煤耗。

4.对M台机组按照供电煤耗从低到高进行排序。要求编写一个排序函数。

5.输出排序后的机组信息。包括电厂名称、机组代码、发电量(万kWh)、上网电量(万kWh)、供电标准煤耗(g/kWh)。
注意:厂用电率的范围是3-25,供电煤耗的范围是200-500,上网电量<发电量。

*/
#include<stdio.h>
#include<string.h>

#define N 2
#define M 3

struct factory
{
char name[10];
int machine_code[M];
int capacity[M];
int generated[M];
int netused[M];
int power_used_rate[M];
int coal[M];
}plant[N];

int total_capacity[N];//全厂装机容量
int total_generated[N];//全厂发电量
int total_netused[N];//全厂上网电量
int total_power_used_rate[N];//全厂厂用电率
int total_coal[N];//全厂供电标准煤耗

void output();
void bubsort ();//冒泡排序

void main()
{
int i,j;
printf("输入电厂和各电厂机组信息(上网电量<发电量):\n");
for(i=0;i<N;i++)
{
printf("\n第%d电厂和它的机组信息:\n",i+1);

printf("电厂名:");
scanf("%s",plant[i].name);

printf("%d个机组代码:",M);
for(j=0;j<M;j++)
scanf("%d",&plant[i].machine_code[j]);

printf("%d个机组额定容量(万千瓦):",M);
for(j=0;j<M;j++)
{
scanf("%d",&plant[i].capacity[j]);
total_capacity[i]+=plant[i].capacity[j];//全厂装机容量
}

printf("%d个机组发电量(万kWh):",M);
for(j=0;j<M;j++)
{
scanf("%d",&plant[i].generated[j]);
total_generated[i]+=plant[i].generated[j];//全厂发电量
}

printf("%d个机组上网电量(万kWh) (上网电量<发电量):",M);
for(j=0;j<M;j++)
{
scanf("%d",&plant[i].netused[j]);
total_netused[i]+=plant[i].netused[j];//全厂上网电量
}

/*

厂用电率(%)等于计算期间用于发电的厂用电量与全厂总发电量的之比,
即发电厂厂用电率=∑(每台机组的厂用电率*机组发电量)/全厂发电量

*/

printf("%d个机组厂用电率(厂用电率的范围是3-25%):",M);
for(j=0;j<M;j++)
{
scanf("%d",&plant[i].power_used_rate[j]);
total_power_used_rate[i]+=plant[i].power_used_rate[j]*plant[i].generated[j];//全厂厂用电率
}
total_power_used_rate[i]=int(float (total_power_used_rate[i])/total_generated[i]);

/*

全厂供电标准煤耗(g/kWh)= ∑(每台机组的供电标准煤耗*机组上网电量)/全厂上网电量。

*/
printf("%d个机组供电标准煤耗(g/kWh)供电煤耗的范围是200-500:",M);
for(j=0;j<M;j++)
{
scanf("%d",&plant[i].coal[j]);
total_coal[i]+=plant[i].coal[j]*plant[i].netused[j];
}
total_coal[i]=int(float (total_coal[i])/total_netused[i]);
}
printf("\n\n排序前电厂及其机组的信息:\n");
output();

bubsort ();

printf("\n\n排序后电厂及其机组的信息:\n");
output();
}

/*
3.输出每个电厂的电厂名称、装机容量、全厂发电量、全厂上网电量、发电厂厂用电率和全厂供电标准煤耗。
*/
void output()
{
int i;
printf("\n输出电厂信息:\n\n");
for(i=0;i<N;i++)
{
printf("第%d个电厂电厂名:%s\n",i+1,plant[i].name);//电厂名称

printf("第%d个电厂装机容量:%d\n",i+1,total_capacity[i]);//全厂装机容量

printf("第%d个电厂全厂发电量:%d\n",i+1,total_generated[i]);//全厂发电量

printf("第%d个电厂全厂上网电量:%d\n",i+1,total_netused[i]);//全厂上网电量

printf("第%d个电厂全厂厂用电率:%d\n",i+1,total_power_used_rate[i]);//全厂厂用电率

printf("第%d个电厂全厂供电标准煤耗:%d\n\n",i+1,total_coal[i]);//全厂供电标准煤耗
}
}

/*
4.对M台机组按照供电煤耗从低到高进行排序。要求编写一个排序函数。
*/

void bubsort ()//冒泡排序
{
int i,j,k;
factory temp;
int t;
int n=N-1;
while(n>0)
{
j=0;
for(i=0;i<n;i++)
if(total_coal[i]>total_coal[i+1])
{
t=total_coal[i];//total_coal交换
total_coal[i]=total_coal[i+1];
total_coal[i+1]=t;

strcpy(temp.name,plant[i].name);//name交换
strcpy(plant[i].name,plant[i+1].name);
strcpy(plant[i+1].name,temp.name);

for(k=0;k<M;k++)//machine_code交换
{
temp.machine_code[k]=plant[i].machine_code[k];
plant[i].machine_code[k]=plant[i+1].machine_code[k];
plant[i+1].machine_code[k]=temp.machine_code[k];
}

for(k=0;k<M;k++)//capacity交换
{
temp.capacity[k]=plant[i].capacity[k];
plant[i].capacity[k]=plant[i+1].capacity[k];
plant[i+1].capacity[k]=temp.capacity[k];
}

for(k=0;k<M;k++)//generated交换
{
temp.generated[k]=plant[i].generated[k];
plant[i].generated[k]=plant[i+1].generated[k];
plant[i+1].generated[k]=temp.generated[k];
}

for(k=0;k<M;k++)//netused交换
{
temp.netused[k]=plant[i].netused[k];
plant[i].netused[k]=plant[i+1].netused[k];
plant[i+1].netused[k]=temp.netused[k];
}

for(k=0;k<M;k++)//power_used_rate交换
{
temp.power_used_rate[k]=plant[i].power_used_rate[k];
plant[i].power_used_rate[k]=plant[i+1].power_used_rate[k];
plant[i+1].power_used_rate[k]=temp.power_used_rate[k];
}

for(k=0;k<M;k++)//coal交换
{
temp.coal[k]=plant[i].coal[k];
plant[i].coal[k]=plant[i+1].coal[k];
plant[i+1].coal[k]=temp.coal[k];
}
j=i;
}
n=j;
}
}

/*
5.输出排序后的机组信息。包括电厂名称、机组代码、发电量(万kWh)、上网电量(万kWh)、供电标准煤耗(g/kWh)。
*/

执行结果:

输入电厂和各电厂机组信息(上网电量<发电量):

第1电厂和它的机组信息:
电厂名:gong
3个机组代码:100 101 102
3个机组额定容量(万千瓦):853 956 745
3个机组发电量(万kWh):800 900 796
3个机组上网电量(万kWh) (上网电量<发电量):45 63 42
3个机组厂用电率(厂用电率的范围是3-25):5 6 4
3个机组供电标准煤耗(g/kWh)供电煤耗的范围是200-500:260 360 345

第2电厂和它的机组信息:
电厂名:chang
3个机组代码:200 201 202
3个机组额定容量(万千瓦):856 954 687
3个机组发电量(万kWh):853 962 785
3个机组上网电量(万kWh) (上网电量<发电量):52 64 53
3个机组厂用电率(厂用电率的范围是3-25):6 5 3
3个机组供电标准煤耗(g/kWh)供电煤耗的范围是200-500:266 362 314

排序前电厂及其机组的信息:

输出电厂信息:

第1个电厂电厂名:gong
第1个电厂装机容量:2554
第1个电厂全厂发电量:2496
第1个电厂全厂上网电量:150
第1个电厂全厂厂用电率:5
第1个电厂全厂供电标准煤耗:325

第2个电厂电厂名:chang
第2个电厂装机容量:2497
第2个电厂全厂发电量:2600
第2个电厂全厂上网电量:169
第2个电厂全厂厂用电率:4
第2个电厂全厂供电标准煤耗:317

排序后电厂及其机组的信息:

输出电厂信息:

第1个电厂电厂名:chang
第1个电厂装机容量:2554
第1个电厂全厂发电量:2496
第1个电厂全厂上网电量:150
第1个电厂全厂厂用电率:5
第1个电厂全厂供电标准煤耗:317

第2个电厂电厂名:gong
第2个电厂装机容量:2497
第2个电厂全厂发电量:2600
第2个电厂全厂上网电量:169
第2个电厂全厂厂用电率:4
第2个电厂全厂供电标准煤耗:325

Press any key to continue
温馨提示:答案为网友推荐,仅供参考
相似回答