C语言课程设计任务书

更新时间:2024-01-10 06:27:01 阅读量: 教育文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

《高级语言程序设计》课程设计任务书

2010-2011学年第二学期 非计算机专业

课 程 名 称:《高级语言程序设计》课程设计 实验学时:1周/人 课 程 编 号:07110167 学分:1分 课 程 总 学 时:1周 实验周学时:1周 适用专业及年级:2011级机械制造及自动化(本科) 任 课 教 师:方勇 编写日期:2012年5月

本课程设计是在《高级语言程序设计》课程学习的基础上,要求学生通过课程设计掌握该门课程的主要内容,培养学生全面地分析问题、解决问题、以及编程和动手的能力。为毕业设计和以后的工程实践打下良好的基础。

一、实践教学目标与基本要求

1. 巩固和加深对C语言程序设计的理解,提高综合运用本课程所学知识的能力。

2. 培养学生查阅参考书和文献资料、手册的能力。培养独立思考,深入研究、分析问题、解决问题的能力。

3. 能按要求编写课程设计报告书,能正确阐述设计和上机调试的结果。 4. 能够正确处理程序设计和程序调试中的问题。

5. 通过课程设计,培养严谨的科学态度,严肃认真的工作作风和团队协作精神。

二、课程设计的安排

1. 教师下达任务书。

2. 分小组讨论选题和每位同学的具体任务及进度。 3. 进行基础知识的学习;完成预设计。

4. 每位同学独立编程;强调要在每位同学自学的基础上,独立完成设计任务。 5. 小组分项目集成;交流与讨论。 6. 设计总结:完成并上交课程设计报告。

三、课程设计报告要求

1. 综述(学习与所分配的任务有关的知识的简要总结)。 2. 设计方案的拟定及任务分配。 3. 本人承担任务说明及解决方案:

第1页

(1) 程序的详细的设计:说明设计实现所用的原理,所采用的源程序,

用到的各个函数的详细说明。

(2) 源代码要求格式规范,关键处要加注释。 (3) 对程序调试(遇到的问题及解决方法)。

四、进度与考核办法

1. 课程设计的前4.5天,每个小组每个成员可从“课程设计题目”所列出的内容中至少选出4题,独立完成,要求同一小组中每个成员的题目不相同。其中,在“综合题目”中每个小组自选一题,由同组成员共同协作完成。剩余0.5天,书写课程设计报告。

2. 本课程设计是系统性和技术性很强的实践课,教师可通过进度检查、设计答辩、报告交流等方式了解学生的设计水平,根据学生任务完成情况,设计报告质量,答辩水平及平时学习态度等全面评定成绩。成绩按优秀、良好、中、及格和不及格五级记分。

五、课程设计题目

1. 求方程9x-19y=1,在|X|≤100,|Y|≤50内共有多少组整数解?同时输出每组解。

2. 求方程8x-5y=3,在|x|<=150, |y|<=200内的整数解。试问这样的整数解中|x|*|y|的最大值是多少?

3. 计算y=1+2/3+3/5+4/7+?+n/(2*n-1)(n=50), 要求:按四舍五入的方式精确到小数点后第二位。

4. 已

知: f(0)=f(1)=1 f(2)=0 f(n)=f(n-1)-2f(n-2)+f(n-3), (n>2) 求f(0)到f(50)中的最大值

5. 求[1,1000]之间能被3整除,且至少有一位上的数是5的所有数之和,以及这样的数的个数。

6. 有一个三位数满足下列条件: (1)此三位数的三位数字各不相同; (2)此三位数等于它的各位数字的立方和。试求这种三位数共有多少个?

7. 求符合下列条件的四位完全平方数(某个数的平方数为完全平方数),它的千位数字与十位数字之和等于百位数字与个位数字之积,例如,3136=56^2, 且3+3=1*6 ,故3136是所求的四位完全平方数. 输出所有的完全平方数。

8. 求所有不超过200的N值,N的平方是具有对称性质的回文数。回文数就

第2页

是正读和反读都一样的正整数,例如满足题意要求的数有:N=11,112=121。

9. 求A,B均小于25且A+B+C<=100的所有能构成直角三角形的三边的整数的组数。例如:3*3+4*4=5*5,它们构成直角三角形,所以{3,4,5}作为一组,但{4,3,5}视为跟{3,4,5}相同的一组。

10. 求转置矩阵:要求写一个函数实现3×4数组矩阵的转置。并在main函数中调用该函数。

11. 矩阵乘法:实现矩阵A(2行3列)与矩阵B相乘(3行2列),乘积放在C数组中。并输出结果。

12. 编写一个函数,输入一个不超过5位的十六进制数,输出相应的十进制数。并用主函数调用它。

13. 编一程序,实现将输入的一个无符号10进制整数转换为二进制和八进制表示,分别存入数组中并输出。

n?14. 编写程序,求以下函数Cmm!。并在主函数中调用。

n!(m?n)!

15. 输入一个五位整数,对此整数中的五个数值进行从大到小的顺序排序,形成一个新的五位整数,并输出这个整数。要求:用函数调用。

16. 已知24有8个因子(即:1,2,3,4,6,8,12,24),而24正好被8整除。求[100,300]之间所有能被其因子数目整除的数之和。

17. 所谓\同构数\是指这样一个数,它出现在它的平方数的右侧,例如5的平方是25,25的平方是625,故5和25都是同构数,求[1,1000]之间有多少个同构数。

18. 一个素数(设为p)依次从最高位去掉一位,二位,三位,??,若得到的各数仍都是素数(注:1不是素数),则称该数p为超级素数。例如,617,17,7都是素数,因此617是超级素数,求[100,999]之内超级素数的个数。

19. 判断一个数是否是数组中的成员(用折半查找法)。已知数据a中一共有10个已排序的整数(由小到大排列)。现在从键盘上输入一个数,判断这个数是否是数组a中的数,如果是的话,打印出此数在数组a中的位置来,否

第3页

则打印“找不到”。【折半查找法:查找45是否存在于有n=8个元素的数组 {65,45,30,20,12,9,3,2}中,那么它先比较n/2-1位置的数据,45>20,那么就放弃后半组数据,用前述的方法,再去查找前半组数据。】

20. 用一元纸币兑换一分、两分和五分的硬币,要求兑换硬币的总数为30枚,问共有多少种换法?(注:在兑换中一分、两分或五分的硬币数可以为0枚)

21. 爱因斯坦走台阶:有一台阶,如果每次走两阶,最后剩一阶;如果每次走三阶,最后剩两阶;如果每次走四阶,最后剩三阶;如果每次走五阶,最后剩四阶;如果每次走六阶,最后剩五阶;如果每次走七阶,刚好走完.求此第三小的台阶数是多少?

22. 50个小学生按1至50序号顺时针围成一圈,做出局游戏,老师站在圈外顺时针从第一个人数起,每数到5时,这人从圈里出来,继续数1,2,3,4,5,数到第5个学生时,他就出局,已出局的位置不再参加计数,直至所有的学生出局为止,问最后一个出局的学生序号是多少号。

23. 从100米高度落下一球,每次落地后反弹高度为上一次下落高度的3/4,求该球第10次落地时,前后所经过的路径长度?第十次反弹多高?

24. 今有5羊4犬3鸡2兔值钱1496,4羊2犬6鸡3兔值钱1175,3羊1犬7鸡5兔值钱958,2羊3犬5鸡1兔值钱861,求鸡值多少钱?

25. 百钱百鸡问题。用100钱买100只鸡,公鸡一只五钱,母鸡一只三钱,雏鸡三只一钱,编程计算共有几种买法(要求每种鸡至少要买1只)。

26. 一只猴子一天从山上摘来一袋桃子,从这天开始,它每天都要把袋中的桃子平分为二堆,吃掉其中的一堆,然后再从剩下的桃中拿出一个解谗,等到第10天,它发现袋中只有一只桃可吃啦,问猴子总共摘了多少桃。

27. 两个乒乓球队进行比赛,各出3人。甲队为A,B,C 3人,乙队为X,Y,Z 3人。已抽签决定比赛名单。有人向队员打听比赛的名单,A说他不和X比,C说他不和X,Z比,请编程序,找出3对赛手的名单。

28.打印出所有的“水仙花数”

所谓“水仙花数”是指一个3位数,其各位数字立方和等于该数本身。例如,

333

153是一水仙花数,因为:153=1+5+3 。 29. 字符串处理函数

第4页

编写三个函数:求字符串长度函数(函数原型为:int strlen(char *p)),字符串复制函数(函数原型为:void strcpy(char *p1,char *p2)),字符串比较函数(函数原型为:int strcmp(char *p1,char *p2),返回值为第一个不相同字符的ASCII码差。)。

30. 编一程序,实现将输入的一个无符号整数转换为二进制和八进制表示,分别存入字符数组中并输出。

31. 请编写函数fun,函数的功能是求出二维数组周边元素之和,作为函数值返回。二维数组中的值在主函数中赋予。(数组维数用宏定义) 32. 马克思手稿中的数学题(穷举算法)

马克思手稿中有一道趣味数学题:有30个人,其中有男人、女人和小孩,在一家饭馆吃饭共花了50先令:每个男人花3先令,每个女人花2先令,每个小孩花1先令,问男人、女人、小孩各有几人? 33. 用梯形法求定积分(数值求解算法) 用梯形法编程求函数f(x)=x2+2x+1的定积分

提示:把积分区间[a,b]等分为n等分(a,b,n的值由程序输入。),可得到若干个小梯形,积分面积就近似为这些小梯形面积之和。 34. 位数大小排序(掌握数值排序算法)

程序说明:输入一个五位整数,对此整数中的五个数值进行从大到小的顺序排序,形成一个新的五位整数,并输出这个整数。

六、综合题目

1. 输入10个学生,5门课程的成绩。要求分别用函数求:(1)每个学生的平均分;(2)每门课程的平均分;(3)找出最高的分数所对应的学生和课程。并用主函数调用这些函数。 2. 编写几个函数。(1)输入10个职工的姓名和职工号;(2)按职工号由小到大排序,姓名顺序也随之调整;(3)输入一个职工号,用折半查找法找出该职工的姓名。并用主函数调用这些函数。

3. 简单计算器设计(实现100以内的加、减、乘、除运算)。 4. 贪吃蛇游戏设计。

5. 猜数游戏(掌握程序结构及随机函数应用)

第5页

(1) 程序说明:游戏的开始由机器产生一个随机数(1~100之间,用库函数random(),用法见后面的例子程序),然后游戏者在程序的提示下猜数,若输入的数比这个数大,程序提示:Your answer is HIGH,try again. ,否则,程序提示:Your answer is LOW,try again.,直到猜对为止。程序可实现连续猜数,直到游戏者退出。

(2) 程序输出要求:累计游戏者猜对一个数所需次数n,当n<=7时,给出“Congratulation”字样;当7<n<15时,给出“I can bet you can do it better.”;当n>=15时,用exit(0)库函数退出程序。 #include #include void main() {

int a,b;

scanf(\ while(1) {

b=rand();

if(b>0&&b<100) {

if(a>b)

printf(\ else printf(\ }

break; } } 6. 工资管理

(1) 设计目的:本设计要求设计一个公司职员的数据结构,并使用结构指针数组存储职员信息,统计公司员工工资总和和平均工资,目的是深入了解函数参数类型和结构之间的关系。 (2) 功能设计要求:

1) 使用结构体数组设计一个公司职员的数据结构,使用下述的结构定 义:

struct employee{ int age;

char name[20]; double salary; }

2) 在主函数里构造一个结构体数组company,用来存放职工信息。 3) 设计一个readin函数,用来输入company的值。

第6页

4) 编写total函数对工资求和。

5) 这个函数能对全体职工和某一年龄段职工的工资求和。 6) 编写mean函数求平均工资。

这个函数应该能对全体职工和大于某一年龄段的职工的工资求和并计算相应的平均值。 (3) 参考数据及规范

参考数据:

Zhao Jie 28 3558.98 Li Yang 18 2504.5 Zhang Lanhua 22 3000 Zhang Xuexi 33 3058.8 Zhou Wulan 52 2158.14 Wang Haiyang 38 2558.8 Li Shengli 24 3128.68 Li Hua 34 2958.98 Liu Pingping 20 1958.8 Pan Yufeng 18 1558.98 ? total函数应该允许输入年龄范围,如果范围不合理,应该允许重新输入。年龄应该在0~100之间。 ? mean函数能够使用缺省参数计算全体职工的工资总额和平均工资。如果输入年龄,则计算从这个年龄段算起的职工总工资和平均工资。

7. 职工档案及简明信息生成

(1) 设计目的:本设计的目的是学习结构数组及其指针的使用方法。要求使用菜单。

(2) 功能设计要求:

1)建立wkrs职工数据结构,结构含有姓名、序号、性别和年龄信息。 2)建立一个结构数组,以便放置10个职工信息。

3)设计一个readin函数,以便输入10个职工的信息。

4)编写一个display函数,要求使用结构指针作为参数,用来输出结构数组的内容。

5)建立wks职工简明数据结构,结构只含有姓名和年龄信息。

6)编制一个str函数,根据wks结构建立的职工情况,把职工姓名和年龄信息抽出来,另外建一个只含职工姓名和年龄的wkshort结构的数组。 7)编制一个delwk函数,可以从简明数据结构数组中删去指定的职工数据,如果数组里没有要删除的职工,则输出没有这个职工的信息。如果内容全部删除,应该给出内容已空的提示信息。

8)用一个简单的菜单提供上述操作。菜单信息为:

? 输入数据(Input Data) ? 显示原始数据(Display Data) ? 制作简明数据(Make Simpler Data) ? 删除简明数据(Delete Simpler Data) ? 结束(Goodbye!)

第7页

(3) 参考数据及规范

参考数据:

序号(id) 姓名(name) 性别(gender) 年龄(age) 0100 Li Shengli 男(male) 24 0101 Li Yang 女(female) 18 0102 Zhang Lanhua 女 22 0103 Zhao Jie 男 28 0104 Zhang Xuexi 男 33 0105 Zhou Wulan 女 52 0106 Wang Haiyang 男 38 0107 Li Hua 女 34 0108 Liu Pingping 女 28 0109 Pan Yufeng 男 18 菜单选择: ? 选择1,输入10个职工的数据。输入完成后,程序给出结束信息,然后返回到主菜单。 ? 选择2,显示建立的信息。 ? 选择3,则建立简明信息结构数组,自动输出如下信息: 姓名(name) 年龄(age) Li Shengli 24 Li Yang 18

?? ??(省略) ? 选择4,进入删除菜单。输入“0”,退出删除操作。删除完显示删除后的数据内容。

8. 学生成绩管理程序

有N(N >= 10)个学生的数据信息,每个包含: 学号 — num [10](字符串) 姓名(拼音)— name[25](字符串) 性别 — sex(字符,M或F) 年龄 — age(整型)

三门课程成绩(高数、英语、计算机)— score [3 ](单精度)。 设计一个系统,完成下列功能: (1) 定义及输出。用结构体类型数据及其赋初值的方法把学生的数据送到结构体数组中(第一个数据用自己的真实数据,其它数据自定,但注意要是合法数据),然后把它们输出显示。 (2) 计算并排序。计算每个学生三门课程的总分(sum,单精度)及平均分(aver,单精度,输出一位小数),将包括所有数据的结构体数组元素按总分从大到小的顺序排序打印出来。 (3) 查找。任意输入一位学生的姓名,打印出他的所有数据。要求能多次查找。 课程设计的要求与数据

? 编程时,设计函数来完成每个功能,通过main 函数调用各函数。

第8页

? 程序中的输入输出要加提示说明。

? 打印出的程序清单,在各行后用中文加以说明。 ? 输出的结果要准确、清晰、美观。

9. 设计一个运动会管理系统 实现以下功能:

(1) 初始化输入:N-参赛学校总数,M-男子竞赛项目数,W-女子竞赛项目数;各项目名次取法有如下几种: ① 取前6名:第1名得分 7,第2名得分 5,第3名得分4,第4名得分3,第5名得分2,第5名得分1;② 取前3名:第1名得分 5,第2名得分 3,第3名得分2; ③ 用户自定义:各名次权值由用户指定;

(2) 由程序提醒用户填写比赛结果,输入各项目获奖运动员的信息;

(3) 所有信息记录完毕后,用户可以查询各个学校的比赛成绩,生成团体总分报表,查看参赛学校信息和比赛项目信息等。

10. 销售管理系统

(1) 某公司有四个销售员(编号:1-4),负责销售五种产品(编号:1-5)。每个销售员都将当天出售的每种产品各写一张便条交上来。每张便条包含内容: 销售员的代号,产品的代号,这种产品的当天的销售额;每位销售员每天可能上缴0-5张便条。完成以下功能: (2) 计算上个月每个人每种产品的销售额。

(3) 按销售额对销售员进行排序,输出排序结果(销售员代号)

(4) 统计每种产品的总销售额,对这些产品按从高到底的顺序,输出排序结果需输出产品的代号和销售额) (5) 输出统计报表(如下图所示)

销售统计报表

产品代号 销售之和 销售员代号 1 2 3 4 5 1 2 3 4

每种产品之和 总和 11.小学生测验

面向小学1~2年级学生,随机选择两个整数和加减法形成算式要求学生解答。 功能要求:

(1)电脑随机出10道题,每题10分,程序结束时显示学生得分;

(2)确保算式没有超出1~2年级的水平,只允许进行50以内的加减法,不允许两数之和或之差超出0~50的范围,负数更是不允许的;

(3)每道题学生有三次机会输入答案,当学生输入错误答案时,提醒学生重新输入,如果三次机会结束则输出正确答案;

(4)对于每道题,学生第一次输入正确答案得10分,第二次输入正确答案得7分,第三次输入正确答案得5分,否则不得分;

第9页

(5)总成绩90以上显示“SMART” ,80-90显示“GOOD”,70-80显示“OK”,60-70显示“PASS”,60以下“TRY AGAIN” 12,工资纳税系统

个人所得税每月交一次,底线是1600元/月,也就是超过了1600元的月薪才开始计收个人所得税。个人所得税税率表一(工资、薪金所得适用) 级数----------全月应纳税所得额----------税率(%) 1--------------不超过500元的--------------------------5 2----------超过500元至2000元的部分------------10 3----------超过2000元至5000元的部分----------15 4----------超过5000元至20000元的部分---------20 5----------超过20000元至40000元的部分-------25 6----------超过40000元至60000元的部分-------30 7----------超过60000元至80000元的部分-------35 8----------超过80000元至100000元的部分------40 9----------超过100000元的部分---------------------45

表中的应纳税所得额是指以每月收入额减除1600元后的余额。 例如:计算为:2500-1600=900 应纳个人所得税额=500×5%+400×10% =65 再比如:我们用一个大额工资计算,25000元 应纳税所得额=25000-1600=23400 应纳个人所得税税额=500×5%+1500×10%+3000×15%+15000×20%+3400×25%=4475 要求:输入工资计算出纳税金额。

13. 用英文单词模拟数学计算

读入两个小于100的正整数A和B,计算A+B。需要注意的是:A和B的每一位数字由对应的英文单词给出。 具体的输入输出格式规定如下:

输入格式:测试输入包含若干测试用例,每个测试用例占一行,格式为 \ + B = \,相邻两字符串有一个空格间隔。当A和B同时为zero时输入结束,相应的结果不要输出。

输出格式:对每个测试用例输出1行,即A+B的值。

输入样例:

one + two =

three four + five six = zero seven + eight nine = zero + zero =

输出样例: three

nine zero nine six

第10页

14. 计算24游戏

要求:输入四个数通过加减乘除计算出24,显示计算过程,并提示成功信息。 15. 实现带有括号的四则运算。输入是一个带有括号的四则运算表达式,输出是计算得出的正确计算结果。例如:输入:123+213-67*34+345/23*45*(34+34-345+245+567)回车,然后程序计算得出结果为:359183

16. 大整数的四则运算。大整数指超过十位的十进制整数,这里为简便,假定不超过五十位。这类大整数在C语言系统中因超界溢出,是不能直接表达和计算的。可以用数组来表示大整数,在此基础上编写出实现大整数加、减、乘、除的程序,并努力加以优化。

17. 设有任意正三角形ABC,其三条边BC、CA,AB上分别有一点A1、B1、C1,而且有AC1=2C1B,BA1=2A1C,CB1=2B1A。编制程序验证由线段AA1、BB1、CC1相交而成的三角形A2B2C2的面积是正三角形ABC的面积的七分之一。

C A1 B1 A B 18. 对于任意的四边形ABCD,其对角线AC与BD的中点分别是M、N,AB、CD的延长线交于R。验证三角形RMN的面积是四边形ABCD面积的四分之一。

C C1 D M N R A B 19. 设计一个模拟的时间条的程序 基本要求:一般我们在安装程序的时候,会经常看到有一个时间条表示程序安装的进度,这样用户就能够了解到安装还剩余多少时间。本程序实现的就是这个功能。当然,若要将其真正运用到某个程序中,还要加以修改,以便使之的进度能够真正的与应用程序的进度吻合。

创新要求:在基本要求达到后,进行创新设计。

第11页

20.文件加密

文件的传输会有明文和密文的区别,明文发送是不安全的,用一个程序实现发送文件的加密和解密操作。加密算法,密钥设计由同学自己选择现有的加密解密算法或是自己设计。 要求:

(1)对文件的字符根据加密算法,实现文件加密。 (2)对操作给出必要的提示。

(3) 对存在的file1.txt文件,必须先打开,后读写,最后关闭。加密后的文件放在file2.txt。

(4)解密文件保存在file3.txt中。

21. 大整数的四则运算。大整数指超过十位的十进制整数,这里为简便,假定不超过五十位。这类大整数在C语言系统中因超界溢出,是不能直接表达和计算的。可以用数组来表示大整数,在此基础上编写出实现大整数加、减、乘、除的程序,并努力加以优化。

22. 实现带有括号的四则运算。输入是一个带有括号的四则运算表达式,输出是计算得出的正确计算结果。例如:输入:123+213-67*34+345/23*45*(34+34-345+245+567)回车,然后程序计算得出结果为:359183 23. 排班系统

学校实验楼有7名保安人员:钱、赵、孙、李、周、吴、陈。由于工作需要进行轮休制度,一星期中每人休息一天。预先让每一个人选择自己认为合适的休息日。请编制程序,打印轮休的所有可能方案。当然使每个人都满意,例如每人选择的休息日如下:

钱:星期一、星期六 赵:星期二、星期四 孙:星期三、星期日 李:星期五

周:星期一、星期四、星期六 吴:星期二、星期五

陈:星期三、星期六、星期日 运行结果: Solution: 1

赵 钱 孙 李 周 吴 陈

============================================================= 星期四 星期一 星期三 星期五 星期六 星期二 星期日

Solution: 2

赵 钱 孙 李 周 吴 陈

============================================================= 星期四 星期一 星期日 星期五 星期六 星期二 星期三

Solution: 3

赵 钱 孙 李 周 吴 陈

第12页

============================================================= 星期四 星期六 星期三 星期五 星期一 星期二 星期日

Solution: 4

赵 钱 孙 李 周 吴 陈

============================================================= 星期四 星期六 星期日 星期五 星期一 星期二 星期三 24. C语言关键字中英翻译机。

要求输入中文的名词和关键字,可以将其翻译成英语,如输入“基本整形”+回车,得到int;输入英文的单词int,则可以翻译成中文“基本整形”。可模拟文曲星来实现。可多次查询,输入bye时退出。 25. 数学计算

题目26:多项式乘法的实现,已知如下两个多项式

P(x)=Pm?1XQ(x)=qn?1X

m?1+ Pm?2X

n?2m?2+...+P1X+P0

n?1+qn?2X+...+q1X+q0

m?n?2求它们的乘积多项式 S(x)=sm?n?2X+...+s1X+s0。

可以定义两个一维数组p,q,按照次数从高到低存储两个多项式的系数,定义一维数组来s来存储结果;利用函数来完成对结果多项式各项系数的计算,最后在屏幕上计算结果。

第13页

本文来源:https://www.bwwdw.com/article/vbzo.html

Top