C語言課程設(shè)計投票系統(tǒng)_第1頁
C語言課程設(shè)計投票系統(tǒng)_第2頁
C語言課程設(shè)計投票系統(tǒng)_第3頁
C語言課程設(shè)計投票系統(tǒng)_第4頁
C語言課程設(shè)計投票系統(tǒng)_第5頁
已閱讀5頁,還剩10頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、c語言課程設(shè)計前 言計算機(jī)科學(xué)技術(shù)的發(fā)展,不僅極大地促進(jìn)了整個科學(xué)技術(shù)的發(fā)展,而且明顯地加快了經(jīng)濟(jì)信息化和社會信息化的進(jìn)程。因此,計算機(jī)教育在全國備受重視,計算機(jī)知識與能力已成為21世紀(jì)人才素質(zhì)的基本要素之一。如今,高等教育的計算機(jī)教育發(fā)展十分迅速。十多年前,只有部分理工科專業(yè)開設(shè)計算機(jī)課程。今天,幾乎所有高校的所有專業(yè)都開設(shè)了程度不同的計算機(jī)課程。人們已經(jīng)認(rèn)識到,計算機(jī)知識已成為當(dāng)代知識分子知識結(jié)構(gòu)中不可缺少的重要組成部分。而除了掌握計算機(jī)的基礎(chǔ)知識和操作的基本能力外,掌握一門高級編程語言,并可以熟練運(yùn)用它,已成為當(dāng)代大學(xué)生綜合能力必要組成。計算機(jī)技術(shù)發(fā)展如此迅猛,計算機(jī)應(yīng)用如此廣泛,需要學(xué)

2、習(xí)的東西愈來愈多,而我們的總學(xué)時是有限的。一般來說,計算機(jī)課程學(xué)習(xí)可以分為兩部分:一部分是理論課程學(xué)習(xí),一部分是上機(jī)應(yīng)用實(shí)習(xí)。根據(jù)我們專業(yè)的性質(zhì)和要求,則應(yīng)側(cè)重于上機(jī)操作運(yùn)用。為此,學(xué)校特意在暑期最后一星期安排了32個學(xué)時的上機(jī)實(shí)習(xí)?,F(xiàn)將一星期的實(shí)習(xí)內(nèi)容及結(jié)果分析分列如下:投票程序一.題目要求:設(shè)有代號為a,b,c的三個個足球先生候選人,根據(jù)投票者在選票上對他們編號的填寫順序分別記分5,3,2。請編程從鍵盤上輸入投票人數(shù)及投票結(jié)果,統(tǒng)計他們的得分,并輸出哪位當(dāng)選足球先生。請注意;若同一張票上寫有兩個相同代號,則顯示“此票無效”,若最終前兩名得分相同應(yīng)顯示“重新投票”,否則顯示三個候選者得分并輸

3、出“祝賀x當(dāng)選冠軍!”。二. 需求分析: 根據(jù)題目要求,選票數(shù)據(jù)以txt文件的形式存儲,所以應(yīng)提供文件的打開,關(guān)閉,輸入,輸出等操作,并對讀取的文件進(jìn)行調(diào)用。三總體設(shè)計根據(jù)題目要求,可對程序進(jìn)行如下設(shè)計:主菜單函數(shù)選票人數(shù)模塊選票人數(shù)模塊數(shù)選票信息分?jǐn)?shù)統(tǒng)計選舉結(jié)果退出選出冠軍打開“vote. txt”文件顯示選票人數(shù)讀取“vote. txt”信息顯示選票信息處理選票票數(shù)清零票數(shù)累加并計分顯示候選人得分四詳細(xì)設(shè)計:1.主函數(shù) 本系統(tǒng)主要用主函數(shù)調(diào)用打開的選票數(shù)據(jù)和進(jìn)入主菜單函數(shù),通過調(diào)用主菜單函數(shù)實(shí)行主函數(shù)的功能。主菜單函數(shù)輸入5 選擇輸入15的數(shù)輸入14的數(shù)退出選擇輸入1或2輸入2輸入1入程序

4、main() void choose(); menu();void menu() void choose();int n,w;do puts("tt足球先生投票程序");puts("tt ");puts("tt 1.選票人數(shù): ");puts("tt 2.選票信息: ");puts("tt 3.分?jǐn)?shù): "); puts("tt 4.結(jié)果: ");puts("tt 5.退出 ");puts("tt ");puts("tt&quo

5、t;);printf("請選擇你的數(shù)字(1-5): bb");scanf("%d",&n);if(n<1|n>5) w=1;getchar();else w=0;while(w=1);switch(n)case 1:innum();break;case 2:input();break;case 3:output();break;case 4:choose();break;case 5:exit(0);2.選票人數(shù)模塊 選票信息保存在“voter.txt”文件中,之前已通過只讀的方式從“voter.txt”文件中打開并讀取出來并保存在之

6、前建立的結(jié)構(gòu)體變量votenum中。通過調(diào)用選票信息統(tǒng)計選票人數(shù),并通過選擇函數(shù)菜單返回或退出。程序void innum()int i=loadvote();printf("n選票人數(shù):t%dnn",i);select();3選票信息模塊 讀取選票信息,用for循環(huán)語句進(jìn)行票數(shù)的統(tǒng)計并用if else語句進(jìn)行選擇,如果出現(xiàn)票數(shù)一樣的則選票無效,通過調(diào)用累加函數(shù)將票數(shù)統(tǒng)計結(jié)果統(tǒng)計出來。 程序void input()int i;int m=loadvote();printf("n");number0.num=number1.num=number2.num=0

7、;for(i=0;i<m;i+)printf("%c %c %c",votei.c1,votei.c2,votei.c3);if(votei.c1=votei.c2|votei.c1=votei.c3|votei.c2=votei.c3) printf("t該票無效!n");else add(votei.c1,votei.c2,votei.c3);printf("n");printf("nn");select();4. 分?jǐn)?shù)統(tǒng)計模塊 通過三人所得票數(shù)按照計分方法將三人的得分計算出來,也要用到for循環(huán)語句和i

8、f else語句,并分別用將三人的得分結(jié)果輸出來。程序void output() int n,i;n=loadvote();number0.num=number1.num=number2.num=0;for(i=0;i<n;i+)if(votei.c1=votei.c2|votei.c1=votei.c3|votei.c2=votei.c3); else add(votei.c1,votei.c2,votei.c3); printf("n候選人的得分:t");printf("a: %dn",number0.num); printf("b:

9、 %dn",number1.num); printf("c: %dnnn",number2.num);select();5. 選舉結(jié)果模塊 運(yùn)用if else if語句對前面三個候選人的得分情況進(jìn)行比較分析,如果三個人的得分相同則顯示重新投票并返回主函數(shù)main(),否則通過 switch case語句進(jìn)行比較選出得分最高的人為冠軍。程序void choose() int c;if(number0.num>number1.num&&number0.num>number2.num)c=1;else if(number1.num>nu

10、mber0.num&&number1.num>number2.num)c=2; else if(number2.num>number1.num&&number2.num>number0.num)c=3; else printf("重新選票!n");main();switch(c)case 1:printf("n祝賀a當(dāng)選冠軍!nnn");select();case 2:printf("n祝賀b當(dāng)選冠軍!nnn");select();case 3:printf("n祝賀c當(dāng)選冠

11、軍!nnn");select();6.選擇模塊 選擇函數(shù)的建立是為了每運(yùn)行完一個模塊之后都可以通過選擇函數(shù)返回或退出。void select()int m,w; doputs("下一個");puts("tt");puts("tt ");puts("tt1. 返回 ");puts("tt2. 退出 ");puts("tt "); puts("ttn");printf("請選擇你的數(shù)字(1-2): bb");scanf("

12、;%d",&m);if(m<1|m>2)w=1;printf("錯誤n");select();else w=0; switch(m)case 1:printf("nn");menu();break;case 2:exit(0);while(w=1);五.完整編寫過程如下:完整程序#include<conio.h>#include<stdlib.h>#include<stdio.h>#define num 20struct foodchar c;int num;number3;struct

13、vote char c1; char c2; char c3;votenum;void count(char c,int n);void menu()int loadvote()file *fp;int i;if(fp=fopen("voter.txt","r")=null)printf("n不能打開此文件n");return 0; for(i=0;!feof(fp);i+)fscanf(fp,"%s%s%s",&votei.c1,&votei.c2,&votei.c3); fclose(f

14、p); return(i);void select()int m,w; doputs("下一個");puts("tt");puts("tt ");puts("tt1. 返回 ");puts("tt2. 退出 ");puts("tt "); puts("ttn");printf("請選擇你的數(shù)字(1-2): bb");scanf("%d",&m);if(m<1|m>2)w=1;printf(&quo

15、t;錯誤n");select();else w=0; switch(m)case 1:printf("nn");menu();break;case 2:exit(0);while(w=1);void innum()int i=loadvote();printf("n選票人數(shù):t%dnn",i);select();void add(char c1,char c2,char c3)int i;for(i=0;i<3;i+)switch(i)case 0:count(c1,5);break;case 1:count(c2,3);break;ca

16、se 2:count(c3,2);void count(char c,int n)switch(c)case 'a':number0.num+=n;break;case 'b':number1.num+=n;break;case 'c':number2.num+=n;void input()int i;int m=loadvote();printf("n");number0.num=number1.num=number2.num=0;for(i=0;i<m;i+)printf("%c %c %c",v

17、otei.c1,votei.c2,votei.c3);if(votei.c1=votei.c2|votei.c1=votei.c3|votei.c2=votei.c3) printf("t該票無效!n");else add(votei.c1,votei.c2,votei.c3);printf("n");printf("nn");select();void output() int n,i;n=loadvote();number0.num=number1.num=number2.num=0;for(i=0;i<n;i+)if(vo

18、tei.c1=votei.c2|votei.c1=votei.c3|votei.c2=votei.c3); else add(votei.c1,votei.c2,votei.c3); printf("n候選人的得分:t");printf("a: %dn",number0.num); printf("b: %dn",number1.num); printf("c: %dnnn",number2.num);select(); main() void choose(); menu();void menu()void ch

19、oose();int n,w;do程puts("tt足球先生投票序");puts("tt ");puts("tt 1.選票人數(shù): ");puts("tt 2.選票信息: ");puts("tt 3.分?jǐn)?shù): "); puts("tt 4.結(jié)果: ");puts("tt 5.退出 ");puts("tt ");puts("tt");printf("請選擇你的數(shù)字(1-5): bb");scanf("%d",&n);if(n<1|n&

溫馨提示

  • 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

提交評論