當前位置:首頁 » 編程語言 » C語言sxy分析
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

C語言sxy分析

發布時間: 2023-04-04 17:32:11

A. C語言曲線擬合原理

雖然我知道什麼是曲線擬合,怎麼做,但是我不清楚你問題的具體內容,
從chuaike24的回答
「請高手 說實話 我是菜鳥 但你的程序感覺好凌亂 好多地方可以精簡說最明顯的問題 power函數返回值無論怎樣都返回0 」來看,我可能是沒看到你的程序,所以信息不全。
我只回答什麼是曲線擬合
曲線擬合,簡單來說,是指以近似的方法用一條曲線逼近一組數據點。
逼近的方法最常用的事最小二乘法,當然也有其他方法。
逼近的曲線可以是直線,也可以是多項式曲線,二次,三次,多次,也可以是分段多項式曲線,也可以是B樣條曲線。在這里,如果不需要深入研究,你只要把B樣條曲線理解為一種近似於分段多項式曲線即可。
你問的不多,這些對你的回答已經足夠,需要深入了解再問

B. C語言的實驗報告中,分析與討論要怎麼寫,大概說一下

通過分析實驗要求改進演算法,給出多種實現方式間的優劣比較。

C. C語言 程序設計 銷售管理系統

/*計算上個月每個人每種產品的銷售額。
1)按銷售額對銷售員進行排序,輸出排序結果(銷售員代號)
2)統計每種產品的總銷售額,對這些產品按從高到底的順序,輸出排序結果(需輸出產品的代號和銷售額)
3)輸出統計報表如下:*/

#include <stdio.h>
#include <string.h>
#include <conio.h>
#include <stdlib.h>
#define Z 5
#define R 4 /*定義宏常量便於程序的一般化*/ /*R表示銷售員個數*/
typedef struct /*縮短結構體變數名*/
{
int shangpin[Z]; /*定義結構體便於信息的存儲和讀寫,辨別*/ /*R是表示商品的種類,最後一個為該銷售員商品總和*/
}data;
void menu()
{ printf(" *******************************************************\n");
printf(" 0.結束操作\n");
printf(" 1.計算上個月每個人每種產品的銷售額\n");
printf(" 2.按銷售額對銷售員進行排序,輸出排序結果\n");
printf(" 3.統計每種產品的總銷售額,輸出排序結果\n");
printf(" 4.輸出統計報表\n");
printf(" ******************************************************\n");
}
void data_read(data *x) /*讀入函數使程序簡潔*/
{
FILE *fp;
char fname[10];
int i;
printf("您想查詢哪個月?\n");
printf("請輸入月份:"); /*輸入文件名,這樣可以進行各個月份信息讀入*/
scanf("%s",fname);
strcat(fname,".txt");/*連接文件屬性*/
if((fp=fopen(fname,"rb"))==NULL) /*打開文件*/
{
printf("can not open the file\n");
exit(0);
}
for(i=0;i<R;i++) /*讀出信息*/
if(fread(x+i,sizeof(data),1,fp)!=1)
printf("讀入信息出錯!\n");
}
void data_count(data *x) /*計算上個月每個人每種產品的銷售額*/
{
FILE *fp;
char fname[10];
int j,t; /*用於控制循環*/
int i,k,s; /*用於定義職工序號,產品序號,產品數量*/
system("cls");
printf("您想計算哪個月?\n");
printf("請輸入月份:"); /*輸入文件名,這樣可以進行各個月份信息寫入*/
scanf("%s",fname);
strcat(fname,".txt");
if((fp=fopen(fname,"wb"))==NULL) /*打開文件*/
{
printf("can not open the file\n");
exit(0);
}
for(j=0;j<R;j++) /*對商品數量清零*/
for(t=0;t<Z;t++)
(x+j)->shangpin[t]=0;
printf("please put the information about the 職工編號,產品編號,銷售數量\n"); /*寫入信息*/
for(j=0;;j++)
{
scanf("%d%d%d",&i,&k,&s);
if(i==0) /*輸入職工為0時結束信息輸入*/
break;
if(i>R||i<0||k>Z||k<0)
{
printf("the information error!\n"); /*避免輸入信息出錯*/
continue;
}
else
(x+i-1)->shangpin[k-1]=(x+i-1)->shangpin[k-1]+s;/*統計各個人的各種產品的數量,-1為了和數組中的序號相匹配*/
}
for(j=0;j<R;j++)
if(fwrite((x+j),sizeof(data),1,fp)!=1) /*把信息寫入文件中便有以後調用*/
printf("write error!\n");
fclose(fp); /*關閉文件避免信息遺漏*/
}
void range_sxy(data *x) /*按銷售額對銷售員進行排序,輸出排序結果*/
{
FILE *fp;
char fname[10];
int i,k,j,t,bianhao[R]=,z;
system("cls");
printf("你要哪個月的?\n");
printf("請輸入月份:"); /*輸入文件名,這樣可以進行各個月份信息讀入*/
scanf("%s",fname);
strcat(fname,".txt");
if((fp=fopen(fname,"rb"))==NULL) /*打開文件*/
{
printf("can not open the file\n");
exit(0);
}
for(i=0;i<R;i++) /*讀出信息*/
if(fread(x+i,sizeof(data),1,fp)!=1)
printf("讀入信息出錯!"); /*讀入信息提示*/
for(i=0;i<R;) /*用於存儲職工編號*/
bianhao[i]=i++;
printf("請輸入按何種產品排序\n");
scanf("%d",&k);
k=k-1; /*便於與結構體中的數組值對應*/
for(i=0;i<R;i++) /*按K種產品對銷售員排序,選擇法排序*/
{
t=i;
for(j=i+1;j<R;j++)
if((x+bianhao[t])->shangpin[k]<(x+bianhao[j])->shangpin[k])/*調用職工各自對應的結構體內的產品數量*/
t=j;
if(t!=i)
{
z=bianhao[i];
bianhao[i]=bianhao[t];
bianhao[t]=z;
}
}
printf("按%d產品對銷售員排序為:\n",k+1);
for(i=0;i<R;i++)
printf("%5d",bianhao[i]+1);
getch();
fclose(fp);
}
void range_shangpin(data *x) /*統計每種產品的總銷售額,輸出排序結果*/
{
FILE *fp;
char fname[10];
int i,j,sum[Z]=,bianhao[Z]=,z,t,k;
system("cls");
printf("您想計算哪個月的?\n");
printf("請輸入月份:"); /*輸入文件名,這樣可以進行各個月份信息讀入*/
scanf("%s",fname);
strcat(fname,".txt");
if((fp=fopen(fname,"rb"))==NULL) /*打開文件*/
{
printf("can not open the file\n");
exit(0);
}
for(i=0;i<R;i++) /*讀出信息*/
if(fread(x+i,sizeof(data),1,fp)!=1)
printf("讀入信息出錯!");
for(i=0;i<Z;i++) /*對各種商品求和*/
for(j=0;j<R;j++)
sum[i]=sum[i]+(x+j)->shangpin[i];
for(i=0;i<Z;) /*用於存儲商品編號*/
bianhao[i]=i++;
for(i=0;i<Z;i++)
printf("%3d",bianhao[i]);
for(i=0;i<Z;i++) /*對產品從高到低排序,選擇法排序*/
{
t=i;
for(j=i+1;j<Z;j++) /*產品變化時,產品編號也隨之變化,便於輸出*/
if(sum[t]<sum[j])
t=j;
if(t!=i)
{
k=sum[i];
sum[i]=sum[t];
sum[t]=k;
z=bianhao[i];
bianhao[i]=bianhao[t];
bianhao[t]=z;
}
}
printf("輸出產品排序\n");
printf("產品編號 數量\n");
for(i=0;i<Z;i++)
printf("%-10d%-10d\n",bianhao[i]+1,sum[i]);
getch();
fclose(fp);
}
void data_out(data *x) /*輸出統計報表*/
{
FILE *fp;
char fname[10];
int i,j,sum[Z+1]=;
system("cls");
printf("您想計算哪個月?\n");
printf("請輸入月份:"); /*輸入文件名,這樣可以進行各個月份信息讀入*/
scanf("%s",fname);
strcat(fname,".txt");
if((fp=fopen(fname,"rb"))==NULL) /*打開文件*/
{
printf("can not open the file\n");
exit(0);
}
for(i=0;i<R;i++) /*讀出信息*/
if(fread(x+i,sizeof(data),1,fp)!=1)
printf("讀入信息出錯!");
for(i=0;i<Z;i++) /*對各種商品求和*/
for(j=0;j<R;j++)
sum[i]=sum[i]+(x+j)->shangpin[i];
for(i=0;i<Z;i++) /*求商品總和*/
sum[Z]=sum[Z]+sum[i];
printf("輸出統計報表如下:\n"); /*按要求輸出統計表*/
printf("產品代號 銷售之和 銷售員代號\n");
for(i=0;i<R;i++)
for(j=0;j<Z;j++)
printf("%-10d%-10d%-10d\n",j+1,(x+i)->shangpin[j],i+1);
printf("***********************************\n");
for(i=0;i<Z;i++)
{
if(i==0)
printf("%d產品之和 %-10d 總和 %-10d\n",i+1,sum[i],sum[Z]);
else
printf("%d產品之和 %-10d\n",i+1,sum[i]);
}
getch();
}
void main()
{
int i,choice;
data sxy[R]; /*R表示職工的個數,前面的宏常量*/
for(i=0;;i++)
{
system("cls"); /*清頻命令*/
menu(); /*菜單函數提示用戶怎樣選擇*/
printf("你想做什麼?\n");
printf("請選擇:"); /*輸入要進行的操作*/
scanf("%d",&choice);
if(choice==0) /*退出程序*/
break;
else
switch(choice)
{
case 1 : data_count(sxy);break; /*計算上個月每個人每種產品的銷售額*/
case 2 : range_sxy(sxy);break; /*按銷售額對銷售員進行排序,輸出排序結果*/
case 3 : range_shangpin(sxy);break; /*統計每種產品的總銷售額,輸出排序結果*/
case 4 : data_out(sxy);break; /*輸出統計報表*/
}
}
}
請採納答案,支持我一下。