《C语言程序设计》[2023-06-01]

发布时间 2023-06-01 15:48:59作者: programwriter

《C语言程序设计》[2023-06-01]

工程项目实训
实施方案

课程名:《C语言程序设计》
开课单位:信息科学与工程学院
开课对象:2021级计算机科学与技术
2021级信息安全
时 间:2023年春季学期

目录
1、实训意义和目的 3
2、训练目标及要求 3
3、实训安排 4
4、训练内容及安排 4
4.1设计环境 4
4.2基本要求 4
4.3实现步骤 5
4.4 设计题目 5
5、设计报告应具有的内容 6
5.1需求分析 6
5.2总体设计 6
5.3详细设计 6
5.4调试与测试 6
5.5测试结果 6
5.6用户手册 6
5.7附录 6
6、完成设计所提交的文档应包含以下内容: 7
7、提交内容与形式 7
8、时间以及进度安排 7
9、评阅意见 8
10、附录 9
项目1 9
项目2 10
项目3 11

1、实训意义和目的
使学生综合使用所学过的C语言程序设计知识,掌握结构化程序设计的基本思路和方法,利用所学的基本知识和技能,发挥自学能力和查找资料的能力,解决稍微复杂的结构化程序设计问题,加深对所学知识的理解与掌握,增强学生利用自己所学知识解决实际问题的能力,为以后的程序开发打下基础。
课程设计的目的和要求:
◆使学生巩固和加强《C语言程序设计》课程的理论知识;
◆使学生掌握C语言的基本概念、语法、语义和数据类型的使用特点;
◆使学生掌握C语言程序设计的方法及编程技巧,能正确使用C语言编写程序;
◆进一步理解和运用结构化程设计的思想和方法;
◆学会利用流程图或N-S图表示算法;
◆使学生掌握调试程序的基本方法及上机操作方法;
◆掌握书写程设计开发文档的能力,使学生学会撰写课程设计总结报告。课程设计的思想和方法还可以作为学生做毕业论文时的参考资料;
◆通过查阅手册和文献资料,培养学生独立分析问题和解决问题的能力。为学生做毕业设计打好基础;
◆初步掌握开发一个小型实用系统的基本方法:结合实际应用的要求,使课程设计既覆盖知识点,又接近工程实际需要。通过激发学习兴趣,调动学生主动学习的积极性,并引导他们根据实际编程要求,训练自己实际分析问题的能力及编程能力,并养成良好的编程习惯;
◆培养学生的创新能力和创新思维。学生可以根据指导书和相关文献上的参考算法,自己设计出相应的应用程序;
◆培养学生良好的程序设计风格。在实际编程中,为了提高编程质量,对空行、空格和注释均有要求。学生在课程设计书写代码时,应该严格按要求处理,以便建立良好的程序设计风格;
2、训练目标及要求
参加训练的学生,应当认真完成设计的全部过程。并以最终设计成果来证明其独立完成各种实际任务的能力。从而,反映出理解和运用本课程知识的水平和能力。
A、分析问题。各种简单的与计算机有关的案例中所需要的输出结果,把大问题分解成小问题,使用自顶向下或类似设计方法给出模块化或计划。
B、提出算法执行特定任务。模块表示为算法,使用自顶向下或伪代码等设计手段将模块细化成更详细的成分,清楚地表明顺序、选择和重复等到控制结构。
C、把一个算法变为用C语言编写的结构化程序。
D、用合适的测试方法检查程序是否符合最初的要求,为不合适数据设计错误陷阱,并提供错误信息来帮助用户。
E、写出清晰的用户文档,确保用户或者通过遵循程序中的指示或者使用程序设计者编写的文档能成功地运行程序。
F、写出技术文档,对程序中主要标示符的含义或作用加以说明,并提供一个完整的程序流程图。
G、调试程序、测试数据过程成功。
3、实训安排

4、训练内容及安排
4.1设计环境
硬件:PC机,目前机房都已具备开发C语言程序的条件软件;
操作系统为Windows系列,设计语言为Dev-C++。
4.2基本要求
◆设计可采取每人一题,可任选一题进行设计,至少包含五个功能模块。
◆可以选择老师提供的参考选题,也可以自选,如果自选,需要将选题的详细内容以及实现要求提供给老师,老师批准后方可采用。
◆要求利用结构化程序设计方法以及C的编程思想来完成系统的设计;
◆要求有欢迎界面、菜单、文件操作,数据使用数组、结构体、链表等均可,键盘操作或鼠标操作均可;
◆模块化程序设计:要求在设计的过程中,按功能定义函数或书写多个文件,进行模块化设计,各个功能模块用函数的形式来实现;
◆学生所选课题必须上机通过,并获得满意的结果;
◆程序书写风格:锯齿型书写格式。
4.3实现步骤
◆问题分析和任务定义。根据设计题目的要求,充分地分析和理解问题,明确问题要求做什么?(而不是怎么做?)限制条件是什么?
◆逻辑设计。对问题描述中涉及的操作对象定义相应的数据类型,并按照以数据结构为中心的原则划分模块,定义主程序模块和各抽象数据类型。逻辑设计的结果应写出每个抽象数据类型的定义(包括数据结构的描述和每个基本操作的功能说明),各个主要模块的算法,并画出模块之间的调用关系图;
◆详细设计:定义相应的存储结构并写出各函数的伪码算法。在这个过程中,要综合考虑系统功能,使得系统结构清晰、合理、简单和易于调试,抽象数据类型的实现尽可能做到数据封装,基本操作的规格说明尽可能明确具体。详细设计的结果是对数据结构和基本操作作出进一步的求精,写出数据存储结构的类型定义,写出函数形式的算法框架;
◆程序编码:把详细设计的结果进一步求精为程序设计语言程序。同时加入一些注解和断言,使程序中逻辑概念清楚;
◆程序调试与测试:采用自底向上,分模块进行,即先调试低层函数。调试正确后,认真整理源程序及其注释,形成格式和风格良好的源程序清单和结果;
◆编写设计报告。
4.4 设计题目
见附录
5、设计报告应具有的内容
5.1需求分析
描述问题:简述课题要解决的问题是什么,有什么要求和限制条件。
5.2总体设计
程序设计组成框图、流程图。
5.3详细设计
模块功能说明(如函数功能、入口及出口参数说明,函数调用关系描述等)。
5.4调试与测试
调试方法,测试结果的分析与讨论,测试过程中遇到的主要问题及采取的解决措施。
5.5测试结果
用几组测试数据进行测试算法设计的正确性。
5.6用户手册
使用说明。
5.7附录
源程序清单和结果(注:不需要所有代码);
源程序要加注释。结果要包括测试数据和运行结果。

6、完成设计所提交的文档应包含以下内容:
1)程序的总体设计和算法分析;
2)技术文档;
3)用户文档;
4)源程序代码清单;
5)测试数据和测试过程记录;
6)遇到的问题及解决方法分析;
7、提交内容与形式
每位同学按格式提交以下内容:
1、设计报告(打印稿,可以包含程序使用说、简单的描述文字以及截图)
2、代码(电子版不要打印)
3、程序使用说明(简单的描述文字以及截图,电子稿)
提交形式:
先建立文件目录:
目录命名为:学号+姓名+班级(20051002+张三+计算机科学与技术2021-1)
文件目录下再创建三个子目录:
论文----子目录放实训大作业电子稿
代码----子目录放完整源代码
使用说明-----子目录放完整程序使用说明电子稿
8、时间以及进度安排
1)技术讲解与系统设计与分析1天
◆ 系统需求(总体概述)
◆ 功能需求
◆ 系统需求详述
2)系统设计2天
◆ 系统组织结构设计
◆ 系统数据流程图
◆ 系统功能模块设计
◆ 详细设计(如流程图等)
3)系统编码3天
4)答辩以及其他1天
9、评阅意见
《C语言程序设计工程实训评阅意见》
项目 等 级
优秀
(90-100) 良好
(80-90) 中等
(70-80) 及格
(60-70) 不及格
(0-60)
实训态度评价
(占比10%)
出勤情况评价
(占比10%)
工作量饱满评价
(占比20%)
设计中创新性评价
(占比20%)
论文书写规范化评价
(占比20%)
综合答辩能力评价
(占比20%)
综合评定等级

《C语言程序设计工程实训答辩评分》
序号 项目 得分(每项按百分制给分)
1 项目可行性与实用性
2 项目技术难度
3 项目创新度
4 项目完成度
5 队员对作品的贡献程度(是否自己进行创新设计,对本作品相关技术的贡献程度等)
6 其他可加分项(答辩过程表现得体、语言流利等)
7 总分

10、附录
设计题目项目:

项目1

学生综合测评系统

每个学生的信息为:学号、姓名、性别、家庭住址、联系电话、语文、数学、外语三门单科成绩、考试平均成绩、考试名次、品德成绩、综合测评总分、综合测评名次。考试平均成绩、品德成绩分别占综合测评总分的80%,20%。
A、学生信息处理
⑴输入学生信息、学号、姓名、性别、家庭住址、联系电话,按学号以小到大的顺序输入。
(2)插入(修改)同学信息:提示。输入或修改同学信息。
(3)删除同学信息:
提示:输入将删除同学号,读出该同学信息,要求对此进行确认,以决定是否删除该信息。
(4)查询学生信息:
提示:输入查询条件(如学号、姓名等),显示该学生信息。
B、学生数据处理:
(1)按考试科目录入学生成绩并且按公式:考试成绩=(语文+数学+外语)/3计算考试成绩,并计算考试名次,提示:先把学生信息读入数组,然后按提示输入每科成绩,计算考试成绩,求出名次,最后把学生记录写入一个文件中。
(2)学生测评数据输入并计算综合测评总分及名次。提示:综合测评总分=(考试成绩)O.8+品德成绩0.2.
(3)学生数据管理
提示:输入学号或姓名,显示该同学信息
(4)学生数据的导入:
提示:从文件中导入学生的信息
(5)学生数据的保存:
提示:将学生的信息存入到文件中。
c、学生综合信息输出
提示:输出学生信息到屏幕。

项目2

教师工资管理系统

每个教师的信息为:教师号、姓名、性别、单位名称、家庭住址、联系电话、基本工资、津贴、生活补贴、应发工资、电话费、水电费、房租、所得税、卫生费、公积金、合计扣款、实发工资。注:应发工资-基本工资+津贴+生活补贴:合计扣款=电话费+水电费+房租+所得税+卫生费+公积金:实发工资=应发工资一合计扣款。
A、教师信息处理
(1)输入教师信息
(2)插入(修改)教师信息:
(3)删除教师信息:
(4)浏览教师信息:
(5)查询教师信息:
(6)导入教师信息:
提示:从文件导入教师信息
(7)保存教师信息:
提示:将教师信息保存到文件中
B、教师数据处理:
(1)按教师号录入教师基本工资、津贴、生活补贴、电话费、水电费、房租、所得税、卫生费、公积金等基本数据。
(2)教师实发工资、应发工资、合计扣款计算。提示:计算规则如题目。
(3)教师数据管理
提示:输入教师号,读出并显示该教师信息,输入新数据,将改后信息写入文件
(4)教师数据查询:
提示:输入教师号或其他信息,即读出所有数据信息,并显示出来。
(5)教师综合信息输出
提示:输出教师信息到屏幕。

项目3

编写一款简易的万年历(选做)

要求:模仿现实生活中的挂历,输入年份和月份,显示该月的月历。或输入年份显示一整年的月历。

源码

https://pan.baidu.com/s/1pq1Nwwo0hlc_J84F93HM4A?pwd=1111