版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
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&quo
5、t;);printf("请选择你的数字(1-5): bb");scanf("%d",&n);if(n<1|n>5) 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);2.选票人数模块 选票信息保存在“voter.txt”文件中,之前已通过只读的方式从“voter.txt”文件中打开并读取出来并保存在之
6、前建立的结构体变量votenum中。通过调用选票信息统计选票人数,并通过选择函数菜单返回或退出。程序void innum()int i=loadvote();printf("n选票人数:t%dnn",i);select();3选票信息模块 读取选票信息,用for循环语句进行票数的统计并用if else语句进行选择,如果出现票数一样的则选票无效,通过调用累加函数将票数统计结果统计出来。 程序void input()int i;int m=loadvote();printf("n");number0.num=number1.num=number2.num=0
7、;for(i=0;i<m;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);printf("n");printf("nn");select();4. 分数统计模块 通过三人所得票数按照计分方法将三人的得分计算出来,也要用到for循环语句和i
8、f else语句,并分别用将三人的得分结果输出来。程序void output() int n,i;n=loadvote();number0.num=number1.num=number2.num=0;for(i=0;i<n;i+)if(votei.c1=votei.c2|votei.c1=votei.c3|votei.c2=votei.c3); else add(votei.c1,votei.c2,votei.c3); printf("n候选人的得分:t");printf("a: %dn",number0.num); printf("b:
9、 %dn",number1.num); printf("c: %dnnn",number2.num);select();5. 选举结果模块 运用if else if语句对前面三个候选人的得分情况进行比较分析,如果三个人的得分相同则显示重新投票并返回主函数main(),否则通过 switch case语句进行比较选出得分最高的人为冠军。程序void choose() int c;if(number0.num>number1.num&&number0.num>number2.num)c=1;else if(number1.num>nu
10、mber0.num&&number1.num>number2.num)c=2; else if(number2.num>number1.num&&number2.num>number0.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当选冠
11、军!nnn");select();6.选择模块 选择函数的建立是为了每运行完一个模块之后都可以通过选择函数返回或退出。void select()int m,w; doputs("下一个");puts("tt");puts("tt ");puts("tt1. 返回 ");puts("tt2. 退出 ");puts("tt "); puts("ttn");printf("请选择你的数字(1-2): bb");scanf("
12、;%d",&m);if(m<1|m>2)w=1;printf("错误n");select();else w=0; switch(m)case 1:printf("nn");menu();break;case 2:exit(0);while(w=1);五.完整编写过程如下:完整程序#include<conio.h>#include<stdlib.h>#include<stdio.h>#define num 20struct foodchar c;int num;number3;struct
13、vote char c1; char c2; char 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(f
14、p); return(i);void select()int m,w; doputs("下一个");puts("tt");puts("tt ");puts("tt1. 返回 ");puts("tt2. 退出 ");puts("tt "); puts("ttn");printf("请选择你的数字(1-2): bb");scanf("%d",&m);if(m<1|m>2)w=1;printf(&quo
15、t;错误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;i<3;i+)switch(i)case 0:count(c1,5);break;case 1:count(c2,3);break;ca
16、se 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;i<m;i+)printf("%c %c %c",v
17、otei.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);printf("n");printf("nn");select();void output() int n,i;n=loadvote();number0.num=number1.num=number2.num=0;for(i=0;i<n;i+)if(vo
18、tei.c1=votei.c2|votei.c1=votei.c3|votei.c2=votei.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 ch
19、oose();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(n<1|n&
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年度技术转让合同标的明细
- 运载工具用平视显示装置市场环境与对策分析
- 拖车车灯市场发展现状调查及供需格局分析预测报告
- 2024年度物业服务合同管理范围
- 2024年度橱柜加工合同技术培训与技术转移条款
- 2024年度汽车制造外包合同
- 2024年度影视制作与代驾服务合同
- 图书架市场发展现状调查及供需格局分析预测报告
- 2024年度演艺经纪合同及演出安排
- 烫发剂市场需求与消费特点分析
- 山西省大同市2024-2025学年九年级上学期11月期中数学试题(无答案)
- 企业2024年年度目标规划
- 金矿地质勘探合同范本
- 医院培训课件:《新进护士职业规划》
- 网约车服务管理手册
- 园林绿化安全生产培训
- 临床护理带教老师培训
- 2024年创意产业联盟协议
- 辽宁省大连市金州区2024-2025学年八年级上学期11月期中考试数学试题(含答案)
- 水电站管护协议书范文范本
- 酒店直播方案
评论
0/150
提交评论