C语言课程设计.docx
- 文档编号:4042514
- 上传时间:2022-11-27
- 格式:DOCX
- 页数:19
- 大小:51.20KB
C语言课程设计.docx
《C语言课程设计.docx》由会员分享,可在线阅读,更多相关《C语言课程设计.docx(19页珍藏版)》请在冰豆网上搜索。
C语言课程设计
目录
1C语言程序课程设计教学大纲
2C语言程序课程设计说明书
3C语言程序课程设计报告(模板)
4C语言程序课程设计成绩评定表
珠海学院
课程教学大纲
课程名称:
C语言程序课程设计
适用专业:
2010级计算机科学与技术系各专业
课程类别:
专业基础课
制订时间:
2010年11月
计算机科学与技术系制
C语言程序课程设计教学大纲
(2009年制订,2011年修订)
一、课程编号:
二、前修课程:
C语言程序设计
三、学 分:
1学分
四、学时:
32学时(其中实验部分28学时)
五、课程性质与任务:
1.课程性质:
《C语言程序课程设计》是吉林大学珠海学院计算机科学与技术系为本科生各专业开设的专业实践课。
计算机科学与技术系本科生在完成《C语言程序设计》课程学习后,通过本课程进入专业实践训练环节,其主要目的是使学生深入理解并实践在《C语言程序设计》课程中所学的有关知识,受到实践动手能力的基本训练,培养学生的团队精神,增强发现、提出、分析和解决实际问题的能力,为学生毕业后的实际工作奠定一定的基础。
课程设计是培养学生综合运用所学知识锻炼实践能力的重要环节,是对学生实际工作能力的具体训练和考察过程。
科学技术日新月异的发展使计算机应用在生活中可以说得是无处不在,因此作为大学计算机科学与技术系学生掌握程序设计和开发技术非常重要,而C语言又是最常见,功能强大的一种高级语言,因此做好C语言课程设计非常必要,能够对后续许多专业课程的学习和实践训练起到重要的提供保证的作用。
2.课程任务:
本课程要求学生编写相对教材中实例要比较复杂一些的实用程序,通过理论知识与实际需求相结合的编写实用程序的实践活动,使学生了解应用程序设计解决实际问题的具体过程,了解利用算法和数据结构思想编写程序的实际实行方法,掌握应用C语言进行程序设计的基本规范和技巧,掌握阅读与编写程序的结构化程序设计思想,重点掌握C语言的一般语法规则、常用函数、程序编写调试过程和编程解题的常用方法。
六、课程设计的教学基本要求课程设计分三个阶段进行:
题目确定、实际工作、验收。
具体时间表由系教学部门根据教学实际情况安排。
题目确定阶段要求负责教师向全体学生说明课程设计的教学目的、任务和进行方法。
要求负责教师依据学科发展和可能的实际工作需要,提供足够多较好的程序设计选题。
题目应覆盖面较为广泛,部分题目要具有开放性。
题目可以分配给学生,也可以由学生自己选择,自己选择要经过指导教师同意。
每个学生至少选择一个题目,支持和鼓励选择多个题目。
题目确定后后即进入实际工作阶段。
实际工作阶段要进行4-6周,每个学生要自主查找资料、编写程序并上机调试。
每周安排1-2次实验课,在实验课中学生上机和讨论交流,指导教师辅导答疑和检查进度,及时解决出现的各种问题。
验收阶段对每个学生进行验收,要求每个学生都要运行程序,给出足够多测试实例和运行结果。
要能够讲清楚自己的工作,回答相关的问题。
要按照软件文档要求的规范格式撰写和提交课程设计报告,要按照安排参加答辩。
七、学时分配表
教学内容(周)
理论学时
实验学时
习题课
其它
备注
第7周前后布置课程实习任务,在指导教师帮助下,每个学生确定选题。
2
第7-10周学生自主或集中上机,教师答疑和检查进度。
每周保证2学时集中上实验课。
26
第11周课程设计验收
4
2011年4月5日
C语言程序课程设计说明书
一、设计任务与要求
《C语言程序课程设计》是计算机科学与技术各专业本科生在完成《C语言程序设计》课程学习后进行的一门专业实践课程,是培养学生综合运用所学知识解决专业相关问题的重要环节,是对学生实际工作能力的具体训练和考察过程。
本次课程设计的题目均要求采用C语言进行程序设计。
希望题目简单到中等程度的学生完全可以独立完成,又可以达到锻炼学生编写复杂程序的课程设计目的。
希望学生能避免抄袭,真正锻炼自我。
要求每个学生必须参加,并完成如下各项课程设计任务:
1.要求每个学生认真阅读本C语言课程设计说明书,理解课程设计的目的和任务。
2.要求学生通过自学理解和掌握本说明书附录2中给出的程序实例,读懂其中程序的设计功能,设计思想,设计结构,设计技巧,设计不足等情况,提高阅读较大并且较为复杂程序源代码的能力,也可以通过实例理解本次课程设计要求的设计任务的规模和难度。
3.要求每个学生至少选择和完成一个题目,如果完成的题目比较容易,或者能够在网上或其它资料中找到较好的参考答案,则应完成二或多个题目。
4同班同学应该选择不同的题目,原则上不允许多名同学选择同一个题目。
多名同学选择同样题目时,应该独立完成,程序设计方法要有所区别,程序代码不可相同。
程序设计方法的区别要在最后完成的课程设计报告中有所反映。
5.要求每个学生完成课程设计后撰写《C语言程序课程设计报告》,可以按照任务书后面附带的课程设计报告模版的格式实际撰写。
6.要求每位学生必须在上机前做好充分准备,每次上机必须目的明确,必须事先编写好程序代码,然后在规定的时间和地点上机调试。
7.要求每个学生在独立思考的基础上积极查找和利用参考资料,包括查找相关的教科书、专著和论文,查找互联网上的专题文章,参考同学的工作等。
参考了别人的工作要有对比和评论分析,要在课程设计报告书的“参考文献”标题下用规范格式列出所有参考资料,用此方式非常明确地指出参考了什么,在“致谢”标题下向提供了参考资料的作者或同学真诚地表示感谢。
在自己的课程设计中利用别人的工作成果要有自己的不同或改进之处。
允许利用已有程序的代码,但要能够正确理解,能够给出清晰解释,要自己重新组织、有所改进并调试通过。
二、课程设计实施过程
1.在课程设计的题目确定阶段,教师说明课程设计的教学目的、任务和进行方法,帮助每个学生确定自己的题目。
2.在课程设计的实际工作阶段,每个学生要自主积极查找资料,设计程序,上机实验,反复修改,努力编写出更好的程序,切实提高自己的程序设计能力。
指导教师要检查学生的工作进展,及时答疑和参加讨论,做好辅导和进度保证等工作。
3.按照系办安排的每周上课时间上好实验课,及时解决课程设计进行中出现的问题。
每个学生要按照规定时间到实验室上课,报告进度,对自己的程序进行完善提高,不允许以没有问题或其它任何借口不到实验室上课。
教师要做好学生的出勤检查。
4.教师要指导学生撰写符合规范的《C程序课程设计报告书》。
提倡对所解决的问题进行合理的推广,对解决问题的方法进行深入的分析,努力使所完成的课程设计报告接近或达到一篇专业技术报告或研究论文的水平。
5.验收阶段每个学生要运行自己编写的程序,通过运行足够多测试实例进行演示。
6.按照要求参加课程设计答辩,在答辩中要能够讲清楚自己的工作,回答相关的问题。
四、检查考核办法
首先检查完成后的程序能否正常运行和得出希望的结果,程序检查通过后再检查所撰写的《C程序课程设计报告书》。
根据完成课程设计期间的表现,完成程序运行情况,课程设计报告质量,回答问题情况,答辩的情况等综合考察结果,给出学生课程设计的成绩。
原则上课程设计能够评定为优秀,要求既要有较高的质量,又要有足够的数量,还要表现出良好的纪律和品德。
质量方面,问题要得到全面的解决,程序要有较高的效率,所撰写的课程设计报告要完整规范,对所解决问题要有合理的推广,对采用方法要有深入的分析,反映出具有一定的创新性。
数量方面,至少要独立编写约100行左右的C语言代码,有足够多的测试实例,即对求解问题的每一种有代表性情况都要给出运行实例。
纪律和品德方面,实验课要保证出勤,积极参加专业问题讨论,同学间互相帮助,参考了别人的工作要如实说明,要表现出良好的学术道德风范。
五、考核评分标准:
完成在课程设计题目确定阶段确定的任务,基本达到题目的要求,程序可以运行,演示结果正确,能够回答出如何编写程序的一般问题,即可以得到及格的基本分60分,然后按照以下各条的完成情况加分或减分:
1在课程设计的整个过程中态度端正,出勤好,工作量饱满,各阶段的任务能够按时完成,加分10-20;出勤不足1/3,减分10-20。
2完成题目有较好的质量,表现在能够说明问题涉及的背景知识,说明求解依据的思想和方法,给出必要的推导或证明,撰写的课程设计报告清晰规范,加分10-20;独立完成,在质量和数量方面达到了基本要求,效果也可以,也能够讲清楚程序的工作过程,但借鉴文献中已有工作或同学的工作过多,与已有程序对比没有改进或改进不大,不加分也不减分。
3问题求解精益求精,表现在能够对一个问题给出至少二个以上不同的求解方法,能够对自己给出的或在文献中查阅到的不同解法进行对比分析,能够对求解方法做出改进,对求解问题给出扩展等,加分10-30。
4在完成自己应该完成的题目后继续完成其它题目,加分10-20。
5能够查阅到与所求解问题相关的可查到资料,在参考文献中按照规范格式列出,在实际求解问题过程中有所利用,在致谢中真诚地提到并感谢对你的帮助,表现出良好的学术道德风范,加分10-20;利用了找到的资料或同学的解答而不明确声明,是抄袭行为,属于学术不端问题,减分100,即记0分。
6一般,获得优秀的学生人数应不超过全体参加人数的10%,获得良好的学生人数应占全体参加人数的40%左右,获得中等的学生人数也应占全体参加人数的40%左右。
完成质量较差,但态度好,有提高,成绩可以评为及格,获得及格的学生人数不应超过全体参加人数的10%。
没有正当理由没有完成,成绩为不及格,并不应超过全体参加人数的1%。
7成绩评定由指导教师提出初步建议,成绩评为优秀和不及格的,应上报系并参加由系组织的答辩或其它方式的考核。
初步评定的成绩由课程设计指导小组最后确定,由系领导审核批准。
附录1供选择的C语言程序课程设计题目
题目1:
文件存取练习:
要求实现如下功能:
(1)定义函数Rand1000(),随机生成1000个均不相同的正整数,并写入到文本文件“file1.dat”中,各数之间用空格来分隔。
(2)编写一个函数input(inta[],intn),将上述数据读入到数组a中。
(3)编写一个函数digitcount(inta[],intn,intb[10]),统计数组a的每个元素保存的整数中,每位数字出现的次数,并分别保存在b[0]到b[9]中。
(4)编写函数maxprime(int*p,intn),找出其中最大的素数,如果不存在素数函数结果为0。
(5)对于这些整数排序之后,分别输出相邻两数之差最大和之差最小的两个数,如果有多组满足条件要输出所有的。
(6)定义函数myinput(inta[],intn),用fgetc函数从文件“file1.dat”上逐个读入字符,并将其转换成独立的正整数,并依次存入数组a中。
题目2:
两个文件同时对照显示:
程序从两个文件中读出文本行,并列显示在屏幕上。
假定屏幕有80列,25行,则第0—34列显示第一个文件的内容,第40—74列显示第二个,第77-78行显示文本总的行序号。
每屏显示20行,超过20行就显示在下一屏。
程序应该能够以这种方式显示任意的两个文本文件。
题目3:
年历显示,要求至少具有如下功能:
(1)输入一个年份,输出是在屏幕上显示该年的日历。
假定输入的年份在1940-2040年之间。
(2)输入年月,输出该月的日历。
(3)输入年月日,输出距今天还有多少天,星期几,是否是公历节日。
(4)某人自1990年1月1日开始,“三天打鱼两天晒网”,输入一个1990年以后的日期,输出他这一天是打鱼还是晒网。
题目4小学生测验,面向小学1~2年级学生,随机选择两个整数和加减法形成算式要求学生解答。
要求至少具有如下功能:
(1)电脑随机出10道题,每题10分,程序结束时显示学生得分;
(2)确保算式没有超出1~2年级的水平,只允许进行50以内的加减法,不允许两数之和或之差超出0~50的范围,负数更是不允许的;
(3)每道题学生有三次机会输入答案,当学生输入错误答案时,提醒学生重新输入,如果三次机会结束则输出正确答案;
(4)对于每道题,学生第一次输入正确答案得10分,第二次输入正确答案得7分,第三次输入正确答案得5分,否则不得分;
(5)总成绩90以上显示“SMART”,80-90显示“GOOD”,70-80显示“OK”,60-70显示“PASS”,60以下“TRYAGAIN”。
题目5:
“上海自来水来自海上,黄山落叶松叶落山黄”,“客上天然居,居然天上客”,“人过大佛寺,寺佛大过人”,都是著名的“回文”的例子。
回文就是正读和反读都相同的字符串。
请编写程序判断输入的字符串是否回文,要求:
(1)用循环和递归各编写一个程序;
(2)如果不是回文,就从两端向中间检查,发现不同后,在后端加入一个与前端相同的字符,使得到一个回文字符串。
(3)类似,正读和反读都相同的数字就是回文数,例如,23532就是一个回文数。
请编写程序,输入两个正整数n1和n2,,n1 (4)如果正整数m是一个回文数,m2和m3也是,m就是一个三重回文数,例如,11、112=121、113=1331都是回文数,因此11是三重回文数。 请编写程序找出所有小于10000的三重回文数。 (5)有人说,从任意一个数出发,用它加上把它倒过来重排得到的数,如此继续,必能得到回文数。 例如139,139+931=1070,1070+701=1771。 请对小于100的所有正整数验证这一猜想。 题目6: 排班系统: 学校实验楼有7名保安人员: 钱、赵、孙、李、周、吴、陈。 由于工作需要进行轮休制度,一星期中每人休息一天。 预先让每一个人选择自己认为合适的休息日。 请编制程序,打印轮休的所有可能方案。 当然使每个人都满意,例如每人选择的休息日如下: 钱: 星期一、星期六 赵: 星期二、星期四 孙: 星期三、星期日 李: 星期五 周: 星期一、星期四、星期六 吴: 星期二、星期五 陈: 星期三、星期六、星期日 运行结果: Solution: 1 赵钱孙李周吴陈 ============================================================= 星期四星期一星期三星期五星期六星期二星期日 Solution: 2 赵钱孙李周吴陈 ============================================================= 星期四星期一星期日星期五星期六星期二星期三 Solution: 3 赵钱孙李周吴陈 ============================================================= 星期四星期六星期三星期五星期一星期二星期日 Solution: 4 赵钱孙李周吴陈 ============================================================= 星期四星期六星期日星期五星期一星期二星期三 题目7计算工资纳税,个人所得税每月交一次,底线是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 要求: 对所有不同情况,输入工资计算出纳税金额,列成一目了然的表格。 进一步研究现在实行的纳税规则并对此程序进行修改。 题目8: 用英文单词模拟数学计算: 读入两个小于100的正整数A和B,计算A+B。 需要注意的是: A和B的每一位数字由对应的英文单词给出。 具体的输入输出格式规定如下: 输入格式: 测试输入包含若干测试用例,每个测试用例占一行,格式为"A + B =",相邻两字符串有一个空格间隔。 当A和B同时为zero时输入结束,相应的结果不要输出。 输出格式: 对每个测试用例输出1行,即A+B的值。 输入样例: one + two = three four + five six = zero seven + eight nine = zero + zero = 输出样例: three ninezero ninesix 题目9: C语言关键字中英翻译机。 要求输入中文的名词和关键字,可以将其翻译成英语,如输入“基本整形”+回车,得到int;输入英文的单词int,则可以翻译成中文“基本整形”。 可模拟文曲星来实现。 可多次查询,输入bye时退出。 题目10: 计算24游戏 要求: 输入四个一位数,通过加减乘除计算出24,显示计算过程,并提示成功信息。 题目11: 三色球问题: 设一个口袋里有12个球,3个红色,3个白色,6个黑色;从口袋中任意取出8个,请编写程序输出这8个球所有可能的颜色情况。 题目12: 分糖果: 10个小孩围成一圈,每个小孩面前有糖果的数目是10、2、8、22、16、4、10、6、14、20,然后每个小孩同时将面前的糖果的一半分给右边的小孩,得到糖果而使糖果数变为奇数的小孩可以向老师要一块。 如此继续,问经过这样多少次后所有小孩面前的糖果一样多? 是多少? 进一步研究改变初始时每个小孩面前的糖果数,最终糖果数还是不是一定会变到一样多? 题目13: 题目10: 穿越沙漠问题: 一辆吉普车穿越1000公里的沙漠,吉普车的总装耗油量为500加仑,耗油率为每小时1加仑。 由于沙漠中没有油库,必须先用这辆车在沙漠中建立临时油库。 请编程求解,若让吉普车用最少的耗油量穿越沙漠,应该在那些地方建立临时油库,在每个临时油库存储的油量应该是多少。 题目14: 用至少两种方法计算圆周率π: (1)用我国古代数学家祖冲之的方法,即用圆内接正多边形逼近。 可以从圆内接正六边形出发,迭代计算园内接正12、24……边形的边长。 (2)随机数法,思路是取一个边长为1的单位正方形,在其中做它的内切圆,再向正方形内扔点,点落在圆内则计数,落在圆外不计数。 扔到5000个点后停止,用落入圆内的点数除以总的扔的点数,就得到π的一个近似值。 题目15: 请编写程序,输入正整数n,1 完全数是恰好等于自身的因子之和的数,如6是,因为6=1*2*3=1+2+3;亲密数是两个正整数,每个全部因子之和等于对方(因子中只不计本身),如220和284是,因为220的全部因子是1,2,4,5,10,11,20,22,44,55,110,和为284,而284的全部因子是1,2,4,71,142,和为220;水仙花数是恰好等于自身各位数字立方和的数,如153是,因为153=13+53+33;阶乘和数是恰好等于自身各位数字阶乘的和的数,如145是,因为145=1! +4! +5! ;自守数是平方后尾部数字是自身的数,如9376是,因为93762=87909376;孪生素数是差2的两个素数,如197和199。 黑洞数又称陷阱数,是经有限次“重排求差”操作达到的不再改变的数,“重排求差”操作是将组成一个数的各位数字重排得到的最大数减去最小数,例如207,“重排求差”操作序列是: 702-027=693,963-369=594,954-459=459,再做下去不变了。 再用208算一次,也停止到495,所以495是三位黑洞数, 题目16: 请编写程序, (1)输入正整数n,输出杨辉三角形的前n行,1 要求至少给出四种解法: 只使用二维数组,只使用一维数组,不使用任何数组,使用递归。 (2)输入正整数m,若m在杨辉三角形中存在,输出所在位置的行列编号,若不存在,输出“No”。 杨辉三角形如下所示: 1 11 121 1331 14641 题目17n阶勒让得(Legendre)多项式可以递归定义如下: 1n=0 Pn(x)=xn=1 ((2n-1)*x*Pn-1(x)–(n-1)*Pn-2(x))/nn>=1 (1)输入n和x的数值,输出此时勒让得多项式的数值。 例如输入2,1,应输出1/2。 (2)输入n的数值,输出此时的勒让得多项式。 例如输入2,应输出3/2x2-1/2。 题目18: (1)设n是奇数,请编写程序构造n*n阶魔方阵,即行、列、两对角线上n个数之和相等的方阵,图1是一个3*3魔方阵实例。 提示: 构造规则是: 数1填在第一行中间,从2开始,i+1放在i的上一行后一列(如5在4右上),若格位置超界,则对n取模(如2右上出界,取模到左方),若应放数处已有数,则放在此数下(如7放6下,4放3下)。 (2)构造3*3素数魔方阵,即找出9个不大于500的素数并排成魔方阵,图2是一个实例,其行、列、两对角线上3个数之和都是177。 8161711347 357895929 492715101 图1奇数阶魔方阵图2素数魔方阵 题目19实现任意的数制转换,即输入一个d1进制数,输出它的d2进制的表示。 这里d1和d2是正整数,不同进制数的表示方法可以自行设计。 题目20: 实现多项式乘法,要求至少给出三种求解方法并进行对比。 题目21: 实现带有括号的四则运算。 输入是一个带有括号的四则运算表达式,输出是计算得出的正确计算结果。 例如: 输入: 123+213-67*34+345/23*45*(34+34-345+245+567)回车,然后程序计算得出结果为: 359183 题目22: 求一元方程的根,要求实现牛顿法和二分法,一元方程可以是代数方程,如x8-10x-2=0,也可以是超越方程,如2x+3x=10,x+cos(x)=2等。 题目23: 线性方程组求解,输入是N元线性方程组Ax=B,输出是方程组的解,也可能无解或有多组解。 可以用高斯消去法求解,也可以采用其它方法。 要求在N为3或4时能迅速求解,再推广到N较大的情形。 题目24: 请编写程序,分别利用矩形法和梯形法求定积分,可写成
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 课程设计
![提示](https://static.bdocx.com/images/bang_tan.gif)