




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、綜合性實(shí)驗(yàn)報(bào)告題 目電子投票平臺(tái)管理系統(tǒng)課程名稱C語言程序設(shè)計(jì)院系名稱:信息科學(xué)與工程學(xué)院專業(yè)班級:學(xué)生姓名:學(xué) 號:任課教師:一、實(shí)驗(yàn)?zāi)康?掌握用C語言進(jìn)行簡單的數(shù)據(jù)庫管理的要點(diǎn)。了解C程序菜單設(shè)計(jì)的一般方法。綜合利用指針、函數(shù)、結(jié)構(gòu)體數(shù)組以及文件等知識進(jìn)行程序設(shè)計(jì)。二、實(shí)驗(yàn)要求:主要操作包括:數(shù)據(jù)輸入、輸出、插入、刪除、查找、修改、排序等。用C語言編程實(shí)現(xiàn)上述實(shí)驗(yàn)內(nèi)容的結(jié)構(gòu)定義和相關(guān)功能,要求程序能夠 正確執(zhí)行,最后提交源程序代碼及實(shí)驗(yàn)報(bào)告。三、實(shí)驗(yàn)設(shè)備及環(huán)境:1)硬件:PC機(jī)2)操作系統(tǒng):Windows 2000/XP/20033)編譯環(huán)境:Visual C+ 6.0系統(tǒng)分析電子投票平臺(tái)
2、有兩大功能是:身份驗(yàn)證和投票。它包括功能選擇;身份驗(yàn)證; 投票人管理模塊;候選人管理模塊;投票區(qū)和得票結(jié)果管理六大模塊。保證了不 同人有自己的操作,同時(shí)又不能執(zhí)行別人的操作,具有安全性,并且又有一定的 實(shí)用性。本程序包含六個(gè)功能模塊:功能選擇;身份驗(yàn)證;投票人管理模塊;候選 人管理模塊;投票區(qū)和得票結(jié)果管理。功能選擇:功能選擇模塊為系統(tǒng)提供類似于菜單的功能,讓用戶輸入功 能選擇項(xiàng),并進(jìn)入相應(yīng)的功能執(zhí)行程序。系統(tǒng)按權(quán)限分為管理員的功能選擇和 投票人的功能選擇。分別在list1()和list2()函數(shù)中。身份驗(yàn)證:該模塊判斷要使用該系統(tǒng)的是投票人還是管理員,首先獲取 登錄者的用戶名和密碼,其中密碼
3、的獲取用不回顯的方式輸入,避免他人從旁 竊取,在一定程度上保證安全性。當(dāng)用戶名和密碼相符時(shí),判斷用戶的權(quán)限并 進(jìn)入相應(yīng)功能選擇函數(shù)。當(dāng)用戶忘記密碼時(shí),給用戶機(jī)會(huì)進(jìn)行重新輸入。源程 序包含在login()中。投票人管理模塊:該模塊對投票人進(jìn)行管理是由管理員實(shí)現(xiàn)的,確保只 有用管理員預(yù)先定義好的投票人用戶名和密碼才能正確登系統(tǒng)進(jìn)行投票。管理 員對投票人的管理有投票人的增加、刪除、修改和瀏覽。源程序包含在adduser()(增加用戶記錄);deluser()(刪除投票人信息);moduserbynum()(根據(jù)用 戶序號修改);scanbynum()(根據(jù)用戶序號排序?yàn)g覽)。候選人管理模塊:候選人管
4、理模塊完成候選人信息的瀏覽、候選人信息 修改、候選人簡介按姓名的查詢3個(gè)主要功能。源程序包含在sortscand()(排 序?yàn)g覽候選人);modifycand()(按號修改候選人信息);findcandbyname()(按 姓名查詢候選人)。投票區(qū)管理:投票區(qū)完成該系統(tǒng)的主體功能。當(dāng)投票人順得登錄系統(tǒng)后, 輸入要投票的候選人的數(shù)字代碼,即可完成投票。候選人的得票信息會(huì)隨時(shí)刷新。 該系統(tǒng)定義了一個(gè)單獨(dú)的函數(shù)vote()來實(shí)現(xiàn)此功能,每個(gè)投票人的一次投票都 會(huì)觸發(fā)該函數(shù),從而讀取并修改候選人信息文件,使得所投候選人的票數(shù)增一。得票結(jié)果管理:對于得票結(jié)果,系統(tǒng)規(guī)定管理員可以對其進(jìn)行管理操作, 操作之
5、一是排行瀏覽得票結(jié)果,從而可以得知哪位候選人被選中。該功能也是通 過對文件的讀寫和對數(shù)組的排序?qū)崿F(xiàn)的。對得票結(jié)果的另一個(gè)管理功能是清空得 票信息。此功能只有管理員能夠使用。功能的實(shí)現(xiàn)是用重寫文件的方式來實(shí)現(xiàn)的。 將文件內(nèi)容讀取到數(shù)組,將數(shù)組中每條記錄的得票信息都重置為0,再重新寫入 文件,從而完成得票記錄的清空功能。五、系統(tǒng)實(shí)現(xiàn)表3-1程序總框架(函數(shù)清單)表序號文字解釋函數(shù)1排序?yàn)g覽候選人sortscand()2按號修改候選人信息modifycand()3排序?yàn)g覽票數(shù)信息sortvotenum();4清空得票信息clearvotenum()5增加用戶記錄adduser();6刪除投票人信息d
6、eluser();7根據(jù)用戶序號修改moduserbynum()8根據(jù)用戶序號排序?yàn)g覽scanbynum()9按姓名查詢候選人findcandbyname()10投票vote()11登陸界面login()12創(chuàng)建用戶creatuser();13初始化候選人信息creatcandidate()詳細(xì)源程序#include #include #define SIZE 50/*為用戶初始化內(nèi)存*/#define MAX50/*為候選人初始化內(nèi)存*/#define INCREASE20/* 內(nèi)存增加數(shù)目*/typedef struct(long number;char name20;char intro
7、500;int votenum;candidate;typedef struct(long number;/* 用戶序號*/char name20;/* 用戶名稱 */char ps8;/* 用戶密碼 */ int power;/* 用戶權(quán)限 */ user;void vote()/投票選舉(int i,flag;/*flag用來標(biāo)志是否找對應(yīng)編號,即投票是否成功*/long candidatenum,number;candidate temps,*s,*t;int total=MAX;int num;char DataFile10=candidate,next;FILE * fp;s=(ca
8、ndidate*)malloc(total*sizeof(candidate);if(s=NULL)(printf(分配內(nèi)存失敗!n按任意鍵繼續(xù).n);getch();return;system(cls);begin:flag=0;fp=fopen(DataFile,rb);if(fp=NULL)(printf(n打開文件失敗!按任意鍵結(jié)束.n);getch();exit(1);printf(請輸入你要選舉的候選人序號:);scanf(ld,&candidatenum);printf(你要選舉的候選人序號是:ldn”,candidatenum);number二candidatenum;num=
9、0;while(fread(&temps,sizeof(candidate),1,fp)=1)(if(temps.number!二candidatenum)(snum.number二temps.number;strcpy(,);strcpy(ro,ro);snum.votenum二temps.votenum;else(snum.number二number;strcpy(,);strcpy(ro,ro);snum.votenum二temps.votenu
10、m+1;flag=1;num+;if(total=num)(total+=INCREASE;t=realloc(s,total*sizeof(candidate);if(t=NULL)(printf(內(nèi)存分配失??! n按任意鍵繼續(xù).n);free(s);/*釋放內(nèi)存*/getch();return;s=t;t=NULL;fclose(fp);if(flag=0)(printf (-投票失敗!找不到你要選舉的候選人,按任意鍵繼續(xù).n);getch();goto begin;else(printf(投票成功!n);/*將修改后的結(jié)構(gòu)體數(shù)組記錄寫入文件*/fp=fopen(DataFile,wb);
11、if(fp=NULL)(printf(n寫入文件錯(cuò)誤!按任意鍵結(jié)束.n”,DataFile);getch();exit(1);for(i=0;inum;i+)(if(fwrite(&si,sizeof(candidate),1,fp)! 二 1)printf(n寫入文件錯(cuò)誤!按任意鍵結(jié)束.n);getch();exit(1);fclose(fp);/*顯示投票后的投票情況*/fp=fopen(DataFile,rb);if(fp=NULL)(printf(n打開文件錯(cuò)誤!按任意鍵結(jié)束n”,DataFile);getch();exit(1);printf(投票后的信息是:n);printf(n
12、序號 t 姓名t 票數(shù)n);while(fread(&temps,sizeof(candidate),1,fp)! = (int)NULL)(if(temps.number!=0)printf(n%ldt%st%dn,temps.number,,temps.votenum);fclose(fp);printf(n 是否繼續(xù)?(y/n)”);fflush(stdin);next二getchar();putchar(n);if(next=y|next=Y)goto begin;free(s);/* 釋放內(nèi)存 */。list1()(int ch2;list01:system(cl
13、s);printf(+n);printf(|歡迎進(jìn)入電子投票平臺(tái)!|n);printf(|+|n);printf(|1.排序?yàn)g覽候選人|2.按號修改候選人信息|n);printf(|3.排序?yàn)g覽票數(shù)信息|4,清空得票信息|n);printf(|+n);printf(|#printf(|5.增加用戶記錄| 6.刪除投票人信息|n);printf(|7.根據(jù)用戶序號修改| 8.根據(jù)用戶序號排序?yàn)g覽 |n);printf(|0.退出系統(tǒng)|n);printf(+n);printf(請輸入您的選擇:);scanf(%d,&ch2);switch(ch2)(case 1:(system(cls);sort
14、scand();goto list01;case 2:(system(cls);modifycand();goto list01;case 3:(system(cls);sortvotenum();goto list01;case 4:(system(cls);clearvotenum();goto list01;case 5:(system(cls);adduser();goto list01;case 6:(system(cls);deluser();goto list01;case 7:(system(cls);moduserbynum();goto list01;case 8:(sys
15、tem(cls);scanbynum();goto list01;case 0:exit(0);default:printf(選擇錯(cuò)誤n按任意鍵繼續(xù).n);system(cls);getch();goto list01;list2()/投票人功能菜單(int ch3;list02:system(cls);printf(+ -+n )printf(|歡迎進(jìn)入電子投票系統(tǒng)|n)printf(|1.排序?yàn)g覽候選人|n)printf(|2.按姓名查詢候選人|n)printf(|3.投票|n)printf(|0.退出系統(tǒng)|n)printf(+ -+n )printf(請輸入您的選擇:);scanf(d,
16、&ch3);switch(ch3)(case 1:(system(cls);sortscand();goto list02;case 2:(system(cls);findcandbyname();goto list02;case 3:(system(cls);vote();goto list02;case 0:exit(0);default:printf(選擇錯(cuò)誤n按任意鍵繼續(xù).n);getch();main()/*主菜單選項(xiàng)*/(int ch1,ch;char ps8,next;start:system(cls); TOC o 1-5 h z printf(t#n);printf(t#n)
17、;printf(t /n);printf(t( )n);printf(t+oOOo(_)oOOo+n);printf(t|歡迎進(jìn)入|n);printf(t|電子投票大廳|n);printf(t|n);printf(t|1.創(chuàng)建用戶|n);printf(t|2.登錄系統(tǒng)|n);printf(t|0.退出系統(tǒng)|n);printf(t|n);printf(t|作者 謝國林 20074300301 |n);printf(t|2008 年 6 月 29 號 |n);printf(t+n);printf(t請輸入您的選擇:);scanf(%d,&ch1);switch(chl)(case 1:(reput
18、in:printf(t請輸入創(chuàng)建密碼:);scanf(%s,ps);if(strcmp(ps,666666)=0)(againre:system(cls);printf(nnn創(chuàng)建用戶文件請選擇1;創(chuàng)建候選人文件請選擇2;結(jié)束請 按 3n);scanf(%d,&ch);if(ch=1)(system(cls);creatuser();if(ch=2)(system(cls);creatcandidate();if(ch=3)goto start;next二getch();goto againre;elseprintf(n密碼錯(cuò)誤是否繼續(xù)?(y/n)”);fflush(stdin);next=g
19、etchar();putchar(n);if(next=y|next=Y)goto reputin;elsebreak;break;case 2:login();break;case 0:exit(0);default:printf(選擇錯(cuò)誤!n按任意鍵繼續(xù).n);fflush(stdin);getch();break;實(shí)驗(yàn)結(jié)果1.進(jìn)入主菜單就會(huì)見到圖一:圖一:主菜單(由于第一次沒保存該圖,學(xué)校機(jī)房又關(guān)閉,只能用寫的!)# /( ) TOC o 1-5 h z +oOOo(_)oOOo+|歡迎進(jìn)入|電子投票大廳|1|1.創(chuàng)建用戶|2.登錄系統(tǒng)|0.退出系統(tǒng)|1|作者謝國林20074300301
20、|2008年6月29號+2 .當(dāng)輸入數(shù)據(jù)一的時(shí)候就可以進(jìn)入管理員功能選項(xiàng)圖二:管理員功能選統(tǒng)統(tǒng)系人 西又選 投選候 子候詢 電覽查統(tǒng) 入瀏省系 進(jìn)序姓理由 迎歡1 ..圖三:投票人功能選項(xiàng)3.圖三:投票人功能選項(xiàng)請輸入您的選擇二六、實(shí)驗(yàn)總結(jié)通過這學(xué)期對C語言的學(xué)習(xí),收獲良多。盡管有些部分覺得很有難度,但 在不停反復(fù)的看書與上機(jī)練習(xí)下,還是有所理解的。這個(gè)實(shí)驗(yàn)的程序是我從書本 上的一些程序仿照而來的。剛開始進(jìn)行編譯時(shí)發(fā)現(xiàn)許多錯(cuò)誤和警告,然后就慢慢 的進(jìn)行分析修改程序,錯(cuò)誤和警告不斷減少,最后沒錯(cuò)誤了,然后進(jìn)行運(yùn)行,可 是還是不能運(yùn)行,最后對源程序又進(jìn)行了認(rèn)真的修改,終于可以運(yùn)行了!有些功能不能實(shí)現(xiàn),應(yīng)該是功能模塊的問題,我就對模塊函數(shù)進(jìn)行認(rèn)真的分 析,花了好長時(shí)間又發(fā)現(xiàn)了不少的問題,比如用if條件時(shí)把等號寫成了賦值號 等等。還有一些比較隱藏的錯(cuò)誤,如:把長整型數(shù)據(jù)和字符串弄混淆,scanf函
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 3個(gè)普通油茶品種與攸縣油茶‘攸雜2’的細(xì)胞融合研究
- 醫(yī)療項(xiàng)目ESG評估與投資風(fēng)險(xiǎn)防范服務(wù)協(xié)議
- 家政人員隱私權(quán)保護(hù)與責(zé)任承擔(dān)合同
- 網(wǎng)紅網(wǎng)紅舞蹈室地板租賃服務(wù)協(xié)議
- 地下管網(wǎng)漏損排查與管網(wǎng)信息化管理合作協(xié)議
- 航空行李保險(xiǎn)責(zé)任追加補(bǔ)充合同
- 北師大七年級數(shù)學(xué)課堂互動(dòng)計(jì)劃
- 地理科學(xué)研究生復(fù)習(xí)計(jì)劃
- 物業(yè)公司客戶滿意度調(diào)查總結(jié)與計(jì)劃
- 小學(xué)一年級下冊期末復(fù)習(xí)計(jì)劃
- 2025年移動(dòng)式壓力容器R2操作證考試筆試試題(200題)附答案
- 造價(jià)咨詢管理制度體系
- 中馬欽州產(chǎn)業(yè)園管委會(huì)筆試試題
- 中藥處方培訓(xùn)課件
- 2024年農(nóng)藝師新政策解讀試題及答案
- 2025年版中等職業(yè)教育專業(yè)教學(xué)標(biāo)準(zhǔn) 750107 繪畫
- 應(yīng)急物資使用方法培訓(xùn)
- 坡改梯專項(xiàng)工程施工組織設(shè)計(jì)方案
- 施工現(xiàn)場灑水降塵制度及措施
- 企業(yè)文化-電力與能源戰(zhàn)略參考題庫2025版
- 人教版(2024)七年級下冊英語UNIT 6 Rain or Shine 綜合素質(zhì)評價(jià)測試卷(含答案)
評論
0/150
提交評論