c语言投票程序设计,C语言课程设计-投票程序设计.doc
投票程序
題目與要求:
題目要求
設有代號為’a’,’b’,’c’的三個個足球先生候選人,根據投票者在選票上對他們編號的填寫順序分別記分5,3,2。請編程從鍵盤上輸入投票人數及投票結果,統計他們的得分,并輸出哪位當選足球先生。請注意;若同一張票上寫有兩個相同代號,則顯示“此票無效”,若最終前兩名得分相同應顯示“重新投票”,否則顯示三個候選者得分并輸出“祝賀X當選冠軍!”。
例如:投票人數:5
輸入投票內容:
a b c
c a b
c b a
c a a 該票無效!
c b a
三位候選人得分:
a: 12
b: 13
c: 15
祝賀c當選冠軍!
1.1問題提出與要求:
需求分析
本程序中要求候選人有編號和得票數,且每張選票上要同時寫上三個候選人的編號,最終輸出誰是獲勝者。因此可以用結構體來存儲候選人的信息。唱票中要求相對應的編號分別記分為5、3、2,因此在記分程序中可以用一個條件表達式來進行統計得分。統計結果中若前兩名有相同的得票數則要求重新投票。為此要求把三個侯選人的總得分進行比較,則可以用一個判斷語句來判斷,簡單明了。
數據結構可用結構體數組,結構體成員包括代號、得分。或者采用二維數組,行方向對應一張投票,列方向對應各候選人得分。
2.功能實現設計:
2.1總體設計——程序流程圖
流程圖:
開始輸入投票人數及投票內容
開始
輸入投票人數及投票內容
統計相應候選人的票數并排序
選票編號重復?
判斷前兩名
總票數是否相等
結束
重新投票
N
Y
Y
N
輸出投票結果及獲勝者
定義結構體與相關變量
該票無效
2.2詳細設計:
<1>程序源代碼:
#include
main()
{
int finish=0,first,seccond,i,scores[3],num;
char s1,s2,s3;
printf("*******************************************************\n");
printf("*****Welcome to use footballman voting programe! ******\n");
printf("*******************************************************\n");
while(finish==0) /*****輸入模塊*****/
{
for(i=0;i<3;i++) scores[i]=0;
printf("請輸入投票人數: \n"); /*****有多少人投票*****/
scanf("%d",&num); /*****輸入投票人數*****/
getchar();
printf("請輸入投票內容(選擇您所需的abc候選人次序): \n"); /*****選票的內容*****/
for(i=0;i
{
scanf("%c %c %c",&s1,&s2,&s3); /*****輸入投票內容*****/
getchar();
if(s1==s2||s1==s3||s2==s3)
printf("該票無效!\n"); /*****該票無效*****/
if(s1!=s2 && s1!=s3 && s2!=s3 && (s1>='a' && s1<='c')
&& (s2>='a' && s2<='c') && (s3>='a' && s3<='c'))/*****統計模塊*****/
{
scores[s1-'a']+=5;
scores[s2-'a']+=3;
scores[s3-'a']+=2;
}
}
printf("Voting results:\n"); /*****輸出模塊*****/
printf("a: %d\n",scores[0]); /*****結果輸出*****/
printf("b: %d\n",scores[1]);
printf("c: %d\n",scores[2]);
first=0;
seccond=1;
for(i=0;i<3;i++)
{
if(scores[i]>scores[first])
{
seccond=first;
first=i;
}
總結
以上是生活随笔為你收集整理的c语言投票程序设计,C语言课程设计-投票程序设计.doc的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 致敬达叔 -- 80、90的童年观影记忆
- 下一篇: 英国资深律师称加密货币和智能合约必然将成