C语言课设之投票系统

合集下载

c语言网络投票课程设计

c语言网络投票课程设计

c语言网络投票课程设计一、课程目标知识目标:1. 让学生掌握C语言网络编程的基本概念和原理,理解网络投票系统的实现机制。

2. 使学生学会运用C语言进行网络通信,掌握套接字编程的基本方法。

3. 帮助学生了解网络投票系统的数据结构和算法设计,提高数据组织和处理能力。

技能目标:1. 培养学生独立设计和编写C语言网络投票系统代码的能力。

2. 培养学生运用所学知识解决实际问题的能力,具备一定的网络编程调试技巧。

3. 提高学生的团队协作能力,学会与他人共同分析和解决复杂问题。

情感态度价值观目标:1. 培养学生积极探究网络编程领域的兴趣,激发学习热情。

2. 培养学生的创新意识,敢于尝试和挑战新的编程技术。

3. 增强学生的法治观念,认识到网络投票系统在遵守法律法规和道德规范方面的重要性。

课程性质分析:本课程为C语言高级应用课程,旨在让学生将所学知识运用到实际项目中,提高解决实际问题的能力。

学生特点分析:学生已具备一定的C语言基础,对网络编程有一定了解,但实际操作经验不足,需通过实践加深理解。

教学要求:1. 结合课本知识,注重实践操作,让学生在动手实践中掌握网络投票系统的设计与实现。

2. 强调团队合作,培养学生沟通协调能力和解决问题的能力。

3. 定期评估学生的学习成果,确保课程目标的实现。

二、教学内容1. C语言网络编程基础- 网络编程基本概念(套接字编程、TCP/IP协议)- 套接字编程原理及方法(TCP/UDP协议的使用、客户端/服务器模型)2. 网络投票系统设计与实现- 数据结构设计(投票信息、用户信息等数据结构)- 算法设计(投票逻辑、数据传输与存储等)- 网络通信实现(套接字编程实践、多线程/多进程应用)3. 编程实践与调试技巧- C语言网络编程实践(设计网络投票系统)- 调试方法与技巧(常用调试工具、性能优化)4. 团队协作与项目管理- 项目分工与协作(任务分配、进度管理)- 团队沟通与解决问题(沟通技巧、冲突解决)教学内容安排与进度:1. 第一周:C语言网络编程基础,学习网络编程基本概念和套接字编程原理。

C语言课程设计-投票程序系统设计

C语言课程设计-投票程序系统设计

目录课程设计评语...................................................................................................... 错误!未定义书签。

目录. (1)1.课程论文题目 (2)2.程序设计思路 (2)3.功能模块图 (3)4.数据结构设计 (3)5.算法设计 (3)6.程序代码 (7)7.程序运行结果 (11)8.编程中遇到的困难及解决方法 (12)9.总结心得及良好建议 (12)10.致谢 (12)1.课程论文题目投票程序[要求]设有代号为‘a’,‘b’,‘c’的三个足球先生候选人,根据投票者在选票上对他们编号的填写顺序分别记分5,3,2。

请编程从键盘上输入投票人数及投票结果,统计他们的得分,并输出哪位当选足球先生。

注意:若同一张票上写有两个相同的代号,则显示“此票无效”,若最终前两名得分相同应显示“重新投票”,否则显示三位候选人得分并输入“祝贺X当选冠军”。

例如:投票人数:5请参加投票的人开始投票:abccabcaa 此票无效cbabca三位候选人得分:a:12b:13c:15祝贺c当选冠军[提示]数据结构可用结构体数组,结构体成员包括代号、得分。

或者采用二维数组,行方向对应一张投票,列方向对应各候选人得分。

2.程序设计思路根据题目要求,首先要输入投票者人数,再输入投票者的选票,而选票不是都有效,若同一张票上写有两个相同的代号,则此票无效,所以要将有效的选票选出来,然后对选票进行统计得分,最终来比较得分,若有得分相同,则重新来选,最后得分最多的获胜,最终成为足球先生。

但是此程序还不够完善,可以增加以下程序,增强其功能:1.记录废票数目,以便废票太多,影响选举公正。

2.若出现a,b,c以外的投票,应当将该票记为无效。

3.若出现最终前两名得分相同,应该还可以运行程序,使其重新投票,重新计票,直至最后选出足球先生。

投票系统c语言课程设计

投票系统c语言课程设计

投票系统c语言课程设计一、教学目标本课程的教学目标是使学生掌握投票系统的设计与实现方法,培养学生的C语言编程能力和算法思维。

具体分为以下三个部分:1.知识目标:学生需要了解投票系统的基本原理和工作流程,掌握C语言的基本语法和数据结构,熟悉面向对象编程思想。

2.技能目标:学生能够使用C语言独立完成一个简单的投票系统,具备一定的算法分析和解决问题的能力。

3.情感态度价值观目标:培养学生对计算机科学的兴趣和热情,提高学生独立思考和团队协作的能力,使学生认识到编程对于解决实际问题的重要意义。

二、教学内容本课程的教学内容主要包括以下几个部分:1.投票系统的基本原理和工作流程,包括选民投票、计票、统计结果等环节。

2.C语言的基本语法,如数据类型、运算符、控制结构、函数等。

3.数据结构的基本概念,如数组、链表、栈、队列等。

4.面向对象编程思想,如类、对象、封装、继承、多态等。

5.投票系统的实现,包括系统分析、设计、编码、测试等环节。

三、教学方法为了提高教学效果,本课程将采用多种教学方法相结合的方式,如讲授法、讨论法、案例分析法、实验法等。

1.讲授法:教师通过讲解投票系统的原理、C语言的语法和数据结构等基础知识,使学生掌握基本概念和理论。

2.讨论法:教师学生就投票系统的实现方法和解决问题的策略进行讨论,培养学生的思维能力和沟通能力。

3.案例分析法:教师通过分析实际案例,使学生了解投票系统的实际应用和解决具体问题的方法。

4.实验法:学生动手编写代码,实现一个简单的投票系统,培养学生的实际操作能力和创新能力。

四、教学资源为了支持教学内容和教学方法的实施,丰富学生的学习体验,我们将准备以下教学资源:1.教材:《C程序设计原理与应用》。

2.参考书:《数据结构教程》、《面向对象编程思想》。

3.多媒体资料:PPT课件、教学视频、网络资源等。

4.实验设备:计算机、网络环境、编程工具等。

5.在线编程平台:如LeetCode、牛客网等,供学生进行练习和交流。

C语言课设之投票系统

C语言课设之投票系统

C语言课程设计前言计算机科学技术的发展,不仅极大地促进了整个科学技术的发展,而且明显地加快了经济信息化和社会信息化的进程。

因此,计算机教育在全国备受重视,计算机知识与能力已成为21世纪人才素质的基本要素之一。

如今,高等教育的计算机教育发展十分迅速。

十多年前,只有部分理工科专业开设计算机课程。

今天,几乎所有高校的所有专业都开设了程度不同的计算机课程。

人们已经认识到,计算机知识已成为当代知识分子知识结构中不可缺少的重要组成部分。

而除了掌握计算机的基础知识和操作的基本能力外,掌握一门高级编程语言,并可以熟练运用它,已成为当代大学生综合能力必要组成。

计算机技术发展如此迅猛,计算机应用如此广泛,需要学习的东西愈来愈多,而我们的总学时是有限的。

一般来说,计算机课程学习可以分为两部分:一部分是理论课程学习,一部分是上机应用实习。

根据我们专业的性质和要求,则应侧重于上机操作运用。

为此,学校特意在暑期最后一星期安排了32个学时的上机实习。

现将一星期的实习内容及结果分析分列如下:投票程序一.题目要求:设有代号为’a’,’b’,’c’的三个个足球先生候选人,根据投票者在选票上对他们编号的填写顺序分别记分5,3,2。

请编程从键盘上输入投票人数及投票结果,统计他们的得分,并输出哪位当选足球先生。

请注意;若同一张票上写有两个相同代号,则显示“此票无效”,若最终前两名得分相同应显示“重新投票”,否则显示三个候选者得分并输出“祝贺X当选冠军!”。

二.需求分析:根据题目要求,选票数据以txt文件的形式存储,所以应提供文件的打开,关闭,输入,输出等操作,并对读取的文件进行调用。

三.总体设计根据题目要求,可对程序进行如下设计:四.详细设计:1.主函数本系统主要用主函数调用打开的选票数据和进入主菜单函数,通过调用主菜单函数实行主函数的功能。

程序main(){void choose();menu();}void menu(){ void choose();int n,w;do{ puts("\t\t^^^^^^^^^^^^足球先生投票程序^^^^^^^^^^^^^^^^^^");puts("\t\t{ }");puts("\t\t{ [1.选票人数:] }");puts("\t\t{ [2.选票信息:] }");puts("\t\t{ [3.分数:] }");puts("\t\t{ [4.结果:] }");puts("\t\t{ [5.退出] }");puts("\t\t{ }");puts("\t\t^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^");printf("请选择你的数字(1-5):[ ]\b\b");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”文件中打开并读取出来并保存在之前建立的结构体变量vote[NUM]中。

c语言电子投票系统课程设计

c语言电子投票系统课程设计

c语言电子投票系统课程设计一、教学目标本课程的目标是让学生掌握C语言的基本知识,能够运用C语言设计一个简单的电子投票系统。

具体的学习目标包括:1.知识目标:理解C语言的基本语法、数据类型、运算符、控制结构等基本知识。

2.技能目标:能够使用C语言编写程序,解决实际问题。

3.情感态度价值观目标:培养学生的逻辑思维能力,提高学生解决问题的能力,使学生对编程产生兴趣。

二、教学内容教学内容主要包括C语言的基本语法、数据类型、运算符、控制结构等。

具体安排如下:1.第一章:C语言概述,介绍C语言的基本概念、特点和应用。

2.第二章:数据类型和运算符,介绍C语言的基本数据类型、运算符及其用法。

3.第三章:控制结构,介绍条件语句、循环语句等控制结构的使用。

4.第四章:函数,介绍函数的定义、声明和调用,以及函数的参数传递。

5.第五章:数组和字符串,介绍数组的基本概念、操作和字符串的使用。

6.第六章:指针,介绍指针的概念、运算和指针的应用。

7.第七章:结构体和文件,介绍结构体的定义和使用,以及文件的读写操作。

三、教学方法本课程采用讲授法、案例分析法和实验法相结合的教学方法。

1.讲授法:通过讲解C语言的基本概念、语法和编程技巧,使学生掌握C语言的基本知识。

2.案例分析法:通过分析典型的C语言程序,使学生理解编程思路和方法,提高编程能力。

3.实验法:通过上机实验,让学生动手编写程序,培养学生的实际操作能力。

四、教学资源教学资源包括教材、参考书、多媒体资料和实验设备。

1.教材:选用《C程序设计语言》作为主要教材,介绍C语言的基本知识和编程技巧。

2.参考书:推荐《C Primer Plus》等参考书,供学生自主学习。

3.多媒体资料:制作课件、视频等多媒体资料,帮助学生更好地理解课程内容。

4.实验设备:提供计算机实验室,让学生进行上机实验,提高实际操作能力。

五、教学评估教学评估主要包括平时表现、作业和考试三个部分。

1.平时表现:评估学生在课堂上的参与程度、提问回答等情况,占总评的20%。

C语言课程设计报告-电子投票平台

C语言课程设计报告-电子投票平台

C语言课程设计报告——08级电子4班 **** 3108009296一、需求分析1.设计题目:电子投票平台2.设计内容1)编程建立一个小型电子投票系统,其中包含电子投票、票数统计功能,。

尽量做到提供一个简单的人机界面,系统界面友好,使用方便。

2)软件的使用者分为两类,一类为管理员,可以对候选人信息进行初始化和修改,还可浏览候选人信息介绍,对于候选人所得票数,管理员可以进行排序,以便得出最终投票结果,也可以对系统的用户进行管理,创建使用者用户名和密码等。

另一类为使用者为普通投票者,该类用户需要用管理员分配的用户名和密码正确登录系统,可以查询候选人信息、浏览候选人信息和进行投票等,其中投票是只需做到输入自己想要投票的候选人编号即可完成投票。

3.系统功能1)投票者功能A.浏览候选人信息.B.输入候选人的号码即可查询候选人信息。

C.输入所选候选人的号码即可完成投票。

2)管理员功能A.初始化候选人信息且创建候选人:在系统投入使用前,管理员先将需要投票选举的候选人信息录入系统中,以便投票和查看。

管理员的初始化工作就是将候选人的号码、姓名和简介录入系统。

B.浏览和查询候选人信息:管理员有权浏览候选人信息及其投票情况,以便随时掌握候选人的信息和对候选人信息进行修改。

C.管理员可以对投票者的用户名和密码进行管理,也可对投票的结果进行排序。

二、详细设计1.主要功能模块a.主程序模块输出主菜单,调用其他函数实现整体功能b.封面输出模块输出欢迎信息,主要是用点阵字模来输出中文内容。

c.功能选择模块根据输入的用户名{1}和密码{1},进入不同的界面d.身份验证模块验证管理员和用户(投票者)的用户名和密码是否正确,不正确可选择重新输入用户名和密码或者退出。

e.投票人管理模块该模块主要实现常规的管理功能,如投票人的初始化,即创建投票人用户名和密码。

因此该模块主要用结构体类型的数组和文件的读写来完成对大量数据的管理操作。

f.候选人管理模块候选人管理模块和投票人管理模块类似,要对大量有一定结构的信息进行管理操作,如创建候选人,查询、浏览候选人信息。

投票程序c语言课程设计

投票程序c语言课程设计

投票程序c语言课程设计一、课程目标知识目标:1. 学生能理解投票程序的基本原理和流程。

2. 学生能掌握C语言中的基本数据类型、变量定义、控制结构及函数运用。

3. 学生能运用所学知识设计并实现一个简单的投票程序。

技能目标:1. 学生能够运用C语言编写具有实际功能的程序,提高编程实践能力。

2. 学生能够通过分析问题、设计算法、编写代码、调试程序等过程,培养解决问题的能力。

3. 学生能够通过团队协作完成课程设计,提高沟通与协作能力。

情感态度价值观目标:1. 学生能够认识到编程在解决实际问题中的价值,增强学习编程的兴趣和信心。

2. 学生能够在编程实践中培养耐心、细心和持之以恒的品质。

3. 学生能够通过课程设计,培养团队协作精神,认识到团队合作的重要性。

课程性质:本课程设计属于实践性课程,旨在让学生将所学的C语言知识运用到实际项目中,提高编程实践能力和解决实际问题的能力。

学生特点:学生已经具备一定的C语言基础,能够理解基本的编程概念,但缺乏将理论知识运用到实际项目中的经验。

教学要求:教师需引导学生通过自主学习、团队协作、实践操作等方式,完成投票程序的设计与实现。

在教学过程中,注重培养学生的编程思维、问题解决能力和团队协作精神。

通过课程目标的分解,确保学生能够达到预期的学习成果,为后续的教学设计和评估提供依据。

二、教学内容1. 复习C语言基础知识:变量定义、数据类型、运算符、控制结构(顺序、分支、循环)及函数定义。

2. 投票程序需求分析:讲解投票程序的功能需求,分析程序模块划分,介绍各模块功能。

3. 投票程序算法设计:引导学生设计投票算法,包括投票数据输入、处理、统计和输出结果。

4. 编写C语言代码:指导学生根据算法设计,编写投票程序的代码,包括主函数、子函数等。

5. 编程实践:组织学生上机实践,调试和优化投票程序,确保程序的正确性和稳定性。

6. 团队协作与沟通:培养学生团队协作精神,组织小组讨论,分享编程心得,互相学习。

c语言投票课程设计

c语言投票课程设计

c语言投票课程设计一、课程目标知识目标:1. 学生能理解C语言中结构体、数组、指针等基本概念,并掌握其在投票系统中的应用。

2. 学生能够运用C语言编写具有投票功能的程序,实现数据的输入、处理和输出。

3. 学生了解投票系统的基本流程,理解程序中各部分功能及其相互关系。

技能目标:1. 学生能够运用所学知识,独立设计并实现一个简单的投票系统程序。

2. 学生通过课程实践,培养解决问题的能力和编程技能,提高逻辑思维能力。

3. 学生掌握基本的调试方法,能够找出并修正程序中的错误。

情感态度价值观目标:1. 学生通过课程学习,培养对编程的兴趣和热情,提高对计算机科学的认识。

2. 学生在团队协作中,学会沟通与交流,培养合作精神和集体荣誉感。

3. 学生在编程实践中,体会编程的美感,培养良好的编程习惯和审美观念。

课程性质:本课程为实践性较强的课程,结合C语言基础知识,培养学生编程能力和实际应用能力。

学生特点:学生已具备一定的C语言基础,对编程有初步了解,但实际应用能力有待提高。

教学要求:教师需关注学生个体差异,引导他们主动参与课堂讨论和实践活动,培养他们独立思考和解决问题的能力。

在教学过程中,注重目标导向,将课程目标分解为具体的学习成果,以便进行有效的教学设计和评估。

二、教学内容1. C语言基础知识回顾:结构体、数组、指针等基本概念及其应用。

2. 投票系统的需求分析:介绍投票系统的功能、流程,引导学生明确编程目标。

3. 投票系统设计:- 数据结构设计:定义投票者、候选人、投票结果等数据结构。

- 功能模块划分:输入模块、处理模块、输出模块等。

4. 编程实现:- 输入模块:编写输入投票者信息和候选人信息的代码。

- 处理模块:编写投票、计票等处理逻辑的代码。

- 输出模块:编写输出投票结果和统计信息的代码。

5. 程序调试与优化:教授基本的调试方法,引导学生找出并修正程序中的错误,提高程序运行效率。

6. 课堂实践:组织学生进行小组讨论,协作完成投票系统的设计、编程和调试。

c语言课程设计投票

c语言课程设计投票

c语言课程设计投票一、教学目标本课程的目标是让学生掌握C语言的基本语法和编程技巧,通过实际的投票系统项目案例,培养学生运用C语言解决实际问题的能力。

具体分为以下三个部分:1.知识目标:学生需要掌握C语言的基本语法、数据类型、运算符、控制结构、函数等基本知识。

2.技能目标:学生能够运用C语言编写简单的程序,具备基本的调试和运行程序的能力。

通过投票系统项目,培养学生具备面向对象编程的基本能力。

3.情感态度价值观目标:培养学生对计算机编程的兴趣,使其认识编程在实际生活中的应用价值,培养学生的创新精神和团队合作意识。

二、教学内容本课程的教学内容主要包括C语言的基本语法、数据类型、运算符、控制结构、函数等基本知识,以及面向对象编程的基本概念和方法。

教学过程中,将结合投票系统项目进行实践教学,让学生在实际操作中掌握编程技巧。

具体安排如下:1.第一周:C语言概述、基本语法、数据类型、运算符。

2.第二周:控制结构(if语句、switch语句)、循环语句。

3.第三周:函数、数组、指针。

4.第四周:面向对象编程(类、对象、继承、封装)。

5.第五周:投票系统项目实践。

三、教学方法本课程采用讲授法、讨论法、案例分析法和实验法等多种教学方法,以激发学生的学习兴趣和主动性。

1.讲授法:用于讲解C语言的基本语法、数据类型、运算符、控制结构、函数等基本知识。

2.讨论法:通过分组讨论,让学生深入理解面向对象编程的概念和方法。

3.案例分析法:分析投票系统项目的实际案例,让学生掌握编程技巧和解决实际问题的方法。

4.实验法:让学生在实验室进行编程实践,培养实际操作能力。

四、教学资源本课程所需的教学资源包括教材、参考书、多媒体资料和实验设备。

1.教材:选用《C语言程序设计》作为主要教材,辅助以相关参考书籍。

2.多媒体资料:制作课件、教学视频等,以丰富教学手段,提高学生的学习兴趣。

3.实验设备:计算机、网络设备等,用于实验教学和实践操作。

投票管理系统课程设计c

投票管理系统课程设计c

投票管理系统课程设计c一、教学目标本课程旨在让学生了解和掌握投票管理系统的基本原理和实际应用,通过学习,学生应能够:1.知识目标:理解电子投票系统的基本概念、架构和工作原理;掌握常见的投票算法和安全性分析。

2.技能目标:能够设计简单的投票管理系统,进行投票数据的收集、统计和分析;能够对投票系统进行安全性能评估。

3.情感态度价值观目标:培养学生对、公正、透明投票过程的认同,提高其对信息技术在投票系统中应用的意识和责任感。

二、教学内容教学内容将围绕投票管理系统的基本概念、架构、算法和安全性能展开,具体包括:1.电子投票系统的基本概念:介绍电子投票系统的定义、特点和分类。

2.投票管理系统的架构:讲解投票管理系统的组成,包括投票站、投票箱、投票算法等。

3.投票算法:介绍常见的投票算法,如简单多数投票、排序投票等,并通过实例进行分析。

4.安全性分析:讲解投票系统的安全性要求,分析可能存在的安全风险和攻击手段,以及相应的防护措施。

三、教学方法为了提高学生的学习兴趣和主动性,将采用多种教学方法,包括:1.讲授法:讲解基本概念、原理和算法。

2.案例分析法:通过分析实际案例,使学生更好地理解投票管理系统的工作原理和应用。

3.讨论法:学生进行小组讨论,分享对安全性分析和投票算法的研究成果。

4.实验法:安排实验课程,让学生动手设计简单的投票管理系统,提高其实践能力。

四、教学资源教学资源包括:1.教材:《投票管理系统设计与实现》。

2.参考书:介绍电子投票系统、算法和安全性的相关书籍。

3.多媒体资料:包括PPT、视频教程等。

4.实验设备:计算机、网络设备等,用于实验课程的开展。

五、教学评估为了全面、客观地评估学生的学习成果,将采用以下评估方式:1.平时表现:包括课堂参与度、小组讨论和实验操作等,占总评的30%。

2.作业:布置与课程相关的研究性作业,如投票算法的设计与分析,占总评的20%。

3.考试:包括期中考试和期末考试,内容涵盖课程基础知识与实践应用,占总评的50%。

c程序课程设计投票设计

c程序课程设计投票设计

c程序课程设计投票设计一、教学目标本节课的教学目标是让学生了解和掌握C程序中的投票设计原理和实现方法。

通过本节课的学习,学生应能理解选举系统的核心概念,如选民、候选人、投票和计票等,并能够运用C程序设计语言实现一个简单的投票系统。

1.了解选举系统的的基本概念和原理。

2.掌握C程序中投票设计的算法和数据结构。

3.理解C程序中投票设计的实现方法和步骤。

4.能够运用C程序设计语言实现一个简单的投票系统。

5.能够对投票系统进行调试和优化。

6.能够分析和解决投票过程中可能出现的问题。

情感态度价值观目标:1.培养学生对编程和计算机科学的兴趣和热情。

2.培养学生的团队协作能力和问题解决能力。

3.培养学生的创新思维和逻辑思维能力。

二、教学内容本节课的教学内容主要包括选举系统的原理介绍、C程序中投票设计的算法分析、投票系统的实现方法和步骤等。

1.选举系统的原理介绍:介绍选民、候选人、投票和计票等基本概念,让学生理解选举系统的工作原理。

2.C程序中投票设计的算法分析:分析投票设计的算法和数据结构,如数组、指针等,让学生掌握投票设计的算法基础。

3.投票系统的实现方法和步骤:介绍如何使用C程序设计语言实现一个简单的投票系统,包括编写代码、调试和优化等步骤。

4.案例分析:分析一些典型的投票系统案例,让学生了解投票系统在实际应用中的具体实现和优化方法。

三、教学方法为了激发学生的学习兴趣和主动性,本节课将采用多种教学方法,如讲授法、讨论法、案例分析法和实验法等。

1.讲授法:通过讲解选举系统的原理和C程序中投票设计的算法,让学生掌握投票设计的基本概念和实现方法。

2.讨论法:学生进行小组讨论,让学生分享彼此的学习心得和解决问题的方法,培养学生的团队协作能力。

3.案例分析法:分析一些典型的投票系统案例,让学生了解投票系统在实际应用中的具体实现和优化方法。

4.实验法:让学生动手编写代码,实现一个简单的投票系统,培养学生的实际操作能力和问题解决能力。

电子投票系统c语言课程设计报告

电子投票系统c语言课程设计报告

课程设计报告1.需求分析电子投票平台的需求来源于两种不同的角色:管理员,投票用户。

(1).管理员可以对候选人信息进行初始化和修改,还可浏览候选人信息介绍,可对候选人的票数进行排序以及对系统的用户进行管理,创建使用者用户名和密码等。

(2).普通投票用户该类用户需要用管理员分配的用户名和密码正确登录系统,可以查询候选人介绍、投票等。

(投票是只需做到输入自己想要投票的候选人编号即可完成投票)2.软件功能模块结构如图:3.源程序代码/* Note:Your choice is C IDE */#include"stdio.h"#include"string.h"#include"stdlib.h"#define len1 sizeof(struct can)#define len2 sizeof(struct ur)int power;//记录登录方式struct can{int id;int sum;char name[20];char js[300];struct can *next;};struct ur{char name[20];char psw[20];struct ur *next;};void index();//进入界面void admin();//管理员界面void user();//用户界面void adcd();//新增候选人界面void bscd();//浏览候选人struct can *getcanlist();//从can.txt文件取出链表,返回候选人链表头指针void canlistwf(struct can *p);//把候选人链表写入文件void auser();//新增用户struct ur *geturlist();//获得用户信息链表void userlwf();//更新ur.txt用户信息char*userfpsw(char*name);//查询用户密码void main(){index();}void index(){int indexa;void login();//声明登录界面函数printf("---------欢迎使用电子投票系统---------\n");printf("管理员登陆......请按1\n");printf("投票用户登录......请按2\n");printf("请输入登录方式:");scanf("%d",&indexa);getchar();//吸收输入的回车if(indexa==1||indexa==2){power=indexa;login();}else{printf("\n输入错误,请重新输入\n");index();}}void login(){char logina[20]={'\0'},loginb[20]={'\0'};char psw[20];struct ur *pp;pp=geturlist();printf("------登录界面-------\n");printf("请输入登录帐号:");gets(logina);if(logina[0]!='\0'){printf("请输入登录密码:");}else{printf("\n输入的登录帐号不能为空\n");login();}gets(loginb);strcpy(psw,userfpsw(logina));if(!strcmp(psw,loginb))//帐号密码均正确{if(power==1&&!strcmp("admin",logina)) {admin();}else if(power==2){user();}else{printf("\n权限不正确,请重新输入\n");login();}}else{printf("\n帐号密码不正确,请重新输入\n");login();}}void admin()//管理员工作页面{int admina;while(1){printf("--------管理员工作界面--------\n");printf("新增候选人信息......请按1\n");printf("浏览候选人信息......请按2\n");printf("新增投票用户........请按3\n");printf("要进行操作请输入相应的数字:"); scanf("%d",&admina);getchar();//吸收输入多余字符if(admina==1)//根据输入跳到相应处理函数{adcd();break;}else if(admina==2){bscd();printf("操作成功,自动返回上一层\n");admin();break;}else if(admina==3){auser();break;}else//出错处理{printf("\n输入出错,请重新输入\n");}}}void adcd()//新增候选人函数{char name[20],js[300];struct can *h,cd;void admin();while(1){printf("--------新增候选人界面--------\n");printf("请输入候选人姓名:");gets(name);if(name[0]!='\0')strcpy(,name);else{printf("输入出错,请重试\n");continue;}printf("请输入候选人简介:\n");gets(js);strcpy(cd.js,js);h=getcanlist();cd.id=h->id+1;cd.next=h;canlistwf(&cd);printf("操作成功,自动返回上一层\n");admin();break;}}void bscd()//浏览候选人信息函数{struct can *p,*p1,*p2;char name[20],js[300];int a,t;printf("是否按票数降序排列?1是/2不是,请输入对应的数字\n");scanf("%d",&a);p=getcanlist();if(a==1){p1=p2=p;while(p2->next!=NULL){p2=p2->next;if(p2->next==NULL)break;if(p1->sum<p2->sum)//交换值{strcpy(name,p1->name),strcpy(p1->name,p2->name),strcpy(p2->na me,name);strcpy(js,p1->js),strcpy(p1->js,p2->js),strcpy(p2->js,js);t=p1->id,p1->id=p2->id,p2->id=t;t=p1->sum,p1->sum=p2->sum,p2->sum=t;}}}if(a==2){printf("--------候选人信息-------\n");printf("编号\t候选人姓名\t所得票数\t候选人简介\n");if(p==NULL){printf("数据为空,自动返回上一层\n");admin();}else{while(p->next!=NULL){printf("%3d\t",p->id);printf("%6s\t\t",p->name);printf("%4d\t\t",p->sum);printf("%s\t\n",p->js);p=p->next;}}}else if(a!=1){printf("输入错误,请重新输入\n");bscd();}}struct can *getcanlist()//从can文件取出链表,返回头指针{char str[300],ch,*t=str;int i=1;FILE *fp;struct can *p1=NULL,*p2=NULL,*h=NULL;if((fp=fopen("can.txt","r"))==NULL){printf("无法打开此文件");exit(0);}while(!feof(fp)){if(i++==1){p1=p2=(struct can *)malloc(len1);//开辟新单元,存一个候选人h=p2;//指定头指针}else{p1=p2;p2=(struct can *)malloc(len1);p1->next=p2;}fscanf(fp,"%s",str);//取出idch=fgetc(fp);//吸收回车p2->id=atoi(str);//设置idfscanf(fp,"%s",str);//取出sumch=fgetc(fp);//吸收回车p2->sum=atoi(str);//设置sumfscanf(fp,"%s",str);//取出namech=fgetc(fp);//吸收回车strcpy(p2->name,str);//设置namefscanf(fp,"%s",str);//取出jsch=fgetc(fp);//吸收回车strcpy(p2->js,str);//设置jsp2->next=NULL;}fclose(fp);return h;}void canlistwf(struct can *p)//更新can数据文件{FILE *fp;if((fp=fopen("can.txt","w"))==NULL){printf("无法打开此文件");exit(0);}while(p->next!=NULL)//把链表数据逐个输出到文件{fprintf(fp,"%d\n",p->id);fprintf(fp,"%d\n",p->sum);fprintf(fp,"%s\n",p->name);fprintf(fp,"%s\n",p->js);p=p->next;}fclose(fp);}void user()//用户界面{int usera;int usercd;struct can *p,*t;printf("------用户界面------\n");printf("浏览候选人信息....请按1\n"); printf("投票给候选人....请按2\n"); scanf("%d",&usera);getchar();if(usera==1)//浏览候选人信息{bscd();printf("操作成功,自动返回上一层\n");user();}else if(usera==2)//投票{printf("请输入候选人编号:");scanf("%d",&usercd);t=p=getcanlist();while(p->next!=NULL){if(p->id==usercd){(p->sum)++;break;}p=p->next;}printf("操作成功,自动返回上一层\n");canlistwf(t);user();}}void auser()//新增用户{char name[20];char psw[20];struct ur *p,ausera;printf("请输入新用户帐号:");gets(name);printf("请输入新用户密码:");gets(psw);p=geturlist();strcpy(,name);strcpy(ausera.psw,psw);ausera.next=p;userlwf(&ausera);printf("操作成功,自动返回上一层\n");admin();}struct ur *geturlist()//获得用户信息链表{char str[20],ch,*t=str;int i=1;FILE *fp;struct ur *p1=NULL,*p2=NULL,*h=NULL;if((fp=fopen("ur.txt","r"))==NULL){printf("无法打开此文件");exit(0);}while(!feof(fp)){if(i++==1){p1=p2=(struct ur *)malloc(len2);//开辟新单元,存一个候选人h=p2;//指定头指针}else{p1=p2;p2=(struct ur *)malloc(len2);p1->next=p2;}fscanf(fp,"%s",str);//取出namech=fgetc(fp);//吸收回车strcpy(p2->name,str);//设置namefscanf(fp,"%s",str);//取出pswch=fgetc(fp);//吸收回车strcpy(p2->psw,str);//设置pswp2->next=NULL;}fclose(fp);return h;}void userlwf(struct ur *p)//更新ur.txt用户信息{FILE *fp;if((fp=fopen("ur.txt","w"))==NULL){printf("无法打开此文件");exit(0);}while(p->next!=NULL)//把链表数据逐个输出到文件{fprintf(fp,"%s\n",p->name);fprintf(fp,"%s\n",p->psw);p=p->next;}fclose(fp);}char*userfpsw(char*name)//查询用户密码{struct ur *p;p=geturlist();while(p->next!=NULL){if(!strcmp(name,p->name)){return p->psw;break;}p=p->next;}return NULL;}四.测试用例和测试说明。

c语言电子投票系统课程设计

c语言电子投票系统课程设计

c语言电子投票系统课程设计一、课程目标知识目标:1. 理解C语言中数组、函数、指针等基本概念,并能运用这些知识构建电子投票系统的数据结构。

2. 学会使用C语言进行文件读写操作,实现对投票数据的存储和读取。

3. 掌握C语言中的模块化编程,将电子投票系统的功能划分为独立模块,提高代码可读性和可维护性。

技能目标:1. 能够运用所学知识设计并实现一个简单的电子投票系统,具备投票、计票、结果显示等功能。

2. 培养学生分析问题、解决问题的能力,通过编写代码解决电子投票系统中遇到的技术难题。

3. 提高学生的团队协作能力,分组合作完成课程设计任务。

情感态度价值观目标:1. 培养学生对待编程的热情和兴趣,激发学生学习C语言的积极性。

2. 培养学生严谨、细心的编程习惯,提高代码质量。

3. 增强学生的法律意识和道德观念,认识到电子投票系统在实际应用中应遵循公平、公正、公开的原则。

课程性质:本课程设计属于实践性课程,旨在让学生将所学的C语言知识应用于实际项目中,提高编程能力和团队协作能力。

学生特点:学生已具备一定的C语言基础,具有较强的学习能力和动手能力,但对复杂系统的设计和实现尚缺乏经验。

教学要求:教师应引导学生掌握课程核心知识,注重实践操作,鼓励学生自主探究和团队协作,提高学生的编程能力和解决问题的能力。

同时,关注学生的情感态度价值观培养,使学生在课程学习中形成正确的价值观。

通过分解课程目标为具体的学习成果,为后续的教学设计和评估提供依据。

二、教学内容1. C语言基础回顾:数组、函数、指针、结构体等基本概念及其应用。

2. 文件操作:文件读写、文件存储格式,重点讲解如何将投票数据存储到文件中。

3. 模块化编程:介绍模块化编程的概念,指导学生将电子投票系统划分为用户界面、数据管理、投票处理、结果统计等模块。

4. 电子投票系统功能设计:- 投票功能:实现用户投票,包括投票选项的输入和验证。

- 计票功能:统计各选项的票数,并计算投票结果。

C语言实现投票系统

C语言实现投票系统

C语⾔实现投票系统本⽂实例为⼤家分享了C语⾔实现投票系统的具体代码,供⼤家参考,具体内容如下问题:某个班级有3个候选⼈,有6个同学参与投票,⽽且只能投⼀个⼈,要求编写统计选票的程序。

先输⼊候选⼈名字,再输⼊同学所投的候选⼈名字,最后根据每位候选⼈的得票数排序思路:先定义⼀个学⽣结构体 stduent,结构体中包含姓名,票数。

同时声明结构数组stu[N - 1],⾥⾯存放候选⼈信息输⼊候选⼈的姓名,开始投票。

如果输⼊的字符串和候选⼈的姓名⼀样,就累加。

之后,⽤冒泡排序。

最后输出排完序票数。

个⼈感觉我做的这个,很简陋。

只是完成了基本的功能// vote.c --投票系统,⽤结构体实现#include <stdio.h>#include <string.h>#define N 3 // 候选⼈#define M 6 // 学⽣struct stduent{ // 声明学⽣结构体char name[20]; // 姓名int num; // 票数} stu[N - 1];int main(void){int i, j;char temp[10];for (i = 0; i < N; i++){printf("请输⼊第%d个候选⼈姓名:", i + 1);scanf("%s", stu[i].name);}for (i = 0; i < M; i++){printf("请第%d个学⽣输⼊投票结果:", i+1);scanf("%s", temp);for (j = 0; j < N; j++)if (strcmp(stu[j].name, temp) == 0){stu[j].num++;break;}}// 冒泡排序// 创建中间结构变量struct stduent t;for (i = 1; i < N; i++)for (j = N - 1; j >= i; j--){if (stu[j - 1].num < stu[j].num){t = stu[j - 1];stu[j - 1] = stu[j];stu[j] = t;}}printf("\n投票排名:\n");for (i = 0; i < N; i++)printf("%s的票数是%d\n", stu[i].name, stu[i].num);return 0;}附图:更多学习资料请关注专题《》。

c语言课程设计投票程序

c语言课程设计投票程序

c语言课程设计投票程序一、教学目标本课程的教学目标是使学生掌握C语言的基本语法和编程技巧,通过实现一个投票程序,培养学生的实际编程能力和问题解决能力。

具体分为以下三个部分:1.知识目标:学生需要掌握C语言的基本数据类型、运算符、控制结构、函数等概念,理解面向过程编程的基本思想。

2.技能目标:学生能够运用C语言实现一个简单的投票程序,包括功能的设计和代码的编写。

3.情感态度价值观目标:学生在编程过程中培养逻辑思维能力,增强对计算机科学的兴趣,培养良好的编程习惯和团队合作精神。

二、教学内容教学内容以教材《C语言程序设计》为基础,结合投票程序的实际需求,详细安排如下:1.引言:介绍C语言的基本概念和投票程序的背景。

2.数据类型和运算符:讲解C语言的基本数据类型和运算符,包括整型、浮点型、字符型等,以及算术运算符、关系运算符、逻辑运算符等。

3.控制结构:讲解条件语句和循环语句的使用,包括if-else、for、while等。

4.函数:讲解函数的定义、声明和调用,包括内置函数和用户自定义函数。

5.投票程序实现:根据投票程序的需求,引导学生运用所学知识进行功能设计和代码编写。

三、教学方法为了提高学生的学习兴趣和主动性,本课程采用多种教学方法:1.讲授法:讲解C语言的基本概念和编程技巧。

2.案例分析法:通过分析真实投票程序案例,引导学生理解和运用所学知识。

3.实验法:学生动手编写投票程序,培养实际编程能力。

4.讨论法:分组讨论编程过程中遇到的问题,培养团队合作精神。

四、教学资源为了支持教学内容和教学方法的实施,提供以下教学资源:1.教材:《C语言程序设计》。

2.参考书:提供相关C语言编程的参考书籍。

3.多媒体资料:制作课件和教学视频,辅助学生理解。

4.实验设备:提供计算机实验室,让学生进行编程实践。

五、教学评估为了全面、客观地评估学生的学习成果,本课程采用以下评估方式:1.平时表现:评估学生在课堂上的参与程度、提问回答等情况,占总评的20%。

c选票系统课程设计

c选票系统课程设计

c 选票系统课程设计一、课程目标知识目标:1. 理解选票系统的基本概念,掌握其组成要素和运作原理;2. 学习并掌握选票系统的设计方法和步骤,能运用相关技术构建简单的选票系统;3. 了解我国选票制度的历史发展和现状,认识到选票系统在民主政治中的重要性。

技能目标:1. 培养学生运用信息技术解决实际问题的能力,学会设计、搭建和测试选票系统;2. 提高学生的团队协作能力和沟通能力,能在小组合作中共同完成选票系统的设计和实施;3. 培养学生的创新思维和动手能力,能够针对具体问题提出有创意的解决方案。

情感态度价值观目标:1. 培养学生对社会公共事务的关注和参与意识,增强其社会责任感;2. 培养学生尊重民主、法治、公平、正义的价值观,提高其公民素养;3. 引导学生认识到信息技术在现代社会中的重要作用,激发其学习信息技术的兴趣和热情。

本课程旨在结合学生年级特点,通过选票系统设计与实践,使学生在掌握相关知识和技术的同时,提高其综合运用能力和社会责任感。

课程注重培养学生的创新精神和团队协作能力,为我国民主政治建设培养具备实践能力的青年人才。

二、教学内容1. 选票系统基本概念:选票、选票系统、投票方式、计票方法等;教材章节:第一章“选举与投票”2. 选票系统设计原理:系统需求分析、系统设计、硬件与软件选型、数据安全等;教材章节:第二章“选票系统设计原理”3. 选票系统构建方法:系统架构、模块划分、编程语言选择、系统测试等;教材章节:第三章“选票系统构建方法”4. 我国选票制度:历史发展、现状、相关法律法规、实际案例分析等;教材章节:第四章“我国选票制度”5. 选票系统实践:小组合作设计并搭建简单的选票系统,进行测试与优化;教材章节:第五章“选票系统实践”6. 选票系统相关技术:加密技术、网络安全、数据存储与处理等;教材章节:第六章“选票系统相关技术”教学内容按照教材章节顺序进行,注重理论与实践相结合。

在教学过程中,教师将引导学生逐步掌握选票系统相关知识,培养学生动手实践能力,提高其信息技术素养。

c语言课程设计食堂投票

c语言课程设计食堂投票

c语言课程设计食堂投票一、教学目标本课程旨在通过C语言编程实践,使学生掌握食堂投票系统的设计与实现。

具体目标如下:1.理解C语言的基本语法和数据结构。

2.掌握函数的定义和调用。

3.学习结构体和文件操作。

4.能够运用C语言实现简单的算法。

5.能够使用C语言进行基本的文件操作。

6.具备基本的编程调试能力。

情感态度价值观目标:1.培养学生独立思考、解决问题的能力。

2.培养学生的团队协作意识和沟通能力。

3.培养学生热爱科学、追求真理的精神。

二、教学内容本课程的教学内容主要包括C语言的基本语法、数据结构、函数、结构体和文件操作。

具体安排如下:1.C语言基本语法和数据类型。

2.控制结构和函数的定义与调用。

3.数组、指针和字符串。

4.结构体和文件操作。

5.食堂投票系统的设计与实现。

三、教学方法为了提高学生的学习兴趣和主动性,本课程将采用多种教学方法,包括讲授法、讨论法、案例分析法和实验法等。

1.讲授法:用于讲解C语言的基本语法和数据结构。

2.讨论法:用于探讨问题解决方案,培养学生的团队协作意识和沟通能力。

3.案例分析法:通过分析实际案例,使学生更好地理解和掌握C语言编程。

4.实验法:让学生亲自动手编写代码,培养学生的实际编程能力和解决问题的能力。

四、教学资源为了支持教学内容和教学方法的实施,丰富学生的学习体验,我们将准备以下教学资源:1.教材:《C程序设计语言》。

2.参考书:《C Primer Plus》。

3.多媒体资料:PPT课件、视频教程。

4.实验设备:计算机、网络环境。

通过本课程的学习,希望学生能够掌握C语言编程的基本技能,培养独立思考、解决问题的能力,同时增强团队协作意识和沟通能力,为今后的学习和工作打下坚实的基础。

五、教学评估本课程的教学评估将采用多元化的评估方式,以全面、客观、公正地评价学生的学习成果。

评估方式包括:1.平时表现:通过课堂参与、提问、讨论等环节,评估学生的学习态度和积极性。

2.作业:布置适量的编程作业,评估学生的编程能力和实践能力。

c语言课程设计电子投票平台

c语言课程设计电子投票平台

c语言课程设计电子投票平台一、教学目标本课程的目标是使学生掌握C语言的基本语法、数据结构和算法,能够运用C 语言设计并实现一个电子投票平台。

具体的学习目标包括:1.理解C语言的基本语法和编程规范。

2.掌握常用的数据结构和算法。

3.了解电子投票系统的基本原理和流程。

4.能够使用C语言编写简单的程序。

5.能够运用数据结构和算法解决实际问题。

6.能够独立设计并实现一个电子投票平台。

情感态度价值观目标:1.培养学生的编程兴趣和自信心。

2.培养学生的问题解决能力和团队合作精神。

3.培养学生的创新意识和责任感。

二、教学内容本课程的教学内容主要包括C语言的基本语法、数据结构和算法,以及电子投票平台的设计和实现。

具体的教学大纲如下:1.C语言的基本语法:变量、数据类型、运算符、控制语句、函数等。

2.数据结构:数组、链表、栈、队列、树、图等。

3.算法:排序算法、查找算法、递归算法等。

4.电子投票平台的设计和实现:需求分析、系统设计、模块实现、测试与调试等。

三、教学方法本课程的教学方法主要包括讲授法、讨论法、案例分析法和实验法。

具体的教学方法如下:1.讲授法:通过讲解和演示,使学生掌握C语言的基本语法和数据结构。

2.讨论法:通过小组讨论和问题解答,激发学生的思考和问题解决能力。

3.案例分析法:通过分析真实的电子投票案例,使学生了解电子投票平台的设计和实现过程。

4.实验法:通过编程实验和项目实践,培养学生的实际编程能力和团队合作精神。

四、教学资源本课程的教学资源包括教材、参考书、多媒体资料和实验设备。

具体的教学资源如下:1.教材:选择一本适合学生水平的C语言教材,用于学习和参考。

2.参考书:提供一些相关的参考书籍,供学生深入学习和拓展知识。

3.多媒体资料:制作一些教学视频和演示文稿,用于辅助教学和复习。

4.实验设备:准备一些计算机和开发环境,供学生进行编程实验和项目实践。

五、教学评估本课程的评估方式包括平时表现、作业和考试三个部分,以全面客观地评价学生的学习成果。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

C语言课程设计前言计算机科学技术的发展,不仅极大地促进了整个科学技术的发展,而且明显地加快了经济信息化和社会信息化的进程。

因此,计算机教育在全国备受重视,计算机知识与能力已成为21世纪人才素质的基本要素之一。

如今,高等教育的计算机教育发展十分迅速。

十多年前,只有部分理工科专业开设计算机课程。

今天,几乎所有高校的所有专业都开设了程度不同的计算机课程。

人们已经认识到,计算机知识已成为当代知识分子知识结构中不可缺少的重要组成部分。

而除了掌握计算机的基础知识和操作的基本能力外,掌握一门高级编程语言,并可以熟练运用它,已成为当代大学生综合能力必要组成。

计算机技术发展如此迅猛,计算机应用如此广泛,需要学习的东西愈来愈多,而我们的总学时是有限的。

一般来说,计算机课程学习可以分为两部分:一部分是理论课程学习,一部分是上机应用实习。

根据我们专业的性质和要求,则应侧重于上机操作运用。

为此,学校特意在暑期最后一星期安排了32个学时的上机实习。

现将一星期的实习内容及结果分析分列如下:投票程序一.题目要求:设有代号为’a’,’b’,’c’的三个个足球先生候选人,根据投票者在选票上对他们编号的填写顺序分别记分5,3,2。

请编程从键盘上输入投票人数及投票结果,统计他们的得分,并输出哪位当选足球先生。

请注意;若同一张票上写有两个相同代号,则显示“此票无效”,若最终前两名得分相同应显示“重新投票”,否则显示三个候选者得分并输出“祝贺X当选冠军!”。

二.需求分析:根据题目要求,选票数据以txt文件的形式存储,所以应提供文件的打开,关闭,输入,输出等操作,并对读取的文件进行调用。

三.总体设计根据题目要求,可对程序进行如下设计:四.详细设计:1.主函数本系统主要用主函数调用打开的选票数据和进入主菜单函数,通过调用主菜单函数实行主函数的功能。

程序main(){void choose();menu();}void menu(){ void choose();int n,w;do{ puts("\t\t^^^^^^^^^^^^足球先生投票程序^^^^^^^^^^^^^^^^^^");puts("\t\t{ }");puts("\t\t{ [1.选票人数:] }");puts("\t\t{ [2.选票信息:] }");puts("\t\t{ [3.分数:] }");puts("\t\t{ [4.结果:] }");puts("\t\t{ [5.退出] }");puts("\t\t{ }");puts("\t\t^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^");printf("请选择你的数字(1-5):[ ]\b\b");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”文件中打开并读取出来并保存在之前建立的结构体变量vote[NUM]中。

通过调用选票信息统计选票人数,并通过选择函数菜单返回或退出。

程序void innum(){int i=loadvote();printf("\n选票人数:\t%d\n\n",i);select();}3.选票信息模块读取选票信息,用for循环语句进行票数的统计并用if else语句进行选择,如果出现票数一样的则选票无效,通过调用累加函数将票数统计结果统计出来。

程序void input(){int i;int m=loadvote();printf("\n");number[0].num=number[1].num=number[2].num=0;for(i=0;i<m;i++){printf("%c %c %c",vote[i].c1,vote[i].c2,vote[i].c3);if(vote[i].c1==vote[i].c2||vote[i].c1==vote[i].c3||vote[i].c2==vote[i].c3)printf("\t该票无效!\n");else{add(vote[i].c1,vote[i].c2,vote[i].c3);printf("\n");}}printf("\n\n");select();}4.分数统计模块通过三人所得票数按照计分方法将三人的得分计算出来,也要用到for循环语句和if else语句,并分别用将三人的得分结果输出来。

程序void output(){int n,i;n=loadvote();number[0].num=number[1].num=number[2].num=0;for(i=0;i<n;i++){if(vote[i].c1==vote[i].c2||vote[i].c1==vote[i].c3||vote[i].c2==vote[i].c 3);else{add(vote[i].c1,vote[i].c2,vote[i].c3);}}printf("\n候选人的得分:\t");printf("a: %d\n",number[0].num);printf("b: %d\n",number[1].num);printf("c: %d\n\n\n",number[2].num);select();}5. 选举结果模块运用If else if语句对前面三个候选人的得分情况进行比较分析,如果三个人的得分相同则显示重新投票并返回主函数main(),否则通过 switch case语句进行比较选出得分最高的人为冠军。

程序void choose(){int c;if(number[0].num>number[1].num&&number[0].num>number[2].num){c=1;}else if(number[1].num>number[0].num&&number[1].num>number[2].num){c=2;}else if(number[2].num>number[1].num&&number[2].num>number[0].num) {c=3;}else{printf("重新选票!\n");main();}switch(c){case 1:printf("\n祝贺a当选冠军!\n\n\n");select();case 2:printf("\n祝贺b当选冠军!\n\n\n");select();case 3:printf("\n祝贺c当选冠军!\n\n\n");select();}}6.选择模块选择函数的建立是为了每运行完一个模块之后都可以通过选择函数返回或退出。

void select(){int m,w;do{puts("下一个");puts("\t\t^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^");puts("\t\t{ }");puts("\t\t{[1. 返回] }");puts("\t\t{[2. 退出] }");puts("\t\t{ }");puts("\t\t^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n");printf("请选择你的数字(1-2): [ ]\b\b");scanf("%d",&m);if(m<1||m>2){w=1;printf("错误\n");select();}else w=0;switch(m){case 1:printf("\n\n");menu();break;case 2:exit(0);}}while(w==1);}五.完整编写过程如下:完整程序#include<conio.h>#include<stdlib.h>#include<stdio.h>#define NUM 20struct FOOD{char c;int num;}number[3];struct VOTE{char c1;char c2;char c3;}vote[NUM];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",&vote[i].c1,&vote[i].c2,&vote[i].c3); }fclose(fp);return(i);}void select(){int m,w;do{puts("下一个");puts("\t\t^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^");puts("\t\t{ }");puts("\t\t{[1. 返回] }");puts("\t\t{[2. 退出] }");puts("\t\t{ }");puts("\t\t^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n");printf("请选择你的数字(1-2): [ ]\b\b");scanf("%d",&m);if(m<1||m>2){w=1;printf("错误\n");select();}else w=0;switch(m){case 1:printf("\n\n");menu();break;case 2:exit(0);}}while(w==1);}void innum(){int i=loadvote();printf("\n选票人数:\t%d\n\n",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;case 2:count(c3,2);}}}void count(char c,int n){switch(c){case 'a':number[0].num+=n;break;case 'b':number[1].num+=n;break;case 'c':number[2].num+=n;}}void input(){int i;int m=loadvote();printf("\n");number[0].num=number[1].num=number[2].num=0;for(i=0;i<m;i++){printf("%c %c %c",vote[i].c1,vote[i].c2,vote[i].c3);if(vote[i].c1==vote[i].c2||vote[i].c1==vote[i].c3||vote[i].c2==vote[i].c 3)printf("\t该票无效!\n");else{add(vote[i].c1,vote[i].c2,vote[i].c3);printf("\n");}}printf("\n\n");select();}void output(){int n,i;n=loadvote();number[0].num=number[1].num=number[2].num=0;for(i=0;i<n;i++){if(vote[i].c1==vote[i].c2||vote[i].c1==vote[i].c3||vote[i].c2==vote[i].c 3);else{add(vote[i].c1,vote[i].c2,vote[i].c3);}}printf("\n候选人的得分:\t");printf("a: %d\n",number[0].num);printf("b: %d\n",number[1].num);printf("c: %d\n\n\n",number[2].num);select();}main(){void choose();menu();}void menu(){void choose();int n,w;do{程puts("\t\t^^^^^^^^^^^^足球先生投票序^^^^^^^^^^^^^^^^^^");puts("\t\t{ }");puts("\t\t{ [1.选票人数:] }");puts("\t\t{ [2.选票信息:] }");puts("\t\t{ [3.分数:] }");puts("\t\t{ [4.结果:] }");puts("\t\t{ [5.退出] }");puts("\t\t{ }");puts("\t\t^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^");printf("请选择你的数字(1-5):[ ]\b\b");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);}}void choose(){int c;if(number[0].num>number[1].num&&number[0].num>number[2].num){c=1;}else if(number[1].num>number[0].num&&number[1].num>number[2].num) {c=2;}else if(number[2].num>number[1].num&&number[2].num>number[0].num) {c=3;}else{printf("重新选票!\n");main();}switch(c){case 1:printf("\n祝贺a当选冠军!\n\n\n");select();case 2:printf("\n祝贺b当选冠军!\n\n\n");select();case 3:printf("\n祝贺c当选冠军!\n\n\n");select();}}六.上机操作1.主菜单模块2.选票人数模块3.选票信息模块.4.分数统计模块5.选举结果模块6.退出模块。

相关文档
最新文档