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