程序设计课程设计任务书.docx
《程序设计课程设计任务书.docx》由会员分享,可在线阅读,更多相关《程序设计课程设计任务书.docx(10页珍藏版)》请在冰豆网上搜索。
程序设计课程设计任务书
程序设计课程
任务书
班级:
学号:
姓名:
成绩:
电子与信息工程学院
计算机科学系
一、目的与要求
(一)设计目的
程序设计课程设计是计算机科学与技术专业和计算机科学与技术(计算机软件)专业学生修完《C/C++及面向对象程序设计》和《数据结构》课程后实践教学中重要的一环,其目的是巩固所学的C/C++语言以及面向对象程序设计知识,进一步掌握面向对象程序设计方法及各种编程技巧,从而培养学生面向对象的程序设计思想,加深对高级语言基本语言要素和控制结构的理解,针对数据结构中的重点和难点内容进行训练,独立完成有一定工作量的程序设计任务,同时强调好的程序设计风格。
设计目的是加深对理论教学内容的理解和掌握,使学生交系统的掌握程序设计及其在实践中的广泛应用中的基本方法及技巧。
为学生综合运用所学知识,进行软件开发和实践应用方面打下一定基础。
(二)基本要求
●按照课程设计要求提交程序设计课程设计报告;
●完成规定系统的设计与开发;
●设计必须根据进度计划按期完成。
二、设计内容及安排
(一)课程设计报告的基本内容
1、概述
1)设计的任务和需要的知识点。
主要阐述所选题目的设计完成哪些任务,指出为完成这些任务都需要哪些知识点和技术。
2)具体完成的设计内容,主要叙述自己完成了哪几个功能模块,每个模块的规模,自己是否有创新点并添加了哪些其他有用的功能,如果有,进行简要说明。
2、总体设计
根据需求,阐述本软件系统的整体设计思路,确定软件系统的体系结构。
1)软件结构设计。
采用自顶向下、逐步细化的方法,将整个软件系统进行逐层分解,并画出该软件系统的总体模块结构图,即进行模块划分,并对主要功能模块进行简要说明。
2)数据结构设计。
主要叙述采用了哪些全局变量、数组、结构体、文件等,以及它们在系统中的作用。
(整个设计小组的概述和总体设计除个别地方外可以相同)
3、详细设计及实现。
主要叙述自己承担部分的那些模块的算法和数据结构,并给出程序调试和测试情况。
1)画出主要模块的算法流程图,配合运行界面抓图和文字说明进行描述。
这部分内容每个学生不得雷同,所占篇幅应最大。
2)叙述对自己设计的模块进行编译以及整个链接时所出现的各种错误,还有这些错误是如何解决的。
这部分内容每个学生不得雷同。
4、结论。
即说明自己设计的程序是否达到了设计题目的要求,功能是否完善,有何特点,有什么不足之处,有何建议和改善等
5、结束语。
即在设计过程中遇到了哪些困难,如何解决的,通过本次课程设计得到了哪些收获,写出心得体会等。
6、程序清单。
列出整个软件系统的程序清单。
程序清单要具有易读性。
7、参考文献。
列出本次课程设计的过程中所使用的参考文献,包括教材、参考书、论文等等。
(二)课程设计程序将完成的基本内容
(1)A类基本题(必做)
题目1、某班有最多不超过30人,每名学生的信息包括:
学号、姓名、英语成绩、数学成绩、计算机成绩。
编程实现如下学生成绩管理系统。
系统各模块的功能说明如下:
模块1:
密码验证模块:
主要实现登陆密码的验证工作。
系统初始密码为123456。
模块2:
录入每个学生的基本信息
模块3:
计算每个学生的的总分和平均分
模块4:
按考生成绩由高到低排出名次表
模块5:
按学号由小到大排出成绩表
模块6:
按学号查询学生排名及其考生成绩
模块7:
按优秀(90~100)、良好(80~89)、中等(70~79)、及格(60~69)、不及格(0~59)5个类别,统计每个类别的学生人数以及所占百分比。
模块8:
输出每个学生的学号、考生成绩、课程总分和平均分
模块9:
退出系统
题目2、实现雇员管理,类Employee需存储雇员的姓名。
这种信息对于所有雇员(包括Employee的派生类的雇员)是很普遍的。
现在假设从雇员类Employee派生出了小时工类HourlyWorker、计件工类PieceWorker、老板类Boss和销售员类CommissionWorker。
小时工每周工作40小时,超过40小时部分的报酬是平时的1.5倍;计件工是按生产的工作件数计算报酬的,每件的报酬是固定的,假设他只生成一种类型的工件,因而类PieceWorker的private数据成员是生产的工件数量和每件的报酬;老板每周有固定的薪水;销售员每周有小部分固定的基本工资加上其每周销售额的固定百分比。
设计和规划该类体系,并分别产生每个基类及派生类对象,并显示该员工的工资。
3、职工信息管理
设计要求实现如下功能:
1)建立职工的基本资料有工号、姓名、性别、出生日期、工资、参加工作时间
和年龄(必须计算得到)
2)根据职工信息表,建立只含有姓名和年龄的职工信息简表
3)使用继承的方法构造3个类,(即雇员类——虚基类,教师类和工人类——派生类)
使用相应的对象放置10个职工信息。
4)编写同名display()成员函数,用来输出数组的内容
5)要求对“<<”和“>>”运算符进行重载。
考虑到输入职工编号时,也会因不小心引入空格,而且名字中也需要有空格,所以重载“>>”运算符时,需要满足这个要求。
参考界面如下:
*******************************************
职工信息管理
*******************************************
*增加一位教师记录
*增加一位工人记录
*显示全部职工信息
*删除一个教师
*删除一个工人
*按姓名检索所以信息
*结束程序运行
4、求二叉树上结点的路径
要求在采用链式存储结构存储的二叉树上,以bt指向根结点,编程实现如下题目要求:
1)p指向任一给定的结点,求出从根节点到给定结点之间的路径。
2)求该二叉树上叶子节点的个数
3)交换该二叉树上左右子树
5、交通咨询系统设计(最短路径问题)
设计一个交通咨询系统,能让旅客咨询从一个城市顶点到另一个城市顶点之间的最短路径(里程)或最低花费或最少时间等问题。
如下图所示的交通图:
求从顶点沈阳到其他各个城市的最短路径
6、内部排序算法的性能分析
要求:
(1)对冒泡排序、直接插入排序、简单选择排序、快速排序、希尔排序、堆排序算法进行比较;
(2)待排序表的表长不小于100,表中数据随机产生,至少用5组不同数据作比较,比较指标有:
关键字参加比较次数和关键字的移动次数(关键字交换记为3次移动);
(3)输出各种算法的排序结果和比较结果。
(二)B类综合题(小组选做一个,参加答辩)
1、通讯录管理系统
编程实现通讯录管理系统,要求该系统能够完成通讯信息的建立、查询、插入、删除等基本功能。
程序运行后至少给出下面7个菜单项的选择并分别实现其功能:
0、通讯录的建立1、通讯录信息输出
2、通讯者结点信息的删除3、通讯者结点信息的查询
4、通讯者结点信息的插入5、通讯录信息更改
6、退出通讯录管理系统
设计的任务要求,通讯录中每个学生的基本信息应包括姓名、地址、电话等基本信息,采用链表存储结构。
2、停车场管理管理
问题描述:
设停车场内只有一个停放n辆汽车的狭长通道,且只有一个大门可供汽车进出。
汽车在停车场内按车辆到达时间的先后顺序依次由北向南排列(大门在最南端,最先到达的第一辆车停放在车场的最北端),若车场内已停满n辆汽车,则后来的汽车只能在门外便道上等候,一旦有车开走,则排在便道上的第一辆车即可开入;当停车场内的某辆车要离开时,在它之后开入的车辆必须先退出车场为它让路,待该辆车开出大门外时,其他车辆再按原次序进入车场,每辆停放在车场的车在它离开停车场时必须按停留的时间长短缴纳费用,。
试为停车场编制按上述要求进行管理的模拟程序。
基本要求:
以栈模拟停车场,以队列模拟车场外的便道,按照从终端读入的输入数据序列进行模拟管理。
每一组输入数据包括3个数据项:
即汽车“到达”或“离去”信息、汽车牌照号码以及汽车到或离的时刻,对每一组输入数据进行操作后的输出数据为:
若是车辆到达,则输出汽车在停车场内或便道上的停车位置;若车辆离去,则输出汽车在停车场内停留的时间和应缴纳的费用(在便道上停留的时间不收费)。
栈以顺序结构实现,队列以链队列实现。
测试数据:
假设有4辆车,输入数据为(‘A’,1,5)、(‘A’,2,10)、(‘D’,1,15)、(‘A’,3,20)、(‘A’,4,25)、(‘D’,2,35)、(‘D’,4,40)、(‘E’,0,0)。
其中:
‘A’表示到达;‘D’表示离去;‘E’表示输入结束。
4、设计一个自己的字符串类String
为了和C++提供的string类区别,这里使用String。
构造一种字符串的更高层次的描述:
1)各种串的操作(子串操作、串复制,串链接)都应当对字符串的界限进行检查和处理,这对于保证程序的安全性很有意义。
2)以复制方式实现串赋值,避免不同指针共享字符串的情况,提高数据的独立性。
3)用各种合适的操作符号定义字符串的操作(例如使用==、>=、<等)
4)定义一些高层次的操作,例如模式匹配
5、航班信息的查询与检索
要求对飞机航班信息进行排序和查找。
可按航班的航班号、起点站、到达站、起飞时间以及到达时间等信息进行查询。
可采用基数排序法对一组具有结构特点的飞机航班号进行排序,利用二分查找法对排好序的航班记录按航班号实现快速查找,按其他次关键字的查找可采用最简单的顺序查找方法进行。
以下是航班信息表:
航班号
起点站
终点站
班期
起飞时间
到达时间
机型
票价
CA1544
合肥
北京
1,2,3,1
1055
1240
733
960
MU5341
上海
广州
每日
1430
1615
M90
1280
CZ3869
重庆
深圳
2,4,6
0855
1035
733
1010
MU3682
桂林
南京
2,3,4,6,7
2050
2215
M90
1380
HU1836
上海
北京
每日
0940
1120
738
1250
CZ3528
成都
厦门
1,3,4,57
1510
1650
CRJ
1160
MU4594
昆明
西安
1,3,5,6
1015
1140
328
1060
其中航班号一项的格式为:
K0
K1
K2
K3
K4
K5
C
Z
3
8
6
9
其中k0和k1的输入值是航空公司的别称,用两个大写字母表示,后4位是航班编号,这种航班编号关键字分为两段:
即字母和数字。
除了票价为数值型外,其他均定义为字符串型即可。
系统主菜单:
1航班信息的录入
2航班信息的查询
查询子系统的菜单如下所示:
*******************
*航班信息查询系统*
*******************
*1航班号*
*2起点站*
*3终点站*
*4起飞时间*
*5到达时间*
*0退出系统*
********************
三、课程设计班级
计算14-1、2、3、4、5、6班
四、课程设计时间
2016年6月15日~2016年7月1日
五、课程设计报告及程序上交时间
2016年7月1号
六、考核方法及成绩评定
1.平时成绩占总成绩20%,若迟到(扣2分)、旷课(3分)将相应扣分,3次不到成绩为零分。
2.程序和答辩占总成绩50%,按各同学完成情况给分。
3.课程设计报告占总成绩30%,不得抄袭,否则总成绩按0分计。
七、指导教师
彭晏飞、汪赫瑜、李鑫、贾迪、崔彩峰、丛鑫
八、教师职责
对学生授课、考勤、辅导、考核完成情况。
1、概述
2、总体设计
3、详细设计
4、结论
5结束语
6、程序清单
7、参考文献