-
大小: 4KB文件類型: .c金幣: 1下載: 0 次發(fā)布日期: 2021-06-04
- 語(yǔ)言: C/C++
- 標(biāo)簽: C語(yǔ)言??大作業(yè)??選舉系統(tǒng)??
資源簡(jiǎn)介
功能概述
(1) 設(shè)置候選人的總個(gè)數(shù)。
(2) 記錄各候選人的名字(為每個(gè)候選人自動(dòng)生成一個(gè)編號(hào))
(3) 顯示候選人的編號(hào)和名稱
(4) 設(shè)置要選舉的人數(shù)
(5) 輸入選票信息,若選票中候選人的個(gè)數(shù)大于要選舉的人數(shù),則作為無(wú)效票。
(6) 統(tǒng)計(jì)總的選票數(shù),有效票數(shù),無(wú)效票數(shù),每個(gè)候選人的得票數(shù)。
(7) 輸出獲選人的姓名和得票數(shù)。
擴(kuò)展功能要求:
(1) 對(duì)候選人的得票數(shù)進(jìn)行排序輸出。
(2) 把選票信息、統(tǒng)計(jì)信息存入到不同文件中。
(3) 把文件中的信息導(dǎo)入到程序中
代碼片段和文件信息
#include
#include?
#include
#include
typedef?struct?
{
?int?num;?????????????//編號(hào)
?char?name[20];???????//名字
?int?flag;????????????//票數(shù)
}Student;
void?welcome()??????????????????????????//歡迎界面
{
?printf(“\t\t\t\t\t????????----------------------\n“);
?printf(“\t\t\t\t\t\t|歡迎使用班干選舉系統(tǒng)|\n“);
?printf(“\t\t\t\t\t????????----------------------\n“);
?printf(“\n“);
?printf(“\t??本班干選舉系統(tǒng)僅支持選舉一個(gè)職位多選一功能,如需選舉多個(gè)職位,請(qǐng)選舉完畢后關(guān)閉重啟程序重新輸入。\n“);
?printf(“\n“);
}
void?input(Student?stud[]int?n)??????????//錄入功能
{
?int?i;
?printf(“\n“);
?printf(“現(xiàn)在開(kāi)始錄入候選人信息!\n“);
?printf(“\n“);
?srand((unsigned)time(NULL));?
?for(i=0;i ?{???????
??stud[i].num=rand()%100+1;????????????//產(chǎn)生隨機(jī)數(shù)
??printf(“編號(hào):%d\t“stud[i].num);
??printf(“候選人姓名:“);
??scanf(“%s“&stud[i].name);
??stud[i].flag=0;
??printf(“得票數(shù):%d\n“stud[i].flag);
??printf(“\n“);
?}
}
void?vote(Student?stud[]int?nint?m)??????????//投票功能
{
?int?ijnum;?
?int?error=0effect=0total=0;??????//error為無(wú)效票數(shù),effect為有效票數(shù),total為總票數(shù)
?FILE?*fq;
?printf(“現(xiàn)在開(kāi)始投票!\n“);
?for(i=1;i<=m;i++)
?{
??printf(“投票人%d\n“i);
??printf(“請(qǐng)輸入您要投票給同學(xué)的編號(hào):“);
??scanf(“%d“&num);
??for(j=0;j ??{
???if(num==stud[j].num)
???{
???stud[j].flag?+=1;
???effect+=1;???????????????????//統(tǒng)計(jì)有效票數(shù)?
???????break;
???}?????
??}
??printf(“\n“);
?}
?total=m;??????????????????????????//統(tǒng)計(jì)總投票數(shù)?
?error=total-effect;
?if((fq=fopen(“count.txt““w+“))==NULL)??????????????//新建count文件
?{
???printf(“文件打開(kāi)失敗!\n“);
???return;
?}
?fprintf(fq“%d,%d,%d“effecterrortotal);??
?
??????????????//將有效、無(wú)效、總票數(shù)情況寫入count文件
?
?fclose(fq);
?printf(“本次投票結(jié)束!\n“);
?printf(“\n“);
}
void?sort(Student?stud[]int?nint?m)???????????//排序功能
{
?FILE?*fp;
?int?ijk;
?Student?temp;???????????????????????????????//中間變量
?if((fp=fopen(“result.dat““w“))==NULL)??????????????//新建result文件
?{
???printf(“文件打開(kāi)失敗!\n“);
???return;
?}
?for(i=0;i ?{
??k=i;
??for(j=i+1;j ???if(stud[j].flag>stud[k].flag)
???????k=j;
??? temp=st
評(píng)論
共有 條評(píng)論