vc++课程设计题目.doc

上传人:飞****2 文档编号:56199277 上传时间:2022-11-01 格式:DOC 页数:25 大小:106KB
返回 下载 相关 举报
vc++课程设计题目.doc_第1页
第1页 / 共25页
vc++课程设计题目.doc_第2页
第2页 / 共25页
点击查看更多>>
资源描述

《vc++课程设计题目.doc》由会员分享,可在线阅读,更多相关《vc++课程设计题目.doc(25页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、VC+程序课程设计说明书一、 设计任务与要求VC+程序课程设计是计算机科学与技术各专业本科生在完成VC+程序设计课程学习后进行的一门专业实践课程,是培养学生综合运用所学知识解决专业相关问题的重要环节,是对学生实际工作能力的具体训练和考察过程。本次课程设计的题目均采用VC语言来开发。希望题目简单到学生可以独立完成,又可以达到锻炼学生编写复杂程序的课程设计目的。最重要的是希望能避免抄袭,让学生真正锻炼自我。要求每个学生必须参加,并完成如下各项课程设计任务:1. 要求每个学生认真阅读本VC语言课程设计说明书,理解课程设计的目的和任务。2. 要求学生通过自学理解和掌握本说明书附录2中给出的程序实例,读

2、懂其中程序的设计功能,设计思想,设计结构,设计技巧,设计的不足等情况,提高阅读较大并且较为复杂程序源代码的能力,也可以通过实例理解本次课程设计要求的设计任务的规模和难度。3. 要求每个学生根据自己的实际情况选择2个题目,实际动手完成这个题目,编写出程序代码,并调试通过。4. 每个同学选择的2个题目,原则上不允许多名同学选择同一个题目。多名同学选择同样题目时,独立完成,程序代码不可相同。5. 要求每个学生完成课程设计后撰写VC+课程设计报告,可以按照任务书后面附带的课程设计报告模版的格式实际撰写。6. 要求每位学生必须在上机前做好充分准备,每次上机必须目的明确,必须事先编写好程序代码,然后在规定

3、的时间和地点上机调试。二、 学生选题原则1.学生根据自身情况选择其中题目,抽取其中两道题目,原则不得选择同一类题目,作为课程设计选题,最终确定题目。2. 允许学生在给出可供选择题目之外自己选择题目,但要经指导教师同意。3.允许两名学生共同选择第二部分及第三部分的综合题目,并共同完成。4.题目不可为同一类题目,应有算法和应用不同的题目。三、 课程设计实施过程 1.在课程设计开始时,公布此课程设计说明书。2教师根据需要安排合适的时间、地点进行答疑。3教师要认真检查学生完成的程序进展情况。4. 教师要指导学生撰写符合规范的VC+课程设计报告书。5每个学生必须参加课程设计答辩,针对课程设计的内容回答提

4、问。 四、检查考核办法首先检查完成后的程序能否正常运行和得出希望的结果,程序检查通过后再检查所撰写的VC+课程设计报告书, 最后参加课程设计答辩,根据报告的质量及面试的结果给出学生课程设计的成绩。五、考核评分标准: 1.完成质量较好,即可评定为优秀;完成质量尚可但有明显不足,可以评为良好;完成质量一般,成绩为中等;完成质量较差,成绩为及格;没有完成,成绩为不及格。2. 成绩评定由指导教师提出初步建议;成绩评为优秀和不及格的,要参加由系组织的统一答辩,答辩组给出最后成绩。3. 如果发现两名或更多同学的课程设计相同部分过多,特别是程序的源代码相同部分达到或超过90%,则认定为抄袭,成绩评定为不及格

5、。如果发现与现有技术书籍或网上资料相同部分过多,特别是程序的源代码相同部分达到或超过80%,也认定为抄袭,成绩评定为不及格。允许参考同学的工作,允许参考现有技术书籍或网上的资料,但要有自己的不同或改进之处,可以利用已有程序的代码,但要自己重新组织,调试通过并对程序理解正确。4.附录1中第四部分为加分题,每道题目可加10分。附录1 供选择的C语言程序课程设计题目 (一)算法设计类题目1横向绘制余弦曲线 在屏幕上用*横向显示0360度的cos(x)曲线。此题关键在于余弦曲线在0360度的范围内,一行要显示两个点。考虑到cos的对称性,将屏幕的行方向定义为x,列方向定义为y,则0180度的图形是左右

6、对称的。若将图形的总宽度定义为62列,计算出x行0180度时y点的坐标m,那么在同一行与之对称的180360度的y点的坐标就应为62m。程序中利用反余弦函数acos计算坐标(x,y)的对应关系。2绘制余弦曲线和直线在屏幕上显示0360度的cos(x)曲线与直线f(x)=45*(x-1)+31的迭加图形。其中cos图形”*”表示,f(x)用”+”表示,在两个图形交叉点处则用f(x)图形的符号。图形迭加的关键是要在分别计算出同一行中两个图形的列方向点坐标后,正确判断相互的位置关系。为此,可以先判定图形的交点,再分别控制打印不同的图形。3模拟人工洗牌 编写一个模拟人工洗牌的程序,将洗好的牌分别发给四

7、个人。使用结构card 来描述一张牌,用随机函数来模拟人工洗牌的过程,最后将洗好的52张牌顺序分别发给四个人。对每个人的牌要按桥牌的规则输出。即一个人的牌要先按牌的花色(顺序为梅花、方块、红心和黑桃)进行分类,同一类的牌要再按A、K、Q、J、3、2牌的大小顺序排列。另发牌应按四个人的顺序依次分发。注:C+随机数函数有:void srand(unsigned seed) 4. 用户猜测藏物位置:计算机在n行n列(行号为0到n-1,列号为0到n-1)的“棋盘”的某一位置处“藏放一物件”(具体位置通过使用“rand()%10”来随机产生);用户通过输入行列号来“寻找”该物件;若没猜对时计算机要告诉用

8、户与藏放物件的位置有多远(取整后的近似距离)。5. 编程序,让计算机来猜测用户“暗记”的某张扑克牌:计算机从一副扑克牌(54张)中任意抽出27张,摆放在不同的三行上(每行9张),用户“暗记”某张纸牌,而后告诉计算机所“暗记”的那张纸牌处于哪一行中;之后计算机再两次将纸牌重新摆放,并让用户再回答两次相同的提问(那张纸牌在重新摆放后又处在哪一行上);此时计算机会将用户所“暗记”的那张纸牌给挑出来。例如,程序执行后的屏幕显示结果可设计为(其中的前缀a、b、c、d代表四种不同的花色):-Line 1: c-9 d-3 a-7 d-9 a-9 c-3 b-8 a-A d-7Line 2: b-10 a-

9、Q d-6 b-4 a-3 b-9 b-K c-A d-8Line 3: KING2 d-A b-A a-4 a-2 b-7 d-5 c-7 a-8-Remember a card, and tell me what line it reside in(1/2/3): 3-Line 1: c-9 d-3 a-7 b-10 a-Q d-6 KING2 d-A b-ALine 2: d-9 a-9 c-3 b-4 a-3 b-9 a-4 a-2 b-7Line 3: b-8 a-A d-7 b-K c-A d-8 d-5 c-7 a-8-What line the card you remembe

10、red reside in now (1/2/3) : 1-Line 1: c-9 b-10 KING2 d-9 b-4 a-4 b-8 b-K d-5Line 2: d-3 a-Q d-A a-9 a-3 a-2 a-A c-A c-7Line 3: a-7 d-6 b-A c-3 b-9 b-7 d-7 d-8 a-8-What line the card you remembered reside in now (1/2/3) : 1-Your remembered card is : KING2 6. 编写程序求解骑士巡游问题:在n行n列的棋盘上(如n=5),假设一位骑士(按象棋中“马

11、走日”的行走法)从初始坐标位置(x1,y1)出发,要遍访(巡游)棋盘中的每一个位置一次。请编一个程序,为骑士求解巡游“路线图”(或告诉骑士,从某位置出发时,无法遍访整个棋盘 问题无解)。当n=5时,意味着要在5行5列的棋盘的25个“点”处,按骑士行走规则,依次将1至25这25个“棋子”(数码)分别摆放到棋盘上(摆满25个位置则成功,否则失败问题无解)。例如,当n=5且初始坐标位置定为(1,1) 即最左上角的那个点时,如下是一种巡游“路线图”。程序执行后的输出结果为:(x1,y1)? = (1=5, 1=5) : 1 1 1 6 15 10 21 14 9 20 5 16 19 2 7 22 1

12、1 8 13 24 17 4 25 18 3 12 23提示:(1)“棋盘”可用二维数组B表示。(2)编制一个具有如下原型的递归函数solve,用于完成任务:从(i,j)点出发,做第k至第n*n(即n的平方)次的移动 将k直到n的平方这些数码按规则分别摆放到棋盘即数组B中,若成功则通过引用参数ok返回true,否则返回false。void solve(int i, int j, int k, bool& ok);(3)编制主函数,让用户输入作为巡游起点的初始坐标位置(x1,y1),在该处摆放“棋子”(数码)1,而后进行调用“solve(x1, y1, 2, ok);”来完成所求任务。7. 编写

13、程序对八皇后问题进行求解:在8行8列的棋盘上放置8个皇后,使任一个皇后都不能吃掉其他的7个皇后(注:皇后可吃掉与她处于同行或同列或同一对角线上的其他棋子),并将结果以某种方式显示出来。例如,当求出下述的一个解时,可输出如下信息来表示该解(输出了表示摆放皇后的坐标位置以及“棋盘状态” 棋盘中有皇后的位置放一个“Q”字符,其他位置为“+”字符)。(1,1) (5,2) (8,3) (6,4) (3,5) (7,6) (2,7) (4,8)Q + + + + + + + + + + + + Q + + + + Q + + + + + + + + + Q+ Q + + + + + + + + Q +

14、+ + + + + + + Q + + + Q + + + + +提示:(1) 通过“int LineNum9; bool a9, b15, c15;”说明具有全局作用域的4个数组。其中的:LineNumi表示第i列的皇后要放的行位置(只用其中的列号1到8);ai为true(i =1,2,8)表示第i行上尚未放皇后;bi为true(i =0,1,2,14)表示第i条斜对角线上尚未放皇后(斜对角线指的是“/”状对角线,该对角线上各点的行列号之和i+j为一个常数);ci为true(i=0,1,2,14)表示第i条反斜对角线上尚未放皇后(反斜对角线指的是“”状对角线,该对角线上各点的行列号之差i-j

15、为一个常数)。从而当使用语句“if ( aj & bi+j-2 & ci-j+7 ) LineNumi=j;”时,可用于判断并实现:如果在第j行的第i列上放置皇后安全的话,则将一枚皇后放置到那儿。(2)编制一个具有如下原型的递归函数solve,它负责往第i列开始的连续8-i+1列上均放上皇后,若成功则通过引用参数ok返回true(否则返回false)。void solve(int i, bool& ok);摆放皇后之后,若i=8即已放满时则递归出口;否则通过solve(i+1,ok);进行递归调用。(3)编制主函数,首先初始化一个“空棋盘”,即将a、b、c数组的各元素均置为true(表示当前棋

16、盘的8个行、15条斜对角线以及15条反斜对角线上都尚未摆放皇后)。而后执行调用语句“solve(1, ok);”,它负责往第1列开始的连续8列上均放上皇后,若成功则通过引用参数ok返回true(否则返回false)。8. 编一迷宫游戏程序,迷宫生成有用户输入和程序自动生成两种方式(迷宫以矩阵表示),要求输出迷宫和走出迷宫的路径。9. 编一棋盘游戏程序,人为一方,计算机为一方,人下时字符 * 将放在所指定的位置,而计算机下时字符 将放在某一空格位置。行、列、或两对角线有连续三个相同字符一方为胜方,也有平局情况。要求能动态演示。 10调车头下面铁路线A段中,有n个车头,按图中所示的顺序编号为1,2

17、,.,n。每个车头都可以在铁路上独立行驶,但约定,当B段或C段已有车头时,新进入这二段的车头号必须比该段中已有的车头号小。设计一个程序,调用递归过程,将A段中车头的顺序颠倒过来。B段C段A段2.1nn-111地图着色地图上有不同国家(不同区域),每个国家都与其他一些国家邻接。现要求对地图着色,使所有的国家与它的邻接的国家有不同的颜色。通常由四种颜色就已足够。提示:可采取试探的方法逐步逼近最后解,即按某种模式生成一个部分解,检查它是否合格。如为合格,在扩展这个部分解向最后解逼近,否则为不合格,不管如何扩展这个部分解都不会得到最后解。这时必须放弃已生成的部分解中的某些结果,“回朔”到先前的部分解,

18、在生成一个部分解,直到获得最后解。这种算法称为回朔算法。以着色一个六个区域的地图为例。区域邻接关系区域邻接区域123456021340312456041236051360613450表中数据正是所需输入的数据,可以用一个nn的矩阵来存放(n为区域数目)。0表示邻接区域的结束。设着色的颜色次序为红、蓝、绿、黄。对于区域起首先着成红色。对于区域2,因与区域1邻接,所以不能再着红色,而只能着第二种颜色,即蓝色。同理区域3着绿色,区域4着黄色,区域5着蓝色,区域6由于与区域1、3、4和5邻接,所以四种颜色都不合适。这时,必须回溯到区域5,它不能是已着好的蓝色,也不能着蓝色的下一种颜色绿色,因为这会使它

19、与区域3同色,再选下一种颜色,即黄色,它与区域1和3不同色。所以区域5退去蓝色,改着黄色。此后,区域6可着蓝色。最后,得到的解为各区域的颜色依次为红、蓝、绿、黄、黄、蓝。12. 设计一文件阅读器, 可以一次一屏(20或22行)显示文件内容, 每次显示完一屏内容后, 提示使用者键入一控制字符以控制屏幕翻滚。如字符n显示下一屏, 字符p返回上一屏, 字符q结束阅读。13. 编写程序,从键盘读入一个文本文件名字(可带路径),为该文件中的所有单词建立一个词汇索引。按字母顺序显示所有单词(仅一次),后面紧跟着它们所在的行号。大写与小写字母被认为是相同的。例如,对于下列的输入文件:To be ornot

20、to be,that is the question.产生的词汇索引如下:be 1 2is 3not 2or 1question 3that 3the 3to 1 2(二)综合类题目14. 有理数运算问题描述有理数是一个可以化为一个分数的数,例如2/3,533/920,-12/49都是有理数,而就为无理数。在C+中,并没有预先定义有理数,需要时可以定义一个有理数类,将有理数的分子和分母分别存放在两个整型变量中。对有理数的各种操作都可以用重载运算符来实现。基本要求定义并实现一个有理数类,通过重载运算符+、-、*、/对有理数进行算术运算,通过重载运算符=实现判定两个有理数是否相等。写一个优化函数,

21、它的作用是使有理数约去公分母,也即是使保存的有理数分子和分母之间没有公约数(除去1以外)。此外,还要定义一个将有理数转换为实数的函数,再加上构造函数和有理数输出函数。测试数据在应用程序中,创建若干有理数对象,通过带参数的构造函数使得各有理数对象值各不相同,然后分别进行各类运算,输出运算结果,检验其正确性。实现提示设有两个有理数a/b和c/d,则有:(1) 有理数相加 分子=a*d+b*c;分母=b*d(2) 有理数相减 分子=a*d-b*c;分母=b*d(3) 有理数相乘 分子=a*c; 分母=b*d(4) 有理数相除 分子=a*d; 分母=b*c优化函数在创建有理数对象时应执行,在执行其它各

22、种运算之后也需执行它,这样可保证所存储的有理数随时都是最优的。对于判断两个有理数是否相等,由于在对有理数进行各种运算后都对其进行优化,所以判定两个有理数是否相等只需判定它们两个的分子和分母分别相等即可。15 通讯录管理 问题描述编写一个简单的通讯录管理程序。通讯录记录有姓名,地址(省、市(县)、街道),电话号码,邮政编码等四项。基本要求程序应提供的基本基本管理功能有:1) 添加:即增加一个人的记录到通信录中2) 显示:即在屏幕上显示所有通信录中的人员信息,应能分屏显示。3) 存储:即将通讯录信息保存在一个文件中。4) 装入:即将文件中的信息读入程序。5) 查询:可根据姓名查找某人的相关信息,若

23、找到显示其姓名、地址、电话号码和邮政编码。6) 修改:可修改一个人的除姓名外其它信息。测试数据程序应输入不少于10个人员的通讯录信息,应考虑到人员可以同名的情况。实现提示程序可用一个单向链表来管理人员信息,每个人员的姓名,地址,电话号码和邮政编码用一个类Cperson来实现,作为链表的值指针指向这些Cperson类对象,通过链表的遍历可以操作这些数据。16商品销售统计问题描述编写商品销售统计程序,商品的信息有:商品的名称,计量单位(重量或件),单价。所有商品的信息事先已存入计算机,屏幕上显示所有商品的名称,选择商品名,输入商品计量单位(如重量,件数等),根据单价算出总价。客户一次购物可能购买多

24、种商品,程序应计算出客户应付的钱款数。基本要求程序分为两个部分:第一部分用于输入商品的信息并允许修改和删除;第二部分实现销售统计。程序运行时由用户选择进入哪一部分功能,并能在运行时在两部分之间切换。第二部分运行时,首先显示所有商品名称及代码(商品数目较多时,应考虑分屏显示),用户输入商品代码及商品重量或件数,用户一次操作可输入若干商品的购买信息,然后输入一个特殊的代码(如-1)表示本次购物结束。此时。程序计算出应付钱款数并显示。测试数据程序应输入不少于10种商品的信息,并进行模拟运行。实现提示本程序的商品信息管理可采用与课程设计题目二类似的数据结构,既定义一个商品类,每种商品作为商品类的实例(

25、对象)存储在链表节点中。17. 研究生初试录取问题描述研究生考试课程为4门,其中数学、外语、政治为统一命题,而专业基础课则根据不同的专业由招生学校自行命题。国家对初试录取分数有总分要求(如某一年要求4门课总分应达到310分),另外还有对每门课的最低分数要求(如总分为100的试卷最低应达到40分,总分为150的试卷最低应达到65分)。编程统计初试合格的人数,并按总分由高到低的顺序输出合格考生的信息。基本要求程序运行时首先要求输入:考生姓名,准考证号,报考专业,是否应届生,4门课程(政治、数学、外语、专业基础课)成绩。这些原始数据应保存到一个文件中。然后输入:录取的总分要求,各课程的最低分数要求。

26、输出要求:过线考生的姓名,准考证号,报考专业,是否应届生,4门课程(政治、数学、外语、专业基础课)成绩及总分,这些信息应存放到另一个文件中。测试数据程序应输入不少于10名考生的信息,其中应届生和历届生分别有若干名,并且都有合格和不合格的情况。实现提示可定义一个考生类存放有关信息和实现相应的操作。分数线数据(总分要求和各门课程的要求)可定义另外的类来存放,但应能被考生类及其派生类直接访问。18. 足球联赛积分问题描述足球联赛采用主客场双循环赛制,胜一场得3分,平局各得1分,负一场得0分,联赛排名以积分多者在前,当两队(或多队)积分相同时,则净胜球(即进球数与失球数之差)多者在前,若净胜球相同,则

27、进球数多者在前,若仍相同,则抽签或踢附加赛决定名次(这在联赛结束后进行,联赛未结束则两队名次并列,本程序不做这方面要求)。试编一程序统计最近一轮比赛后,各队积分及排名。基本要求设积分表结构如下:队名(不超过15个字符),已比赛的场数,赢的场数,平的场数,负的场数,进球数,失球数,积分。积分表放在正文文件中。最近一轮的结果从键盘输入,其形式为:主队名(可用代码),客队名(可用代码),主队得分(即进球数),客队得分(即进球数)。程序应根据此轮结果修改各队的积分和名次,所得的最新记分表仍在原积分文件中并同时在屏幕上显示。测试数据可选择我国当年的甲A或甲B联赛的数据输入,并检查与报章公布的数据是否一致

28、。实现提示定义一个球队类,每个球队是均是此类的对象。由于联赛中参赛的队伍数是固定的,因此可用对象数组来实现(当然也可以用链表结构)。每输入两个队的比赛成绩,则相应的队的有关数据(比赛场数,赢的场数,平的场数,负的场数,进球数,失球数,积分等)即可进行修改,比赛成绩录入完成,调用联赛排序方法(对象数组作为参数)排出名次并输出。19. 银行账户管理程序问题描述设计一个银行账户管理程序,账户的信息有账号(唯一)、姓名、余额、身份证号码、单位、电话号码、地址等,允许用户进行如下操作:开户、销户、存款、取款、转账、查询,一个用户可以有多个户头,账户的数值没有上限。基本要求 程序运行时,可以由用户选择进行

29、何种操作,开户操作要求输入用户信息后自动获取账号,用户销户后账号被回收,并且该账号可以继续分配给其它账户,不允许用户透支,根据姓名或账号可以进行用户的信息查询,所有的账户信息应存放到一个文件中,可以随时的访问和更新。测试数据程序应输入不少于10人的账户信息,应考虑到人员同名的情况。实现提示可定义一个账户类存放账户信息以及执行相应的操作,可以用一个链表类来管理账户。20. 模拟计算器程序问题描述设计一个程序来模拟一个简单的手持计算器。程序支持算术运算+、-、*、/、=、以及(清除)、A(全清除)操作。基本要求程序运行时,显示一个窗口,等待用户输入,用户可以从键盘输入要计算的表达式,输入的表达式显

30、示在窗口中,用户键入= 符号后,窗口显示出结果。测试数据程序输入不少于5种不同的表达式进行测试。实现提示可定义一个计算器类,该类包括两个组件对象,一个计算引擎和一个用户接口,用户接口对象处理接受的键盘输入信息,并显示答案,计算引擎对象对给出的数据执行相应操作,并存储操作的结果。选作内容如果用户输入的表达式不合法,可以判别出来并给出相应的错误提示。21. 设计一个排课程序问题描述每位教师都有教学工作量,教师对他所希望讲授的课程表达为一个期望值,1,2,n,其中1位最高的期望值。课程也有优先级,1,2,n,用来决定将课程分给教师的顺序,其中1时最高的优先级。设计一个程序针对某些课程给某些教师进行排

31、课。基本要求程序运行时,用户输入教师信息(姓名、教师号、工作量)、课程信息(课程名、课程号、周学时、总学时、优先级)、教师对所希望讲授课程的期望值以及教学工作量等相关信息,所有信息应保存在文件中,程序根据课程的优先级以及教师对课程的期望值进行排课。为了公平起见,程序随机分配课程,如果10门课程都有优先级1,程序以随机的顺序将这些课程分给教师,如果10位教师对某门课程的期望值为1,程序应从10位教师中随机选择一个。最后输出排课情况,即某位老师上某门课程,以及某位老师的工作量。测试数据程序应能实现对不少于20门课和10个教师的排课,并且使每个教师的满意度达到最大,不存在工作量不满的教师以及未分配的

32、课等情况。实现提示可定义一个教师类存放教师信息,所有教师的信息可以用链表存储;定义一个课程类存放课程信息,所有课程的信息可以用链表存储;定义一个排课类进行排课,排课类可以访问课程和教师信息。22. 设计一个Database类问题描述设计一个Database类。Database类是一个表的集合,而表又由行和列组成。例如,下面的雇员信息表包含三个记录,每个记录有四个字段( Employee、Name、Department和Boss)。雇员姓名部门部门经理111-11-1234CruzACCWarder213-44-5649JohnstonMISMichaels321-88-7895TomFINBe

33、arskin基本要求能够完成对数据库的基本操作;包括创建数据库,实现对数据库里面的表的添加,删除;以及能够完成对表结构的修改(如添加或删除字段),以及对表中的记录进行添加和删除;能够完成对使用适当的查询语言从一个或多个表中查找相关信息。测试数据可以选取高校人员(教师、学生、职工等)数据库作为测试数据实现提示Database 类的公有接口包含如下数据成员: 创建一个表。 通过增加或删除字段修改表结构。 删除一个表。 在表中增加一个记录。 从表中删除记录。 用适当的查询语言从一个或多个表中查找信息。23. 电煤气管理系统问题描述设计一个水电管理信息系统,能够对高校的水电费用进行管理,包括了登记费用

34、,查询费用,以及住户信息管理等。在设计时要考虑到学生和教工在用水电时的不同,学生可以免费使用一定额度的水电,超过这个额度的随便以后必须自费使用,且自费部分水电费的价格标准要高于教工的收费标准(主要是节约资源)。基本要求l 实现对用户信息的录入l 实现水电煤气数据的录入l 计算并查询用户应缴费用l 查询未缴纳费用名单测试数据:可选用小区物业管理部门的数据,也可采用手工输入不少于10个用户信息的数据。实现提示l 用户基本信息类,教工用户信息类,学生用户信息类 l 收费标准类,该类存储水电煤气标准单位的收费标准,如:煤气,1.0元/立方米;l 不同类型人员水、电、煤气信息类,这些类可以包括水表,电表

35、,煤气表ID,抄表时间,上次抄表时间,本次抄表时间,上次抄表度数,本次抄表度数,本次使用度数,费用,是否缴费标记等信息。l 在实现的时候考虑继承和多态技术的合理使用。24. 对参赛结果分数进行处理:参赛选手n人(n1),评委m人(m2),评委给每一选手打一个分数score(分数score为小于等于10的一个正实数)。选手的最后得分lastScore计算方法为(1)m9时,去掉一个最高分和一个最低分后另m-2个得分的平均值。(2)m9时,去掉两个最高分和两个最低分后另m-4个得分的平均值。假设事先已经建立了text型的数据文件f1.txt,其中依次记录着n个选手的编号(一个正整数)、姓名(一个字

36、符串)以及m个评委给出的得分。请编制程序,依次从数据文件f1.txt中读入n个选手的有关信息,而后按上述规定方法计算出每一个选手的最后得分,而且往屏幕上以及另一个text型文件f2.txt中同时输出如下形式的结果信息。假设参赛选手人数n=5,评委人数m=7,磁盘文件f1.txt中的初始数据为:1 zhangjin 8.8 9.3 7.9 8.7 8.9 9.7 9.22 lintao 8.9 8.2 8.6 8.8 8.5 9.1 9.33 guojian 8.9 8.4 8.7 8.6 8.6 8.4 8.64 maling 7.9 8.3 8.5 8.6 8.5 8.9 8.35 liuy

37、ifan 9.5 9.1 9.8 9.2 9.0 9.5 8.9那么,程序执行后,屏幕显示结果以及磁盘文件f2.txt中的结果均应该为:-参赛号 姓 名 最高分 最低分 累积分 最后得分- 1 zhangjin 9.7 7.9 44.9 8.98 2 lintao 9.3 8.2 43.9 8.78 3 guojian 8.9 8.4 42.9 8.58 4 maling 8.9 7.9 42.2 8.44 5 liuyifan 9.8 8.9 46.3 9.26-思考:可进一步考虑找出比赛的第1至第k名,也在屏幕以及f2.txt中同时输出相关的结果信息(k小于等于n,并规定若多个选手最后得分

38、相同时,则有效分(即已删除原来的最高分后)中最高分高者名次优先)。25. 设计一个类CStudent,类中包含一个学生的基本数据如下:编号,姓名,性别,年龄,数学成绩,计算机成绩,外语成绩。并假设编号为整数,且从1号往后连续编码;姓名为字符串,性别为字符。如:1 LiPing m 18 89 98 94请采用binary文件形式,并使用随机读写处理方式,对自定义CStudent类的对象数据进行存储与读写处理(即是说,总按具有连续编码的编号num为“序”来对文件中的各对象数据进行随机读写处理)。并设计该类的成员函数,而且对输出运算符“”进行重载,使该运算符能够完成将一个学生的信息输出到屏幕上。要

39、求成员函数完成以下功能:(1) 从键盘输入一个学生的有关信息,并将它们存入到数据文件中(按编号来确定写出位置)。(2) 按编号对学生信息进行检索并将检索结果显示在屏幕上。(3) 按姓名对学生信息进行检索并将检索结果显示在屏幕上。(4) 计算某编号学生的总成绩与平均成绩。(5) 列出所有总成绩超过n分的性别为s同学的有关信息(n,s由用户从键盘输入)。26 某商场有如下的几种货品:衬衣、鞋子、帽子、裤子、冰箱、电视、立柜、壁橱、沙发。每一种货物都有详细的说明信息。衬衣:布料、尺寸、单价、产地、库存量、所属货柜;鞋子:皮料、尺寸、单价、产地、库存量、所属货柜;帽子:布料、样式(平顶或尖顶)、尺寸、

40、单价、产地、库存量、所属货柜;裤子:布料、尺寸、单价、产地、库存量、所属货柜;冰箱:制冷类型、样式(二门或三门)、颜色、尺寸、单价、产地、库存量、重量、所属货柜;电视:样式(彩色或黑白)、颜色、尺寸、单价、产地、库存量、重量、所属货柜;立柜:木料、颜色、尺寸、单价、产地、库存量、所属货柜;壁橱:木料、颜色、尺寸、单价、产地、库存量、所属货柜;沙发:木料、皮料、颜色、尺寸、单价、产地、库存量、所属货柜;对这些商品的操作有:新商品的录入,商品的进库,商品的出库,商品的调价,所属货柜的管理,库存的统计,总价格的计算,产地的统计。要求自行设计数据结构,用类结构将上述的货品表示出来。在上一步的基础上,将

41、上述的商品管理计算机化,完成操作要求的功能。27. 定义并实现一个整数集合类int_set,集合类中cur_size表明当前集合中有几个整数,集合中最多含max_size个整数,存放集合元素的数组是动态的。要求提供的方法有:(1)增加一个整数到集合中;(2)从集合中去掉一个元素;(3)判断一个元素是否在集合中;(4)重载运算符输出集合;(5)分别实现集合的交、并、差运算。28.班级人事管理系统功能要求:(1) 设计一个人事管理的People(人员)类。考虑到通用性,这里只抽象出所有类型人员都具有的属性:name(姓名),number(编号),birthday(出生日期),id(身份证号)等等。

42、其中“出生日期”定义为一个“日期”类(具有属性):year(年),month(月),date(日)内嵌子对象。用成员函数实现对人员信息的录入和显示等必要的功能操作(自己独立思考设计)。要求包括:构造函数和析构函数,拷贝构造函数,内联成员函数。 (2) 从people(人员)类派生出student(学生)类,添加属性:班号charchassNO;从people(人员)类派生出student(学生)类,添加属性:职务charprincipalship,部门chardepartment;.从student类中派生出graduate(研究生)类,添加属性:专业charsubject,导师teacher

43、adviser(为(教师类内嵌子对象);从graduate类和teacher类派生出TA(助教生)类,注意虚基类的使用,重载相应的成员函数。 (3) 对people类重载“=”运算符和“=”运算符,“=”运算符判断两个people类对象的id属性是否相等;“=”运算符实现people类对象的赋值操作。 (4) 定义一个对people类对象数组按编号排序的函数,一个按编号查找people对象的函数。29.课程设计选题管理系统设计学生类;课程设计题目类(序号,题目,人数,描述);每个题目限两个人选;要求使用面向对象编程进行模拟课程设计选题。主要包括下列模块: 1新增、修改、删除课程设计题目; 2新增、修改、删除学生信息; 3查询课程设计内容; 4课程设计选题;30.小型公司工资管理系统 一题目要求 (1)公司主要有4类人员:经理、

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 教案示例

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁