




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、中國地質(zhì)大學(xué)(武漢)C語言課程設(shè)計(jì)論文學(xué) 院: 工 程 學(xué) 院 專 業(yè): 安 全 工 程 題 目: 服裝銷售系統(tǒng) 班 級: 0 5 5 0 7 1 姓 名: 付 犇 學(xué) 號: 20071003242 指導(dǎo)教師: 劉 文 中 2009年1月2日 報(bào)告正文一、題目要求【題目】: 服裝銷售系統(tǒng)【要求】(1) 系統(tǒng)包含三類用戶:管理員、店長、銷售員。(2) 向管理員提供以下功能:自身密碼修改、其他用戶添加刪除、用戶信息修改、統(tǒng)計(jì)。商品信息添加、修改、刪除、查找、統(tǒng)計(jì)。(3) 向店長提供以下功能:登錄、注銷、自身密碼修改、自身信息修改,商品信息修改、商品信息設(shè)計(jì),查看日報(bào)表、月報(bào)表、商品銷售量報(bào)表、查找
2、瀏覽器修改商品儲備信息。(4) 向銷售員提供以下功能:商品瀏覽、查找、出售,查看自己本日報(bào)表、本月報(bào)表。提示(1) 總體設(shè)計(jì):整個服裝銷售系統(tǒng)可設(shè)計(jì)為管理員模塊、店長模塊、銷售員模塊、商品模塊等。(2) 數(shù)據(jù)結(jié)構(gòu)采用結(jié)構(gòu)體。二、結(jié)構(gòu)圖根據(jù)需求分析,該程序中銷售員應(yīng)實(shí)現(xiàn)如下功能:商品瀏覽、商品查找、出售商品、銷售記錄、用戶注銷,具體結(jié)構(gòu)圖如下。銷售員商品瀏覽商品查找出售商品銷售記錄用戶注銷店長應(yīng)實(shí)現(xiàn)如下功能:登錄、注銷、自身密碼修改、自身信息修改,商品信息修改、商品信息設(shè)計(jì),查看日報(bào)表、月報(bào)表、商品銷售量報(bào)表、查找瀏覽器修改商品儲備信息,具體結(jié)構(gòu)圖如下。店長商品瀏覽商品查找銷售員業(yè)績商品信息修改
3、密碼修改用戶注銷 管理員需要實(shí)現(xiàn)如下功能:自身密碼修改、其他用戶添加刪除、用戶信息修改、統(tǒng)計(jì)。商品信息添加、修改、刪除、查找、統(tǒng)計(jì)。具體結(jié)構(gòu)圖如下。添加用戶 管理員刪除用戶退出系統(tǒng)注銷賬戶修改密碼商品統(tǒng)計(jì)查找商品刪除商品添加商品統(tǒng)計(jì)用戶三、程序中典型的流程圖分析(一)添加模塊(1)分析:信息添加模塊職工的基本信息包括:用戶、商品基本信息,對它們輸入后,要存進(jìn)原文件,流程圖如下。文件打開否 輸入信息是否繼續(xù)將信息輸出到磁盤調(diào)用printf_back()函數(shù)結(jié)束開始輸出錯誤信息(二)瀏覽模塊(1)分析:瀏覽功能首先需要查找信息是否存在,在查找時,因?yàn)榇疟P文件無序,所以采用直接查找的辦法。在容錯上有
4、較好的能力,輸錯時系統(tǒng)會有提示,也會作出相應(yīng)的反映。算法和以上的分程序有相同的優(yōu)點(diǎn)。流程開始打開文件否輸出錯誤信息查找商品信息是否查找到輸出商品信息操作存盤是否繼續(xù)結(jié)束(三)查詢模塊(1)分析:基本信息的查詢按查詢方式:按商品的名稱查詢,可供選擇的方式比較豐富。但本程序只使用了一種。在查詢小模塊中采用了直接查找的方法,這主要是由于磁盤文件無序的緣故。程序在選擇結(jié)構(gòu)上采用了if和else的嵌套形式,看起來有點(diǎn)繁雜,沒有用switch語句直觀明了,這個地方可以改成更好的。開始文件打開查詢方式是否繼續(xù)結(jié)束輸出錯誤信息商品的名稱(四)刪除模塊(1)分析:商品信息存放在磁盤中,程序須將該文件全部取出來,
5、在內(nèi)存中把要刪掉的內(nèi)容除去,然后在重新輸入到磁盤,這種算法比較合理,但有一點(diǎn)煩瑣??梢愿臑榱硪环N辦法:設(shè)置一個標(biāo)示符,對有這些標(biāo)識符的記錄在下次輸入時跳過,在新商品信息輸入時,將其覆蓋就行了。在對文件進(jìn)行刪除時,考慮到很多方面,如:查詢不到時系統(tǒng)該如何處理等。人性化設(shè)計(jì)有在刪除之前詢問是否繼續(xù)。流程圖開始文件打開查找商品信息是否查找到輸入信息是否繼續(xù)結(jié)束輸出錯誤信息刪除操作五)修改模塊(1)分析:修改與刪除程序相似,管理員信息存放在磁盤中,程序須將該文件全部取出來,在內(nèi)存中把要修改的內(nèi)容修改,然后在重新輸入到磁盤,這種算法比較合理,但有一點(diǎn)煩瑣,可以改進(jìn)。開始文件打開查找職工信息是否查找到輸入
6、信息是否繼續(xù)結(jié)束輸出錯誤信息修改操作四、題目分析1、按照系統(tǒng)需要三類用戶用它作為主函數(shù):int main() user *use; DRESS *dress; ADMIN *adm; use=(user *)malloc(200*sizeof(user); userIntiate(use); adm=(ADMIN *)malloc(sizeof(ADMIN); adminIntiate(adm); dress=(DRESS *)malloc(500*sizeof(DRESS); dressIntiate(dress); while(1) if(first(use,adm,dress)=3) c
7、ontinue; 2、三類用戶的選擇登陸為int *first(user *use,ADMIN *adm,DRESS *dress) int chose; int temp,temp2; while(1) system("cls"); printf(" /=功能菜單=/n"); printf(" / /n");printf(" / /n");printf(" / 1,銷售員登陸 /n");printf(" / 2,店長登陸 /n");printf(" / 3,管理員
8、登陸 /n");printf(" / /n");printf(" /=/n");printf("n /=請選擇服務(wù)的種類=/n");scanf("%d",&chose);if(chose<1|chose>5) printf(" 你的選擇出現(xiàn)錯誤!按任意鍵重新的進(jìn)入選擇菜單!n"); system("pause");continue;switch(chose)case 1:system("cls");if(userload(us
9、e)=1) usermenu(use,dress); system("pause");break;case 2:system("cls");if(monload(use)=1) monmenu(use,dress); break;case 3:system("cls");temp=adminload(adm);if(temp=1) system("pause"); temp2=adminmenu(adm,use,dress); return 3; system("pause");continue
10、;default: exit(0);/while()3、當(dāng)選擇管理員的時候就用如下程序,注明(管理員的初始賬號是admin,密碼是123456)int regnew(user *use) char name21; char pass7=0; int chose; int i,j; int type; while(1) system("cls"); printf(" 用戶名:"); scanf("%s",&name); printf(" 密 碼:"); for(i=0;i<6;i+) passi=get
11、ch(); printf("*"); printf("nn 請輸入用戶的類型:0,銷售員 1,店長 "); scanf("%d",&type); while(1) printf("nn 用戶注冊信息入完畢,是否確認(rèn)? 1,確認(rèn) 0,重新輸入n"); scanf("%d",&chose); if(chose!=1&&chose!=0) printf(" 你的輸入有誤,請重新的輸入!n"); continue; if(chose=1) for(i=
12、0;i<usernum+1;i+) if(usei.flag=0) printf(" 注冊成功!請繼續(xù)使用! n"); strcpy(usei.username,name); strcpy(usei.pass,pass); usernum+; usei.flag=1; usei.type=type; return 1; else break; int deluser(user *use) int i; char name20; printf(" 請輸入你想要刪除的用戶的用戶名:"); scanf("%s",name); for(
13、i=0;i<200;i+) if(strcmp(usei.username,name)=0) printf("nnn 用戶 %s 刪除成功!nnnn",name); strcpy(usei.username,"unknown"); usei.flag=-1; return 1; printf(" 用戶 %s 不存在!請查正在次操作!nnnn",name); return 0;int useall(user *use) int i; system("cls"); printf(" 銷售人員:n&quo
14、t;); for(i=0;i<200;i+) if(usei.type=0) if(usei.flag=1) printf(" 用戶姓名: %s 用戶密碼: %s n",usei.username,usei.pass); printf(" 店長:n"); for(i=0;i<200;i+) if(usei.type=1) if(usei.flag=1) printf(" 用戶姓名: %s 用戶密碼: %s n",usei.username,usei.pass); int adminload(ADMIN *adm) char
15、 name21; char pass7=0;int chose,chose2;int i,j; while(1) system("cls"); printf(" 管理員賬號:"); scanf("%s",&name); printf(" 密 碼:");for(i=0;i<6;i+) passi=getch(); printf("*"); while(1) printf("nn 用戶登陸信息輸入完畢,是否確認(rèn)? 1,確認(rèn) 0,重新輸入n"); scanf(&quo
16、t;%d",&chose); if(chose!=1&&chose!=0) printf(" 你的輸入有誤,請重新的輸入!n"); continue; if(chose=1) if(strcmp(adm->name,name)=0) if(strcmp(adm->pass,pass)=0) printf(" 登陸成功!請繼續(xù)使用! n"); strcpy(usertemp.username,name); return 1; printf(" 輸入的用戶名或者密碼有誤!1,重新登陸 2,退出登陸!n&
17、quot;); scanf("%d",&chose2); if(chose2=1) system("cls"); break; else system("cls"); return 0; if(chose=0) break; int adminpass(ADMIN *adm) int i; char pass20=0; char pass220=0; while(1) system("cls"); printf(" 請輸入新的管理員密碼:"); for(i=0;i<6;i+) pa
18、ssi=getch(); printf("*"); printf("nnn 請?jiān)俅屋斎胄碌墓芾韱T密碼:"); for(i=0;i<6;i+) pass2i=getch(); printf("*"); if(strcmp(pass,pass2)!=0) printf("nn 兩次輸入的新的密碼不一樣,請重新的輸入!nnn"); system("pause"); else printf("n 密碼修改成功!下一次管理員登陸請使用新的密碼!nnn"); strcpy(adm-
19、>pass,pass); system("pause"); return 1; int adminout() int chose; while(1) system("cls"); printf(" 你確定要注銷嗎? 1,注銷 0,取消nn"); scanf("%d",&chose); if(chose!=0&&chose!=1) printf(" 你的選項(xiàng)出現(xiàn)了錯誤,請重新的輸入!nnn"); system("pasue"); continue;
20、 if(chose=1) printf(" 管理員賬戶注銷完畢! nnnn"); system("pause"); return 1; else return 0; int out() int chose; system("cls"); printf(" 真的要退出系統(tǒng)嗎?退出后信息會全部的丟失!1,退出 0,取消"); scanf("%d",&chose); if(chose=1)exit(0); else return 1; int adminmenu(ADMIN *adm,user
21、 *use,DRESS *dress) int chose1; while(1) system("cls"); printf("n 在線用戶: %snn",usertemp.username); printf(" /=用戶功能菜單=/n"); printf(" / /n"); printf(" / 1,添加用戶 /n"); printf(" / 2,刪除用戶 /n"); printf(" / 3,統(tǒng)計(jì)用戶 /n"); printf(" / 4,添
22、加商品 /n"); printf(" / 5,刪除商品 /n"); printf(" / 6,查找商品 /n"); printf(" / 7,商品統(tǒng)計(jì) /n"); printf(" / 8,修改密碼 /n"); printf(" / 9,注銷賬戶 /n"); printf(" / 0,退出系統(tǒng) /n"); printf(" /=/n"); printf("n /=請選擇服務(wù)的種類=/n"); scanf("%d&qu
23、ot;,&chose1); if(chose1<0|chose1>9) printf(" 你的輸入有誤,請重新的輸入!n"); system("pasue"); continue; switch(chose1)case 1: system("cls");regnew(use);system("pause");break;case 2:system("cls");deluser(use);system("pause");break;case 3:system
24、("cls");useall(use);system("pause");break;case 4:system("cls");adddress(dress); system("pasue");break;case 5:system("cls");deldress(dress);break;case 6:system("cls");finddress(dress);break; case 7:system("cls");dressall(dress); sy
25、stem("pasue");break;case 8:system("cls");if(adminpass(adm)=1) continue; break;case 9:system("cls");if(adminout()=1) return 3;case 0:system("cls"); if(out()=1) continue;break;default: continue; int userload(user *use) char name21; char pass7=0;int chose,chose2;
26、 int i,j; while(1) system("cls"); printf(" 用戶名:"); scanf("%s",&name); printf(" 密 碼:");for(i=0;i<6;i+) passi=getch(); printf("*"); while(1) printf("nn 用戶登陸信息輸入完畢,是否確認(rèn)? 1,確認(rèn) 0,重新輸入n"); scanf("%d",&chose); if(chose!=1&
27、&chose!=0) printf(" 你的輸入有誤,請重新的輸入!n"); continue; if(chose=1) for(i=0;i<200;i+) if(usei.type=0) if(strcmp(usei.username,name)=0) if(strcmp(usei.pass,pass)=0) printf(" 登陸成功!請繼續(xù)使用! n"); strcpy(usertemp.username,name); return 1; printf(" 輸入的用戶名或者密碼有誤!1,重新登陸 2,退出登陸!n"
28、); scanf("%d",&chose2); if(chose2=1) system("cls"); break; else system("cls"); return 0; if(chose=0) break; 這里面包含了管理員的十個功能選項(xiàng)。4,選擇銷售員和店長,(注明第一次運(yùn)行時本來沒有銷售員和店長,需要管理員添加。)int userout() int chose; while(1) system("cls"); printf("n 在線用戶: %snn",usertemp.u
29、sername); printf(" 你確定要注銷嗎? 1,注銷 0,取消nn"); scanf("%d",&chose); if(chose!=0&&chose!=1) printf(" 你的選項(xiàng)出現(xiàn)了錯誤,請重新的輸入!nnn"); system("pasue"); continue; if(chose=1) printf(" 銷售員賬戶注銷完畢! nnnn"); strcpy(usertemp.username,"unknown"); / sys
30、tem("pause"); return 1; else return 0; int sold(user *use,DRESS *dress) char name20; int num; int i; int j; int k; system("cls"); printf("n 在線用戶: %snn",usertemp.username); printf(" 請輸入要出售的商品的名稱:"); scanf("%s",&name); printf("n 請輸入出售的數(shù)量:"
31、;); scanf("%d",&num); for(k=0;k<200;k+) if(strcmp(usek.username,usertemp.username)=0) for(i=0;i<500;i+) if(strcmp(,name)=0) if(dressi.now<num) break; dressi.now=dressi.now-num; printf("nnn 商品 %s已經(jīng)銷售出了 %d件n",name,num); for(j=0;j<100;j+) if(usek.mdbj.flag
32、=0) strcpy(,name); usek.mdbj.flag=1; usek.mdbj.total=num; return 1; printf(" 商品出售出現(xiàn)錯誤!請重新操作!nnn"); return 0;void mounth(user *use) int i; int j; char name20; strcpy(name,usertemp.username); system("cls"); printf("n 在線用戶: %snn",usertemp.username); for(i=0;i
33、<100;i+) if(strcmp(usei.username,name)=0) for(j=0;j<100;j+) if(usei.mdbj.flag=1) printf(" 商品名稱: %s ,出售數(shù)量 : %dn",,usei.mdbj.total); int usermenu(user *use,DRESS *dress) int i; int chose1; while(1) system("cls"); printf("n 在線用戶: %snn",usertemp.username
34、); printf(" /=用戶功能菜單=/n"); printf(" / /n"); printf(" / 1,商品瀏覽 /n"); printf(" / 2,商品查找 /n"); printf(" / 3,出售商品 /n"); printf(" / 4,銷售記錄 /n"); printf(" / 5,用戶注銷 /n"); printf(" / /n"); printf(" / /n"); printf("
35、; /=/n"); printf("n /=請選擇服務(wù)的種類=/n"); scanf("%d",&chose1); if(chose1<0|chose1>9) printf(" 你的輸入有誤,請重新的輸入!n"); system("pasue"); continue; switch(chose1)case 1: system("cls");dressall(dress);break;case 2: system("cls");finddress(
36、dress);break;case 3: system("cls");sold(use,dress);system("pause");break;case 4: system("cls");mounth(use); system("pause");break;case 5: system("cls");if(userout()=1) return 3; break; default: continue; int monpass(user *use) int i; char pass20=0; char pass220=0; while(1) printf(" 請輸入新的密碼:"); for(i=0;i<6;i+) passi=getch(); printf("*"); printf("nnn 請?jiān)俅屋斎胄碌拿艽a:"); for(i=0
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 教學(xué)反思如何促進(jìn)學(xué)生主動學(xué)習(xí)試題及答案
- 幼兒園數(shù)學(xué)問題解決試題及答案
- 新能源汽車的政策導(dǎo)向分析試題及答案
- 月基礎(chǔ)理論試題及答案
- 2025年入黨培訓(xùn)測試題及答案(一)
- 物流金融服務(wù)在供應(yīng)鏈金融創(chuàng)新中的應(yīng)用場景與風(fēng)險(xiǎn)控制研究
- 絞車運(yùn)輸工試題及答案
- 工業(yè)催化考試題及答案
- 教育大數(shù)據(jù)在2025年教育行業(yè)數(shù)據(jù)驅(qū)動戰(zhàn)略規(guī)劃中的應(yīng)用研究
- 環(huán)境監(jiān)測面試真題及答案
- 中國醫(yī)療器械發(fā)展史
- 2024企業(yè)網(wǎng)絡(luò)安全意識培訓(xùn)
- 蘇科版八年級數(shù)學(xué)下冊題型突破提高類型五、反比例函數(shù)與一次函數(shù)結(jié)合求不等式解集與面積(原卷版+解析)
- 揚(yáng)州酒店行業(yè)分析
- 護(hù)理亞??乒ぷ鲄R報(bào)
- 動態(tài)血糖管理-動態(tài)血糖監(jiān)測CGM
- 2023年江蘇無錫市初中學(xué)業(yè)水平考試地理試卷真題(答案詳解)
- GB/T 4744-2013紡織品防水性能的檢測和評價(jià)靜水壓法
- GB/T 24267-2009建筑用阻燃密封膠
- 2022年陜西省高中學(xué)業(yè)水平考試政治題(原題)
- 一帶一路論文參考文獻(xiàn)(70個范例參考),參考文獻(xiàn)
評論
0/150
提交評論