C语言课程设计指导书(2014hdjsnb)

  • 格式:doc
  • 大小:272.50 KB
  • 文档页数:15

1 HUBEI UNIVERSITY OF AUTOMOTIVE TECHNOLOGY C语言程序设计 课程设计指导书 张吴波 编 史旅华 审

电气与信息工程学院计算机系 2014年2月 2

一、设计目的 1.巩固和加深学生对《C语言程序设计》课程基本知识的理解和掌握。 2.掌握C语言编程和程序调试的基本技能。 3.掌握书写程序设计说明文档的能力。 4.提高学生分析问题和解决问题的能力,培养严谨的工作作风和良好的程序设计习惯,为后续课程的学习打下良好的基础。

二、设计要求 (一)基本要求 1.掌握C 语言程序设计的方法,熟悉使用VC6.0作为开发软件开发C语言程序及C 程序的调试过程。 2.熟悉C 语言中的数据类型,数据结构、语句结构、运算方法、函数,巩固和加深对理论课中知识的理解,提高基本编程能力。 3.综合编程题,每组完成一个课题(一组不能超过2人),每组成员必须明确各自的任务。 4.要求利用结构化程序设计方法以及C的编程思想来完成题目问题描述中所要求的设计任务,功能模块化,设计内容符合题目要求; 5.概要设计模块划分合理,清晰,系统结构图符合功能操作要求; 6.详细设计,主要功能模块有较完善的程序流程图,每个主要功能模块有较完善的入口、功能、出口等的清晰的描述,说明符合结构化程序设计要求; 7.每个模块的程序代码,具有较好的可读性和可靠性;程序书写风格:锯齿型书写格式,并有详尽的注释。 8.用户界面要求尽可能友好,提示信息充分、完整;对输入内容有较完善的判误处理并方便操作; 9.程序必须上机调试通过,不应出现语法型、功能型错误,并获得满意的结果; 10.所设计的程序,必须在提交验收前,通过测试用例做必要的功能测试,尽可能避免原则性错误的出现。

(二)设计步骤 在进行综合编程时需要遵循以下的步骤: 1.问题分析、确定解决方案框架,充分地分析和理解问题本身,弄清要求做什么。在确定解决方案框架过程中,仔细考虑如何使用数据,数据结构有哪些?程序结构清晰、合理、简单和易于调试,并确定每个模块的简单功能,以及模块之间的调用关系。 2.详细设计和编码:确定程序的主要流程,在此基础上进行代码设计,每个功能模块程序一般不超过60行,否则要进一步划分。 3.上机前编写程序与检查。 4.上机调试程序。 5.每个功能在输入值集范围内,确定好几组测试用例数据,通过尽可能详尽的测试用例,找出 3

程序中存在的或有可能出现的功能错误。 (三)综合报告要求 课程设计报告应包括下列主要内容: 1.课程设计题目与要求 2.系统设计 (1)系统功能模块划分 主要内容:系统功能模块划分设计说明和系统功能模块图。 (2)数据结构设计 主要内容:结构体、链表的设计说明。 (3)函数的规划与设计 主要内容:各功能模块对应的函数规划设计,包括函数功能、入口及出口参数说明, 函数调用关系描述等。 (4)主函数的流程分析与设计 主要内容:主函数的设计说明、流程分析和主函数的流程图。 (5)主要功能模块的流程分析与设计 主要内容:功能模块的设计说明、流程分析和功能模块的流程图。 3.程序测试与运行结果 主要内容:测试用例数据,测试结果,实际运行结果截图,测试中出现的问题、原因与分析。

4.课程设计总结 主要内容:设计中的难点及其解决方法、独到之处、不足之处、课程设计心得。 5.程序源代码

三、设计题目 1.学生证管理程序 题目描述: 请设计一个学生证管理的程序,以方便辅导员对学生证的管理,该程序应该具有以下功能: (1)能从键盘输入某位学生的学生证信息(学生证应该包含的信息可以参考自己的学生证)。 (2)给定学号,显示该学生的学生证信息。 (3)给定班号,显示该班所有学生的学生证信息。 (4)给定学号,修改该学生的学生证信息。 (5)给定学号,删除该学生的学生证信息。 题目要求: (1)按照分析、设计、编码、调试、测试的软件过程完成这个应用程序。 (2)学生证应该包含的信息参考自己的学生证。 (3)为各项操作功能设计一个菜单,应用程序运行后,先显示这个菜单,然后用户通过菜单项选择希望进行的操作项目。 输入要求: (1)应用程序运行后在屏幕上显示一个菜单。用户可以根据需求,选定相应的操作项目。进入每个操作后,根据应用程序的提示信息,从键盘输入相应的信息。程序根据用户输入的信息完成相应的处理,实现要求的功能。 (2)能对输入的数据进行简单的校验,例如,学生的入学时间必须是一个合法的日期格式,学号 4

是唯一的(一个学号对应一条学生证信息)。 输出要求: (1)应用程序运行后,要在屏幕上显示一个菜单。 (2)要求用户输入数据时,给出清晰、明确的提示信息,包括输入的数据内容、格式以及结束方式等。 (3)在程序完成处理后,要清楚地给出程序的处理结果。例如,在给定学号删除学生证信息时,如果该学生不存在,要提示没能删除,如果删除成功要提示删除成功。 实现要求: (1)在程序中使用链表存储学生证信息。 (2)采用模块化程序设计的方法,将程序中的各项功能用函数实现。 提示: (1)使用结构体表示学生证信息,一个结点保存一条学生证信息。 扩展功能: (1)提供一些统计功能。例如统计每个班学生的人数,统计男女生比例。 (2)学生证信息从文件读入。 (3)将学生证信息保存到文件中。

2.学分管理程序 问题描述: 请设计一个学生的学分管理程序,以方便教务部门对学生已完成学分的管理。 假设每位学生必须完成基础课50学分、专业课50学分、选修课24学分、人文类课程8个学分、实验性课程20学分才能毕业。因此在管理学分时,要考虑每个学分所属于的课程类别。其中各类别的课程所完成的学分最多不会超过100分。该程序应该具有以下功能: (1)能从键盘输入某位学生的信息(不包含学分)。 (2)给定学号,显示该学生的所完成的学分。 (3)给定学号,能修改该学生所完成的学分。 (4)给定学号,将学生从程序中删除。 (5)能显示已完成学分可以毕业的学生。 题目要求: (1)按照分析、设计、编码、调试、测试的软件过程完成这个应用程序。 (2)学分信息应该包括学生信息(学号、姓名、班级、入学时间)、基础课学分、专业课学分、选修课学分、人文类课程学分、实验性课程学分。 (3)为各项操作功能设计一个菜单,应用程序运行后,先显示这个菜单,然后用户通过菜单项选择希望进行的操作项目。 输入要求: (1)应用程序运行后在屏幕上显示一个菜单。用户可以根据需求,选定相应的操作项目。进入每个操作后,根据应用程序的提示信息,从键盘输入相应的信息。程序根据用户输入的信息完成相应的处理,实现要求的功能。 (2)能对输入的数据进行简单的校验,例如,学生的学分是[0,100]范围内的数,入学时间必须是合法的日期,学号是唯一的(一个学号对应一个学生的学分信息)。 输出要求: (1)应用程序运行后,要在屏幕上显示一个菜单。 (2)要求用户输入数据时,给出清晰、明确的提示信息,包括输入的数据内容、格式以及结束方式等。 (3)在程序完成处理后,要清楚地给出程序的处理结果。例如,在给定学号修改学生学分时,如果该学生不存在,要提示不能修改,如果修改成功要提示修改成功。 5

实现要求: (1)在程序中使用链表存储学生的学分信息。 (2)采用模块化程序设计的方法,将程序中的各项功能用函数实现。 提示: (1)使用结构体表示学生的学分信息,一个结点保存一条学分信息。 扩展功能: (1)提供一些统计功能。例如统计每个班学生已完成学分可以毕业人数。统计每类别课程的平均学分等。 (2)学生的学分信息从文件读入。 (3)将学生的学分信息保存到文件中。

3.图书登记管理程序 问题描述: 请设计一个图书登记管理程序,以方便图书管理员管理图书馆内的图书,该程序应该具有以下功能: (1)从键盘输入某本图书的信息 (2)给定图书的国际标准书号(ISBN),显示该图书的信息。 (3)给定图书的作者,显示所有该作者所著的图书。 (4)给定国际标准书号(ISBN),修改该图书的信息。 (5)给定国际标准书号(ISBN),删除该图书的信息。 题目要求: (1)按照分析、设计、编码、调试、测试的软件过程完成这个应用程序。 (2)图书信息应该包含国际标准书号、图书名称、图书出版社、图书作者(假设一个作者)、图书价格、出版时间。 (3)为各项操作功能设计一个菜单,应用程序运行后,先显示这个菜单,然后用户通过菜单项选择希望进行的操作项目。 输入要求: (1)应用程序运行后在屏幕上显示一个菜单。用户可以根据需求,选定相应的操作项目。进入每个操作后,根据应用程序的提示信息,从键盘输入相应的信息。程序根据用户输入的信息完成相应的处理,实现要求的功能。 (2)能对输入的数据进行简单的校验,例如,出版时间必须是一个合法的日期格式,国际标准书号是唯一的(一个国际标准书号对应一种图书信息)。 输出要求: (1)应用程序运行后,要在屏幕上显示一个菜单。 (2)要求用户输入数据时,给出清晰、明确的提示信息,包括输入的数据内容、格式以及结束方式等。 (3)在程序完成处理后,要清楚地给出程序的处理结果。例如,在给定国际标准书号删除图书信息时,如果该图书不存在,要提示没能删除,如果删除成功要提示删除成功。 实现要求: (1)在程序中使用链表存储图书信息。 (2)采用模块化程序设计的方法,将程序中的各项功能用函数实现。 提示: (1)使用结构体表示图书信息,一个结点保存一条图书信息。 扩展功能: (1)提供一些统计功能。例如统计每个出版社的图书种类数,统计每个作者的图书种类数。 (2)图书信息从文件读入。