電子投票平臺管理系統(tǒng)_第1頁
電子投票平臺管理系統(tǒng)_第2頁
電子投票平臺管理系統(tǒng)_第3頁
電子投票平臺管理系統(tǒng)_第4頁
電子投票平臺管理系統(tǒng)_第5頁
已閱讀5頁,還剩14頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

1、綜合性實驗報告題 目: 電子投票平臺管理系統(tǒng) 課程名稱: C語言程序設(shè)計 院系名稱: 計算機(jī)科學(xué)與技術(shù)學(xué)院 專業(yè)班級: 09計算機(jī)(非師范) 學(xué)生姓名: 趙紫堯 學(xué) 號: 20091202069 任課教師: 張震 一、實驗?zāi)康模?C語言課程設(shè)計是計算機(jī)學(xué)院重要的教學(xué)環(huán)節(jié),它為學(xué)生提供了一個既動手又動腦,將課本上的理論知識和實際有機(jī)的結(jié)合起來,獨(dú)立分析和解決實際問題的機(jī)會。1.進(jìn)一步鞏固和復(fù)習(xí)C程序設(shè)計的基礎(chǔ)知識。2.培養(yǎng)學(xué)生結(jié)構(gòu)化程序,模塊化程序設(shè)計的方法和能力。3. 提高學(xué)生調(diào)試程序的技巧和軟件設(shè)計的能力。4. 提高學(xué)生分析問題、解決問題以及綜合利用C語言進(jìn)行程序設(shè)計的能力。5. 了解軟件的

2、編制過程。二、實驗要求:1主要操作包括:數(shù)據(jù)輸入、輸出、插入、刪除、查找、修改、排序等。2.用C語言編程實現(xiàn)上述實驗內(nèi)容的結(jié)構(gòu)定義和相關(guān)功能,要求程序能夠正確執(zhí)行,最后提交源程序代碼及實驗報告。三、系統(tǒng)分析電子投票平臺有兩大功能是:管理員操作和游客操作。它包括功能選擇;身份驗證;投票人管理模塊;候選人管理模塊;投票區(qū)和得票結(jié)果管理六大模塊。保證了不同人有自己的操作,同時又不能執(zhí)行別人的操作,具有安全性,并且又有一定的實用性。本程序包含六個功能模塊:功能選擇;身份驗證;投票人管理模塊;候選人管理模塊和投票區(qū)。功能選擇:功能選擇模塊為系統(tǒng)提供類似于菜單的功能,讓用戶輸入功能選擇項,并進(jìn)入相應(yīng)的功能

3、執(zhí)行程序。系統(tǒng)按權(quán)限分為管理員的功能選擇和投票人的功能選擇。分別在admin()和gust()函數(shù)中。身份驗證:該模塊判斷要使用該系統(tǒng)的是投票人還是管理員,首先獲取登錄者的用戶名和密碼,當(dāng)用戶名和密碼相符時,判斷用戶的權(quán)限并進(jìn)入相應(yīng)功能選擇函數(shù)。當(dāng)用戶忘記密碼時,給用戶機(jī)會進(jìn)行重新輸入。源程序包含在denglu()中。候選人管理模塊:候選人管理模塊完成候選人的初始化、候選人信息的瀏覽、候選人信息修改、3個主要功能。源程序包含在chushihua();liulan();xiugai()。投票區(qū)管理:投票區(qū)完成該系統(tǒng)的主體功能。當(dāng)投票人順得登錄系統(tǒng)后,輸入要投票的候選人的姓名,即可完成投票。候選人

4、的得票信息會隨時刷新。每個投票人投票后就會失去投票的權(quán)利,避免重復(fù)投票。投票后立刻顯示各個候選人的得票數(shù)。四、程序操作說明書 . 用戶類型操作 輸入1進(jìn)行管理員操作。輸入帳號和密碼。進(jìn)行下一步操作。 輸入1進(jìn)行候選人初始化,并輸入各個候選人的資料。初始化完成后,返回管理員操作界面,輸入2可以瀏覽候選人。瀏覽后,可以輸入3修改候選人資料。然后選擇相應(yīng)的的資料進(jìn)行修改 輸入5可以返回主界面。重復(fù)操作。選擇2進(jìn)入投票者界面并輸入帳號和密碼。輸入1可以瀏覽候選人的資料。輸入2可以進(jìn)行投票,如果投票后就不能進(jìn)行投票了。投票成功后會輸出個候選人的得票數(shù)。五、系統(tǒng)實現(xiàn)表3-1 程序總框架(函數(shù)清單)表序號文

5、字解釋函數(shù)1管理員界面Admin() 2候選人初始化chushihua()3用戶登錄denglu();4主界面delujiemian()5管理員的操作guanliyuancaozuo();6投票者界面gust();7循環(huán)操作jj()8投票者瀏覽liulan()9主函數(shù)main()10投票toupiao()11修改候選人xiugai()12用戶資料初始化yonghuziliao();13用戶瀏覽 yonghuliulan() 詳細(xì)源程序#include <stdio.h>#include<conio.h>#include<string.h>#include&l

6、t;stdlib.h>#define SIZE 3#define NUM 11int zxcv;void chushihua();void liulan();void xiugai();struct user long number; char name15; char ps8; int power;int n;usNUM; struct candidate long number; char name80; char intro80; int votenum; cdSIZE;void yonghucaozuo();void denglujiemian()printf("*n&

7、quot;);printf("管理員請選擇1,游客請選擇2.n");printf("*n");void admin()/int j;printf("*n");printf("*1 初始化候選人*n");printf("*2 瀏覽候選人 *n");printf("*3 修改候選人 *n");printf("*4 退出 *n");printf("*5 返回上一層 *n");printf("*n");void gust()

8、printf("*n");printf("*1 瀏覽候選人 *n");printf("*2 投票 *n");printf("*3 退出 *n");printf("*4 返回上一層 *n");printf("*n");void chushihua() /初始化候選人FILE *fp;int i;printf("請輸入候選人的數(shù)據(jù):n");for(i=0;i<SIZE;i+)printf("請輸入第%d個候選人的數(shù)據(jù):n",i+1);

9、printf("n編號:");cdi.number=i+1;printf("%d",cdi.number);getchar();printf("n姓名:");gets();printf("n簡介:");gets(ro);printf("n得票數(shù)");scanf("%d",&cdi.votenum);printf("輸入完成,請繼續(xù)選擇其他功能n");if(fp=fopen("jilu","

10、wb")=NULL) /打開輸出文件jiluprintf("打開失敗n");return;for(i=0;i<SIZE;i+)if(fwrite(&cdi,sizeof(struct candidate),1,fp)!=1)printf("文件輸入失敗n");fclose(fp);void denglu()int g=1,j;char a15,b8;printf("帳號:");scanf("%s",a);printf("n");printf("密碼:"

11、);scanf("%s",b);printf("n");while(g)for( j=0;j<=NUM;j+)if(strcmp(a,)=0)&&(strcmp(b,usj.ps)=0)printf("輸入正確n");zxcv=j;g=0;break;elseif (j = NUM)printf("輸入有錯,請重新輸入n");printf("帳號:");scanf("%s",a);printf("n");printf(

12、"密碼:");scanf("%s",b);printf("n");FILE*qw;if(qw=fopen("yonghujilu","wb")=NULL)printf("打開文件失敗");return;for( int n=0;n<NUM;n+)while(fread(&usn,sizeof(user),1,qw)!=NULL)if(strcmp(a,)=0)&&(strcmp(b,usn.ps)=0)if(usn.power=1

13、)admin();elsegust();void liulan() /瀏覽候選人int i;FILE *fp;if(fp=fopen("jilu","rd")=NULL)printf("打開失敗");return;for(i=0;i<SIZE;i+)fread(&cdi,sizeof(struct candidate),1,fp);printf("編號%d 姓名%s 簡介%s 得票數(shù)%d",cdi.number,,ro,cdi.votenum);printf("

14、n");printf("操作完成,請繼續(xù)選擇其他功能n");void xiugai() /修改候選人int m,n;printf("請輸入你想修改的候選人的編號(1-3):n");scanf("%d",&n);while(n!=1)&&(n!=2)&&(n!=3)printf("輸入錯誤,請重新輸入(1-3):n");scanf("%d",&n);printf("您選中的候選人資料:n");printf("編

15、號%d 姓名%s 介紹%s 得票數(shù)%dn",cdn-1.number,,ro,cdn-1.votenum);printf("請輸入您想修改的候選人的內(nèi)容:n");printf(" 1姓名 2簡介 3 得票數(shù)n");scanf("%d",&m);while(m!=1)&&(m!=2)&&(m!=3)printf("輸入有錯,請重新輸入:n");scanf("%d",&m);getchar();if(m=

16、1)printf("新的姓名:n");gets();elseif(m=2)printf("新的簡介:n");gets(ro);elseprintf("新的票數(shù):n");scanf("%d",&cdn-1.votenum);printf("更改后的資料:n");printf("編號%d 姓名%s 介紹%s 得票數(shù)%dn",cdn-1.number,,ro,cdn-1.votenum);FILE*

17、fp;int i;if(fp=fopen("jilu","wb")=NULL)/打開輸出文件jiluprintf("打開失敗n");return;for(i=0;i<SIZE;i+)if(fwrite(&cdi,sizeof(struct candidate),1,fp)!=1)printf("文件輸入失敗n");fclose(fp);void yonghuliulan()int i;FILE*fp;if(fp=fopen("jilu","rd")=NULL)p

18、rintf("打開失敗");return;for(i=0;i<SIZE;i+)fread(&cdi,sizeof(struct candidate),1,fp);printf("編號%d 姓名%s 簡介%s 得票數(shù)%d",cdi.number,,ro,cdi.votenum);printf("n");fclose(fp);printf("操作成功,請繼續(xù)選擇其他功能n");void toupiao()int i,j,g=1;FILE*fp;char name20;if(u

19、szxcv.n=0)printf("您已經(jīng)投過票,沒有此權(quán)利了n");elseif(fp=fopen("jilu","rd")=NULL)printf("打開失敗");return;printf("各個候選人的編號和姓名n");for(j=0;j<SIZE;j+)fread(&cdj,sizeof(struct candidate),1,fp);printf("%d %sn",cdj.number,);fclose(fp);printf(&quo

20、t;你支持的候選人的姓名:n");getchar();gets(name);while(g)for(i=0;i<=SIZE;i+)if(strcmp(name,)=0)cdi.votenum=cdi.votenum+1;uszxcv.n=0;g=0;break;elseif(i=SIZE)printf("輸入有錯,請重新輸入n");printf("你支持的候選人的姓名:n");/getchar();gets(name);FILE *fp;if(fp=fopen("jilu","wb"

21、)=NULL)printf("打開文件失敗");return;for(i=0;i<SIZE;i+)if(fwrite(&cdi,sizeof(struct candidate),1,fp)!=1)printf("輸入錯誤");fclose(fp);printf("各個候選人的得票數(shù):n");for(i=0;i<SIZE;i+)printf("%s %dn",,cdi.votenum);printf("操作成功,請繼續(xù)選擇其他功能n");void jj();vo

22、id guanliyuancaozuo()int abc=1,j;while(abc=1)admin();scanf("%d",&j);while(j!=1&&j!=2&&j!=3&&j!=4&&j!=5)printf("輸入有錯,請重新輸入n");admin();scanf("%d",&j);switch(j)case 1:chushihua();break;case 2:liulan();break;case 3:xiugai();break;case

23、 4:exit(0);break;case 5:jj();break;void jj()int i;denglujiemian();scanf("%d",&i);while(i!=1&&i!=2)printf("輸入有錯,請重新輸入n");denglujiemian();scanf("%d",&i);denglu();if(usi.power=1)guanliyuancaozuo();elseyonghucaozuo();void yonghucaozuo()int bcd=1,j;while(bcd=

24、1)gust();scanf("%d",&j);while(j!=1&&j!=2&&j!=3&&j!=4)printf("輸入有錯,請重新輸入n");gust();scanf("%d",&j);switch(j)case 1:yonghuliulan();break;case 2:toupiao();break;case 3:exit(0);break;bcd=0;case 4:jj();break;void yonghuziliao()strcpy(,&

25、quot;admin");strcpy(us1.ps,"1234");strcpy(,"gust1");strcpy(us2.ps,"1234");strcpy(,"gust2");strcpy(us3.ps,"1234");strcpy(,"gust3");strcpy(us4.ps,"1234");strcpy(,"gust4");strcpy(us5.ps,"1234");strcpy(,"gust5");strcpy(us6.ps,"1234");strcpy(,"gust6");strcpy(us7.ps,"1234");strcpy(,"gust7");str

溫馨提示

  • 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論