PCDVD數位科技討論區
PCDVD數位科技討論區   註冊 常見問題 標記討論區為已讀

回到   PCDVD數位科技討論區 > 其他群組 > 疑難雜症區
帳戶
密碼
 

回應
 
主題工具
kelly7732
New Member
 

加入日期: Jan 2007
文章: 2
Question 請教C++的高手們

計概老師出的題目,希望各位大大能夠幫忙解答~感激不盡!!! :

一所附的統計程式(函式庫)請建立自己的統計軟體系統,你所建立的系統至少能構府何以下各要求:
1.輸入方式:使用者可由螢幕詢問狀況下輸入資料,或由使用者選擇由檔案輸入資料(兩樣皆具備)

2.統計函式:至少須包含1mean(平均數)2.median(中位數)3.mode(眾數)4.range(全距)
3.輸出方式:事用者可選擇將計算結果出至螢幕或輸出至檔案(兩樣皆具備)

測試資料如下:
學生編號 月薪
1. 2850
2. 2950
3. 3050
4. 2880
5. 2755
6. 2710
7. 2890
8. 3130
9. 2940
10. 3325
11. 2920
12. 2880

所附的統計程式(函式庫)
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include <float.h>
#include "statlib.h"

int main(void)
{
int listsize, idx;
double sm, rnge, amean, mrange, med, ptile, sk, iqrng,
mod, s_var, p_var, ssdev, psdev, xsqr, gmean, hmean,
rmsqr, kurt, md, sem, cv, tuk, trim, ktile;
double *qt, *mnmx, *conf95, *conf99;
//double data[] = {2850, 2950, 3050, 2880, 2755, 2710, 2890, 3130, 2940, 3325,2920,2880};
//double data[] = {31,29,26,33,40,28,30,25};
//double data[] = {1, 4, 9, 16, 25, 36, 49, 64, 81};
//double data[] = {60, 72, 64, 67, 70, 68, 71, 68, 73, 59};
double data[] = {1987,1987,1991,1992,1992,1992,1992,1993,1994,1994,1995};
listsize = sizeof(data) / sizeof(*data);
ktile = 30.0; /* argument to percentile() */
printf("\n%d data:\n", listsize);
for(idx = 0; idx < listsize; idx++)
{
printf("%.3f ", data[idx]);
}

sm = sum(data, listsize);
mnmx = min_max(data, listsize);
rnge = range(data, listsize);
amean = a_mean(data, listsize);
gmean = g_mean(data, listsize);
hmean = h_mean(data, listsize);
tuk = tukeys_trimean(data, listsize);
trim = trimmed_mean(data, listsize, 20.0);
mrange = midrange(data, listsize);
med = median(data, listsize);
ptile = percentile(data, listsize, ktile);
qt = quartiles(data, listsize);
iqrng = interquartile_range(data, listsize);
mod = mode(data, listsize);
s_var = svar(data, listsize);
p_var = pvar(data, listsize);
rmsqr = rms(data, listsize);
psdev = p_stdev(data, listsize);
ssdev = s_stdev(data, listsize);
cv = coeff_var(data, listsize);
md = mean_dev(data, listsize);
sem = std_err_mean(data, listsize);
sk = skewness(data, listsize);
kurt = kurtosis(data, listsize);
xsqr = chi_square(data, listsize);
conf95 = confidence_95(data, listsize);
conf99 = confidence_99(data, listsize);

printf("\n\nsum: %.3f\n", sm);
printf("min/max: %.3f/%.2f\n", mnmx[0], mnmx[1]);
printf("range: %.3f\n", rnge);
printf("arithmetic mean: %.3f\n", amean);
printf("geometric mean: %.3f\n", gmean);
printf("harmonic mean: %.3f\n", hmean);
printf("Tukey's trimean: %.3f\n", tuk);
printf("trimmed mean(20%%): %.3f\n", trim);
printf("midrange: %.3f\n", mrange);
printf("median: %.3f\n", med);
printf("%.fth percentile: %.3f\n", ktile, ptile);
printf("quartiles: %.3f %.3f %.3f\n", qt[0],qt[1],qt[2]);

printf("interquartile range: %.3f\n", iqrng);
printf("mode: %.3f\n", mod);
printf("sample variance: %.3f\n", s_var);
printf("population variance: %.3f\n", p_var);
printf("root mean square: %.3f\n", rmsqr);
printf("population standard deviation: %.3f\n", psdev);
printf("sample standard deviation: %.3f\n", ssdev);
printf("coefficient of variability: %.3f\n", cv);
printf("mean deviation: %.3f\n", md);
printf("standard error of the mean: %.3f\n", sem);
printf("skewness: %f\n", sk);
printf("kurtosis: %f\n", kurt);
printf("chi square: %.3f\n", xsqr);
printf("95%% confidence interval: %.3f - %.3f\n", conf95[0], conf95[1]);
printf("99%% confidence interval: %.3f - %.3f\n", conf99[0], conf99[1]);

free(qt);
free(mnmx);
free(conf95);
free(conf99);

return 0;
}
     
      

此文章於 2007-01-14 08:00 PM 被 kelly7732 編輯.
舊 2007-01-14, 07:56 PM #1
回應時引用此文章
kelly7732離線中  
hollowaysxp
Senior Member
 
hollowaysxp的大頭照
 

加入日期: Oct 2005
您的住址: 桃園-TW
文章: 1,446
這不是寫C嗎?怎麼要請教C++高手?
妳要寫成物件導向嗎?
 
__________________
My Computer [2003.09]-已送人

CPU:Intel Pentium4 2.6CG
M/B:MSI 865PE Neo 2-LS
RAM:Transcend DDR400 512MB x 2 (Dual) (Samsung UCCC)
Display Card:GeCube ATI X1300XT 256MB
HDD:Maxtor 160GB
DVD:Pioneer A09XL
Power:SevenTeam (350W)
keyboard:Logitech 飆風手 精華版



-----------------------------------
My Computer [2009.06]

[COLOR=Yellow]CPU:Intel Core 2 Duo E8200 +Thermalright Ultra-120A
M/B:ASUS P5Q
RAM:ADATA DDRII 800 2GB x 2 (海力士) + Transcend DDRII 800 2GBx2
Display Card:SAPPHIRE HD 4830 GDDR3 512MB
HDD:WD 160GB JB IDE + WD 200GB + WD 250GB AAKS SATAII + WD 640GB AAKS SATAII + WD 500GB AACS SATAII + WD 2TB 64MB + ExcelStor 160GB SATAII
DVD:Pioneer A09XL
Power:SevenTeam ST-420BKV(420W) Ver 2.0
Sound Card:Creative Sound Blaster Audigy 2 + ONKYO SE-90PCI
Speaker:Creative INSPIRE T2900
keyboard:Logitech 飆風手 精華版
Mouse:Logitech G1 換 OMRON D2F-01F 按鍵
LCD Monitor:ViewSonic VX2235wm
TV Card:UPMOST MTV雙語電視卡

歡迎到我的論壇閒聊
http://nitcs.itrello.com/forum/
舊 2007-01-15, 01:27 AM #2
回應時引用此文章
hollowaysxp離線中  
harrisonlin
Advance Member
 
harrisonlin的大頭照
 

加入日期: Jun 2003
您的住址: Taipei
文章: 442
註冊來問作業的?找錯地方囉!去程式設計俱樂部試試吧...
__________________
現今世道,自爆文當故事書,站長的話做成語錄,幾百年前的文章嘛沒事就挖出來考古...
舊 2007-01-15, 09:32 AM #3
回應時引用此文章
harrisonlin離線中  
kelly7732
New Member
 

加入日期: Jan 2007
文章: 2
更正

抱歉 ,是我搞錯了,是C才對!!! 感謝樓上大大的提醒!!!!!!
舊 2007-01-15, 12:33 PM #4
回應時引用此文章
kelly7732離線中  


回應


POPIN
主題工具

發表文章規則
不可以發起新主題
不可以回應主題
不可以上傳附加檔案
不可以編輯您的文章

vB 代碼打開
[IMG]代碼打開
HTML代碼關閉



所有的時間均為GMT +8。 現在的時間是07:36 PM.


vBulletin Version 3.0.1
powered_by_vbulletin 2026。