當前位置:編程學習大全網 - 源碼下載 - c語言讀取源代碼

c語言讀取源代碼

# include & ltstdio.h & gt

# include & ltconio.h & gt

# include & ltstring.h & gt

#定義尺寸300

typedef結構

{

char name[30];

int num

char尚[10];

浮動價格;

}記錄;

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

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

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

void data find();

void data display();

void data add();

void DataDel();

void DataStatistic();

int main()

{

記錄尚品[大小];

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 ",& ampfn);

puts(" \ n ");

開關(fn) /*切換到不同的功能*/

{

案例“1”:

數據輸入(尚品& amp號);

打破;/*輸入信息*/

案例“2”:data display();

打破;/*信息顯示*/

案例“3”:

data find();

打破;/*信息搜索*/

案例“4”:

DataAdd();

打破;/*添加*/

案例“5”:

DataDel();

打破;/*刪除*/

案例“6”:

DataStatistic();

打破;/*信息統計*/

案例“0”:

返回0;

默認值:puts(" \ t \ t沒有這樣的項目!回到主菜單!”);

打破;

}

Printf ("\ n \ t \ tOver!按任意鍵繼續”);

getch();

puts(" \ n ");

}

}

作廢數據輸入(record * com,int * nptr)/*商品信息輸入*/

{

int I = 0;

int n;/*條目總數*/

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

夏爾·尚明[30];/*企業名稱*/

馬浩境內;/*商品編號*/

char尚佳[10];/*單價*/

浮動賈丹;

printf(" \ t \ t請輸入貨物數量:");

scanf("%d ",& ampn);

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

printf(" \ t \ t立即輸入這%d個產品信息:\n\n ",n);

while(我& ltn)

{

Printf("請輸入產品名稱:",I+1);

scanf("%s ",& amp尚明);

Printf("請輸入商品的商品編號:",I+1);

scanf("%d ",& amp馬浩);

Printf("請輸入商品生產廠家:",I+1);

scanf("%s ",& amp尚佳);

Printf("請輸入商品單價:",I+1);

scanf("%f ",& amp賈丹);

如果(賈丹& gt= 0 & amp& amp賈丹<=1000) /*只能輸入有效的單價*/

{

strcpy(com[i].姓名,尚明);

com[i]。num =馬浩;

strcpy(com[i].尚、尚佳);

com[i]。價格=賈丹;

I = I+1;

}

其他

Printf("輸入的單價是無效值!!!\ n \ n ");

}/*結束while*/

Printf("您想保存您剛剛輸入的數據嗎(Y/N)?");/*選擇保存*/

fflush(stdin);

scanf("%c ",& ampYesOrNo);

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

DataStorage(com,n);

else if(YesOrNo = = ' N ' | | YesOrNo = = ' N ')

返回;

其他

Printf("輸入的選項不正確\ n ");

返回;

}/*結束函數*/

Void DataFind() /* Find */

{

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

int鍵;/*key是要查找的鍵值*/

int low = 0;/*下限*/

int高;/*上限*/

int mid/*中間值*/

char ans/*選項*/

record com[SIZE];

int n;

if(DataRead(com & amp;N)==1) /*從文件中讀取信息*/

{

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

高= n;

{

printf(" \ n \ n \ t \ t請輸入您要查找的產品編號:");

scanf("%d ",& amp關鍵);

低= 0;高= n;

while(low & lt;=高)

{

mid =(高+低)/2;/*半搜索法*/

if (key == com[mid])。數字)

{

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]。尚,

com[mid]。價格);

打破;/*如果找到,則退出循環*/

}

if(key & gt;com[mid]。num)low = mid+1;

else high = mid-1;

}

if(低& gt高)

Printf("\t\t,沒有找到這個價格!\ n ");

printf(" \ N \ t \ t是否要繼續查詢(Y/N)?");

ans = getch();

}

while(ans = = ' Y ' | | ans = = ' Y ');/*結束do...while */

}

}

Void數據存儲(record * com,int n)/*輸入並保存文件*/

{

int I;

FILE * comPtr

字符文件名[20];

Printf("請輸入要保存的文件名:");

scanf("%s ",文件名);

Printf("正在將商品信息保存到文件中,請稍候...\ n ");

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

Printf("文件\n "不存在);

其他

for(I = 0;我& ltn;i++)

fprintf(comPtr," \ n % 17s % 12d % 12s % 8.1f ",com[i]。name,com[i]。num,com[i]。尚,com[i]。價格);

fclose(comPtr);

}

Intdataread (record * com,int * nptr)/* Read file */

{

int I = 0;

char數據文件[20];

FILE * comPtr

* nptr = 0;

Printf("請輸入文件名:");

scanf("%s ",數據文件);

If ((comptr = fopen (datafile," r")) = = null)/*打開文件*/

{

Printf("此文件不可用,請重新輸入!\ n ");

返回0;

}

其他

{

Printf("正在讀取商品單價,請稍候...\ n ");

而(!feof(comPtr)

{

fscanf(comPtr," %s%d%s%f ",& ampcom[i]。姓名& ampcom[i]。數字& ampcom[i]。尚& ampcom[i]。價格);

i++;

}

* nptr = I;

printf(" \ n ");

fclose(comPtr);

返回1;

}

}

void數據顯示()

{

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

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

int N;

int I;

記錄com[300];

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

char tp

if(DataRead(com & amp;N)==1) /*從文件中讀取數據*/

{

Printf("序列號\t \t \商品名稱\ t商品編號\ t制造商\ t單價\ n ");

for(I = 0;我& ltn;i++)

printf(" % 3d % 17s % 12d % 12s % 8.1f \ n ",i+1,com[i]。name,com[i]。num,com[i]。尚,com[i]。價格);

Printf("要按順序顯示嗎?(是/否)?”);

fflush(stdin);

scanf("%c ",& ampyes no);

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

{

printf(" \ t請輸入排序方法:\ n ");

Printf("\t(1。按價格從低到高排序;2.按商品編號從低到高排序。) ");

fflush(stdin);

scanf("%c ",& ampTP);

if(tp=='1 ')

OnPrice(com,N);

else if(tp =='2 ')

OnNumber(com,N);

其他

printf(" \ t輸入不正確!\ n ");

}

}

}/*結束結果顯示*/

Void OnPrice(record *com,int n) /*按單價排序*/

{ int i,j;

記錄溫度;

printf(" \ t \ t按單價排序-\ n \ n ");

Printf("商品總數為%d:\n ",n);

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

for(I = 0;我& ltn-j-1;i++)

if(com[i].價格& gtcom[i+1]。價格)

{

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;我& ltn;i++)

printf(" % 3d % 17s % 12d % 12s % 8.1f \ n ",i+1,com[i]。name,com[i]。num,com[i]。尚,

com[i]。價格);

}

Void on number (record * com,int n)/*按數字順序排列*/

{

int i,j;

記錄溫度;

printf(" \ t \ t按商品編號排序-\ n \ n ");

Printf("商品總數為%d:\n ",n);

for(j = 0;j & ltn-1;j++)

for(I = 0;我& ltn-j-1;i++)

if(com[i].num & gtcom[i+1]。數字)

{

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;我& ltn;i++)

printf(" % 3d % 17s % 12d % 12s % 8.1f \ n ",i+1,com[i]。name,com[i]。num,com[i]。尚,

com[i]。價格);

}

Void DataAdd() /* Add */

{

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

夏爾·尚明[30];

馬浩境內;/*制造商*/

char尚佳[10];

浮動賈丹;

char YesOrNo

record com[SIZE];

Printf ("\ t \ tRead原始數據信息-\ n ");

if(DataRead(com,& ampn)==1)

{

printf(" \ t \ t已完成讀取信息!\ n \ n ");

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

scanf("%d ",& ampm);

printf(" \ t \ t立即輸入這%d個產品信息:\n\n ",m);

while(我& ltm)

{

Printf("商品%d的商品名稱:",I+1);

scanf("%s ",& amp尚明);

Printf("第%d個商品的商品編號:",I+1);

scanf("%d ",& amp馬浩);

Printf("商品%d的制造商:",I+1);

scanf("%s ",& amp尚佳);

Printf("項目%d的單價:",I+1);

scanf("%f ",& amp賈丹);

如果(賈丹& gt= 0 & amp& amp賈丹<=1000) /*只能輸入有效的單價*/

{

strcpy(com[i+n].姓名,尚明);

com[i+n]。num =馬浩;

strcpy(com[i+n].尚、尚佳);

com[i+n]。價格=賈丹;

I = I+1;

}

其他

Printf("輸入的單價是無效值,請重新輸入!\ n \ n ");

}

Printf("您想保存您剛剛輸入的數據嗎(Y/N)?");

fflush(stdin);

scanf("%c ",& ampYesOrNo);

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

DataStorage(com,n+m);

else if(YesOrNo = = ' N ' | | YesOrNo = = ' N ')

返回;

其他

Printf("輸入不正確,返回上壹級\ n ");

返回;

}

}

voiddateddel()//刪除

{

void OnNumber(record *com,int n);

record com[SIZE];

int I;/*記錄總數*/

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

int m;

Printf ("\ t \ tRead原始數據信息-\ n ");

if(DataRead(com & amp;n)==1)

{

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

OnNumber(com,n);

Printf("請輸入您要刪除的記錄的序列號");

scanf("%d ",& ampm);

如果(m & gt=1。& ampm & lt=n)

{

for(I = m-1;我& ltn-1;i++)

com[I]= com[I+1];

DataStorage(com,n-1);

}

}

}

Void數據統計()/*統計*/

{

int高=0,低=200,ave = 0;

int n,I,sum = 0;

int g,l;

record com[SIZE];

Printf("讀取數據信息-\ n ");

if(DataRead(com,& ampn)==1)

{

Printf("商品總數為%d\n\n ",n);

for(I = 0;我& ltn;i++)

{

if(com[i].價格& gt高)

{

high = com[i]。價格;

g = I;

}

if(com[i].價格& lt低)

{

low = com[i]。價格;

l = I;

}

sum += com[i]。價格;

}

ave = sum/n;

printf(" \ t \ tHighest \ tlo west \ t average \ n ");/*計算值*/

Printf("商品單價統計:\t%d\t%d\t%d\n\n ",高,低,平均);

Printf("序列號\t \t \商品名稱\ t商品編號\ t制造商\ t單價\ n ");

for(I = 0;我& ltn;i++)

printf(" % 3d % 17s % 12d % 12s % 8.1f \ n ",i+1,com[i]。name,com[i]。num,com[i]。尚,

com[i]。價格);

printf(" \t \ t序列號\ t \ t商品名稱\ t商品編號\ t制造商單價\ n ");

Printf("單價最高的產品有:% 3d % 17s % 12d % 12s % 8.1f \ n \ n ",g+1,com [g]。Name,com [g]。

Printf("單價最低的產品有:% 3d % 17s % 12d % 12s % 8.1f \ n ",l+1,com [l]。name,com [l]。編號,。

}/*結束統計*/

}

  • 上一篇:我的拿手好戲是彈鋼琴優秀作文10篇
  • 下一篇:商品期貨交易策略的數學模型
  • copyright 2024編程學習大全網