商品總數c語言,商品銷售額統計C語言

本文目錄一覽:

用C語言怎麼統計商品被售出數量啊?分析分析?

定義全局變量count,沒售出一件商品count++;最後就能統計出數量了。

用C語言來編寫:商品銷售統計程序

#includeiostream

#includecstring

#includefstream

#includestdlib.h//system(“cls”)//清屏

#includeconio.h//getche()

using namespace std;

//全局變量

int i=0;//已錄入商品總個數

char ch;//cinch

int n;//case(n)

char code[10];

char name[10];

char unit[10];

int amount;

float unitprice;

float total=0;//總價

ofstream f1(“./test.txt”);

ofstream f2(“./sell.txt”);//構建輸出流,沒有文件就建立

class Goods

{

private:

char code[10];//代碼

char name[10];//名稱

char unit[10];//單位

int amount;//總數

float unitprice;//單價

public:

Goods();

Goods(char co[10],char na[10],char un[10],int am,float unpr);//構造函數

void f_write();// 錄入

void f_change();//改變

void f_delete();//刪除

void display();//顯示全部商品信息

void s_buy();//買入

};

//構造函數

Goods::Goods(){}

Goods::Goods(char co[10],char na[10],char un[10],int am,float unpr)

{

strcpy(code,co);

strcpy(name,na);

strcpy(unit,un);

amount=am;

unitprice=unpr;

}

Goods *g[50];

//商品信息錄入

void Goods::f_write()

{

cout”請輸入第”i+1″件商品代碼:”endl;

cincode;

cout”請輸入第”i+1″件商品名稱:”endl;

cinname;

cout”請輸入第”i+1″件商品計量單位:”endl;

cinunit;

cout”請輸入第”i+1″件商品總數:”endl;

cinamount;

cout”請輸入第”i+1″件商品單價:”endl;

cinunitprice;

g[i]=new Goods(code,name,unit,amount,unitprice);

i++;

cout”信息錄入成功!(繼續錄入按y,返回上一層按n)”endl;

cinch;

if(ch==’y’)

{

f_write();

}

}

//改變商品信息

void Goods::f_change()

{

cout”請輸入要改變的商品代碼:”;

cincode;

for(int h=0;hi;h++)

{

if(0 == strcmp(g[h]-code,code))

{

cout”商品信息如下:”endl;

cout”代碼 名稱 單價 總數 單位”endl;

coutg[h]-code”\t”g[h]-name”\t”g[h]-unitprice

“\t”g[h]-amount”\t”g[h]-unitendl;

char newco,newna,newun;

int newam;

float newunpr;

cout”你想要修改:1、代碼;2、名稱;3、單價;4、總數;5、單位。”endl;

cinn;

switch(n)

{

case 1:

cout”請輸入修改後的商品代碼:”;

cinnewco;

g[h]-code[10]=newco;

cout”修改成功!”endl;

break;

case 2:

cout”請輸入修改後的商品名稱:”;

cinnewna;

g[h]-name[10]=newna;

cout”修改成功!”endl;

break;

case 3:

cout”請輸入商品單價:”;

cinnewunpr;

g[h]-unitprice=newunpr;

cout”修改成功!”endl;

break;

case 4:

cout”請輸入修改後的商品總數:”;

cinnewam;

g[h]-amount=newam;

cout”修改成功!”endl;

break;

case 5:

cout”請輸入修改後的商品單位:”;

cinnewun;

g[h]-unit[10]=newun;

cout”修改成功!”endl;

break;

}

break;

}//if

}//for循環

cout”是否繼續修改?(y/n)”endl;

cinch;

if(ch==’y’)

{

f_change();

}

}

//刪除信息

void Goods::f_delete()

{

cout”請輸入要刪除的商品代碼:”;

cincode;

for(int h=0;hi;h++)

{

if(0 == strcmp(g[h]-code,code))

{

for(int k=h;ki;k++)

{

g[k]=g[k+1];

i–;

}

}

}

cout”刪除成功!”endl;

cout”是否繼續刪除?(y/n)”endl;

cinch;

if(ch==’y’)

{

f_delete();

}

}

//打印信息

void Goods::display()

{

system(“cls”);

cout” “endl;

cout”———–全部商品信息如下——————-“endl;

cout” “endl;

cout”代碼 名稱 單價 總數 單位”endl;

f1″ “endl;

f1″—————全部商品信息如下————–“endl;

f1″ “endl;

f1″代碼 名稱 單價 總數 單位”endl;

if(i==0)

{

cout”系統未曾錄入任何商品信息,或記錄被刪除!”;

}

for(int k=0;ki;k++)

{

coutg[k]-code”\t”g[k]-name”\t”g[k]-unitprice

“\t”g[k]-amount”\t”g[k]-unitendl;

f1g[k]-code”\t”g[k]-name”\t”g[k]-unitprice

“\t”g[k]-amount”\t”g[k]-unitendl;

}

coutendl;

}

//買入

void Goods::s_buy()

{

float price=0;//單個商品價格

cout”請輸入想要買的商品代碼:”;

cincode;

for(int h=0;hi;h++)

{

if(0 == strcmp(g[h]-code,code))

{

cout”請輸入想要購買的商品數量:”;

cinamount;//當前要購買的數量

price=amount*g[h]-unitprice;

g[h]-amount=g[h]-amount-amount;

coutendl;

cout”代碼 名稱 單價 數量 小計”endl;

coutg[h]-code”\t”g[h]-name”\t”g[h]-unitprice

“\t”g[h]-amountg[h]-unit”\t”priceendl;

f2″代碼 名稱 單價 數量 小計”endl;

f2g[h]-code”\t”g[h]-name”\t”g[h]-unitprice

“\t”g[h]-amountg[h]-unit”\t”priceendl;

total=total+price;

break;

}

}

cout”按1繼續購買,按2結束。”endl;

cinn;

if(n==2)

{

coutendl;

cout”購買結束,總計:”total”元!”endl;

}

else

{

s_buy();

}

}

//類外函數

//第一部分操作顯示

void f_screen()

{

system(“cls”);

Goods g;

cout”按相應鍵操作:”endl;

cout”0.錄入信息 1.更改信息 2.刪除信息 3.返回上一層”endl;

cinn;

switch(n)

{

case 0:

g.f_write();

if(ch==’n’||ch==’N’)

f_screen();

break;

case 1:

g.f_change();

if(ch==’n’||ch==’N’)

f_screen();

break;

case 2:

g.f_delete();

if(ch==’n’||ch==’N’)

f_screen();

break;

}

}

//第二部分操作顯示

void s_screen()

{

Goods g;

g.display();

coutendl;

g.s_buy();

}

//初始屏幕顯示

void screen()

{

system(“cls”);

cout” “endl;

cout”—————–商品銷售統計系統—————“endl;

cout” “endl;

f2″ “endl;

f2″—————-商品銷售統計系統————–“endl;

f2″ “endl;

cout”更改商品信息請按1,進行銷售統計請按-1。”endl;

cinch;

if(ch==’1′)

{

f_screen();

if(n==3)

screen();

}

else if(ch==’-1′)

{

s_screen();

}

else

{

cout”輸入錯誤,系統重新啟動!”;

screen();

}

}

int main()

{

screen();

return 0;

}

C語言設計商品管理系統,可以實現商品的錄入,查詢,求源代碼

#include stdio.h

#include conio.h

#include string.h

#define SIZE 300

typedef struct

{

char name[30];

int num;

char shang[10];

float price;

}record;

void DataInput(record *com, int *nptr);

int DataRead(record *com,int *nptr) ;

void DataStorage(record *com, int n); /*信息保存到文件*/

void DataFind( );

void DataDisPlay( );

void DataAdd( );

void DataDel( );

void DataStatistic( );

int main( )

{

record shangpin[SIZE];

int number=20; /*設商品數*/

char fn;

printf(“\t~~~~~~商品管理系統~~~~~~”);

while(1)

{

printf(“\n\t\t1.商品信息錄入\n”); /*顯示主菜單*/

printf(“\t\t2.商品信息顯示\n”);

printf(“\t\t3.商品信息查找\n”);

printf(“\t\t4.商品信息添加\n”);

printf(“\t\t5.商品信息刪除\n”);

printf(“\t\t6.商品信息統計\n”);

printf(“\t\t0.退出系統”);

printf(“\n\t~~~~~~~~~~~~~~~~\n”);

printf(“\t請輸入你的一個選項(數字0-6): “);

fflush(stdin);

scanf(“%c”,fn);

puts(“\n”);

switch(fn) /*切換到不同功能*/

{

case ‘1’:

DataInput(shangpin, number );

break; /*錄入信息*/

case ‘2’:DataDisPlay();

break; /*信息顯示*/

case ‘3’:

DataFind();

break; /*信息查找*/

case ‘4’:

DataAdd( );

break; /*增加*/

case ‘5’:

DataDel( );

break; /*刪除*/

case ‘6’:

DataStatistic();

break; /*信息統計*/

case ‘0’:

return 0;

default:puts(“\t\t沒有這個項!返回主菜單!”);

break;

}

printf(“\n\t\t完畢!按任意鍵繼續”);

getch( );

puts(“\n”);

}

}

void DataInput(record *com, int *nptr) /*商品信息錄入*/

{

int i = 0;

int n ; /*錄入的總數*/

char YesOrNo; /*判斷是否保存*/

char shangming[30]; /*商名*/

int haoma; /*商品號*/

char shangjia[10]; /*單價*/

float danjia;

printf(“\t\t請輸入商品個數:”);

scanf(“%d”,n);

*nptr = n; /*nptr返回商品個數*/

printf(“\t\t現在開始錄入這%d個商品信息:\n\n”,n);

while(in)

{

printf(“請輸入商品的商品名:”,i+1);

scanf(“%s”,shangming);

printf(“請輸入商品的商品號:”,i+1);

scanf(“%d”,haoma);

printf(“請輸入商品的生產商:”,i+1);

scanf(“%s”,shangjia);

printf(“請輸入商品的單價 :”,i+1);

scanf(“%f”,danjia);

if(danjia=0danjia=1000) /*有效的單價才錄入*/

{

strcpy(com[i].name,shangming);

com[i].num = haoma;

strcpy(com[i].shang,shangjia);

com[i].price = danjia;

i =i+1;

}

else

printf(“輸入的單價是一個無效的值!!!\n\n”);

} /*結束while*/

printf(“要保存您剛才錄入的數據嗎(Y/N)?”); /*選擇保存*/

fflush(stdin);

scanf(“%c”,YesOrNo);

if(YesOrNo==’y’||YesOrNo==’Y’)

DataStorage(com,n);

else if(YesOrNo==’n’||YesOrNo==’N’)

return;

else

printf(“輸入了不正確的選項\n”);

return;

} /*結束函數*/

void DataFind( ) /*查找*/

{

void OnNumber(record *com,int n ); /*按商品號排序*/

int key; /*key為要查找的關鍵值*/

int low = 0; /*下限*/

int high ; /*上限*/

int mid ; /*中間值*/

char ans; /*選項*/

record com[SIZE];

int n;

if(DataRead(com,n)==1) /*從文件中讀取信息*/

{

OnNumber(com,n); /*先按商品號排序*/

high = n;

do

{

printf(“\n\n\t\t請輸入你要查找的商品號:”);

scanf(“%d”,key);

low = 0;high = n;

while (low =high)

{

mid = (high + low)/2; /*折半查找法*/

if (key == com[mid].num )

{

printf(“\n\t\t你要找的是第%d個商品\n”,mid + 1);

printf(“\t\t結果如下:\n\n”);

printf(“序號\t\t商品名\t 商品號\t生產商\t單價\n”);

printf(“%3d%17s%12d%12s%8.1f\n”,mid+1,com[mid].name,com[mid].num,com[mid].shang,

com[mid].price);

break; /*如果找到則退出循環*/

}

if (key com[mid].num ) low = mid + 1;

else high = mid – 1;

}

if (low high)

printf(“\t\t,沒有找到這個價格!\n”);

printf(“\n\t\t還要繼續查詢嗎(Y/N)?”);

ans = getch( );

}

while (ans ==’Y’||ans == ‘y’); /*結束do….while*/

}

}

void DataStorage(record *com, int n) /*錄入保存文件*/

{

int i;

FILE *comPtr;

char FileName[20];

printf(“請輸入您要保存的文件名:”);

scanf(“%s”,FileName);

printf(“正在將商品信息保存到文件,請稍候……\n”);

if((comPtr=fopen(FileName,”w”))==NULL)

printf(“沒有該文件\n”);

else

for(i=0 ; in ; i++)

fprintf(comPtr,”\n%17s%12d%12s%8.1f”,com[i].name,com[i].num,com[i].shang,com[i].price);

fclose(comPtr);

}

int DataRead(record *com,int *nptr) /*讀取文件*/

{

int i=0;

char datafile[20];

FILE *comPtr;

*nptr = 0;

printf(“請輸入文件名:”);

scanf(“%s”,datafile);

if((comPtr = fopen(datafile,”r”)) == NULL) /*打開文件*/

{

printf(“沒有該文件,請重新輸入!\n”);

return 0;

}

else

{

printf(“正在讀取商品單價,請稍候……\n”);

while (!feof(comPtr))

{

fscanf(comPtr,”%s%d%s%f”,com[i].name,com[i].num,com[i].shang,com[i].price);

i++;

}

*nptr = i;

printf(“\n”);

fclose(comPtr);

return 1;

}

}

void DataDisPlay()

{

void OnPrice(record *com,int n ); /*按單價*/

void OnNumber(record *com,int n ); /*按商品號*/

int N;

int i;

record com[300];

char YesNo; /*是否按順序顯示*/

char tp;

if(DataRead(com,N)==1) /*從文件讀取數據*/

{

printf(“序號\t\t商品名\t 商品號\t生產商\t單價\n”);

for(i=0;iN;i++)

printf(“%3d%17s%12d%12s%8.1f\n”,i+1,com[i].name,com[i].num,com[i].shang,com[i].price);

printf(“要按順序顯示嗎?(Y/N)?”);

fflush(stdin);

scanf(“%c”,YesNo);

if(YesNo==’y’||YesNo==’Y’)

{

printf(“\t請輸入排序方式:\n”);

printf(“\t(1.按價格排序從低到高;2.按商品號排序從低到高.)”);

fflush(stdin);

scanf(“%c”,tp);

if(tp==’1′)

OnPrice(com,N);

else if(tp ==’2′)

OnNumber(com,N);

else

printf(“\t輸入了不正確項!\n”);

}

}

} /*結束顯示成績*/

void OnPrice(record *com,int n ) /*按單價順序*/

{ int i,j;

record temp;

printf(“\t\t按單價排序—\n\n”);

printf(“商品總數為%d:\n”,n);

for(j=0 ; jn-1 ; j++) /*冒泡排序*/

for(i=0 ; in-j-1 ; i++)

if(com[i].pricecom[i+1].price)

{

temp=com[i];

com[i]=com[i+1];

com[i+1]=temp;

}

printf(“\n\t\t按成績排序的結果如下(按分數從低到高):\n\n”);

printf(“序號\t\t商品名\t 商品號\t生產商\t單價\n”);

for(i=0 ; in ; i++)

printf(“%3d%17s%12d%12s%8.1f\n”,i+1,com[i].name,com[i].num,com[i].shang,

com[i].price);

}

void OnNumber(record *com,int n ) /*按序號順序*/

{

int i,j;

record temp;

printf(“\t\t按商品號排序—\n\n”);

printf(“商品總數為%d:\n”,n);

for(j=0 ; jn-1 ; j++)

for(i=0 ; in-j-1 ; i++)

if(com[i].numcom[i+1].num)

{

temp=com[i];

com[i]=com[i+1];

com[i+1]=temp;

}

printf(“\n\t按商品號排序的結果如下(按商品號從小到大):\n\n”);

printf(“序號\t\t商品名\t 商品號\t生產商\t單價\n”);

for(i=0 ; in ; i++)

printf(“%3d%17s%12d%12s%8.1f\n”,i+1,com[i].name,com[i].num,com[i].shang,

com[i].price);

}

void DataAdd( ) /*增加*/

{

int i=0,n,m; /*商品名稱*/

char shangming[30];

int haoma; /*生產商*/

char shangjia[10];

float danjia;

char YesOrNo;

record com[SIZE];

printf(“\t\t讀取原有數據信息—\n”);

if(DataRead(com,n)==1)

{

printf(“\t\t信息讀取完畢!\n\n”);

printf(“\t\t請輸入要添加的商品總數:”);

scanf(“%d”,m);

printf(“\t\t現在開始錄入這%d個商品信息:\n\n”,m);

while(im)

{

printf(“第%d個商品的商品名:”,i+1);

scanf(“%s”,shangming);

printf(“第%d個商品的商品號:”,i+1);

scanf(“%d”,haoma);

printf(“第%d個商品的生產商:”,i+1);

scanf(“%s”,shangjia);

printf(“第%d個商品的單價:”,i+1);

scanf(“%f”,danjia);

if(danjia=0danjia=1000) /*有效的單價才錄入*/

{

strcpy(com[i+n].name,shangming);

com[i+n].num = haoma;

strcpy(com[i+n].shang,shangjia);

com[i+n].price = danjia;

i =i+1;

}

else

printf(“輸入的單價是一個無效的值,請重新輸入!\n\n”);

}

printf(“要保存您剛才錄入的數據嗎(Y/N)?”);

fflush(stdin);

scanf(“%c”,YesOrNo);

if(YesOrNo==’y’||YesOrNo==’Y’)

DataStorage(com,n+m);

else if(YesOrNo==’n’||YesOrNo==’N’)

return;

else

printf(“輸入了不正確項,返回上一級\n”);

return;

}

}

void DataDel( )//刪除

{

void OnNumber(record *com,int n );

record com[SIZE];

int i; /*總記錄數*/

int n; /*要刪除的記錄號*/

int m;

printf(“\t\t讀取原有數據信息—\n”);

if(DataRead(com,n)==1)

{

printf(“\t\t原始數據如下:\n\n”);

OnNumber(com,n );

printf(“請輸入你要刪除的記錄的序號”);

scanf(“%d”,m);

if(m=1 m=n)

{

for(i=m-1;in-1;i++)

com [i] = com[i+1];

DataStorage(com,n-1);

}

}

}

void DataStatistic( ) /*統計信息*/

{

int high=0,low=200,ave=0;

int n,i,sum=0;

int g,l;

record com[SIZE];

printf(“讀取數據信息—\n”);

if(DataRead(com,n)==1)

{

printf(“商品總數為%d\n\n”,n);

for(i=0;in;i++)

{

if(com[i].pricehigh)

{

high = com[i].price;

g=i;

}

if(com[i].pricelow)

{

low = com[i].price;

l=i;

}

sum += com[i].price;

}

ave=sum/n;

printf(“\t\t最高\t最低\t平均\n”); /*計算值*/

printf(“商品單價統計:\t%d\t%d\t%d\n\n”,high,low,ave);

printf(“序號\t\t商品名\t 商品號\t生產商\t單價\n”);

for(i=0 ; in ; i++)

printf(“%3d%17s%12d%12s%8.1f\n”,i+1,com[i].name,com[i].num,com[i].shang,

com[i].price);

printf(“\t\t 序號\t\t 商品名\t 商品號\t 生產商 單價\n”);

printf(“單價最高的商品是:%3d%17s%12d%12s%8.1f\n\n”,g+1,com[g].name,com[g].num,com[g].shang,com[g].price);

printf(“單價最低的商品是:%3d%17s%12d%12s%8.1f\n”,l+1,com[l].name,com[l].num,com[l].shang,com[l].price);

} /*結束統計*/

}

c語言商品管理系統源代碼,加註釋

#include stdio.h

#include conio.h

#include string.h

#define SIZE 300

typedef struct

{

char name[30];

int num;

char shang[10];

float price;

}record;

void DataInput(record *com, int *nptr);

int DataRead(record *com,int *nptr) ;

void DataStorage(record *com, int n); /*信息保存到文件*/

void DataFind( );

void DataDisPlay( );

void DataAdd( );

void DataDel( );

void DataStatistic( );

int main( )

{

record shangpin[SIZE];

int number=20; /*設商品數*/

char fn;

printf(“\t~~~~~~商品管理系統~~~~~~”);

while(1)

{

printf(“\n\t\t1.商品信息錄入\n”); /*顯示主菜單*/

printf(“\t\t2.商品信息顯示\n”);

printf(“\t\t3.商品信息查找\n”);

printf(“\t\t4.商品信息添加\n”);

printf(“\t\t5.商品信息刪除\n”);

printf(“\t\t6.商品信息統計\n”);

printf(“\t\t0.退出系統”);

printf(“\n\t~~~~~~~~~~~~~~~~\n”);

printf(“\t請輸入你的一個選項(數字0-6): “);

fflush(stdin);

scanf(“%c”,fn);

puts(“\n”);

switch(fn) /*切換到不同功能*/

{

case ‘1’:

DataInput(shangpin, number );

break; /*錄入信息*/

case ‘2’:DataDisPlay();

break; /*信息顯示*/

case ‘3’:

DataFind();

break; /*信息查找*/

case ‘4’:

DataAdd( );

break; /*增加*/

case ‘5’:

DataDel( );

break; /*刪除*/

case ‘6’:

DataStatistic();

break; /*信息統計*/

case ‘0’:

return 0;

default:puts(“\t\t沒有這個項!返回主菜單!”);

break;

}

printf(“\n\t\t完畢!按任意鍵繼續”);

getch( );

puts(“\n”);

}

}

void DataInput(record *com, int *nptr) /*商品信息錄入*/

{

int i = 0;

int n ; /*錄入的總數*/

char YesOrNo; /*判斷是否保存*/

char shangming[30]; /*商名*/

int haoma; /*商品號*/

char shangjia[10]; /*單價*/

float danjia;

printf(“\t\t請輸入商品個數:”);

scanf(“%d”,n);

*nptr = n; /*nptr返回商品個數*/

printf(“\t\t現在開始錄入這%d個商品信息:\n\n”,n);

while(in)

{

printf(“請輸入商品的商品名:”,i+1);

scanf(“%s”,shangming);

printf(“請輸入商品的商品號:”,i+1);

scanf(“%d”,haoma);

printf(“請輸入商品的生產商:”,i+1);

scanf(“%s”,shangjia);

printf(“請輸入商品的單價 :”,i+1);

scanf(“%f”,danjia);

if(danjia=0danjia=1000) /*有效的單價才錄入*/

{

strcpy(com[i].name,shangming);

com[i].num = haoma;

strcpy(com[i].shang,shangjia);

com[i].price = danjia;

i =i+1;

}

else

printf(“輸入的單價是一個無效的值!!!\n\n”);

} /*結束while*/

printf(“要保存您剛才錄入的數據嗎(Y/N)?”); /*選擇保存*/

fflush(stdin);

scanf(“%c”,YesOrNo);

if(YesOrNo==’y’||YesOrNo==’Y’)

DataStorage(com,n);

else if(YesOrNo==’n’||YesOrNo==’N’)

return;

else

printf(“輸入了不正確的選項\n”);

return;

} /*結束函數*/

void DataFind( ) /*查找*/

{

void OnNumber(record *com,int n ); /*按商品號排序*/

int key; /*key為要查找的關鍵值*/

int low = 0; /*下限*/

int high ; /*上限*/

int mid ; /*中間值*/

char ans; /*選項*/

record com[SIZE];

int n;

if(DataRead(com,n)==1) /*從文件中讀取信息*/

{

OnNumber(com,n); /*先按商品號排序*/

high = n;

do

{

printf(“\n\n\t\t請輸入你要查找的商品號:”);

scanf(“%d”,key);

low = 0;high = n;

while (low =high)

{

mid = (high + low)/2; /*折半查找法*/

if (key == com[mid].num )

{

printf(“\n\t\t你要找的是第%d個商品\n”,mid + 1);

printf(“\t\t結果如下:\n\n”);

printf(“序號\t\t商品名\t 商品號\t生產商\t單價\n”);

printf(“%3d%17s%12d%12s%8.1f\n”,mid+1,com[mid].name,com[mid].num,com[mid].shang,

com[mid].price);

break; /*如果找到則退出循環*/

}

if (key com[mid].num ) low = mid + 1;

else high = mid – 1;

}

if (low high)

printf(“\t\t,沒有找到這個價格!\n”);

printf(“\n\t\t還要繼續查詢嗎(Y/N)?”);

ans = getch( );

}

while (ans ==’Y’||ans == ‘y’); /*結束do….while*/

}

}

void DataStorage(record *com, int n) /*錄入保存文件*/

{

int i;

FILE *comPtr;

char FileName[20];

printf(“請輸入您要保存的文件名:”);

scanf(“%s”,FileName);

printf(“正在將商品信息保存到文件,請稍候……\n”);

if((comPtr=fopen(FileName,”w”))==NULL)

printf(“沒有該文件\n”);

else

for(i=0 ; in ; i++)

fprintf(comPtr,”\n%17s%12d%12s%8.1f”,com[i].name,com[i].num,com[i].shang,com[i].price);

fclose(comPtr);

}

int DataRead(record *com,int *nptr) /*讀取文件*/

{

int i=0;

char datafile[20];

FILE *comPtr;

*nptr = 0;

printf(“請輸入文件名:”);

scanf(“%s”,datafile);

if((comPtr = fopen(datafile,”r”)) == NULL) /*打開文件*/

{

printf(“沒有該文件,請重新輸入!\n”);

return 0;

}

else

{

printf(“正在讀取商品單價,請稍候……\n”);

while (!feof(comPtr))

{

fscanf(comPtr,”%s%d%s%f”,com[i].name,com[i].num,com[i].shang,com[i].price);

i++;

}

*nptr = i;

printf(“\n”);

fclose(comPtr);

return 1;

}

}

void DataDisPlay()

{

void OnPrice(record *com,int n ); /*按單價*/

void OnNumber(record *com,int n ); /*按商品號*/

int N;

int i;

record com[300];

char YesNo; /*是否按順序顯示*/

char tp;

if(DataRead(com,N)==1) /*從文件讀取數據*/

{

printf(“序號\t\t商品名\t 商品號\t生產商\t單價\n”);

for(i=0;iN;i++)

printf(“%3d%17s%12d%12s%8.1f\n”,i+1,com[i].name,com[i].num,com[i].shang,com[i].price);

printf(“要按順序顯示嗎?(Y/N)?”);

fflush(stdin);

scanf(“%c”,YesNo);

if(YesNo==’y’||YesNo==’Y’)

{

printf(“\t請輸入排序方式:\n”);

printf(“\t(1.按價格排序從低到高;2.按商品號排序從低到高.)”);

fflush(stdin);

scanf(“%c”,tp);

if(tp==’1′)

OnPrice(com,N);

else if(tp ==’2′)

OnNumber(com,N);

else

printf(“\t輸入了不正確項!\n”);

}

}

} /*結束顯示成績*/

void OnPrice(record *com,int n ) /*按單價順序*/

{ int i,j;

record temp;

printf(“\t\t按單價排序—\n\n”);

printf(“商品總數為%d:\n”,n);

for(j=0 ; jn-1 ; j++) /*冒泡排序*/

for(i=0 ; in-j-1 ; i++)

if(com[i].pricecom[i+1].price)

{

temp=com[i];

com[i]=com[i+1];

com[i+1]=temp;

}

printf(“\n\t\t按成績排序的結果如下(按分數從低到高):\n\n”);

printf(“序號\t\t商品名\t 商品號\t生產商\t單價\n”);

for(i=0 ; in ; i++)

printf(“%3d%17s%12d%12s%8.1f\n”,i+1,com[i].name,com[i].num,com[i].shang,

com[i].price);

}

void OnNumber(record *com,int n ) /*按序號順序*/

{

int i,j;

record temp;

printf(“\t\t按商品號排序—\n\n”);

printf(“商品總數為%d:\n”,n);

for(j=0 ; jn-1 ; j++)

for(i=0 ; in-j-1 ; i++)

if(com[i].numcom[i+1].num)

{

temp=com[i];

com[i]=com[i+1];

com[i+1]=temp;

}

printf(“\n\t按商品號排序的結果如下(按商品號從小到大):\n\n”);

printf(“序號\t\t商品名\t 商品號\t生產商\t單價\n”);

for(i=0 ; in ; i++)

printf(“%3d%17s%12d%12s%8.1f\n”,i+1,com[i].name,com[i].num,com[i].shang,

com[i].price);

}

void DataAdd( ) /*增加*/

{

int i=0,n,m; /*商品名稱*/

char shangming[30];

int haoma; /*生產商*/

char shangjia[10];

float danjia;

char YesOrNo;

record com[SIZE];

printf(“\t\t讀取原有數據信息—\n”);

if(DataRead(com,n)==1)

{

printf(“\t\t信息讀取完畢!\n\n”);

printf(“\t\t請輸入要添加的商品總數:”);

scanf(“%d”,m);

printf(“\t\t現在開始錄入這%d個商品信息:\n\n”,m);

while(im)

{

printf(“第%d個商品的商品名:”,i+1);

scanf(“%s”,shangming);

printf(“第%d個商品的商品號:”,i+1);

scanf(“%d”,haoma);

printf(“第%d個商品的生產商:”,i+1);

scanf(“%s”,shangjia);

printf(“第%d個商品的單價:”,i+1);

scanf(“%f”,danjia);

if(danjia=0danjia=1000) /*有效的單價才錄入*/

{

strcpy(com[i+n].name,shangming);

com[i+n].num = haoma;

strcpy(com[i+n].shang,shangjia);

com[i+n].price = danjia;

i =i+1;

}

else

printf(“輸入的單價是一個無效的值,請重新輸入!\n\n”);

}

printf(“要保存您剛才錄入的數據嗎(Y/N)?”);

fflush(stdin);

scanf(“%c”,YesOrNo);

if(YesOrNo==’y’||YesOrNo==’Y’)

DataStorage(com,n+m);

else if(YesOrNo==’n’||YesOrNo==’N’)

return;

else

printf(“輸入了不正確項,返回上一級\n”);

return;

}

}

void DataDel( )//刪除

{

void OnNumber(record *com,int n );

record com[SIZE];

int i; /*總記錄數*/

int n; /*要刪除的記錄號*/

int m;

printf(“\t\t讀取原有數據信息—\n”);

if(DataRead(com,n)==1)

{

printf(“\t\t原始數據如下:\n\n”);

OnNumber(com,n );

printf(“請輸入你要刪除的記錄的序號”);

scanf(“%d”,m);

if(m=1 m=n)

{

for(i=m-1;in-1;i++)

com [i] = com[i+1];

DataStorage(com,n-1);

}

}

}

void DataStatistic( ) /*統計信息*/

{

int high=0,low=200,ave=0;

int n,i,sum=0;

int g,l;

record com[SIZE];

printf(“讀取數據信息—\n”);

if(DataRead(com,n)==1)

{

printf(“商品總數為%d\n\n”,n);

for(i=0;in;i++)

{

if(com[i].pricehigh)

{

high = com[i].price;

g=i;

}

if(com[i].pricelow)

{

low = com[i].price;

l=i;

}

sum += com[i].price;

}

ave=sum/n;

printf(“\t\t最高\t最低\t平均\n”); /*計算值*/

printf(“商品單價統計:\t%d\t%d\t%d\n\n”,high,low,ave);

printf(“序號\t\t商品名\t 商品號\t生產商\t單價\n”);

for(i=0 ; in ; i++)

printf(“%3d%17s%12d%12s%8.1f\n”,i+1,com[i].name,com[i].num,com[i].shang,

com[i].price);

printf(“\t\t 序號\t\t 商品名\t 商品號\t 生產商 單價\n”);

printf(“單價最高的商品是:%3d%17s%12d%12s%8.1f\n\n”,g+1,com[g].name,com[g].num,com[g].shang,com[g].price);

printf(“單價最低的商品是:%3d%17s%12d%12s%8.1f\n”,l+1,com[l].name,com[l].num,com[l].shang,com[l].price);

} /*結束統計*/

}

原創文章,作者:AYIS,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/142491.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
AYIS的頭像AYIS
上一篇 2024-10-12 09:43
下一篇 2024-10-12 09:43

相關推薦

  • AES加密解密算法的C語言實現

    AES(Advanced Encryption Standard)是一種對稱加密算法,可用於對數據進行加密和解密。在本篇文章中,我們將介紹C語言中如何實現AES算法,並對實現過程進…

    編程 2025-04-29
  • 學習Python對學習C語言有幫助嗎?

    Python和C語言是兩種非常受歡迎的編程語言,在程序開發中都扮演着非常重要的角色。那麼,學習Python對學習C語言有幫助嗎?答案是肯定的。在本文中,我們將從多個角度探討Pyth…

    編程 2025-04-29
  • Python被稱為膠水語言

    Python作為一種跨平台的解釋性高級語言,最大的特點是被稱為”膠水語言”。 一、簡單易學 Python的語法簡單易學,更加人性化,這使得它成為了初學者的入…

    編程 2025-04-29
  • OpenJudge答案1.6的C語言實現

    本文將從多個方面詳細闡述OpenJudge答案1.6在C語言中的實現方法,幫助初學者更好地學習和理解。 一、需求概述 OpenJudge答案1.6的要求是,輸入兩個整數a和b,輸出…

    編程 2025-04-29
  • Python按位運算符和C語言

    本文將從多個方面詳細闡述Python按位運算符和C語言的相關內容,並給出相應的代碼示例。 一、概述 Python是一種動態的、面向對象的編程語言,其按位運算符是用於按位操作的運算符…

    編程 2025-04-29
  • Python語言由荷蘭人為中心的全能編程開發工程師

    Python語言是一種高級語言,很多編程開發工程師都喜歡使用Python語言進行開發。Python語言的創始人是荷蘭人Guido van Rossum,他在1989年聖誕節期間開始…

    編程 2025-04-28
  • Python語言設計基礎第2版PDF

    Python語言設計基礎第2版PDF是一本介紹Python編程語言的經典教材。本篇文章將從多個方面對該教材進行詳細的闡述和介紹。 一、基礎知識 本教材中介紹了Python編程語言的…

    編程 2025-04-28
  • Python語言實現人名最多數統計

    本文將從幾個方面詳細介紹Python語言實現人名最多數統計的方法和應用。 一、Python實現人名最多數統計的基礎 1、首先,我們需要了解Python語言的一些基礎知識,如列表、字…

    編程 2025-04-28
  • Python作為中心語言,在編程中取代C語言的優勢和挑戰

    Python一直以其簡單易懂的語法和高效的編碼環境而著名。然而,它最近的發展趨勢表明Python的使用範圍已經從腳本語言擴展到了從Web應用到機器學習等廣泛的開發領域。與此同時,C…

    編程 2025-04-28
  • Python基礎語言

    Python作為一種高級編程語言擁有簡潔優雅的語法。在本文中,我們將從多個方面探究Python基礎語言的特點以及使用技巧。 一、數據類型 Python基礎數據類型包括整數、浮點數、…

    編程 2025-04-28

發表回復

登錄後才能評論