当前位置:文档之家› 2016年TI杯大学生电子设计竞赛G题

2016年TI杯大学生电子设计竞赛G题

2016年TI杯大学生电子设计竞赛G题
2016年TI杯大学生电子设计竞赛G题

2016年TI杯大学生电子设计竞赛

G题:简易电子秤

摘要

根据本题目要求,自行设计应变片与铁质悬臂梁结构,使用仪表放大器电路实现对应变片的电阻变化信号进行差分信号放大,本作品使用STM32单片机作为中心控制单元,通过内部AD进行采集质量信息,配以3.2寸触摸电阻屏控制,以及WT588D作为扩展的语音播报,实现相关功能。

本电子称不但计量准确、快速方便,除了实现自动称重、计价功能、精度高外,还可实现去皮、自动计算,数字显示,语音播报,显示实时温度等。

关键字:电子秤;STM32;应变片;仪表放大器;电阻触摸屏;WT588D。

G题:简易电子秤

一、系统方案

本系统主要由单片机控制模块、屏幕显示模块、仪表放大模块、放大器模块、电源模块组成,下面分别论证这几个模块的选择。

1、控制器选用单片机比较

方案一:采用51系列单片机

传统的51单片机为8位机,价格便宜,控制简单,但是运算速度慢,片内资源少,存储容量小,难以存储大体积的程序和实现快速精准的反应控制。并且受时钟限制,计时精度不高,外围电路也增加了系统的不可靠性。

方案二:采用STM32F103系列单片机

STM32系列基于专为要求高性能、低成本、低功耗的嵌入式应用专门设计的ARM Cortex-M3内核。STM32集成外设有较为强大的功能,可扩展性强。

通过比较,我们选择方案二,采用STM32F103系列单片机为主控处理器。

2、显示方案选择

方案一:采用LCD1602作为显示屏

LCD1602是工业字符型液晶,能够同时显示16x02即32个字符。是一种专门用来显示字母、数字、符号等的点阵型液晶模块。使用与学习方便,但是可扩展能力弱。

方案二:采用3.2寸彩色电阻式触摸屏

彩色显示,320*480分辨率,有较高的扩展性,可以用它实现键盘,显示等多种功能,功能强大,可自制UI进行使用。

综合以上两种方案,选择方案二,采用3.2寸彩色电阻式触摸屏作为显示方案。

3、仪表放大器的论证与选择

方案一:使用3片op07制作仪表放大器电路

Op07是一种低噪声,非斩波稳零的双极性运算放大器集成电路。具有非常低的输入失调电压(对于OP07A最大为25μV)。仪表放大器电路主要由两级差分放大器电路构成。其中,运放前两片为同相差分输入方式,后一片为差分放大电路。这样子做较为复杂,电路较难准确。

方案二:使用一片INA128芯片

INA128为精密低功耗仪表放大器,它们通用的3运放3-op amp设计和体积小巧使其应用范围广泛,且电路实现简单,由单个外部电阻即可实现从1至10000的任一增益选择。

综合以上两种方案,选择方案二。

3、控制系统的论证与选择

方案一:AD采样后直接对数据进行分析与显示,可以快速的看到数据的变化;

方案二:采样后对数据进行均值低通等数字滤波,虽然数据显示较慢,但是数据较为平稳,不会有较大跳变。

综合考虑采用方案二。

二、系统理论分析与计算 1、测量精度的分析

由于测量称重范围最大为500g ,最小精度要求为0.5g ,考虑到采用芯片内部的ad 最高电压为3.3v ,为防止放大器输出端电压过大,所以500g 对应最大电压为3v 。所以0.5g 对应电压变化为0.003v 。约3.3v 电压的1/1024,即1/2^10,即所采用的AD 测量至少要10位才可以满足本题的测量精度要求。

本次我们采用的STM32内部ADC 为12位,基本满足题目要求。

2、电阻式金属应变片电路分析

图1:电桥线路原理图

U i =[R 1R 2?R 2R 4

(R 1+R 2)(R 3+R 4)]U 0

如果

R 1R 4

=

R 2R 3

则电桥平衡,通过调节Uo 可以改变Ui 的大小;

若R1、R2、R3、R4电阻变化,则电压变化

?U i =U 0

R1R2

(R1+R2)

[?R1R1

?

?R2R2

+

?R3R3

?

?R4R4

]。

3、仪表放大器电路分析

图2:INA128/129内部电路结构图

电压输出Uo =(1

+

50k Rg

)?Ui

3、反相比例放大器计算

图3:反向比例放大器原理图 电压输出:Uo =?

Rf R1

?Us

三、电路与程序设计 1、电路的设计 (1)系统总体框图

图4:电路系统总框图

(2)全桥式应变片电路

图5:全桥式应变片电路图

(3)仪表放大器电路

电阻式应变片 惠斯通全电桥 电路 直流偏置调节 仪表放大器 放大电路 反相比例放大器 放大电路

STM32主控

屏幕 显示

语音输出

图6:仪表放大器电路图

(4)反相比例放大器电路

图7:反相比例放大器电路图

2、程序的设计

程序功能描述:

根据题目要求软件部分主要实现ad采样变换显示,键盘的设置和显示。

(1)键盘实现功能:设置价格以及功能切换。

(2)显示部分:显示实时电压值、斤数、单价、总价等。

程序流程图

开始

屏幕初始化

自动校正

去皮归零

中断AD采样

数据计算

屏幕显示

价格输入

总价计算

图8:主程序流程图

四、测试方案与测试结果

1、测试方案

(1)硬件测试

使用信号发生器与示波器,观察硬件电路部分是否能实现信号的放大。

(2)软件仿真测试

使用电源供给单片机AD采样,测试软件部分是否正常。

(3)硬件软件联调

软件硬件结合测试,根据测试结果调整软件硬件数据,实现精准测量。

2、测试条件与仪器

测试条件:检查多次,仿真电路和硬件电路必须与系统原理图完全相同,并且检查无误,硬件电路保证无虚焊。环境温度室温,无较大环境因素影响。

测试仪器:学生电源,数字示波器,数字万用表,信号发生器。

3、测试结果及分析

(1)测试结果(数据)

(2)测试分析与结论

根据上述测试数据显示,数据结果基本呈线性,且在误差范围内基本满足本作品的误差要求。

综上所述,本设计达到设计要求。

五、结论与心得

通过本次大赛又重新了解了仪表类运放的相关知识,了解金属应变片的功能,并自行设计制作压力传感器,实现相关功能。

这次4天3夜的比赛让我们对团队合作有了深刻的理解,由于团队分工不明确确实耽误了不少时间。不过经过后期调整,也算较为艰难的完成了任务。

这次比赛的前期准备确实耽误了不少事情,使得进度慢了许多,所以前期准备对于电子设计大赛这种,短时间内要完成的比赛来讲,还是很重要的。希望日后有机会还可以参加。

六、参考文献

[1] 尹福炎. 金属箔式应变片制作工艺原理. 国防工业出版社,2011

[2] 吴建平.传感器原理及应用(第3版). 机械工业出版社,2016

[3] 松井邦彦. 传感器应用技巧141例.科学出版社,2006

附录1:电路原理图

附录2:实验程序

C语言程序设计竞赛题及其答案

数学与统计学院 第三届计算机程序设计竞赛题 竞赛需知: 1、答案必须写在答题纸上。 2、程序采用C/JAVA/VB/VFP语言实现均可。 3、考虑到各种因素,程序的键盘输入和结果输出可以用伪代码或者自然语言表示。但是必 须说明输入变量和输出变量。 4、题目最好能用完整、正确的语言程序来解决问题,如确实无法编写完整语言程序的,可 以写出程序主要框架和流程,必要时可以用伪代码或者自然语言描述算法(程序)。 一、玫瑰花数(20分) 如果一个四位数等于它的每一位数的4次方之和,则称为玫瑰花数。例如: + + 1634+ =, 4^4 4^3 4^6 4^1 编程输出所有的玫瑰花数。 #include void main() { int i,j,k,l,m; for(i=999;i<=9999;i++) { j=i/1000; k=i%10; l=i/100-10*j; m=i/10-100*j-10*l; if(i==j*j*j*j+k*k*k*k+l*l*l*l+m*m*m*m) printf("%d\n",i); } } 二、菱形图案(20分) 对给定的奇数n,编程打印菱形图案。 输入样例: 7 输出样例: * *** ***** ******* ***** *** * #include #include void main() {

int i,j,k; int n; scanf("%d",&n); for(i=0;i #include void main() { int i,j,x,y; float r; int a,b,count=0; printf("请输入矩阵的行列i,j:"); scanf("%d%d",&i,&j); printf("请输入圆心的坐标点及半径x,y,r:"); scanf("%d%d%f",&x,&y,&r); for(a=0;a

大学生程序设计竞赛

关于举办中南大学第八届大学生程序设计竞赛的通知 各二级单位: ACM国际大学生程序设计竞赛(ACM/ICPC:ACM International Collegiate Programming Contest)是由国际计算机界历史悠久、颇具权威性的组织ACM学会主办,是世界上公认的规模最大、水平最高的国际大学生程序设计竞赛。 为培养和激励我校大学生的创造力、团队合作精神以及在计算机程序开发过程中的创新意识,为湖南省及ACM国际大学生程序设计竞赛(ACM/ICPC)做好选拔工作,并促进“ACM国际大学生程序设计竞赛”、“湖南省大学生程序设计竞赛”活动在我校的开展,经研究决定,举办中南大学第八届大学生程序设计竞赛。 一、参赛对象 所有全日制在校本科生均可组队参赛。参赛队伍每队3名正式队员,每支队伍可取1个有特色的名称,名称自定。 二、比赛规则 1、竞赛试题:11题(中文题5道、英文题6道)。 2、比赛时间:5小时。 3、每支队伍使用一台计算机,竞赛所用编程语言为C、C++、Java,操作系统为Windows。 4、竞赛时,允许参赛队员携带源代码、参考书、手册、字典等纸质参考资料,不准携带任何电子工具和电子媒质资料。 5、试题的解答通过网络提交,每一次提交会被判为正确或者错误,判决结果会及时通知参赛队伍。 6、正确解答一道题及一道题以上的队伍有资格参加排名。如果多支队伍解题数目相同,则根据总用时加入惩罚时间进行排名。从竞赛开始到试题解答被判定为正确为止所花的时间为每道试题的用时,其间每一次错误提交将被加罚20分钟,未正确解答的试题不计时。 7、参赛队员有权通过提交解释请求,针对题目描述中的不明确或错误的部分提问。如果裁判确认题目中确实存在不明确或错误的部分,将会通告所有参赛队伍进行声明或更正。 8、在竞赛中,参赛队员不得和同组成员或竞赛组委会指定工作人员以外的人交谈。 9、本次比赛将邀请部分校外队伍过来参赛,校外队伍不参与评奖,供大家交流学习。 三、奖项设置 大赛设一等奖、二等奖、三等奖三个奖励等级,由学校颁发证书。其中,一等奖、二等奖和三等奖数额分别按照实际参赛队数目的10%、15%和20%设置。 四、队伍选拔 凡是获得一等奖、二等奖的队伍均可报名参加ACM集训队暑期集训及选拔,以备战湖南省大学生计算机程序设计竞赛和 ACM/ICPC各项赛事。 五、报名事项及比赛时间安排 此次比赛采用网络报名,带学生证参赛的方式。各参赛队请于2014年4月3日至4月15日登录ACM比赛报名系统 (https://www.doczj.com/doc/db16411700.html,/bm/)注册账号并报名参赛。 参赛队员均可申请加入校赛的官方交流和通知群:168549267,申请时请注明专业班级、姓名。报名截止后参赛队伍名单将在QQ群、中南大学ACM官网(https://www.doczj.com/doc/db16411700.html,/)上公布。 参赛队员可以参考参赛指南(https://www.doczj.com/doc/db16411700.html,/csuacm/8th-csucpc-help/)进行赛前相关训练。 竞赛宣讲会时间:2014年4月13日14:30,地点:校本部民主楼小礼堂。 热身赛时间:2014年4月19日(周六)15:00—17:00,地点:新校区综合实验楼4楼(注:请务必参加热身赛)。 正式比赛时间:2014年4月20日(周日)9:00—14:00,地点:新校区综合实验楼4楼。 颁奖及试题讲解时间:2014年4月20日(周日)14:30,地点:新校区教学楼。 本科生院 2014年4月3日附件信息 关闭页面

程序设计比赛试题

程序设计比赛试题 最少钱币数: 【问题描述】 这是一个古老而又经典的问题。用给定的几种钱币凑成某个钱数,一般而言有多种方式。例如:给定了6种钱币面值为2、5、10、20、50、100,用来凑15元,可以用5个2元、1个5元,或者3个5元,或者1个5元、1个10元,等等。显然,最少需要2个钱币才能凑成15元。 你的任务就是,给定若干个互不相同的钱币面值,编程计算,最少需要多少个钱币才能凑成某个给出的钱数。 【要求】 【数据输入】输入可以有多个测试用例。每个测试用例的第一行是待凑的钱数值M (1<=M<=2000,整数),接着的一行中,第一个整数K(1<=K<=10)表示币种个数,随后是K个互不相同的钱币面值Ki(1<=Ki<=1000)。输入M=0时结束。 【数据输出】每个测试用例输出一行,即凑成钱数值M最少需要的钱币个数。如果凑钱失败,输出“Impossible”。你可以假设,每种待凑钱币的数量是无限多的。 【样例输入】 15 6 2 5 10 20 50 100 1 1 2 【样例输出】 2 Impossible

Feli的生日礼物 【问题描述】 Felicia的生日是11月1日(和Kitty是同一天生的哦)。于是Feli请来Kitty一起过生日。Kitty带来了最新款的“Kitty猫”玩具准备送给Feli,不过她说,这份礼物可不是白送的。Feli要帮她一个忙,才能够得到心仪已久的玩具。Kitty说,“Kitty猫”玩具已经卖出了n!个,n<=10^100*_*,Kitty想知道确切的数字,而不是无聊的“一个数加个感叹号”。Feli听了大吃一惊。要知道,算出n!是一个无比艰巨的任务。Feli告诉Kitty,就算Feli算出n!,Kitty也看不下去,因为当n=20时,计算机的长整型已经存不下了(Kitty只能接受1-9之间的数字)。于是Kitty说,你只要告诉我n!最后一位非0的数就可以了。Feli想了想,立刻动手写了个程序算出了正确的答案。现在,请你也试试看!注意哦,AC的男生将会得到一个“Hello Kitty”计算器(可编程,CPU 1THz,Mem 1TMB),AC的女生将会得到一个仿真“Hello Kitty”宠物(善解人意,无须喂养,智商1101,附带写情书功能)。 【要求】 【数据输入】每行一个n,直到输入数据结束 【数据输出】对应输入的n,每行输出一个答案 【样例输入】 1101 【样例输出】 8

程序设计竞赛试题和题解

程序设计竞赛试题和题解 付浩fuch@https://www.doczj.com/doc/db16411700.html, Contents 完全平方数 (2) 拉丁方阵 (3) 取石子游戏 (5) 乡村医院 (7) 未知星球 (9) 无聊的游戏 (10) 最短路径 (12)

完全平方数 描述 一个非负整数n是完全平方数当且仅当存在非负整数m,使得n=m2 据说完全平方数具有某种神奇的力量,谁知道呢。 聪明的你一定想到了,这道题的任务就是编写一个程序,判断给定的n是否是完全平方数。 输入格式 输入包含多组数据。 每组数据占一行,包含一个非负整数n,n不超过109 输入以n=-1结束 输出格式 对每组输入数据输出一行,如果n是完全平方数则输出”Yes”,否则输出”No” 输入样例 1 2 3 4 -1 输出样例 Yes Yes No No Yes 解答 一般的语言都有开平方运算吧?

拉丁方阵 描述 拉丁方阵是一种n×n的方阵,方阵中恰有n种不同的元素,每种元素恰有n个,并且每种元素在 一行和一列中恰好出现一次。著名数学家和物理学家欧拉使用拉丁字母来作为拉丁方阵里元素的 符号,拉丁方阵因此而得名。例如下图是一个3×3的拉丁方阵: 如果一个拉丁方阵的第一行和第一列按照元素的先后顺序来排列,那么这称为拉丁方阵的标准型,例如下图就是一个3x3的拉丁方阵标准型,第一行和第一列都是”1 2 3”。 你的任务是,编写一个程序读入一个方阵,判断其是否为拉丁方阵;进一步地,判断是否为标准型。 输入格式 输入包含多组数据。 每组数据第一行为正整数n,表示方阵的大小。 其后n行,每行有n个1到n之间的整数,整数之间恰有一个空格,表示方阵的内容。 输入保证1≤n≤100 输入以n=0结束,不要处理这个数据。 输出格式 每组数据对应于一行输出。如果输入是拉丁方阵,但不是标准型则输出1;如果输入是标准型则 输出2;如果输入不是拉丁方阵则输出0 输入样例 2 1 1

程序设计大赛试题及答案

试题 1、数学黑洞(程序文件名maths.c/maths.cpp) 【问题描述】 任给一个4位正整数,其各位数位上的数字不全相同,将数字重新组合成一个最大的数与最小的数相减,重复这个过程,最多7步,必得6174。对任给的4位正整数(各位数位上的数字不全相同),编程输出掉进黑洞的步数。 【输入】 一行,一个4位正整数n(1000< n<9999) 【输出】 掉进黑洞的步数 输入 1234 输出 3 2、进制转换(程序文件名conver.c/conver.cpp) 【问题描述】 任给一个十进制整数n,及正整数m(m<=16且m≠10), 将n转换成m进制并输出。 【输入】 一行,两个整数n,m(0 ≤ n ≤ 500000,2 ≤ m ≤ 16,且m≠10),中间用一个空格隔开,其中n 表示十进制数。 【输出】 转换后的数 【输入输出样例】 输入 255 8 输出 377 3、分数线划定(程序文件名score.c/score.cpp) 【问题描述】 公务员选拔工作正在 A 市如火如荼的进行。为了选拔优秀人才,A 市对所有报名的选手进行了笔试,笔试分数达到面试分数线的选手方可进入面试。面试分数线根据计划录取人数的150%划定,即如果计划录取m名公务员,则面试分数线为排名第m*150%(向下取整)名的选手的分数,而最终进入面试的选手为笔试成绩不低于面试分数线的所有选手。现在就请你编写程序划定面试分数线,并输出所有进入面试的选手的报名号和笔试成绩。 【输入】 第一行,两个整数n,m(5 ≤ n ≤ 5000,3 ≤ m ≤ n),中间用一个空格隔开,其中n 表示报名参加笔试的选手总数,m 表示计划录取的人数。输入数据保证m*150%向下取整后小于等于n。 第二行到第 n+1 行,每行包括两个整数,中间用一个空格隔开,分别是选手的报名号k(1000 ≤ k ≤ 9999)和该选手的笔试成绩s(1 ≤ s ≤ 100)。数据保证选手的报名号各不相同。 【输出】 第一行,有两个整数,用一个空格隔开,第一个整数表示面试分数线;第二个整数为进入面试的选手的实际人数。 从第二行开始,每行包含两个整数,中间用一个空格隔开,分别表示进入面试的选手的报名号和笔试成绩,按照笔试成绩从高到低输出,如果成绩相同,则按报名号由小到大的顺序输出。 【输入输出样例】 输入 6 3 1000 90 3239 88 2390 95 7231 84 1005 95 1001 88

首届全国中医药院校大学生程序设计竞赛试题

Problem A: 序列的混乱程度 Time limit:1s Memory limit:128MB Description 有一个长度为n的正整数序列,一个序列的混乱程度定义为这个序列的最大值和最小值之差。请编写一个程序,计算一个序列的混乱程度。 Input 输入的第一行为一个正整数T(T<=1000),表示一共有T组测试数据。 每组测试数据的第一行为一个正整数n(1<=n<=1000),代表这个序列的长度。第二行为n 个正整数,代表这个序列。序列中元素的大小不会超过1000。 Output 对于每个测试数据,输出一行包含一个正整数,代表对应序列的混乱程度。 Sample Input 2 5 1 2 3 4 5 5 1 9 2 4 8 Sample Output 4 8

Problem B: 随机数 Time limit:1s Memory limit:128MB Description 有一个rand(n)的函数,它的作用是产生一个在[0,n)的随机整数。现在有另外一个函数,它的代码如下: int random(int n,int m) { return rand(n)+m; } 显而易见的是函数random(n,m)可以产生任意范围的随机数。现在问题来了,如果我想要产生范围在[a,b)内的一个随机数,那么对应的n,m分别为多少? Input 输入的第一行为一个正整数T(T<=1000),表示一共有T组测试数据。 对于每组测试数据包含两个整数a,b(a<=b)。 Output 对于每组测试数据,输出一行包含两个整数n和m,两个整数中间有一个空格分隔。 Sample Input 2 0 5 1 4 Sample Output 5 0 3 1

重庆理工大学第四届大学生程序设计大赛试题

程序提交方法,务必看清楚步骤! 1、每个人在自己的计算机上编写调试好程序后,双击桌面上的“程序设计大赛”快捷键,弹出如下对话框,在Name和password编辑框均输入自己的组号 2、输入在Name和password后,点击login登录,出现如下对话框: 在problem下拉列表框选择自己要提交哪个程序的源代码→在language下拉列表框选择自己编写程序所用的语言→在Main file下拉列表框选择自己源代码文件(所有的源代码务必写在一个文件里!!)→点击submit按钮提交! 提交后系统会给出一个结果

例如: Yes正确(简单称ac) No-Compilition Error 为编译错误简单称(ce) No-Run-time Error 运行中意外终止(RE)(也有可能是格式错误) No-time-limit Exceeded程序运行超时(TLE) No-Wrong Answer 答案错误 No-Excessive Out put 程序输出结果超出pc^2所能检测的范围 No-Output Format Error 格式错误 No-Other-Contact Staff 其他未知错误 注意: 1、务必严格按照题目的要求编写程序(主要指输入文件名和输出文件名),程序使用的数据从文件中读取, 运行结果写到文件里,即不能使用Scanf、Printf等标准的输入输出函数 2、打开文件时只需文件名+扩展名,不能用绝对路径即不能有盘符路径!

重庆理工大学第四届大学生程序设计大赛题目 试题1:【旋转矩阵】 【问题描述】数学上有一种矩阵叫旋转矩阵,非常的有意思,所谓旋转矩阵,就是在N阶矩阵中,起始数1置于方阵的左上角,然后从起始数开始依次递增,按顺时针方向从外向里旋转填数而成。 【输入】输入文件名“matrix.in” 输入文件由一行或多行构成,每行由一个正整数N组成,(N不大于100)。输入文件的最后一行是‘#’表示文件结束。。 【输出】输出文件名“estdout.pc2” 对于每一组数据,输出一个N阶的旋转矩阵。两组输出之间不要额外的空行。矩阵中同一行的数字用一个空格分开。 程序运行后结果示例: 【样例输入】 5 # 【样例输出】 1 2 3 4 5 16 17 18 19 6 15 24 25 20 7 14 23 22 21 8 13 12 11 10 9 试题2:【单词问题】 【问题描述】 给出一个完整的句子,这个句子中不包含不可见字符或者空格,于是在这个句子中有许多不同的单词。一个单词是指一串连续的最长的英文字母(大写或小写)。例如"#abc#"中,"abc"就是一个单词,而"ab","bc"都不算单词。 【输入】输入文件名“word.in” 输入一个句子,只包含可见字符(不包含空格)。句子长度不超过100。 【输出】输出文件名“estdout.pc2” 按单词出现的顺序输出不同的单词。如果一个单词出现多次则只有第一次出现时输出。 程序运行后结果示例:

第六届程序设计比赛题目与答案

一、鸡兔同笼 问题描述 一个笼子里面关了鸡和兔子(鸡有2只脚,兔子有4只脚,没有例外)。已经知道了笼子里面脚的总数a,问笼子里面至少有多少只动物,至多有多少只动物 输入数据 第1行是测试数据的组数n,后面跟着n行输入。每组测试数据占1行,包括一个正整数a (a < 32768)。 输出要求 n行,每行输出对应一个输入。输出是两个正整数,第一个是最少的动物数,第二个是最多的动物数,两个正整数用空格分开。如果没有满足要求的情况出现,则输出2个0。 输入样例 2 3 20 输出样例 0 0 5 10 解题思路 这个问题可以描述成任给一个整数N,如果N是奇数,输出0 0,否则如果N是4的倍数,输出N / 4 N / 2,如果N不是4的倍数,输出N/4+1 N/2。这是一个一般的计算题,只要实现相应的判断和输出代码就可以了。题目中说明了输入整数在一个比较小的范围内,所以只需要考虑整数运算就可以了。 参考程序 1.#include 2.void main( ) 3.{ 4.int nCases, i, nFeet; //nCases 表示输入测试数据的组数,nFeet表示输入的脚数。 5.scanf("%d", &nCases); 6.for(i = 0; i < nCases; i++){ 7.scanf("%d", &nFeet); 8.if(nFeet %2 != 0) // 如果有奇数只脚,则输入不正确, 9.// 因为不论2只还是4只,都是偶数 10.printf("0 0\n"); 11.else if (nFeet%4 != 0) //若要动物数目最少,使动物尽量有4只脚 12.//若要动物数目最多,使动物尽量有2只脚 13.printf("%d %d\n", nFeet / 4 + 1, nFeet / 2); 14.else printf("%d %d\n", nFeet / 4, nFeet / 2); 15.} 16.}

2019年大学生程序设计大赛策划书

2019年大学生程序设计大赛策划书 一、活动名主题 “华为”杯程序设计大赛 二、举办单位 策划主办单位:华为技术有限公司 协办单位:(排名不分先后)华中科技大学、武汉大学、武汉理工大学 三、活动时间 20xx年x月x日-x月xx日 四、参赛资格 ●本次大赛面向武汉三所目标高校在校全日制本科及以上学历学生(毕业时间在20xx年x月xx日之后)。 ●初赛以个人为单位,性别、专业不限;预计800人;

●在华为官方的网站注册报名,报名成功后获得参赛资格,只有在报名期间进行网上注册后才能参与比赛。 五、竞赛流程 第一阶段:报名参赛(5月10日—5月24日) l参赛选手阅读参赛注意事项,确认协议内容,在华为官方的 网站上注册简历,获得参赛资格的选手以个人身份参赛。 第二阶段:初赛(6月1日8:00—6月1日12:00) l网吧集中测试(集中招聘机试流程) 1.5月30日18:00前,通过邮件、短信和电话的形式通知通过简历筛选的学生初赛场地、机试场次、时间、所需证件及注意事项; 2.1日当天,学生凭身份证刷卡签到,并获取自己的登录账号 与密码。

3.学生按安排的批次进行入座考试,机试全程为30分钟,逾时将视为不及格。全程考试属封闭式测试,不得翻阅网页及手机,完全独立完成整个测试过程。一旦发现翻阅行为,一律视为作弊,将会被取消参赛资格。 4.考试成绩按照答案正确率与用时两个维度进行评价,在追求准确的同时对学生们的编程效率也作出了要求。 第三阶段:软件训练营(6月2日9:00—6月2日16:00) l1日晚将通过邮件、短信与电话的形式,邀请通过初赛的18 位学生参加为期6个小时的软件训练营-敏捷开发的训练课程,本课程主要是针对学生编程思维进行的引导式更新,课程内容比较灵活多变,动手环节较多,较有吸引力。 l中午学生将统一在华为A2食堂进行就餐。 l完成培训的学生将会收到华为武研所办法的“敏捷技能拥有者”的荣誉证书和决赛工具包(题目+小贴士+输出文件)。 l培训后,同学将会自主组成6个三人组进行接下来的决赛。每两个三人组将会由一位导师(业务部门提供的业务骨干)进行指导,

安徽省大学生程序设计大赛

安徽省大学生程序设计大赛 竞 赛 方 案 全国大学生信息安全竞赛安徽省赛区组委会安徽省大学生程序设计大赛技术委员会

一.竞赛章程 ●竞赛宗旨 为培养安徽省高校大学生的创新意识和创新能力,提高大学生应用计算机分析和解决实际问题的能力,安徽省教育厅主办了安徽省大学生程序设计大赛,赛事旨在为广大学生的一个展示和提高解题与编程能力的机会,开展计算机编程方面的公平竞赛。 ●竞赛设置 安徽省大学生程序设计大赛计划开展本科组、高职组两个级别竞赛。参赛以学校为单位,组委会为每个单位提供3支队(含)以内参赛名额,参赛单位3支队(不含)以上参赛名额由参赛单位向组委会提出申请,报名截止后组委会根据报名情况统一裁定。组委会根据参赛情况适量接受少量友情参赛队,队名附“*”以示区别,不参加评奖。 安徽省大学生程序设计大赛由大赛技术委员会负责命题、评判,采用统一命题,本科组、高职高专组分组设奖方式进行,奖项设置以各组别参赛队伍为基数,按参赛队成绩排序,分别设置一等奖(不超过基数10%)、二等奖(不超过基数20%)、三等奖(不超过基数30%)和优胜奖。 ●参赛队伍组成 比赛以队为参赛基础,队的组成包括教练1~2名(必须是参赛学校的教师),以及不超过3名参赛队员。每个参赛学校可以派多支代表队,每个参赛学校可有一名领队(可选),至少一名教练(必需,可兼任同一学校多支队伍教练)以及若干参赛队员组成。 教练是参赛队伍所代表学校的正式教师,教练必须保证所有队员符合本规则的规定。教练作为参赛队伍的代表,负责赛区预赛活动中的联系工作。 参赛队伍必须向竞赛组织委员会提交领队、教练和队员的身份合格证明材料,经竞赛组织委员会审查通过后,一支队伍才能获得参赛资格。 领队、教练和队员的身份合格证明材料:由各高校教务部门一次性出具所在

2014年TI杯大学生电子设计竞赛题(8道赛题全)

2014年TI杯大学生电子设计竞赛题(多省联赛) A题:四旋翼飞行器 1.任务 设计制作一架能够自主飞行的四旋翼飞行器。 2.要求 四旋翼飞行器能够完成以下飞行动作: (1)飞行器能够根据起飞前预置的指令起飞,飞离地面高度应超过30cm,飞行距离(水平)应超过60cm,然后飞行器应能平稳降落。(30分) (2)飞行器能够根据指定(键盘设定)的飞行高度及降落地点(方向及距离)连续稳定地完成起飞、指定高度水平飞行、平稳降落等动作。(20分) (3)飞行器能够根据起飞前预置的指令垂直起飞,起飞后能够在50cm以上高度平稳悬停5s以上,然后再平稳缓慢降落到起飞地点;起飞与降落地点水平距离 不超过30cm。(30分) (4)其他自主发挥设计的飞行动作。(20分) (5)设计报告(20分) 项目主要内容分数 系统方案方案比较,方案描述 5 设计与论证飞行器姿态测量方法 飞行控制器控制方法与参数计算8 测试测试方法与测试结果 5 设计报告结构及规范性摘要,正文结构完整性、内容规范性 2 小计20 3.说明 (1)飞行器的姿态检测及飞行控制必须使用TI 公司的TIV A M4、C2000或MSP430等系列控制器。 (2)飞行器在完成每一项飞行动作期间不得以任何方式进行人为干预,如遥控等。 (3)飞行器的尺寸可自行选定。 (4)飞行方向以正北方向为0°、东北方向为45°、正东方向为90°等,以此类推;距离的单位为厘米(cm)。 (5)指定的降落地点是指降落地点距起飞地的水平距离及方向。 (6)平稳降落是指在降落过程中无明显的跌落、弹跳及着地后滑行等情况出现。 (7)能够完成要求(2)时,要求(1)可以免测。 (8)为确保安全,飞行器应在安全网中或在系留方式下工作(即以绳索将飞行器拴在地面固定物上)。

小学生程序设计复赛练习题

小学生程序设计比赛练习题 1.幸运数字 (luck.pas/c/cpp) 【问题描述】 今年圣诞节,小明收到了很多礼物,每个礼物上都有一个数字,表示对小明的祝福。可是小明有自己的想法,对小明来说,4或者7的倍数是幸运数字。 现在,小明想要知道所有数字中幸运数字之和是多少?请你帮帮小明! Sheryl gōngchéng zài quánguó de Brada ruǎnjiàn gōngsī. Tā de gōngzuò shì kāifā Windows cāozuò xìtǒng. Zài Brada bǎoshǒu de ràng rén nányǐ zhìxìn. Tāmen shènzhì cónglái méiyǒu shǐyòng de túxíng xiǎnshìqì! Yīncǐ,Sheryl de cāozuò xìtǒng yùnxíng zài wénběn móshì hé zài yóu zìfú zǔchéng de xìtǒng chuāngkǒu. Sheryl juédìng, měi gè chuāngkǒu dōu yǒu yīgè ID, zhè shì yīgè zīběn yīngwén zìmǔ ('yī'dào'Z'). Yóuyú měi gè chuāngkǒu yǒu yīgè wéi yī de ID, bùnéng yǒu chāoguò 26 gè chuāngkǒu zài tóngyī shíjiān. Rú nǐ suǒ zhī, suǒyǒu de Windows shì chángfāngxíng. Zài zhè zhǒng chǒulòu de Windows xìtǒng de píngmù, chuāngkǒu de kuàngjiàyǐ jīběn xíngchéng yóu tā de ID xìn. Tú 1 xiǎnshì, zhǐyǒu píngmù shàng de yīgè chuāngkǒu, gāi chuāngkǒu de ID shì'A'. Windows kěnéng huì chóngdié. Tú- 2 xiǎnshì chuāngkǒu de qíngkuàng B duì chuāngkǒu a. Hé tú- 3 de dǐng bù shì tígōng le gèng fùzá de chóngdié. Dāngrán, rúguǒ yīgè chuāngkǒu de mǒu xiē bùfèn shì yóu qítā chuāngkǒu zhē zhù, nǐ bùnéng zài píngmù shàng kàn dào de bùfèn. 字典- 查看字典详细内容 【输入】 第一行一个整数n,表示小明收到了n份圣诞礼物。 第二行包含n个整数,第i个数a[i]表示第i份礼物上的数字。 【输出】 输出小明心目中的幸运数字之和。 【样例解释】 小明的幸运数字必须是4或者7的倍数,这里符合条件的有:12+14+16=42 【数据范围】 40%的数据,n<=100, 0

大学生计算机编程大赛活动策划书

大学生计算机编程大赛活动策划书 为推进学院素养教育,提高大学生的科学素质,拓展我院学生的综合素养,丰富大学生的校园文化日子,营造浓郁的学术、科技氛围,进一步培养学生的创新意识、创新精神和创新能力。软件协会开展以勤奋学习,创新实践为主题的大学生计算机编程大赛。要紧内容如下: 一、大赛宗旨 旨在培养和激励高校学生的制造力、团队合作精神以及在软件开辟过程中的创新能力。并且此次大赛将视为对明年的省高校杯的一次演练,提高广阔学生开展计算机软件设计的兴趣和能力,,给广阔在计算机程序设计方面有特长的同学提供展示才干的舞台。经过参赛,检验学生在压力下进行开辟的能力,展示其创新能力,为加强校内同学间的交流和相互学习提供机会。 二、参赛对象参赛者均为广东科贸职业学院信息工程系在校学生。 三、参赛形式和报名办法 1.本次比赛采取团队报名的形式 2、参赛团队填写报名表(报名电子表发送到信工系各班团支书)。 3、由各班团支书负责统一收集参赛团队报名表,并在规定的报名时刻内将本班参赛者报名表交到负责人处,逾期别收。 其他详细信息可留意软件协会官方博客: 四、竞赛方式及要求1、本次比赛的内容是依照拟定项目或者依照现实需要自行设计一具项目参与本次大赛项目评比。 2、竞赛时刻为三个星期,参赛团队须在规定时刻内完成。 3、竞赛期间选手能够翻阅相关的工具书。 4、参赛者应尊重自己的劳动成果,严禁将自己的作品拿给他人抄袭,严禁抄袭他人的作品。(违反此条例者,将追究其相关责任) 5、竞赛期间别局限于参赛者使用何种技术体系,别局限于使用何种开辟工具及操作系统。 项目评比参考: •项目的稳定性、项目的有用性 •项目使用的技术框架及开辟平台 •项目代码编写的标准及是否强壮 结果评定:竞赛排名依照项目评比的成绩的总和得出。 五、活动时刻安排 3、项目评比:12月下旬 (注:以上时刻和地方安排可依照实际事情另行更改) 六、奖项设置一等奖(1名):500元、荣誉证书 二等奖(1名):300元、荣誉证书 优胜奖(若干):大赛精美纪念品注:本次比赛奖项设置为证书和物质奖励 1、本次比赛安排如有变动,另行通知。 2、本次大赛未尽事项的解释权归属广东科贸职业学院软件协会。

acm程序设计大赛题目

The Mailboxes Manufacturers Problem Time Limit:1000MS Memory Limit:65536K Total Submit:299 Accepted:227 Description In the good old days when Swedish children were still allowed to blowup their fingers with fire-crackers, gangs of excited kids would plague certain smaller cities during Easter time, with only one thing in mind: To blow things up. Small boxes were easy to blow up, and thus mailboxes became a popular target. Now, a small mailbox manufacturer is interested in how many fire-crackers his new mailbox prototype can withstand without exploding and has hired you to help him. He will provide you with k(1 ≤ k≤ 10) identical mailbox prototypes each fitting up to m(1 ≤ m≤ 100) crackers. However, he is not sure of how many firecrackers he needs to provide you with in order for you to be able to solve his problem, so he asks you. You think for a while and then say, “Well,if I blow up a mailbox I can’t use it again, so if you would provide me with only k = 1 mailboxes, I would have to start testing with 1 cracker, then 2 crackers, and so on until it finally exploded. In the worst case, that is if it does not blow up ev en when filled with m crackers, I would need 1 + 2 + 3 + … + m = m ×(m+ 1) ? 2 crackers. If m = 100 that would mean more than 5000 fire-crackers!” “That’s too many,” he replies. “What if I give you more than k = 1 mailboxes? Can you find a strategy that requires less crackers?” Can you? And what is the minimum number of crackers that you should ask him to provide you with? You may assume the following: 1.If a mailbox can withstand x fire-crackers, it can also withstand x? 1 fire-crackers. 2.Upon an explosion, a mailbox is either totally destroyed (blown up) or unharmed, which means that it can be reused in another test explosion.

C语言程序设计竞赛模拟试题

1、编写程序,从键盘上连续输入若干字符,直到回车换行符结束。统计并输出所输入的空 格、大写字母、小写字母,以及其他字符(不含回车换行符)的个数。 #include "" main() { char ch=' '; int i=0, j=0, k=0, m= ?1; do { if (ch>='a' && ch<='z') i++; else if (ch>='A' && ch<='Z') j++; else if (ch == ' ') m++; else k++; }while((ch=getchar())!='\n'); printf ("small letter = %d, capital letter = %d\n", i, j); printf ("space = %d, other = %d\n", m, k); } 2、编写程序,求100~999之间所有的水仙花数。所谓“水仙花数”,即是一个三位数, 它个位、十位、百位数字的立方和,恰好等于该数本身。 #include "" main() { int i, j = 1; int nf, ns, nt; for (i =100; i<=999; i++) { nf = i%10; ns = i/10%10; nt = i/100; nf = nf * nf * nf; ns = ns * ns * ns; nt = nt * nt * nt; if ((nf + ns + nt) == i) { printf ("The %d's number is %d\n", j, i); j++; } } 3、编写程序,求1-1/2+2/3-3/4+4/5-5/6+6/7….-99/100=

2008年ACM大学生程序设计竞赛题

计算机科学系第二届大学生程序设计竞赛试题题目一 大数乘法 问题描述(Problem Description): 编程实现位数不超过300位的任意大的两个整数相乘。 输入(Input): 提示用户输入第一个大数乘数和第二个大数乘数。 输出(Output): 输出两个大数的乘积。 输入示例(Sample Input): 请输入第一个乘数:123456789123456 请输入第二个乘数:123456789123456 输出示例(Sample Output): 两数的乘积是:15230578580673373689799383936

四三二五六一题目二 排球队员站位问题 问题描述(Problem Description): 左图为排球场的平面图,其中一、二、三、 四、五、六为位置编号,二、三、四号位置为前排,一、六、五号位为后排。某队比赛时,一、四号位放主攻手,二、五号位放二 传手,三、六号位放副攻手。队员所穿球衣分别为1,2,3,4,5,6号,但每个队员的球衣都与他们的站位号不同。已知1号、6号队员不在后排,2号、3号队员不是二传手,3号、4号队员不在同一排,5号、6号队员不是副攻手。 编程求每个队员的站位情况。 输入(Input): 输出(Output): 输出每个队员球衣号码和所站的位置编号。 输入示例(Sample Input): 输出示例(Sample Output): 球衣号码:1 2 3 4 5 6 位置编号:一 二 三 四 五 六

题目三文件读写 问题描述(Problem Description): INI文件为一种广泛应用的储存程序配置的文件格式。要求不使用操作系统自带INI文件处理功能,用c++编写一个INI文件读取程序,并把结果输出到显示器及文件result.txt中。 说明: INI文件的结构: [区名字] # 区名注释 键名=键值 # 键值注释 一个区里可以有几个不同键名的键值,例如: 测试用INI文件test.ini: [section] #this is a section comment key=value #this is a key comment [section2] key2=value2 要求程序能读取section2区中键名为key2的值,以及section区中的键名为key的注释。 输入(Input): 在Windows命令窗口里输入程序名称来运行程序,注意程序所带参数。 输出(Output): 第一行输出section2区中键名为key2的值。 第二行输出section区中的键名为key的注释。 同时要把此结果输出到显示器和文件result.txt中。 输入示例(Sample Input): CppFileRW Test.ini 输出示例(Sample Output): section2区中键名为key2的值是:value2 section区中的键名为key的注释是:this is a key comment

C语言程序设计大赛题目

C语言程序设计大赛题 目 Company Document number:WTUT-WT88Y-W8BBGB-BWYTT-19998

1.角谷猜想 日本一位中学生发现一个奇妙的“定理”,请角谷教授证明,而教授无能为力,于是产生角谷猜想。猜想的内容是:任给一个自然数,若为偶数除以2,若为奇数则乘3加1,得到一个新的自然数后按照上面的法则继续演算,若干次后得到的结果必然为1。请编程验证。 *问题分析与算法设计 本题是一个沿未获得一般证明的猜想,但屡试不爽,可以用程序验证。 题目中给出的处理过程很清楚,算法不需特殊设计,可按照题目的叙述直接进行证。 *程序说明与注释 #include<> intmain() { intn,count=0; printf("Pleaseenternumber:"); scanf("%d",&n);/*输入任一整数*/ do{ if(n%2) { n=n*3+1;/*若为奇数,n乘3加1*/ printf("[%d]:%d*3+1=%d\n",++count,(n-1)/3,n); } else { n/=2;/*若为偶数n除以2*/ printf("[%d]:%d/2=%d\n",++count,2*n,n); } }while(n!=1);/*n不等于1则继续以上过程*/

}

2.四方定理 数论中着名的“四方定理”讲的是:所有自然数至多只要用四个数的平方和就可以表示。 请编程证此定理。 *问题分析与算法设计 本题是一个定理,我们不去证明它而是编程序验证。 对四个变量采用试探的方法进行计算,满足要求时输出计算结果。 #include<> #include<> intmain() { intnumber,i,j,k,l; printf("Pleaseenteranumber="); scanf("%d",&number);/*输入整数*/ for(i=1;i intmain() { inta,b,c,d; printf("Pleaseenteranumber:"); scanf("%d",&a);/*输入整数*/

相关主题
文本预览
相关文档 最新文档