course design.docx
《course design.docx》由会员分享,可在线阅读,更多相关《course design.docx(11页珍藏版)》请在冰点文库上搜索。
coursedesign
C语言课程设计指导书
课程设计是C语言教学中,一个重要的实践环节。
一般来讲,课程设计应该比课程教学实验复杂一些,要求所涉及的内容应该有一定的深度和广度,并更加接近现实应用。
通过课程设计的综合训练,培养学生实际分析问题、编程和动手能力,最终目标是想通过这种形式,帮助学生系统掌握该门课程的主要内容,更好地完成教学任务。
本章简要介绍C语言课程设计的要求,并给出部分示例设计题目及其预期目标。
由于各校的情况不尽相同,各学校应根据本校的特点和教学计划,选择相应的课程设计内容。
1课程设计目标
1.1课程设计目标
使学生综合使用所学过的C语言程序设计知识,掌握结构化程序设计的基本思路和方法,利用所学的基本知识和技能,发挥自学能力和查找资料的能力,解决稍微复杂的结构化程序设计问题,加深对所学知识的理解与掌握,增强学生利用自己所学知识解决实际问题的能力,为以后的程序开发打下基础。
课程设计的目的和要求:
1、使学生巩固和加强《C语言程序设计》课程的理论知识。
2、使学生掌握C语言的基本概念、语法、语义和数据类型的使用特点。
3、使学生掌握C语言程序设计的方法及编程技巧,能正确使用C语言编写程序。
4、进一步理解和运用结构化程设计的思想和方法;学会利用流程图或N-S图表示算法。
5、使学生掌握调试程序的基本方法及上机操作方法。
6、掌握书写程设计开发文档的能力,使学生学会撰写课程设计总结报告。
课程设计的思想和方法还可以作为学生做毕业论文时的参考资料。
7、通过查阅手册和文献资料,培养学生独立分析问题和解决问题的能力。
为学生做毕业设计打好基础。
8、初步掌握开发一个小型实用系统的基本方法:
结合实际应用的要求,使课程设计既覆盖知识点,又接近工程实际需要。
通过激发学习兴趣,调动学生主动学习的积极性,并引导他们根据实际编程要求,训练自己实际分析问题的能力及编程能力,并养成良好的编程习惯。
9、培养学生的创新能力和创新思维。
学生可以根据指导书和相关文献上的参考算法,自己设计出相应的应用程序。
10、培养学生良好的程序设计风格。
在实际编程中,为了提高编程质量,对空行、空格和注释均有要求。
学生在课程设计书写代码时,应该严格按要求处理,以便建立良好的程序设计风格。
1.2课程设计内容
一、设计环境
1、硬件:
PC机,档次不低于CPU为P
667,内存为128M,4G硬盘,其它硬件与此相配套。
2、软件:
操作系统为WindowsXP或Windows2000,设计语言为VisualC++。
二、基本要求
1、课程设计可采取每人一题,可任选一题进行设计。
2、可以选择老师提供的参考选题,也可以自选,如果自选,需要将自选题目的详细内容以及实现要求提供给老师,老师批准后方可采用。
3、要求利用结构化程序设计方法以及C的编程思想来完成系统的设计;
4、要求有欢迎界面、菜单、文件操作,数据使用数组、结构体、链表等均可,键盘操作或鼠标操作均可;
5、模块化程序设计:
要求在设计的过程中,按功能定义函数或书写多个文件,进行模块化设计,各个功能模块用函数的形式来实现;
6、学生所选课题必须上机通过,并获得满意的结果;
7、程序书写风格:
锯齿型书写格式。
三、设计步骤
1、根据问题描述,设计数据存储方式;
2、分析系统功能,划分功能模块,确定各模块函数名称;
3、主程序算法设计和各模块算法设计;
4、编程实现;
5、调试和测试;
6、完成设计文档和课程设计说明书。
四、课程设计报告的要求
1、需求分析
描述问题。
简述课题要解决的问题是什么,有什么要求和限制条件。
2、总体设计(程序设计组成框图、流程图)
3、详细设计(模块功能说明(如函数功能、入口及出口参数说明,函数调用关系描述等))
4、调试与测试:
调试方法,测试结果的分析与讨论,测试过程中遇到的主要问题及采取的解决措施
5、测试结果,用几组测试数据进行测试算法设计的正确性。
6、附录。
源程序清单和结果:
源程序要加注释。
结果要包括测试数据和运行结果。
五、参考设计题目
1、年历显示。
功能要求:
输入一个年份,输出是在屏幕上显示该年的日历。
假定输入的年份在1940-2040年之间。
输入年月,输出该月的日历。
输入年月日,输出距今天还有多少天,星期几,是否是公历节日。
2、排班系统
学校实验楼有7名保安人员:
钱、赵、孙、李、周、吴、陈。
由于工作需要进行轮休制度,一星期中每人休息一天。
预先让每一个人选择自己认为合适的休息日。
请编制程序,打印轮休的所有可能方案。
当然使每个人都满意,例如每人选择的休息日如下:
钱:
星期一、星期六
赵:
星期二、星期四
孙:
星期三、星期日
李:
星期五
周:
星期一、星期四、星期六
吴:
星期二、星期五
陈:
星期三、星期六、星期日
运行结果:
Solution:
1
赵钱孙李周吴陈
=============================================================
星期四星期一星期三星期五星期六星期二星期日
Solution:
2
赵钱孙李周吴陈
=============================================================
星期四星期一星期日星期五星期六星期二星期三
Solution:
3
赵钱孙李周吴陈
=============================================================
星期四星期六星期三星期五星期一星期二星期日
Solution:
4
赵钱孙李周吴陈
=============================================================
星期四星期六星期日星期五星期一星期二星期三
3、机房机位预定系统
20台机器,编号1到20,从早八点到晚八点。
两小时一个时间段,每次可预定一个时间段。
功能要求:
(1)系统以菜单方式工作
(2)查询,根据输入时间,输出机位信息。
(3)机位预定,根据输入的时间查询是否有空机位,若有则预约,若无则提供最近的时间段,另:
若用户在非空时间上机,则将用户信息列入等待列表。
(4)退出预定,根据输入的时间,机器号撤销该事件的预定!
(5)查询是否有等待信息,若有则提供最优解决方案(等待时间尽量短),若无则显示提示信息。
4、学校运动会管理系统
问题描述:
(1)初始化输入:
N-参赛院系总数,M-男子竞赛项目数,W-女子竞赛项目数;
(2)各项目名次取法有如下几种:
取前5名:
第1名得分7,第2名得分5,第3名得分3,第4名得分2,第5名得分1;
(3)由程序提醒用户填写比赛结果,输入各项目获奖运动员的信息。
(4)所有信息记录完毕后,用户可以查询各个院系或个人的比赛成绩,生成团体总分报表,查看参赛院系信息、获奖运动员、比赛项目信息等。
5、个人通讯录管理系统
建立一通讯录,输入姓名、电话号码、住址等信息,然后对通信簿进行显示、查找、添加、修改及删除。
功能要求
(1)通讯录的每一条信息包括姓名、单位、固定电话、移动手机、分类(如同事、朋友、同学、家人等)、EMAIL、QQ等。
(2)输入功能:
可以一次完成若干条信息的输入。
(3)显示功能:
完成全部通讯录信息的显示(一屏最多显示10条,超过十条应能够自动分屏显示)
(4)查找功能:
可以按姓名等多种方式查找通讯信息
(5)增加、删除、修改功能:
完成通讯录信息的多种更新
6、教师工资管理系统
每个教师的信息为:
教师号、姓名、性别、单位名称、家庭住址、联系电话、基本工资、津贴、生活补贴、应发工资、电话费、水电费、房租、所得税、卫生费、公积金、合计扣款、实发工资。
注:
应发工资=基本工资+津贴+生活补贴;合计扣款=电话费+水电费+房租+所得税+卫生费+公积金;实发工资=应发工资-合计扣款。
A、教师信息处理
(1)输入教师信息
(2)插入(修改)教师信息:
(3)删除教师信息:
(4)浏览教师信息:
提示:
具体功能及操作参考题1。
B、教师数据处理:
(1)按教师号录入教师基本工资、津贴、生活补贴、电话费、水电费、房租、所得税、卫生费、公积金等基本数据。
(2)教师实发工资、应发工资、合计扣款计算。
提示:
计算规则如题目。
(3)教师数据管理
提示:
输入教师号,读出并显示该教师信息,输入新数据,将改后信息写入文件
(4)教师数据查询:
提示:
输入教师号或其他信息,即读出所有数据信息,并显示出来。
(5)教师综合信息输出
提示:
输出教师信息到屏幕。
7、教师工作量管理系统
计算每个老师在一个学期中所教课程的总工作量。
(教师单个教学任务的信息为:
教师号、姓名、性别、职称、认教课程、班级、班级数目、理论课时、实验课时、单个教学任务总课时)
A、教师信息处理
(1)输入教师授课教学信息,包括教师号、姓名、性别、职称、认教课程、班级、班级数目、理论课时、实验课时。
(2)插入(修改)教师授课教学信息:
(3)删除教师授课教学信息:
(4)浏览教师授课教学信息:
B、教师工作量数据处理:
(1)计算单个教学任务总课时。
计算原则如下表:
班级数目
单个教学任务总课时
2
1.5*(理论课时+实验课时)
3
2*(理论课时+实验课时)
>=4
2.5*(理论课时+实验课时)
(2)计算一个教师一个学期总的教学工作量。
总的教学工作量=所有单个教学任务总课时之和。
(3)教师数据查询:
提示:
输入教师号或其他信息,即读出所有数据信息,并显示出来。
C、教师综合信息输出
提示:
输出教师信息到屏幕。
8、文件存取
要求实现如下功能:
(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中。
(课程设计封皮一页上用已经设置好的宋体四号来填写各个项目。
)
课程设计报告
学院:
天津理工大学华信软件学院
专业名称:
软件工程
课程设计科目
C语言课程设计
所在班级:
学生学号:
学生姓名:
指导教师:
陈立娜
完成时间:
2012年4月-6月
(课程设计报告正文部分)
题目(三号,黑体,居中,根据你所做的问题自己选定)
(空一行)
一、设计任务与目标(标题均为小三号,宋体)
(正文均为小四号,宋体,行距1.5倍)
(对所选择题目进行分析论证,简要说明此类问题的已有类似工作,我要完成时准备做那些改进,既说明完成此设计的目的意义。
列出我进行本设计时要达到的具体的目标。
)
二、方案设计与论证
(对设计目标进行总体分析,说明要采用的基本思路,说明遇到的问题和解决方法。
说明完成本次课程设计的完整过程。
要描述程序的设计思想,重点描述你自己提出的与已有工作不同的程序设计思想。
)
三、程序框图或流程图,程序清单与调用关系
(画出本次课程设计完整的程序框图或流程图,程序基本框架结构图可以采用WORD中的自选图形绘制,列出所有编写的函数清单,说明每个函数的功能,各形式参数的意义,画出各函数的调用关系图。
)
四、全部源程序清单
(给出本次课程设计中我本人所编写源程序已经调试好的可运行代码清单,注意系统自动生成部分不必列出,从书中或从参考文献中看来的可标明署名、参考文献名及页码。
字体可以用宋体,五号,页数可增加,每个程序开头用注释文字说明此程序的用途和大体工作过程,,程序中必要部分也要加入足够多的注释行。
)
五、程序运行结果测试与分析
(要针对程序处理的不同情况列出有代表性的输入和输出,用足够多的实例说明程序完成了设计任务和目标。
)
六、结论与心得
(主要说明程序调试中发现的问题和解决办法,包括你学到了什么,哪里遇到了困难,解决的办法,可能但因时间关系没有来得及完成的想法,今后的目标等。
)
七、参考资料
(用五号,宋体,按照规范格式列出。
要列出在完成设计中查看过并有所利用的所有参考资料,包括各类技术书籍、期刊论文和相关网页的网址。
注意你看过但没有利用的资料不要列入,要能够回答你列出资料中的相关问题。
规范格式举例如下:
[1]谭浩强等编著,C语言程序设计,北京:
清华大学出版社,123-126页、234-237页。
)
八、致谢
(如果你参考了同学的程序,要真诚地表示感谢。
如果你参考了一些书籍上或网页上的程序,也要真诚地向作者表示感谢。
)
课程设计成绩评定表
对课程设计工作过程的简短介绍和自我评价
学生签名:
年月日
(以下由评定教师填写)
质量评价指标(在相应栏目给分,优秀20-25分,良好15-20分,中等10-15分,及格5-10分,不及格0-5分)
评价项目
评价质量
优秀
良好
中等
及格
不及格
工作量和态度(25分)
实验、计算可靠性
(25分)
文字和图表质量
(25分)
总体评价
(25分)
评定成绩(百分制)
1.3评价标准
课程设计成绩评定的依据有设计文档资料、具体实现设计方案的程序及课程设计考勤登记表,其中平时成绩占总成绩的20%。
优(90分以上):
必须要有一定的创意,有自己独特的算法。
按要求完成课题的全部功能,有完整的符合标准的文档,文档有条理、文笔通顺,格式正确,其中有总体设计思想的论述,有正确的流程图,程序完全实现设计方案,设计方案先进,软件可靠性好;
良(80-89分):
完成课题规定的功能,有完整的符合标准的文档,文档有条理、文笔通顺,格式正确;有完全实现设计方案的软件,设计方案较先进,无明显错误;
中(70-79分):
完成课题规定的功能,有完整的符合标准的文档,有基本实现设计方案的软件,设计方案正确,但有少于失误;
及格:
完成课题规定的大部分功能,有完整的符合标准的文档,有基本实现设计方案的软件,设计方案基本正确,个别功能没有实现,但错误不多;
不及格:
没有完成课题规定的功能,没有完整的符合标准的文档,软件没有基本实现设计方案,设计方案不正确。
各个学校可根据自己学校的特点,灵活设置评分标准,给学生更多的鼓励,提高他们的学习积极性,放手去做,激发他们学习程序设计的兴趣。