目录
项目1:计算机设计大赛赛事统计
一.问题重述
【问题描述】
参加计算机设计大赛的n个学校编号为1~n,赛事分成m个项目,项目的编号为1~m.比赛获奖按照得分降序,取前三名,写一个统计程序产生各种成绩单和得分报表。
【基本要求】
1)每个比赛项目至少有10支参赛队;每个学校最多有6支队伍参赛;
2)能统计各学校的总分;
3)可以按照学校编号或名称,学校的总分、各项目的总分排序输出;
4)可以按学校编号查询学校某个项目的获奖情况;可以按项目编号查询取得前三名的学校;
5)数据存入文件并能随时查询
【设计要求】
1)输入数据形式和范围:可以输入学校的名称,赛事项目的名称。
2)输出形式:有中文提示,各学校分数为整数
3)界面要求:交互设计要合理,每个功能可以设立菜单,根据提示,完成相关功能的要求。
4)存储结构:学生自己根据系统功能要求自己设计,但是赛事相关数据要存储在文件中。
【实现提示】
假设3<赛事项目数量<=10,学校名称长度不超过20个字符。每个赛事结束时,将其编号、名称输入,并依次输入参赛学校编号、学校名称和成绩。
二.问题分析
每个学校的每个参赛队伍只能参加一个赛事项目,(默认:每个学校每参加一个赛事项目只能派出一个参赛队伍),所以至少需要10m个参赛队伍,至少10m/6个学校、
数据结构分析:
1.学校类:学校名称、编号,参赛队、每个参赛队参加的赛事项目以及成绩、总分,输入、输出、排序
2.赛事类:项目名称、编号,参赛学校及其队伍、取得的成绩,输入、输出、排序
功能设计:
输入功能:输入赛事项目编号、名称,然后依次输入参赛学校编号、名称及成绩
存储功能:赛事相关数据存储在文件中
排序功能:
1.学校按总分排序的排名情况
2.学校在各项目中按分数排序的排名情况
查询功能:
1.按照学校编号或名称查询,输出该学校的总分和参加项目的分数情况
2.按照项目编号查询,输出前三名的学校的编号和名称
3.按照学校编号查询,然后按照项目编号查询,输出该学校该项目的获奖情况
项目2:校园导游咨询
一.问题重述
【问题描述】 设计一个校园导游程序,为来访的客人提供各种信息查询服务。
【基本要求】 (1) 设计你所在学校的校园平面图,所含景点不少于10个.以图中顶点表示校内各景点,存放景点名称、代号、简介 等信息;以边表示路径,存放路径长度等相关信息。 (2) 为来访客人提供图中任意景点相关信息的查询。 (3) 为来访客人提供图中任意景点的问路查询,即查询任意两个景点之间的一条最短的简单路径。
【测试数据】 以江苏科技大学长山校区为例。
【实现提示】 一般情况下,校园的道路是双向通行的,可设校园平面图是一个无向网,顶点和边均含有相关信息.
二、问题分析
对用户可能会需要的功能分析。比如用户对景点的位置查询、简介、代号等信息以及到目的地的最短路径等信息的查询。所以程序需对地图中的景点进行相关处理以及每个景点之间的路径长度输出及其每个景点之间的最短路径输出。
三、数据结构分析
由于是对地图中的景点及其之间的路径则考虑使用无向图实现该功能。
六、实现思路
1.信息查询:
用户通过输入景点名后从无向图的邻接表中找到该景点后输出该景点的相关信息。若未找到则输出无相关景点信息
2.最短路径查询
通过景点之间的权值,使用Dijkstra算法后可输出最短路径的具体道路
项目3:算术表达式求解、
一.问题重述
【问题描述】 设计一个简单的算术表达式计算器。
【基本要求】 实现标准整数类型的四则运算表达式的求值(包含括号,可多层嵌入).
【测试数据】 (30+2*70)/3-12*3 5+(9*(62-37)+15)*6 要求自行设计非法表达式,进行程序测试,以保证程序的稳定运行。
二.问题分析
运算符带有括号,需要符号优先级判断。
需要进行多项式计算
三.数据结构分析
1.初始化两个栈:运算符栈sign和储存中间结果的栈num;
2.从左至右扫描中缀表达式;
3.遇到操作数时,将其压num;
4.遇到运算符时,比较其与sign栈顶运算符的优先级: