淮阴工学院2010级计算机科学与技术专业软件工程方向Project1(C#+数据结构) 课程设计指导书夏森江波淮阴工学院计算机工程学院2010 年 9 月目录:1.Project1(C#+数据结构)课程设计要求2.Project1(C#+数据结构)课程设计题目1. 学生管理系统2. 图书馆管理系统3. 航空售票处的服务系统4. 跳马问题5. 运动会6. 建通讯录7. 用扑克牌实现24点游戏8. 哈夫曼编码/译码器9. 一元稀疏多项式计算器10. 停车场管理11. 停车场管理12. 火车订票系统13. 五子棋14. 迷宫问题15. 八皇后问题16. 无向图应用问题17. 中国象棋18. 二叉排序树。
用二叉链表作存储结构。
19. 二叉排序树。
用顺序表(一维数组)作存储结构20. 图的基本操作与实现21. 井字过三关22. 银行财务实时处理系统(二叉排序树的应用)23. 全国交通咨询模拟24. 散列表的设计与实现25. 背包问题的求解26. 内部排序算法的性能分析28. 哈夫曼编码/译码器29. 改进约瑟夫(Joseph)环问题30. 疏矩阵的操作31.表达式翻译32.文章编辑33.关键路径问题34.以队列实现的仿真技术预测理发馆的经营状况35.救护车调度模拟系统3.Project1(C#+数据结构)课程设计任务流程4.Project1(C#+数据结构)课程设计学生提交的内容5.成绩评定方法6.参考文献样例一.Project1(C#+数据结构)课程设计要求学生必须仔细阅读《Project1(C#+数据结构)》课程设计方案,认真主动完成课程设计的要求。
有问题及时主动通过各种方式与教师联系沟通。
学生要发挥自主学习的能力,充分利用时间,安排好课程设计的时间计划,设计程序并调试。
在课程设计周,主要是进行课程设计的答辩工作,期间也继续进行的调试与完善工作,上机时数通常为12~15小时。
Project1(C#+数据结构)是一门涉及多门课程的课程,难度较大,需要较好的C/C++语言的程序设计和调试能力,如果学生能够按照要求,从时间和精力上保证完全的投入,相信能够有很大的收获,几分投入几分收获。
二.Project1(C#+数据结构)课程设计题目每组至少完成一个课题,多完成可加附加分。
1.学生管理系统(7)包括:主控程序、学生档案管理子系统、学生成绩管理子系统、学生宿舍管理子系统人数:2人要求:实用,各模块自成系统2.图书馆管理系统,包括:图书管理子系统、图书借阅子系统、还书子系统、借阅人管理子系统、图书报损子系统等(8)【基本要求】(1)每种书的登记内容包括书号、书名、著作者、现存量和库存量;(2)对书号建立索引表(线性表)以提高查找效率;(3)系统主要功能如下:*采编入库:新购一种书,确定书号后,登记到图书帐目表中,如果表中已有,则只将库存量增加;*借阅:如果一种书的现存量大于0,则借出一本,登记借阅者的书证号和归还期限,改变现存量;*归还:注销对借阅者的登记,改变该书的现存量。
人数:3人要求:实用3.航空售票处的服务系统(7)任务:通过此系统可以实现如下功能:(1)录入:可以录入航班情况(数据可以存储在一个数据文件中,数据结构、具体数据自定)(2)查询:可以查询某个航线的情况(如,输入航班号,查询起降时间,起飞抵达城市,航班票价,票价折扣,确定航班是否满仓);(3)可以输入起飞抵达城市,查询飞机航班情况;(4)订票:(订票情况可以存在一个数据文件中,结构自己设定)可以订票,如果该航班已经无票,可以提供相关可选择航班;(5)退票:可退票,退票后修改相关数据文件;客户资料有姓名,证件号,订票数量及航班情况,订单要有编号。
(6)修改航班信息:当航班信息改变可以修改航班数据文件。
要求:根据以上功能说明,设计航班信息,订票信息的存储结构,设计程序完成功能。
4. 跳马问题,就是64个国际象棋格子,任意位置放一个马,如何不重复地把格子走完。
(8)人数:1人要求:实用5. 运动会(7)题目描述:参加运动会的N个学校编号为1—N。
比赛分为M个男子项目和W个女子项目,项目编号分别为1—M和M+1—M+W。
由于各项目的参加人数差别较大,有些项目取前五名,得分顺序为7,5,3,2,1;还有些项目只取前三名,得分顺序为5,3,2。
写一个统计程序产生各种成绩单和得分报表。
基本要求:产生各校的成绩单,内容包括各学校所取得每项成绩的项目号,名次(成绩),姓名和得分;产生团体总分报表,内容包括校号,男子团体总分,女子团体总分和团体总分。
测试数据:对于N=4,M=3,W=2,编号为奇数的项目取前5名,编号为偶数的项目取前3名,设计一组实例数据。
提示:可以假设N小于等于20,M小于等于30,W小于等于20,姓名长度不超过20个字符。
每个项目结束时,将其编号,类型符(区分取前5名还是3名)输入,并按名次顺序输入运动员姓名,校号(和成绩)。
人数:2人要求:实用6. 建通讯录(7)要求:第一个模块——主函数main()的功能是:根据选单的选项调用各函数,并完成相应的功能。
第二个模块——Menu()的功能是:显示英文提示选单。
第三个模块——Quit()的功能是:退出选单。
第四个模块——Create()的功能是:创建新的通讯录。
第五个模块——Add()的功能是:在通讯录的末尾,写入新的信息,并返回选单。
第六个模块——Find()的功能是:查询某人的信息,如果找到了,则显示该人的信息,如果未找到,则提示通讯录中没有此人的信息,并返回选单。
第七个模块——Alter()的功能是:修改某人的信息,如果未找到要修改的人,则提示通讯录中没有此人的信息,并返回选单。
第八个模块——Delete()的功能是:删除某人的信息,如果未找到要删除的人,则提示通讯录中没有此人的信息,并返回选单。
第九个模块——List()的功能是:显示通讯录中的所有记录。
人数:2人要求:实用7. 用扑克牌实现24点游戏。
(8)人数:1人要求:实用8. 哈夫曼编码/译码器1(8)【问题描述】设计一个利用哈夫曼算法的编码和译码系统,重复地显示并处理以下项目,直到选择退出为止。
【基本要求】(1)初始化:键盘输入字符集大小n、n个字符和n个权值,建立哈夫曼树;(2)编码:利用建好的哈夫曼树生成哈夫曼编码;(3)输出编码;(4)译码功能;(5)设字符集及频度如下表:字符空格 A B C D E F G H I J K L M频度 186 64 13 22 32 103 21 15 47 57 1 5 32 20字符 N O P Q R S T U V W X Y Z频度 57 63 15 1 48 51 80 23 8 18 1 16 1【选做内容】(1) 显示哈夫曼树;(2) 界面设计的优化。
(3) 哈夫曼编码/译码均用二进制处理。
(10)9. 一元稀疏多项式计算器(8)【问题描述】设计一个一元多项式加法器。
【基本要求】(1)输入并建立多项式;(2)两个多项式相加;(3)输出多项式:n, c1, e1, c2, e2, …cn , en, 其中,n是多项式项数,ci和ei分别是第i 项的系数和指数,序列按指数降序排列。
(4)计算多项式在x处的值;(5)求多项式的导函数。
人数:2人要求:实用10. 停车场管理1(8)设有一个可以停放n辆汽车的狭长停车场,它只有一个大门可以供车辆进出。
车辆按到达停车时间的早晚依次从停车场最里面向大门口停放(最先到达的第一辆车放在停车场的最里面)。
如果停车场已放满n辆车,则后来的车辆只能在停车场大门外的便道上等待,一旦停车场内有车开走,则排在便道上的第一辆车就进入停车场。
停车场内如有某辆车要开走,在它之后近来的车都必须先退出停车场为它让路,待其开出停车场后,这些车辆再依原来的次序进场。
每辆车在离开停车场时,都应根据它在停车场内停留的时间长短交费。
如果停留在便道上的车未进停车场就要离去,允许其离去,不收停车费,并且仍然保持在便道上等待的车辆的次序。
编制一程序模拟停车场管理。
实现提示:汽车的模拟输入信息格式可以是:(到达/离去,汽车牌照号码,到达/离去的时刻)。
例如:('A',1,5)表示一号牌照车爱5这个时刻到达,而('D',5,20)表示5号牌照车在20这个时刻离去,整个程序可以在输入信息为('E',0,0)时结束。
基本要求:要求程序输出每辆车到达后的停车位置(停车场或便道上),以及某辆车离开停车场时应交纳的费用和它在停车场内停留的时间。
人数:1人要求:实用11. 停车场管理2(9)(1)有一个两层的停车场, 每层有6个车位, 当第一层车停满后才允许使用第二层. ( 停车场可用一个二维数组实现, 每个数组元素存放一个车牌号 ) 每辆车的信息包括车牌号,层号, 车位号, 停车时间共4项. 其中停车时间按分钟计算(2)假设停车场初始状态为第一层已经停有4辆车, 其车位号依次为1—4 , 停车时间依次为20, 15, 10 , 5 . 即先将这四辆车的信息存入文件”car.dat”中( 数组的对应元素也要进行赋值 )(3)停车操作: 当一辆车进入停车场时, 先输入其车牌号, 再为它分配一个层号和一个车位号(分配前先查询车位的使用情况, 如果第一层有空则必须停在第一层), 停车时间设为5 , 最后将新停入的汽车的信息添加文件”car.dat”中, 并将在此之前的所有车的停车时间加5.(4)收费管理(取车): 当有车离开时, 输入其车牌号, 先按其停车时间计算费用, 每5分钟0.2元. (停车费用可设置一个变量进行保存), 同时从文件”car.dat”中删除该车的信息, 并将该车对应的车位设置为可使用状态(即二维数组对应元素清零). 按用户的选择来判断是否要输出停车收费的总计.(5)输出停车场中全部车辆的信息.(6)退出系统.人数:2人要求:实用12. 火车订票系统(8)要求:有订票子系统、售票子系统、退票子系统、统计子系统、查询子系统、生成数据子系统人数:3人要求:实用13. 五子棋(9)要求:人机对战人数:2人要求:实用14. 迷宫问题(7.5)问题描述:迷宫实验是取自心理学的一个古典实验。
在该实验中,把一只老鼠从一个无顶大盒子的门放入,在盒中设置了许多墙,对行进方向形成了多处阻挡。
盒子仅有一个出口,在出口处放置一块奶酪,吸引老鼠在迷宫中寻找道路以到达出口。
对同一只老鼠重复进行上述实验,一直到老鼠从入口到出口,而不走错一步。
老鼠经多次试验终于得到它学习走迷宫的路线。
设计一个计算机程序对任意设定的迷宫,求出一条从入口到出口的通路,或得出没有通路的结论。
要求:在给出入口和出口的前提下,给出动态的迷宫行走路线。