投票系统C语言程序,C语言课程投票程序系统.doc
C語言課程投票程序系統(tǒng)
目 錄
課程設(shè)計評語2
目 錄3
1.課程論文題目4
2.程序設(shè)計思路4
3.功能模塊圖5
4.數(shù)據(jù)結(jié)構(gòu)設(shè)計5
5.算法設(shè)計6
6.程序代碼13
7.程序運行結(jié)果22
8.編程中遇到的困難及解決方法25
9.總結(jié)心得及良好建議26
10.致謝26
1.課程論文題目
投票程序
[要求]
設(shè)有代號為‘a(chǎn)’,‘b’,‘c’的三個足球先生候選人,根據(jù)投票者在選票上對他們編號的填寫順序分別記分5,3,2。請編程從鍵盤上輸入投票人數(shù)及投票結(jié)果,統(tǒng)計他們的得分,并輸出哪位當(dāng)選足球先生。
注意:若同一張票上寫有兩個相同的代號,則顯示“此票無效”,若最終前兩名得分相同應(yīng)顯示“重新投票”,否則顯示三位候選人得分并輸入“祝賀X當(dāng)選冠軍”。
例如:投票人數(shù):5
請參加投票的人開始投票:
abc
cab
caa 此票無效
cba
bca
三位候選人得分:
a:12
b:13
c:15
祝賀c當(dāng)選冠軍?
[提示]
數(shù)據(jù)結(jié)構(gòu)可用結(jié)構(gòu)體數(shù)組,結(jié)構(gòu)體成員包括代號、得分?;蛘卟捎枚S數(shù)組,行方向?qū)?yīng)一張投票,列方向?qū)?yīng)各候選人得分。
2.程序設(shè)計思路
根據(jù)題目要求,首先要輸入投票者人數(shù),再輸入投票者的選票,而選票不是都有效,若同一張票上寫有兩個相同的代號,則此票無效,所以要將有效的選票選出來,然后對選票進(jìn)行統(tǒng)計得分,最終來比較得分,若有得分相同,則重新來選,最后得分最多的獲勝,最終成為足球先生。?
但是此程序還不夠完善,可以增加以下程序,增強其功能:
1.記錄廢票數(shù)目,以便廢票太多,影響選舉公正。
2.若出現(xiàn)a,b,c以外的投票,應(yīng)當(dāng)將該票記為無效。
3.若出現(xiàn)最終前兩名得分相同,應(yīng)該還可以運行程序,使其重新投票,重新計票,直至最后選出足球先生。
輸入選票信息輸出結(jié)果統(tǒng)計選票要輸入投票人數(shù),將其定義為re,選票信息可以用一個p[100][3]的數(shù)組來存放,re來控制投票信息數(shù)組的行數(shù)。最開始定義一個全局變量m=3,來表示候選者人數(shù)。這樣來控制數(shù)列數(shù),達(dá)到控制輸入的目的。每輸入一行,就開始判斷是否一張票上寫有兩個相同代號,或者是出現(xiàn)‘a(chǎn)’,‘b’,‘c’以外的投票結(jié)果,如果出現(xiàn)這種情況,就將票作廢,并記錄作廢票數(shù)。定義變量v記錄作廢票數(shù)。判斷完畢后,若出現(xiàn)廢票,就將其中的票府賦值為‘0’。
返回投票人數(shù)re,留到后續(xù)函數(shù)使用。主函數(shù)主函數(shù)只提供輸入、處理和輸出部分函數(shù)調(diào)用:【程序】#include
#include
int start(char p[][3]);???????????????? /****輸入函數(shù)****/void count(int a,char p[][3],int pp[]);?????? /***統(tǒng)計函數(shù)***/int result(int a,int b,int c);??????? ????????/***輸出函數(shù)***/int m;????? /*****全局變量 *****/void main()?????????????????? /*****主函數(shù)*****/{?????
?????? ? int a;
???????? m=3;?
????? int pp[3]={0,0,0};??
???? do
?????? ?{
????????????? ?char p[100][3]={{0}};
???? /******p[100][3]賦初值,清空******/????????? a=start(p);
????????? count(a,p,pp);????
????????? /******計算得分******/?????? ?}
?????????? while(result(pp[0],pp[1],pp[2]));
/*****若m=2循環(huán),直至選出足球先生*****/}
各功能模塊設(shè)計
(1)?? 輸入模塊
【分析】
要輸入投票人數(shù),將其定義為re,選票信息可以用一個p[100][3]的數(shù)組來存放,re來控制投票信息數(shù)組的行數(shù)。
最開始定義一個全局變量m=3,來表示候選者人數(shù)。這樣來控制數(shù)列數(shù),達(dá)到控制輸入的目的。
每輸入一行,就開始判斷是否一張票上寫有兩個相同代號,或者是出現(xiàn)‘a(chǎn)’,‘b’,‘c’以外的投票結(jié)果,如果出現(xiàn)這種情況,就將票作廢,并記錄作廢票數(shù)。定義變量v記錄作廢票數(shù)。判斷完畢后,若出現(xiàn)廢票,就將其中的票府賦值為‘0’。
返回投票人數(shù)re,留到后續(xù)函數(shù)使用。?
【程序】
?????? int start(char p[][3])
? {
????????? int re,i,j,v=0;
????????? printf("請輸入投票人數(shù)\n");
????????? scanf("%d",&re);
??????????
總結(jié)
以上是生活随笔為你收集整理的投票系统C语言程序,C语言课程投票程序系统.doc的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 什么是L2行情接口?
- 下一篇: 《人月神话》(The Mythical