|  | 
| 
 | |||||||
| 論壇說明 | 
| 歡迎您來到『史萊姆論壇』  ^___^ 您目前正以訪客的身份瀏覽本論壇,訪客所擁有的權限將受到限制,您可以瀏覽本論壇大部份的版區與文章,但您將無法參與任何討論或是使用私人訊息與其他會員交流。若您希望擁有完整的使用權限,請註冊成為我們的一份子,註冊的程序十分簡單、快速,而且最重要的是--註冊是完全免費的! 請點擊這裡:『註冊成為我們的一份子!』 | 
|    | 
|  | 主題工具 | 顯示模式 | 
|  2006-01-09, 08:07 PM | #1 | 
| 註冊會員 |  求助~c++的程式 麻煩大大們幫我解解迷惑 題目如下 用一個二維陣列解決以下問題,某家公司有4名銷售員(1到4個) 他們負責5項產品(1到5),每天每位銷售員都對每項產品交上一份銷售狀況報告 每份報告內有 a銷售員編號 b產品編號 c當天這項產品的銷售金額 所以每位銷售員每天都會交出5份報告,假設手邊有上個月的報告, 撰寫一個程式讀入上個月所有的銷售報告,然後計算出每人每項產品的銷售總金額 所有的總金額存放在一個稱為sales的雙下標陣列中,處理完後, 以表格的方式列印結果出來. 表格的每一列代表某一項產品,每一行代表每一位銷售員. 所以,對某一列加總便可得到某項產品上個月的銷售總額 而對某一行加總,則可以得到某為銷售員上個月的銷售總額 你的列印結果應把每一列加總印在此列的最右邊 把每行的加總印在此行的最下面 請大大們幫忙解題 感謝大大 | 
|   | 
		送花文章: 539,
		
			
		   | 
|  2006-01-11, 12:53 PM | #2 (permalink) | 
| 管理版主              |   語法: ╲銷售員 產@ 一 二 三 四 品 ︱================= [1]︱ [2]︱ [3]︱ [4]︱ [5]︱ 語法: #include <cstdlib>
#include <iostream>
//以下中文 變數名 請自行改成 英文
#define 銷售員共有 4
#define 產品共有 5
//定義一個報告的結構
typedef struct
{
   int 銷售員編號;
   int 產品編號;
   int 產品當天銷售金額;
}report;
using namespace std;
int main(int argc, char *argv[])
{
	long sumtemp=0;
	int i,j;
	FILE *inp;
	report 銷售報告;
	int sales[銷售員共有][產品共有]={0};
	inp=fopen("MonthReport.bin","rb");
	while(!feof(inp)){
		fread(&銷售報告,sizeof(銷售報告),1,inp);
		//因為C/C++的陣列是從 0開始編號所以 -1
		sales[銷售報告.銷售員編號 -1][銷售報告.產品編號 -1]= 
			sales[銷售報告.銷售員編號 -1][銷售報告.產品編號 -1]+ 銷售報告.產品當天銷售金額;
	}
	fclose(inp);
	for(j=0; j<產品共有; j++){
	   for(i=0; i<銷售員共有; i++){
	   	sumtemp=sumtemp+sales[i][j];
		printf("%d\t",sales[i][j]); //列印sales[i][j]
	   }
	   printf("<=產品的總銷售額:%ld\n",sumtemp); //列印每項產品的總銷售額
	   sumtemp=0;
 	}
	//列印每位銷售員的業績 (自成一列)
	for(i=0; i<銷售員共有; i++){
	   for(j=0; j<產品共有; j++){
		sumtemp=sumtemp+sales[i][j];
	   }
     	   printf("%ld\t",sumtemp);
	   sumtemp=0;
 	}
    system("PAUSE");
    return EXIT_SUCCESS;
}語法: /*這個程式必須配合 MonthReport.bin 格式
所以以下是 月報告成檔 程式		*/
#include <cstdlib>
#include <iostream>
//以下中文 變數名 請自行改成 英文
#define SN 4
#define GN 5
//定義一個報告的結構
typedef struct
{
   int serno;
   int goodsno;
   int goodsm;
}report;
using namespace std;
int main(int argc, char *argv[])
{
	FILE *inp;
	report sreport;
	inp=fopen("MonthReport.bin","wb");
    	//輸入當天報告 
	for(int i=0; i<SN; i++){
  	  sreport.serno=i+1;
                  for(int j=0; j<GN; j++){
		printf("銷售員編號[%d]\n請輸入 %d號產品銷售金額: ",i+1,j+1);
		sreport.goodsno=j+1;
                                scanf("%d",&sreport.goodsm);
		fwrite(&sreport,sizeof(sreport),1,inp);
                  }
                printf("\n");
                }
	fclose(inp);
    system("PAUSE");
    return EXIT_SUCCESS;
} | 
|   | 
		送花文章: 2058,
		
			
		   |