<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
本文範例為大家分享了C語言實現電器銷售管理系統的具體程式碼,供大家參考,具體內容如下
管理資訊系統具有多種功能,各種功能之間又有多種聯絡,構成了一個有機結合的整體。資訊處理功能主要涉及資料的採集、輸入、加工處理、傳輸、儲存和輸出等功能。根據對電器銷售管理系統的分析,系統的主要功能包括:電器銷售資訊的新增、刪除、修改、查詢、排序以及資訊的儲存及讀取。
使用者登入
使用者登入系統必須具有存取許可權,本系統的登入模組主要通過呼叫函數“login()”實現,使用者最多可以輸入3次密碼。其主要程式碼為:
for(count=1;count<=3;count++) //給使用者三次機會 { printf("n"); printf("********請輸入使用者名稱:"); gets(username); printf("********請輸入密碼:"); gets(userpwd); //如果使用者名稱和密碼正確,則登入成功,返回1 if(strcmp(name,username)==0&&strcmp(pwd,userpwd)==0) return 1; else//如果輸入錯誤則顯示錯誤提示資訊 if (count<3) //如果不是第3次,則輸出此錯誤資訊, printf("******使用者名稱或密碼輸入錯誤,請重新輸入!!!*******n"); }
增加分店資訊
通過呼叫函數“adddianqixs()”實現電器銷售資訊的新增功能,部分程式碼如下:
void adddianqixs() { char temp[30]; printf("請輸入分店:n"); gets_s(dianqixs[NOWNUM].store,29); printf("請輸入產品名稱:n"); gets_s(dianqixs[NOWNUM].cpmc,29); printf("請輸入產品單價:n"); scanf_s("%d",&dianqixs[NOWNUM].price); printf("請輸入1月銷量:n"); scanf("%d",&dianqixs[NOWNUM].yyxl); printf("請輸入2月銷量:n"); scanf("%d",&dianqixs[NOWNUM].eyxl); printf("請輸入3月銷量:n"); scanf("%d",&dianqixs[NOWNUM].syxl); printf("請輸入季度總銷量:n"); scanf("%d",&dianqixs[NOWNUM].jdzx); printf("請輸入季度平均銷量:n"); scanf("%d",&dianqixs[NOWNUM].jdpx); printf("請輸入季度總銷售額:n"); scanf("%d",&dianqixs[NOWNUM].jdze); NOWNUM++; //店家數量加一 printf("銷售資訊新增完畢,請按任意鍵繼續n"); getchar(); }
修改分店資訊
通過呼叫函數“resive()”實現電器銷售資訊的修改功能。部分程式碼如下:
void resive() { char shop[20]; int i; printf(" 請輸入你要修改的分店 nn"); scanf("%s",shop); for(i = 0 ;i < NOWNUM; i++) { if(strcmp(shop,dianqixs[i].store) == 0) break; } if(i<NOWNUM) { printf("成功找到這家店!nn"); printf("請輸入要修改的資訊:nn"); printf("1.店名nn"); printf("2.商品名稱nn"); printf("3.商品單價nn"); printf("4.一月銷量nn"); printf("5.二月銷量nn"); printf("6.三月銷量nn"); printf("7.季度總銷量nn"); printf("8.季度平均銷量nn"); printf("9.季度總銷售額nn"); int order; scanf("%d",&order); switch(order) { case 1: scanf("%s",dianqixs[i].store); break; case 2: scanf("%s",dianqixs[i].cpmc); break; case 3: scanf("%d",&dianqixs[i].price); break; case 4: scanf("%d",&dianqixs[i].yyxl); break; case 5: scanf("%d",&dianqixs[i].eyxl); break; case 6: scanf("%d",&dianqixs[i].syxl); break; case 7: scanf("%d",&dianqixs[i].jdzx); break; case 8: scanf("%d",&dianqixs[i].jdpx); break; case 9: scanf("%d",&dianqixs[i].jdze); break; } printf("修改成功nn"); } }
刪除分店資訊
通過呼叫函數“deldianqixs()”實現電器銷售資訊的刪除功能。部分程式碼如下:
void deldianqixs() //刪除指定記錄 { char delno[40]; //存放要刪除分店銷售電器 char ok[55]; //確定是否要真的刪除 int i,j; printf("請輸入要刪除分店銷售電器:"); gets(delno);//根據店名查詢記錄位置 for(i=0;i < NOWNUM;i++) if (strcmp(delno,dianqixs[i].store)==0) break; if (i < NOWNUM) //找到了該記錄 { //找到後先輸出原資訊,然後確認是否刪除 printall(); //先顯示原資訊 printf("nn%-9s%-15s%-15d%-18d%-15d%-15d%-15d%-18d%-18dn",dianqixs[i].store,dianqixs[i].cpmc,dianqixs[i].price,dianqixs[i].yyxl, dianqixs[i].eyxl,dianqixs[i].syxl,dianqixs[i].jdzx,dianqixs[i].jdpx,dianqixs[i].jdze); printf("確實要刪除這條記錄嗎?(y/n)n"); gets(ok); if(ok[0]=='y'||ok[0]=='Y') //確定要刪除 { NOWNUM--; //學生數減1 for(j=i;j<NOWNUM;j++) //將後面的記錄前移 dianqixs[j]=dianqixs[j+1]; printf("n刪除成功!n"); } } else printf("n沒有該店名n"); printf("請按任意鍵繼續n"); getchar(); }
按照季度總銷量進行排序
通過呼叫函數“sort()”實現按照季度總銷量對電器銷售情況進行排序。部分程式碼如下:
void sort() { printf("開始排序nn"); int i,j; struct dqxs t; for(i=0;i<NOWNUM-1;i++) { for(j=i+1;j<NOWNUM;j++) { if(dianqixs[i].jdzx<dianqixs[j].jdzx) { t=dianqixs[i]; dianqixs[i]=dianqixs[j]; dianqixs[j]=t; } } } printf("排序成功!nn"); }
重新整理分店銷售資訊
通過呼叫函數“read_data()”實現重新整理分店的銷售資訊。部分程式碼如下:
void read_data() { FILE *fp; int i,sign; fp = fopen("data.data","rb"); rewind(fp); if(fp == NULL) { printf("nntt開啟檔案失敗!n"); exit(0); } for(i=0;i<N;i++) { sign = fread(&dianqixs[i],sizeof(struct dqxs),1,fp); if(sign <= 0) break; } printf("nntt讀取到%d個分店資訊!nn",i); Sleep(1000); system("cls"); NOWNUM = i; fclose(fp); printf("nntt讀取成功!nn"); Sleep(1000); system("cls"); }
將分店銷售資訊儲存到檔案
通過呼叫函數“save_data()”實現將分店資訊儲存到檔案。部分程式碼如下:
void save_data() { FILE *fp; fp = fopen("data.data","wb"); if(fp == NULL) { printf("開啟檔案失敗!n"); exit(0); } fwrite(dianqixs,sizeof(struct dqxs),NOWNUM,fp); fclose(fp); printf("儲存成功!n"); }
總程式碼如下:
#include <stdio.h> #include <string.h> #include <stdlib.h> #include <windows.h> #pragma pack(1) #define N 100 struct dqxs { char store[20]; //分店 char cpmc[30]; //產品名稱 int price; //產品單價 int yyxl; //1月銷量 int eyxl; //2月銷量 int syxl; //3月銷量 int jdzx; //季度總銷量 int jdpx; //季度平均銷量 int jdze; //季度總銷量額 }dianqixs[N]; int NOWNUM = 0; void printall() { int i; printf("%-9s%-15s%-15s%-18s%-15s%-15s%-15s%-18s%-18sn","店名","產品名","單價","一月銷量","二月銷量","三月銷量","季度總銷量","季度平均銷量","季度總銷售額"); for (i=0;i<NOWNUM;i++) printf("%-9s%-15s%-15d%-18d%-15d%-15d%-15d%-18d%-18dn",dianqixs[i].store,dianqixs[i].cpmc,dianqixs[i].price,dianqixs[i].yyxl, dianqixs[i].eyxl,dianqixs[i].syxl,dianqixs[i].jdzx,dianqixs[i].jdpx,dianqixs[i].jdze); } //輸出所有店家的資訊 void adddianqixs() { char temp[30]; printf("請輸入分店:n"); gets_s(dianqixs[NOWNUM].store,29); printf("請輸入產品名稱:n"); gets_s(dianqixs[NOWNUM].cpmc,29); printf("請輸入產品單價:n"); scanf_s("%d",&dianqixs[NOWNUM].price); printf("請輸入1月銷量:n"); scanf("%d",&dianqixs[NOWNUM].yyxl); printf("請輸入2月銷量:n"); scanf("%d",&dianqixs[NOWNUM].eyxl); printf("請輸入3月銷量:n"); scanf("%d",&dianqixs[NOWNUM].syxl); printf("請輸入季度總銷量:n"); scanf("%d",&dianqixs[NOWNUM].jdzx); printf("請輸入季度平均銷量:n"); scanf("%d",&dianqixs[NOWNUM].jdpx); printf("請輸入季度總銷售額:n"); scanf("%d",&dianqixs[NOWNUM].jdze); NOWNUM++; //店家數量加一 printf("銷售資訊新增完畢,請按任意鍵繼續n"); getchar(); } void deldianqixs() //刪除指定記錄 { char delno[40]; //存放要刪除分店銷售電器 char ok[55]; //確定是否要真的刪除 int i,j; printf("請輸入要刪除分店銷售電器:"); gets(delno);//根據店名查詢記錄位置 for(i=0;i < NOWNUM;i++) if (strcmp(delno,dianqixs[i].store)==0) break; if (i < NOWNUM) //找到了該記錄 { //找到後先輸出原資訊,然後確認是否刪除 printall(); //先顯示原資訊 printf("nn%-9s%-15s%-15d%-18d%-15d%-15d%-15d%-18d%-18dn",dianqixs[i].store,dianqixs[i].cpmc,dianqixs[i].price,dianqixs[i].yyxl, dianqixs[i].eyxl,dianqixs[i].syxl,dianqixs[i].jdzx,dianqixs[i].jdpx,dianqixs[i].jdze); printf("確實要刪除這條記錄嗎?(y/n)n"); gets(ok); if(ok[0]=='y'||ok[0]=='Y') //確定要刪除 { NOWNUM--; //減1·· for(j=i;j<NOWNUM;j++) //將後面的記錄前移 dianqixs[j]=dianqixs[j+1]; printf("n刪除成功!n"); } } else printf("n沒有該店名n"); printf("請按任意鍵繼續n"); getchar(); } void resive() { char shop[20]; int i; printf(" 請輸入你要修改的分店 nn"); scanf("%s",shop); for(i = 0 ;i < NOWNUM; i++) { if(strcmp(shop,dianqixs[i].store) == 0) break; } if(i<NOWNUM) { printf("成功找到這家店!nn"); printf("請輸入要修改的資訊:nn"); printf("1.店名nn"); printf("2.商品名稱nn"); printf("3.商品單價nn"); printf("4.一月銷量nn"); printf("5.二月銷量nn"); printf("6.三月銷量nn"); printf("7.季度總銷量nn"); printf("8.季度平均銷量nn"); printf("9.季度總銷售額nn"); int order; scanf("%d",&order); switch(order) { case 1: scanf("%s",dianqixs[i].store); break; case 2: scanf("%s",dianqixs[i].cpmc); break; case 3: scanf("%d",&dianqixs[i].price); break; case 4: scanf("%d",&dianqixs[i].yyxl); break; case 5: scanf("%d",&dianqixs[i].eyxl); break; case 6: scanf("%d",&dianqixs[i].syxl); break; case 7: scanf("%d",&dianqixs[i].jdzx); break; case 8: scanf("%d",&dianqixs[i].jdpx); break; case 9: scanf("%d",&dianqixs[i].jdze); break; } printf("修改成功nn"); } } int login() { char name[]="a",pwd[]="a";//正確的使用者名稱和密碼 char username[10],userpwd[10]; //輸入的使用者名稱和密碼 int count; //輸入使用者名稱和密碼的次數 for(count=1;count<=3;count++) //給予三次機會 { printf("n"); printf("********請輸入使用者名稱:"); gets(username); printf("********請輸入密碼:"); gets(userpwd); //如果使用者名稱和密碼正確,則登入成功,返回 1 if(strcmp(name,username)==0&&strcmp(pwd,userpwd)==0) return 1; else//如果輸入錯誤則顯示錯誤提示資訊 if (count<3) //如果不是第 3 次,則輸出此錯誤資訊, printf("******分店名或密碼輸入錯誤,請重新輸入!!!*******n"); } printf("*******分店名和密碼錯誤已經超過 3 次,系統自動退出!!!******n"); return 0; //退出迴圈時則說明已經超過 3 次,登入失敗 } /*********************************** * 輸出主控選單選項 * ************************************/ void check_shop() { char shop[20]; int i; printf(" 請輸入你要查詢的分店 nn"); scanf("%s",shop); for(i = 0 ;i < NOWNUM; i++) { if(strcmp(shop,dianqixs[i].store) == 0) break; } if(i < NOWNUM) { getchar(); printf("找到 %snn",dianqixs[i].store); printf("一月銷售額:%d nn",dianqixs[i].yyxl); printf("二月銷售額:%d nn",dianqixs[i].eyxl); printf("三月銷售額:%d nn",dianqixs[i].syxl); } else { printf("找不到這家分店!nn"); } } void sort() { printf("開始排序nn"); int i,j; struct dqxs t; for(i=0;i<NOWNUM-1;i++) { for(j=i+1;j<NOWNUM;j++) { if(dianqixs[i].jdzx<dianqixs[j].jdzx) { t=dianqixs[i]; dianqixs[i]=dianqixs[j]; dianqixs[j]=t; } } } printf("排序成功!nn"); } void save_data() { FILE *fp; fp = fopen("data.data","wb"); if(fp == NULL) { printf("開啟檔案失敗!n"); exit(0); } fwrite(dianqixs,sizeof(struct dqxs),NOWNUM,fp); fclose(fp); printf("儲存成功!n"); } void read_data() { FILE *fp;//宣告,宣告fp是指標,用來指向FILE型別的物件。 int i,sign; fp = fopen("data.data","rb"); rewind(fp); if(fp == NULL) { printf("nntt開啟檔案失敗!n"); exit(0); } for(i=0;i<N;i++) { sign = fread(&dianqixs[i],sizeof(struct dqxs),1,fp); if(sign <= 0) break; } printf("nntt讀取到%d個分店資訊!nn",i); Sleep(1000); system("cls");//執行命令」清屏「 NOWNUM = i; fclose(fp);//關閉fp指向的檔案控制程式碼,防止控制程式碼洩露 printf("nntt讀取成功!nn"); Sleep(1000); system("cls"); } void menushow() { int userselection; char selectstr[10]; printf("n"); printf("t*****************************n"); printf("t* 歡迎使用 *n"); printf("t* 電器銷售系統 *n"); printf("t*****************************n"); printf("n"); printf("t* 1:增加分店銷售資訊 *n"); printf("t* 2:修改分店銷售資訊 *n"); printf("t* 3:顯示分店銷售資訊 *n"); printf("t* 4:查詢分店銷售資訊 *n"); printf("t* 5:刪除分店銷售資訊 *n"); printf("t* 6:按季度總銷量排序 *n"); printf("t* 7:重新整理分店銷售資訊 *n"); printf("t* 8:將分店銷售資訊儲存到檔案*n"); printf("t* 9:退出系統 *n"); printf("t*****************************nn"); printf("請輸入您的選擇(1-9):"); /*scanf("%d",&userselection);*/ gets(selectstr); userselection=(int)atoi(selectstr); switch(userselection) { case 1: adddianqixs(); printf("請輸入任意鍵退出...n"); getchar(); break; case 2: resive(); printf("請輸入任意鍵退出...n"); getchar(); break; case 3: printall(); printf("請輸入任意鍵退出...n"); getchar(); break; case 4: check_shop(); printf("請輸入任意鍵退出...n"); getchar(); break; case 5: deldianqixs(); printf("請輸入任意鍵退出...n"); getchar(); break; case 6: sort(); getchar(); printf("請輸入任意鍵退出...n"); break; case 7: read_data(); printf("請輸入任意鍵退出...n"); getchar(); break; case 8: save_data(); printf("請輸入任意鍵退出...n"); getchar(); break; case 9: exit(0); break; default: printf("%c,請輸入 1-9 之間的數位n",userselection); printf("請輸入任意鍵退出...n"); getchar(); } } /*********************************** * 主函數,應用程式的入口 * ************************************/ void main() { printf("nntt正在讀檔案...nn"); Sleep(1000); system("cls"); read_data(); int i; if (login()==1) //如果登入成功 while(1) { system("cls"); menushow(); //死迴圈,使系統始終顯示主控選單選項 } }
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支援it145.com。
相關文章
<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
综合看Anker超能充系列的性价比很高,并且与不仅和iPhone12/苹果<em>Mac</em>Book很配,而且适合多设备充电需求的日常使用或差旅场景,不管是安卓还是Switch同样也能用得上它,希望这次分享能给准备购入充电器的小伙伴们有所
2021-06-01 09:31:42
除了L4WUDU与吴亦凡已经多次共事,成为了明面上的厂牌成员,吴亦凡还曾带领20XXCLUB全队参加2020年的一场音乐节,这也是20XXCLUB首次全员合照,王嗣尧Turbo、陈彦希Regi、<em>Mac</em> Ova Seas、林渝植等人全部出场。然而让
2021-06-01 09:31:34
目前应用IPFS的机构:1 谷歌<em>浏览器</em>支持IPFS分布式协议 2 万维网 (历史档案博物馆)数据库 3 火狐<em>浏览器</em>支持 IPFS分布式协议 4 EOS 等数字货币数据存储 5 美国国会图书馆,历史资料永久保存在 IPFS 6 加
2021-06-01 09:31:24
开拓者的车机是兼容苹果和<em>安卓</em>,虽然我不怎么用,但确实兼顾了我家人的很多需求:副驾的门板还配有解锁开关,有的时候老婆开车,下车的时候偶尔会忘记解锁,我在副驾驶可以自己开门:第二排设计很好,不仅配置了一个很大的
2021-06-01 09:30:48
不仅是<em>安卓</em>手机,苹果手机的降价力度也是前所未有了,iPhone12也“跳水价”了,发布价是6799元,如今已经跌至5308元,降价幅度超过1400元,最新定价确认了。iPhone12是苹果首款5G手机,同时也是全球首款5nm芯片的智能机,它
2021-06-01 09:30:45