福建师大C语言实训方案.docx
- 文档编号:24165103
- 上传时间:2023-05-24
- 格式:DOCX
- 页数:13
- 大小:35.95KB
福建师大C语言实训方案.docx
《福建师大C语言实训方案.docx》由会员分享,可在线阅读,更多相关《福建师大C语言实训方案.docx(13页珍藏版)》请在冰豆网上搜索。
福建师大C语言实训方案
C语言软件实训方案
1、实训意义和目的
使学生综合使用所学过的C语言程序设计知识,掌握结构化程序设计的基本思路和方法,利用所学的基本知识和技能,发挥自学能力和查找资料的能力,解决稍微复杂的结构化程序设计问题,加深对所学知识的理解与掌握,增强学生利用自己所学知识解决实际问题的能力,为以后的程序开发打下基础。
课程设计的目的和要求:
◆使学生巩固和加强《C语言程序设计》课程的理论知识。
◆使学生掌握C语言的基本概念、语法、语义和数据类型的使用特点。
◆使学生掌握C语言程序设计的方法及编程技巧,能正确使用C语言编写程序。
◆进一步理解和运用结构化程设计的思想和方法;学会利用流程图或N-S图表示算法。
◆使学生掌握调试程序的基本方法及上机操作方法。
◆掌握书写程设计开发文档的能力,使学生学会撰写课程设计总结报告。
课程设计的思想和方法还可以作为学生做毕业论文时的参考资料。
◆通过查阅手册和文献资料,培养学生独立分析问题和解决问题的能力。
为学生做毕业设计打好基础。
◆初步掌握开发一个小型实用系统的基本方法:
结合实际应用的要求,使课程设计既覆盖知识点,又接近工程实际需要。
通过激发学习兴趣,调动学生主动学习的积极性,并引导他们根据实际编程要求,训练自己实际分析问题的能力及编程能力,并养成良好的编程习惯。
◆培养学生的创新能力和创新思维。
学生可以根据指导书和相关文献上的参考算法,自己设计出相应的应用程序。
◆培养学生良好的程序设计风格。
在实际编程中,为了提高编程质量,对空行、空格和注释均有要求。
学生在课程设计书写代码时,应该严格按要求处理,以便建立良好的程序设计风格。
2、实训目标及要求
参加本课程设计的学生,应当认真完成本课程设计的全部过程。
并以最终课程设计成果来证明其独立完成各种实际任务的能力。
从而,反映出理解和运用本课程知识的水平和能力。
A、分析问题。
各种简单的与计算机有关的案例中所需要的输出结果,把大问题分解成小问题,使用自顶向下或类似设计方法给出模块化或计划。
B、提出算法执行特定任务。
模块表示为算法,使用自顶向下或伪代码等设计手段将模块细化成更详细的成分,清楚地表明顺序、选择和重复等到控制结构。
C、把一个算法变为用C语言编写的结构化程序。
D、用合适的测试方法检查程序是否符合最初的要求,为不合适数据设计错误陷阱,并提供错误信息来帮助用户。
E、写出清晰的用户文档,确保用户或者通过遵循程序中的指示或者使用程序设计者编写的文档能成功地运行程序。
F、写出技术文档,对程序中主要标示符的含义或作用加以说明,并提供一个完整的程序流程图。
G、调试程序、测试数据过程成功。
3、实训内容及安排
3.1设计环境
硬件:
PC机,目前机房都已具备开发C语言程序的条件
软件:
操作系统为Windows系列,设计语言为VisualC++或TurboC。
3.2基本要求
◆课程设计可采取每人一题,可任选一题进行设计,至少包含五个功能模块。
或者每组(不超过4人)完成一个课题,每组成员分工合作完成一个课程设计,每个人的任务不同;
◆可以选择老师提供的参考选题,也可以自选,如果自选,需要将自选题目的详细内容以及实现要求提供给老师,老师批准后方可采用。
◆要求利用结构化程序设计方法以及C的编程思想来完成系统的设计;
◆要求有欢迎界面、菜单、文件操作,数据使用数组、结构体、链表等均可,键盘操作或鼠标操作均可;
◆模块化程序设计:
要求在设计的过程中,按功能定义函数或书写多个文件,进行模块化设计,各个功能模块用函数的形式来实现;
◆学生所选课题必须上机通过,并获得满意的结果;
◆程序书写风格:
锯齿型书写格式。
3.3实现步骤
问题分析和任务定义:
根据设计题目的要求,充分地分析和理解问题,明确问题要求做什么?
(而不是怎么做?
)限制条件是什么?
◆逻辑设计:
对问题描述中涉及的操作对象定义相应的数据类型,并按照以数据结构为中心的原则划分模块,定义主程序模块和各抽象数据类型。
逻辑设计的结果应写出每个抽象数据类型的定义(包括数据结构的描述和每个基本操作的功能说明),各个主要模块的算法,并画出模块之间的调用关系图;
◆详细设计:
定义相应的存储结构并写出各函数的伪码算法。
在这个过程中,要综合考虑系统功能,使得系统结构清晰、合理、简单和易于调试,抽象数据类型的实现尽可能做到数据封装,基本操作的规格说明尽可能明确具体。
详细设计的结果是对数据结构和基本操作作出进一步的求精,写出数据存储结构的类型定义,写出函数形式的算法框架;
◆程序编码:
把详细设计的结果进一步求精为程序设计语言程序。
同时加入一些注解和断言,使程序中逻辑概念清楚;
◆程序调试与测试:
采用自底向上,分模块进行,即先调试低层函数。
调试正确后,认真整理源程序及其注释,形成格式和风格良好的源程序清单和结果;
◆编写实训设计报告.
3.4实训题目
见附录
5、实训报告应具有的内容
1)、需求分析
描述问题。
简述课题要解决的问题是什么,有什么要求和限制条件。
2)、总体设计(程序设计组成框图、流程图)
3)、详细设计(模块功能说明(如函数功能、入口及出口参数说明,函数调用关系描述等))
4)、调试与测试:
调试方法,测试结果的分析与讨论,测试过程中遇到的主要问题及采取的解决措施
5)、测试结果,用几组测试数据进行测试算法设计的正确性。
6)、用户手册:
即使用说明。
7)、附录。
源程序清单和结果(注:
不需要所有代码):
源程序要加注释。
结果要包括测试数据和运行结果。
完成课程设计应提交如下文档:
1程序的总体设计和算法分析。
2技术文档
3用户文档
4源程序代码清单。
5测试数据和测试过程记录。
6遇到的问题及解决方法分析。
6、提交内容与形式
每位同学按格式提交以下内容
1论文(大作业打印稿15页到20页)
2代码(电子版不要打印)
3程序使用说明(简单的描述文字以及截图,电子稿)
提交形式:
先建立目录:
目录命名为:
学号+姓名目录下再创建三个子目录
如:
20051002张三----目录
论文----子目录放大作业电子稿
代码-----子目录放代码
使用说明-----子目录程序使用说明电子稿
7、时间以及进度安排
1)技术讲解与系统设计与分析1天
◆系统需求(总体概述)
◆功能需求
◆系统需求详述
2)系统设计1天
◆系统组织结构设计
◆系统数据流程图
◆系统功能模块设计
◆详细设计(如流程图等)
3)系统编码2-3天
4)答辩以及其他1天
8、评阅意见
软件实训评阅意见
项目
等 级
优秀
良好
中等
及格
不及格
软件态度评价
出勤情况评价
任务难度评价
工作量饱满评价
设计中创新性评价
论文书写规范化评价
综合应用能力评价
综合评定等级
9、附录
附录1:
报告封面
C语言实训项目
题 目:
院系专业:
姓名:
学号:
同组其他学生(学号):
2011 年 月 日
附录、C语言项目
项目1、学生信息管理
(1)问题描述
学生信息包括:
学号,姓名,年龄,性别,出生年月,地址,电话,E-mail等。
试设计一学生信息管理系统,使之能提供以下功能:
⏹系统以菜单方式工作
⏹学生信息录入功能(学生信息用文件保存)---输入
⏹学生信息浏览功能---输出
⏹查询、排序功能---算法
按学号查询、按姓名查询、学生信息的删除与修改(可选项)
(2)功能要求
界面比较美观;有一定的容错能力,比如输入的成绩不在0~100之间,就提示不合法,要求重新输入;最好用链表的方式实现。
(3)算法分析
首先,一个学生包括这么多的属性,应该考虑定义一个结构,其次,我们应该考虑数据的存储形式:
是定义一个数组来存储,还是定义一个链表呢?
在这里假如我们以数组的方式来存储,当然可以,但是我们知道,假如我们定义一个数组的话,我们首先必须知道学生人数大概是多少,以便我们确定数组的大小,但是题目中没有给出,而且题目要求中有大量的删除、插入操作,所以用链表的方式比较方便。
对于菜单的实现,其实也比较简单,首先我们用printf语句把程序的功能列出来,然后等待用户输入而执行不同的函数,执行完了一个功能后又回到菜单。
文件的读写操作大家参照书中的有关文件的章节。
项目2、学生综合测评系统
每个学生的信息为:
学号、姓名、性别、家庭住址、联系电话、语文、数学、外语三门单科成绩、考试平均成绩、考试名次、同学互评分、品德成绩、任课教师评分、综合测评总分、综合测评名次。
考试平均成绩、同学互评分、品德成绩、任课教师评分分别占综合测评总分的60%,10%,10%,20%。
A、学生信息处理
(1)输入学生信息、学号、姓名、性别、家庭住址、联系电话,按学号以小到大的顺序存入文件中。
提示:
学生信息可先输入到数组中,排序后可写到文件中。
(2)插入(修改)同学信息:
提示:
先输入将插入的同学信息,然后再打开源文件并建立新文件,把源文件和输入的信息合并到新文件中(保持按学号有序)若存在该同学则将新记录内容替换源内容,
(3)删除同学信息:
提示:
输入将删除同学号,读出该同学信息,要求对此进行确认,以决定是否删除将删除后的信息写到文件中。
(4)浏览学生信息:
提示:
打开文件,显示该文件的学生信息。
B、学生数据处理:
(1)按考试科目录入学生成绩并且按公式:
考试成绩=(语文+数学+外语)/3计算考试成绩,并计算考试名次,提示:
先把学生信息读入数组,然后按提示输入每科成绩,计算考试成绩,求出名次,最后把学生记录写入一个文件中。
(2)学生测评数据输入并计算综合测评总分及名次。
提示:
综合测评总分=(考试成绩)*0.6+(同学互评分)*0.1+品德成绩*0.1+任课老师评分*0.2。
(3)学生数据管理
提示:
输入学号,读出并显示该同学信息,输入新数据,将改后信息写入文件
(4)学生数据查询:
提示:
输入学号或其他信息,即读出所有数据信息,并显示出来。
C、学生综合信息输出
提示:
输出学生信息到屏幕。
项目3、学校运动会管理系统
问题描述:
(1)初始化输入:
N-参赛院系总数,M-男子竞赛项目数,W-女子竞赛项目数;
(2)各项目名次取法有如下几种:
取前5名:
第1名得分7,第2名得分5,第3名得分3,第4名得分2,第5名得分1;
(3)由程序提醒用户填写比赛结果,输入各项目获奖运动员的信息。
(4)所有信息记录完毕后,用户可以查询各个院系或个人的比赛成绩,生成团体总分报表,查看参赛院系信息、获奖运动员、比赛项目信息等。
项目4、教师工作量管理系统
计算每个老师在一个学期中所教课程的总工作量。
(教师单个教学任务的信息为:
教师号、姓名、性别、职称、认教课程、班级、班级数目、理论课时、实验课时、单个教学任务总课时)
A、教师信息处理
(1)输入教师授课教学信息,包括教师号、姓名、性别、职称、认教课程、班级、班级数目、理论课时、实验课时。
(2)插入(修改)教师授课教学信息:
(3)删除教师授课教学信息:
(4)浏览教师授课教学信息:
B、教师工作量数据处理:
(1)计算单个教学任务总课时。
计算原则如下表:
班级数目单个教学任务总课时
21.5*(理论课时+实验课时)
32*(理论课时+实验课时)
>=42.5*(理论课时+实验课时)
(2)计算一个教师一个学期总的教学工作量。
总的教学工作量=所有单个教学任务总课时之和。
(3)教师数据查询:
提示:
输入教师号或其他信息,即读出所有数据信息,并显示出来。
C、教师综合信息输出
提示:
输出教师信息到屏幕。
项目5、编写一万年历系统(限最多1人完成)
要求:
模仿现实生活中的挂历.当前页以系统当前日期的月份为准显示当前月的每一天(显示出日及对应的星期几).当系统日期变到下一月时,系统自动翻页到下一月.
项目6、一元多项式简单的计算器(限最多1人完成)
1主要功能:
(1)输入并建立多项式;
(2)输出多项式;
(3)两个多项式相加,建立并输出和多项式;
(4)两个多项式相减,建立并输出差多项式。
(5)算法的时间复杂度、另外可以提出算法的改进方法
实现提示:
可选择带头结点的单向循环链表或单链表存储多项式,头结点可存放多项式的参数,如项数等。
2.要求:
一元多项式简单计算器的基本功能
项目7、保龄球计分
【问题描述】打保龄球是用一个滚球去撞击10个站立的瓶,将瓶击倒。
一局分10轮,每轮可滚球1次或多次,以击到的瓶数为依据计分,一局得分为10轮得分之和,而每轮的得分不仅与本轮的滚球情况有关,还可能与后一轮或两轮的滚球情况有关,即:
某轮某次滚球击倒的瓶数不仅要计入本轮得分,还可能会计入前一轮或两轮得分。
计分规则如下:
①若某一轮的第一次滚球就击倒全部10个瓶,则本轮不再滚球(若是第10轮还需加2次滚球),该轮得分为本次击倒瓶数10与以后2次滚球所击倒瓶数之和。
②若某一轮的第一次滚球未击倒全部10个球,则对剩下未击倒的瓶再滚球一次,如果这2次滚球击倒全部10个瓶,则本轮不再滚球(若是第10轮还需加1次滚球),该轮得分为这2次击倒瓶数10与以后1次滚球所击倒瓶数之和。
③若某一轮2次滚球未击倒全部10个瓶,则本轮不在滚球,该轮得分为这2次滚球所击倒瓶数之和。
【实现提示】
①模拟10个人各打一局保龄球比赛过程,统计每局各轮得分和累计总分。
②逐人逐轮逐次输入一次滚球击倒的瓶数。
③对10人的得分由低到高排序并显示。
④最后,把排序的存入文件中。
项目8、学生成绩统计
【问题描述】
学期考试结束,统计有N个班某班每个人的平均成绩,每门课的平均成绩,并按个人平均成绩从高到低的顺序输出成绩,输出不及格人名单。
输入、输出格式自定。
【实现提示】
假设某班有:
30人(姓名自定)
考试课程有:
高等数学、物理、外语、C语言、德育5门课程。
将所有同学的成绩保留在文件中,对文件中的数据处理,输出所要求的内容,程序的功能主要包括3方面:
①输入成绩到文件中
②输出成绩
③输出不及格学生名单
④成绩排序
⑤修改记录
⑥删除记录
⑦插入记录等
主函数中对3个功能选择(菜单),调用对应的函数完成。
项目9、编制一个学生的选课及学籍管理程序
【问题描述】现有若干个班级的学生,进行下学期课程的选课,假设已经通过文件储存了选课内容的数据库,数据库中包括7门课(课程内容由学生自己定)第i门课程的接纳的学生数为10×i,i为课程的序号,如第一门课的接纳的学生数为10×1,第二门课为10×2,......依此类推,每门课的学分数分别为1、2、3、4、5、6、7,现要求每一个学生至少选3门课,最多不超过5门。
【实现提示】
(1)显示课程内容供学生选择,并能进行选课的操作
(2)随着学生选课工作的进行,动态更新数据库的内容
(3)进行学生的最少选课量和最多选课量的控制
(4)显示所有学生的选课的结果
(5)把学生所选的课按学分总积分由小到大排列,同样学分按姓名的英文字母排序
(6)录入学生的各科成绩
(7)学生的参数有:
姓名、学号、性别、总学分、各科成绩,补考情况,请把一门和三门功课不及格的学生的姓名列出,并自动生成补考通知书,通知书中要求有学生的姓名、学号、不及格的科目及补考时间(由编程者自定)
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 福建 师大 语言 方案