C语言课程设计投票系统.doc

上传人:仙人指路1688 文档编号:2384856 上传时间:2023-02-17 格式:DOC 页数:15 大小:133KB
返回 下载 相关 举报
C语言课程设计投票系统.doc_第1页
第1页 / 共15页
C语言课程设计投票系统.doc_第2页
第2页 / 共15页
C语言课程设计投票系统.doc_第3页
第3页 / 共15页
C语言课程设计投票系统.doc_第4页
第4页 / 共15页
C语言课程设计投票系统.doc_第5页
第5页 / 共15页
点击查看更多>>
资源描述

《C语言课程设计投票系统.doc》由会员分享,可在线阅读,更多相关《C语言课程设计投票系统.doc(15页珍藏版)》请在三一办公上搜索。

1、C语言课程设计前 言计算机科学技术的发展,不仅极大地促进了整个科学技术的发展,而且明显地加快了经济信息化和社会信息化的进程。因此,计算机教育在全国备受重视,计算机知识与能力已成为21世纪人才素质的基本要素之一。如今,高等教育的计算机教育发展十分迅速。十多年前,只有部分理工科专业开设计算机课程。今天,几乎所有高校的所有专业都开设了程度不同的计算机课程。人们已经认识到,计算机知识已成为当代知识分子知识结构中不可缺少的重要组成部分。而除了掌握计算机的基础知识和操作的基本能力外,掌握一门高级编程语言,并可以熟练运用它,已成为当代大学生综合能力必要组成。计算机技术发展如此迅猛,计算机应用如此广泛,需要学

2、习的东西愈来愈多,而我们的总学时是有限的。一般来说,计算机课程学习可以分为两部分:一部分是理论课程学习,一部分是上机应用实习。根据我们专业的性质和要求,则应侧重于上机操作运用。为此,学校特意在暑期最后一星期安排了32个学时的上机实习。现将一星期的实习内容及结果分析分列如下:投票程序一.题目要求:设有代号为a,b,c的三个个足球先生候选人,根据投票者在选票上对他们编号的填写顺序分别记分5,3,2。请编程从键盘上输入投票人数及投票结果,统计他们的得分,并输出哪位当选足球先生。请注意;若同一张票上写有两个相同代号,则显示“此票无效”,若最终前两名得分相同应显示“重新投票”,否则显示三个候选者得分并输

3、出“祝贺X当选冠军!”。二. 需求分析: 根据题目要求,选票数据以txt文件的形式存储,所以应提供文件的打开,关闭,输入,输出等操作,并对读取的文件进行调用。三总体设计根据题目要求,可对程序进行如下设计:主菜单函数选票人数模块选票人数模块数选票信息分数统计选举结果退出选出冠军打开“vote. txt”文件显示选票人数读取“vote. txt”信息显示选票信息处理选票票数清零票数累加并计分显示候选人得分四详细设计:1.主函数 本系统主要用主函数调用打开的选票数据和进入主菜单函数,通过调用主菜单函数实行主函数的功能。主菜单函数输入5 选择输入15的数输入14的数退出选择输入1或2输入2输入1入程序

4、main() void choose(); menu();void menu() void choose();int n,w;do puts(tt足球先生投票程序);puts(tt );puts(tt 1.选票人数: );puts(tt 2.选票信息: );puts(tt 3.分数: ); puts(tt 4.结果: );puts(tt 5.退出 );puts(tt );puts(tt);printf(请选择你的数字(1-5): bb);scanf(%d,&n);if(n5) w=1;getchar();else w=0;while(w=1);switch(n)case 1:innum();b

5、reak;case 2:input();break;case 3:output();break;case 4:choose();break;case 5:exit(0);2.选票人数模块 选票信息保存在“voter.txt”文件中,之前已通过只读的方式从“voter.txt”文件中打开并读取出来并保存在之前建立的结构体变量voteNUM中。通过调用选票信息统计选票人数,并通过选择函数菜单返回或退出。程序void innum()int i=loadvote();printf(n选票人数:t%dnn,i);select();3选票信息模块 读取选票信息,用for循环语句进行票数的统计并用if el

6、se语句进行选择,如果出现票数一样的则选票无效,通过调用累加函数将票数统计结果统计出来。 程序void input()int i;int m=loadvote();printf(n);number0.num=number1.num=number2.num=0;for(i=0;im;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);p

7、rintf(n);printf(nn);select();4. 分数统计模块 通过三人所得票数按照计分方法将三人的得分计算出来,也要用到for循环语句和if else语句,并分别用将三人的得分结果输出来。程序void output() int n,i;n=loadvote();number0.num=number1.num=number2.num=0;for(i=0;inumber1.num&number0.numnumber2.num)c=1;else if(number1.numnumber0.num&number1.numnumber2.num)c=2; else if(number2.

8、numnumber1.num&number2.numnumber0.num)c=3; else printf(重新选票!n);main();switch(c)case 1:printf(n祝贺a当选冠军!nnn);select();case 2:printf(n祝贺b当选冠军!nnn);select();case 3:printf(n祝贺c当选冠军!nnn);select();6.选择模块 选择函数的建立是为了每运行完一个模块之后都可以通过选择函数返回或退出。void select()int m,w; doputs(下一个);puts(tt);puts(tt );puts(tt1. 返回 );

9、puts(tt2. 退出 );puts(tt ); puts(ttn);printf(请选择你的数字(1-2): bb);scanf(%d,&m);if(m2)w=1;printf(错误n);select();else w=0; switch(m)case 1:printf(nn);menu();break;case 2:exit(0);while(w=1);五.完整编写过程如下:完整程序#include#include#include#define NUM 20struct FOODchar c;int num;number3;struct VOTE char c1; char c2; ch

10、ar 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(fp); return(i);void select()int m,w; doputs(下一个);puts(tt);puts(tt );puts(tt1. 返回 );put

11、s(tt2. 退出 );puts(tt ); puts(ttn);printf(请选择你的数字(1-2): bb);scanf(%d,&m);if(m2)w=1;printf(错误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选票人数:t%dnn,i);select();void add(char c1,char c2,char c3)int i;for(i=0;i3;i+)switch(i)

12、case 0:count(c1,5);break;case 1:count(c2,3);break;case 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;im;i+)printf(%c %c %c,votei.c

13、1,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;in;i+)if(votei.c1=votei.c2|votei.c1=votei.c3|votei.c2=vot

14、ei.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 choose();int n,w;do程puts(tt足球先生投票序);puts(tt );puts(tt 1.选票人数: );puts(tt 2.选票信息: );puts(tt 3.分数:

15、); puts(tt 4.结果: );puts(tt 5.退出 );puts(tt );puts(tt);printf(请选择你的数字(1-5): bb);scanf(%d,&n);if(n5) 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);void choose() int c;if(number0.numnumber1.num&number0.numn

16、umber2.num)c=1;else if(number1.numnumber0.num&number1.numnumber2.num)c=2; else if(number2.numnumber1.num&number2.numnumber0.num)c=3; else printf(重新选票!n);main();switch(c)case 1:printf(n祝贺a当选冠军!nnn);select();case 2:printf(n祝贺b当选冠军!nnn);select();case 3:printf(n祝贺c当选冠军!nnn);select();六.上机操作1主菜单模块2选票人数模块3.选票信息模块.4.分数统计模块5.选举结果模块6.退出模块

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 建筑/施工/环境 > 项目建议


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号