




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
課程設(shè)計(jì)報(bào)告1.需求分析電子投票平臺(tái)的需求來源于兩種不同的角色:治理員,投票用戶。〔1〕.治理員人的票數(shù)進(jìn)展排序以及對系統(tǒng)的用戶進(jìn)展治理,創(chuàng)立使用者用戶名和密碼等。一般投票用戶〔投票是只需做到輸入自己想要投票的候選人編號(hào)即可完成投票〕2.軟件功能模塊構(gòu)造如圖:源程序代碼/*Note:YourchoiceisCIDE*/#include“stdio.h“#include“string.h“#include“stdlib.h“#definelen1sizeof(structcan)#definelen2sizeof(structur)intpower;//記錄登錄方式structcan{intid;intsum;charname[20];charjs[300];structcan*next;};structur{charname[20];charpsw[20];structur*next;};voidindex;//進(jìn)入界面voidadmin;//治理員界面voiduser;//用戶界面voidadcd;//增候選人界面voidbscd;//掃瞄候選人structcan*getcanlist;//從can.txt文件取出鏈表,返回候選人鏈表頭指針voidcanlistwf(structcan*p);//把候選人鏈表寫入文件voidauser;//增用戶structur*geturlist;//獲得用戶信息鏈表voiduserlwf;//更ur.txt用戶信息char*userfpsw(char*name);//查詢用戶密碼voidmain{index;}voidindex{intindexa;voidlogin;//聲明登錄界面函數(shù)printf(“---------歡送使用電子投票系統(tǒng) \n“);printf(“治理員登陸 請按1\n“);printf(“投票用戶登錄 請按2\n“);printf(“請輸入登錄方式:“);scanf(“%d“,&indexa);吸取輸入的回車if(indexa==1||indexa==2){power=indexa;login;}else{printf(“\n輸入錯(cuò)誤,請重輸入\n“);index;}}voidlogin{charlogina[20]={”\0”},loginb[20]={”\0”};charpsw[20];structur*pp;printf(“------登錄界面 \n“);printf(“請輸入登錄帳號(hào):“);gets(logina);if(logina[0]!=”\0”){printf(“請輸入登錄密碼:“);}else{printf(“\n輸入的登錄帳號(hào)不能為空\n“);login;}gets(loginb);strcpy(psw,userfpsw(logina));帳號(hào)密碼均正確{if(power==1&&!strcmp(“admin“,logina)){admin;}elseif(power==2){user;}else{printf(“\n權(quán)限不正確,請重輸入\n“);login;}}else{printf(“\n帳號(hào)密碼不正確,請重輸入\n“);login;}}voidadmin//治理員工作頁面{intadmina;while(1){printf(“--------治理員工作界面 \n“);printf(“增候選人信息 請按1\n“);printf(“掃瞄候選人信息 請按2\n“);printf(“增投票用戶 請按3\n“);printf(“要進(jìn)展操作請輸入相應(yīng)的數(shù)字:“);scanf(“%d“,&admina);吸取輸入多余字符if(admina==1)//依據(jù)輸入跳到相應(yīng)處理函數(shù){break;}elseif(admina==2){bscd;printf(“操作成功,自動(dòng)返回上一層\n“);admin;break;}elseif(admina==3){break;}else//出錯(cuò)處理{printf(“\n輸入出錯(cuò),請重輸入\n“);}}}voidadcd//增候選人函數(shù){charname[20],js[300];structcan*h,cd;voidadmin;while(1){printf(“--------增候選人界面 \n“);printf(“請輸入候選人姓名:“);gets(name);if(name[0]!=”\0”)else{printf(“輸入出錯(cuò),請重試\n“);continue;}printf(“請輸入候選人簡介:\n“);gets(js);strcpy(cd.js,js);h=getcanlist;cd.id=h->id+1;cd.next=h;canlistwf(&cd);printf(“操作成功,自動(dòng)返回上一層\n“);admin;break;}}voidbscd//掃瞄候選人信息函數(shù){structcan*p,*p1,*p2;charname[20],js[300];inta,t;printf(“是否按票數(shù)降序排列?1是/2不是,請輸入對應(yīng)的數(shù)字\n“);scanf(“%d“,&a);if(a==1){p1=p2=p;while(p2->next!=NULL){p2=p2->next;if(p2->next==NULL)break;交換值{me,name);t=p1->id,p1->id=p2->id,p2->id=t;t=p1->sum,p1->sum=p2->sum,p2->sum=t;}}}if(a==2){printf(“--------候選人信息 \n“);printf(“編號(hào)\t候選人姓名\t所得票數(shù)\t候選人簡介\n“);if(p==NULL){printf(“數(shù)據(jù)為空,自動(dòng)返回上一層\n“);admin;}else{while(p->next!=NULL){printf(“%3d\t“,p->id);printf(“%4d\t\t“,p->sum);printf(“%s\t\n“,p->js);p=p->next;}}}elseif(a!=1){printf(“輸入錯(cuò)誤,請重輸入\n“);bscd;}}structcan*getcanlist//從can文件取出鏈表,返回頭指針{charstr[300],ch,*t=str;inti=1;FILE*fp;structcan*p1=NULL,*p2=NULL,*h=NULL;if((fp=fopen(“can.txt“,“r“))==NULL){printf(“無法翻開此文件“);exit(0);}while(!feof(fp)){if(i++==1){p1=p2=(structcan*)malloc(len1);//開拓單元,存一個(gè)候選人h=p2;//指定頭指針}else{p1=p2;p2=(structcan*)malloc(len1);p1->next=p2;}取出idch=fgetc(fp);//吸取回車p2->id=atoi(str);//設(shè)置id取出sumch=fgetc(fp);//吸取回車p2->sum=atoi(str);//設(shè)置sum取出namech=fgetc(fp);//吸取回車設(shè)置namefscanf(fp,“%s“,str);//取出jsch=fgetc(fp);//吸取回車設(shè)置jsp2->next=NULL;}returnh;}voidcanlistwf(structcan*p)//更c(diǎn)an數(shù)據(jù)文件{FILE*fp;{printf(“無法翻開此文件“);exit(0);}while(p->next!=NULL)//把鏈表數(shù)據(jù)逐個(gè)輸出到文件{fprintf(fp,“%d\n“,p->id);fprintf(fp,“%d\n“,p->sum);fprintf(fp,“%s\n“,p->name);fprintf(fp,“%s\n“,p->js);p=p->next;}fclose(fp);}voiduser//用戶界面{intusera;intusercd;structcan*p,*t;printf(“------用戶界面 \n“);printf(“掃瞄候選人信息 請按1\n“);printf(“投票給候選人 請按2\n“);getchar;if(usera==1)//掃瞄候選人信息{bscd;printf(“操作成功,自動(dòng)返回上一層\n“);user;}elseif(usera==2)//投票{printf(“請輸入候選人編號(hào):“);scanf(“%d“,&usercd);t=p=getcanlist;while(p->next!=NULL){if(p->id==usercd){(p->sum)++;break;}p=p->next;}printf(“操作成功,自動(dòng)返回上一層\n“);canlistwf(t);user;}}voidauser//增用戶{charname[20];charpsw[20];structur*p,ausera;printf(“請輸入用戶帳號(hào):“);gets(name);printf(“請輸入用戶密碼:“);gets(psw);p=geturlist;strcpy(ausera.psw,psw);ausera.next=p;printf(“操作成功,自動(dòng)返回上一層\n“);admin;}structur*geturlist//獲得用戶信息鏈表{charstr[20],ch,*t=str;inti=1;FILE*fp;structur*p1=NULL,*p2=NULL,*h=NULL;if((fp=fopen(“ur.txt“,“r“))==NULL){printf(“無法翻開此文件“);exit(0);}while(!feof(fp)){if(i++==1){p1=p2=(structur*)malloc(len2);//開拓單元,存一個(gè)候選人h=p2;//指定頭指針}else{p1=p2;p2=(structur*)malloc(len2);p1->next=p2;}取出namech=fgetc(fp);//吸取回車設(shè)置namefscanf(fp,“%s“,str);//取出pswch=fgetc(fp);//吸取回車設(shè)置pswp2->next=NULL;}returnh;}voiduserlwf(structur*p)//更ur.txt用戶信息{FILE*fp;{printf(“無法翻開此文件“);exit(0);}while(p->next!=NULL)//把鏈表數(shù)據(jù)逐個(gè)輸出到文件{fprintf(fp,“%s\n“,p->psw);p=p->next;}fclose(fp);}char*userfpsw(char*name)//查詢用戶密碼{structur*p;while(p->next!=NULL){if(!strcmp(name,p->name)){returnp->psw;break;}p=p->next;}returnNULL;}四.測試用例和測試說明。在這里必需說明一下使用方法,首先要在程序文件名目下建立一個(gè)ur.txt〔括號(hào)里為說明,不必寫入:admin(admin不能自定義,輸入回車換行)這里是密碼,可以自定義,之后輸入回車換行,保存〕這樣編譯后就可以運(yùn)行了。首頁輸入1后,消滅登錄界面admin界面輸入對應(yīng)數(shù)字可以實(shí)現(xiàn)相應(yīng)功能掃瞄功能添加候選人功能添加用戶功能用
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 創(chuàng)新素養(yǎng)視角下高中數(shù)學(xué)高效課堂的構(gòu)建
- 中學(xué)教育基礎(chǔ)知到課后答案智慧樹章節(jié)測試答案2025年春白城師范學(xué)院
- 三級(jí)人力資源管理師-《企業(yè)人力資源管理師(理論知識(shí))》考前強(qiáng)化模擬卷1
- 高考物理課標(biāo)版一輪復(fù)習(xí)考點(diǎn)規(guī)范練19動(dòng)量動(dòng)量定理動(dòng)量守恒定律的理解
- 重慶市復(fù)旦中學(xué)2024-2025學(xué)年高一下學(xué)期開學(xué)考試生物試題(原卷版)
- 揭陽中式花園施工方案
- 湖南省衡陽縣三中2017-2018學(xué)年高二上學(xué)期期中考試歷史試卷
- 廣東省惠州市惠東中學(xué)2017-2018學(xué)年高三5月熱身綜合練習(xí)生物(二)答案
- 浙江省寧波市2024-2025學(xué)年高三上學(xué)期期末模擬檢測語文試題(原卷版+解析版)
- 河南省南陽市鎮(zhèn)平縣2024-2025學(xué)年七年級(jí)上學(xué)期期末語文試題(原卷版+解析版)
- 2025年春新人教版數(shù)學(xué)一年級(jí)下冊課件 第一單元 2.拼一拼
- 《煤礦職業(yè)病危害防治》培訓(xùn)課件2025
- 2024年網(wǎng)絡(luò)建設(shè)與運(yùn)維選擇題理論試題題庫
- 四年級(jí)下冊勞動(dòng)《小小快遞站》課件
- 終止供應(yīng)商協(xié)議書
- 2024年菠菜種子項(xiàng)目可行性研究報(bào)告
- 專題12 職業(yè)夢想 -2023年中考英語作文熱點(diǎn)話題終極預(yù)測
- 食品抽檢核查處置重點(diǎn)安全性指標(biāo)不合格原因分析排查手冊
- 暑托班合同范例
- GB/T 44904-2024售后服務(wù)無理由退貨服務(wù)規(guī)范
- 《導(dǎo)管室的無菌原則》課件
評論
0/150
提交評論