程序设计课程设计
任 务 书
班 级: 学 号: 姓 名: 成 绩:
电子与信息工程学院
计算机科学系
— 1 —
一、目的与要求
(一)设计目的
程序设计课程设计是计算机科学与技术专业和计算机科学与技术(计算机软件)专业学生修完《C/C++及面向对象程序设计》和《数据结构》课程后实践教学中重要的一环,其目的是巩固所学的C/C++语言以及面向对象程序设计知识,进一步掌握面向对象程序设计方法及各种编程技巧,从而培养学生面向对象的程序设计思想,加深对高级语言基本语言要素和控制结构的理解,针对数据结构中的重点和难点内容进行训练,独立完成有一定工作量的程序设计任务,同时强调好的程序设计风格。设计目的是加深对理论教学内容的理解和掌握,使学生交系统的掌握程序设计及其在实践中的广泛应用中的基本方法及技巧。为学生综合运用所学知识,进行软件开发和实践应用方面打下一定基础。 (二)基本要求
? 按照课程设计要求提交程序设计课程设计报告; ? 完成规定系统的设计与开发;
? 设计必须根据进度计划按期完成。
二、设计内容及安排
(一)课程设计报告的基本内容
1、概述
1)设计的任务和需要的知识点。主要阐述所选题目的设计完成哪些任务,指出为完成这些任务都需要哪些知识点和技术。
2)具体完成的设计内容,主要叙述自己完成了哪几个功能模块,每个模块的规模,自己是否有创新点并添加了哪些其他有用的功能,如果有,进行简要说明。
2、总体设计
根据需求,阐述本软件系统的整体设计思路,确定软件系统的体系结构。
1)软件结构设计。采用自顶向下、逐步细化的方法,将整个软件系统进行逐层分解,并画出该软件系统的总体模块结构图,即进行模块划分,并对主要功能模块进行简要说明。
2)数据结构设计。主要叙述采用了哪些全局变量、数组、结构体、文件等,以及它们在系统中的作用。(整个设计小组的概述和总体设计除个别地方外可以相同)
3、详细设计及实现。
主要叙述自己承担部分的那些模块的算法和数据结构,并给出程序调试和测试情况。 1)画出主要模块的算法流程图,配合运行界面抓图和文字说明进行描述。这部分内容
— 2 —
每个学生不得雷同,所占篇幅应最大。
2)叙述对自己设计的模块进行编译以及整个链接时所出现的各种错误,还有这些错误是如何解决的。这部分内容每个学生不得雷同。
4、结论。
即说明自己设计的程序是否达到了设计题目的要求,功能是否完善,有何特点,有什么不足之处,有何建议和改善等
5、结束语。
即在设计过程中遇到了哪些困难,如何解决的,通过本次课程设计得到了哪些收货,写出心得体会等。
6、程序清单。列出整个软件系统的程序清单。程序清单要具有易读性。
7、参考文献。列出本次课程设计的过程中所使用的参考文献,包括教材、参考书、论文等等。
(二)课程设计程序将完成的基本内容 (1)A类基本题(必做)
1、已知一个链表中存储了若干名学生的信息,每名学生的信息包括:学号、英语成绩、数学成绩、计算机成绩。
现编写一个函数search(),要求对输入的无序学号进行排序,然后采用折半查找方法查找输入学生学号,并输出该学生各科成绩。
2、设计一个学生类(CStudent),它具有私有数据成员是:学号、姓名、数学、外语和计算机课程的成绩。要求能实现求三门课总成绩和平均成绩,并能设置和显示学生信息 (类声明和成员函数定义分离)。设计一个友元函数,按照成绩从高到低的顺序输出姓名、学号和成绩信息。
3、实现雇员管理,类Employee需存储雇员的姓名。这种信息对于所有雇员(包括Employee的派生类的雇员)是很普遍的。现在假设从雇员类Employee派生出了小时工类HourlyWorker、计件工类PieceWorker、老板类Boss和销售员类CommissionWorker。小时工每周工作40小时,超过40小时部分的报酬是平时的1.5倍;计件工是按生产的工作件数计算报酬的,每件的报酬是固定的,假设他只生成一种类型的工件,因而类PieceWorker的private数据成员是生产的工件数量和每件的报酬;老板每周有固定的薪水;销售员每周有小部分固定的基本工资加上其每周销售额的固定百分比。设计和规划该类体系,并分别产生每个基类及派生类对象,并显示该员工的工资。
— 3 —
4、约瑟夫生死者游戏
每30个旅客同乘一条船,因为严重超载,加上风高浪大,危险万分;因此船长告诉乘客,只有将全船一半的旅客投入海中,其余人才能幸免遇难。无奈,大家只得同意这种办法,并议定30个人围成一圈,由第一个人数起,依次报数,数到第9人,便把他投入大海中,然后再从他的下一个人数起,数到第9人,再将他扔进大海中,如此循环地进行,直到剩下15个乘客为止。问哪些位置是将是被扔下大海的位置。
5、求二叉树上结点的路径
要求在采用链式存储结构存储的二叉树上,以bt指向根结点,p指向任一给定的结点,编程实现求出从根节点到给定结点之间的路径。 6、图的操作
(1)写出将一个无向图的邻接矩阵转换成邻接表的算法
(2)设计一个算法,判断无向图G是否连通。若连通则返回1; 返回0。
7、内部排序算法的性能分析
要求:(1)对冒泡排序、直接排序、简单选择排序、快速排序、希尔排序、堆排序算法进行比较;
(2)待排序表的表长不小于100,表中数据随机产生,至少用5组不同数据作比较,比较指标有:关键字参加比较次数和关键字的移动次数(关键字交换记为3次移动);
(3)输出各种算法的排序结果和比较结果。 (二)B类综合题(小组选做一个,参加答辩) 1、文件操作
编程实现学生成绩管理,以文件形式存储学生的多门课程成绩,程序运行后至少给出下面菜单项的选择并分别实现其功能:
0、 学生基本信息的建立(学号、姓名) 1、大学英语成绩录入 2、 大学物理成绩录入 3、电子电路成绩录入
— 4 —
4
1
3
2
5
4、 C语言程序设计成绩录入 5、成绩统计 6、 退出成绩录管理系统 (复习c语言文件操作)
2、通讯录管理系统
编程实现通讯录管理系统,要求该系统能够完成通讯信息的建立、查询、插入、删除等基本功能。程序运行后至少给出下面7个菜单项的选择并分别实现其功能:
0、 通讯录的建立 1、通讯录信息输出 2、 通讯者结点信息的删除 3、通讯者结点信息的查询
4、 通讯者结点信息的插入 5、通讯录信息更改 6、 退出通讯录管理系统
设计的任务要求,通讯录中每个学生的基本信息应包括姓名、地址、电话等基本信息,采用链表存储结构。(复习c语言结构体和链表知识) 3、学生成绩管理系统
开发一个学生成绩管理系统,满足如下要求:
1) 本系统应具有:数据维护(包括数据录入、添加、修改、删除)、数据查询(可按学号、姓名等查询或者组合查询,且至少给出一种查询方式)、统计并输出、退出等功能。
2)有关信息应保存在文件中。 3)可增加其他有用的功能。 4、 职工信息管理 设计要求实现如下功能:
1)建立职工的基本资料有工号、姓名、性别、出生日期、工资、参加工作时间 和年龄(必须计算得到)
2)根据职工信息表,建立只含有姓名和年龄的职工信息简表
3)使用继承的方法构造3个类,(即雇员类——虚基类,教师类和工人类——派生类) 使用相应的对象放置10个职工信息。
4)编写同名display()成员函数,用来输出数组的内容
5)要求对“<<”和“>>”运算符进行重载。考虑到输入职工编号时,也会因不小心引入空格,而且名字中也需要有空格,所以重载“>>”运算符时,需要满足这个要求。
参考界面如下:
*******************************************
— 5 —
百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说教育文库程序设计课程设计任务书2014级在线全文阅读。
相关推荐: