C++课程设计题目qhb.docx
《C++课程设计题目qhb.docx》由会员分享,可在线阅读,更多相关《C++课程设计题目qhb.docx(16页珍藏版)》请在冰豆网上搜索。
![C++课程设计题目qhb.docx](https://file1.bdocx.com/fileroot1/2023-1/31/6f7b25df-3122-4513-acf0-b0627657636f/6f7b25df-3122-4513-acf0-b0627657636f1.gif)
C++课程设计题目qhb
1、职工信息管理系统设计(限1人完成)
职工信息包括职工号、姓名、性别、年龄、学历、工资、住址、电话等(职工号不重复)。
试设计一职工信息管理系统,使之能提供以下功能:
职工信息录入功能(职工信息用文件保存)--输入
职工信息浏览功能--输出
查询和排序功能:
(至少一种查询方式) --算法
按工资查询
按学历查询等
职工信息删除、修改功能(任选项)
2、图书信息管理系统设计(限1人完成)
图书信息包括:
登录号、书名、作者名、分类号、出版单位、出版时间、价格等。
试设计一图书信息管理系统,使之能提供以下功能:
图书信息录入功能(图书信息用文件保存)--输入
图书信息浏览功能--输出
查询和排序功能:
(至少一种查询方式)--算法
按书名查询
按作者名查询
图书信息的删除与修改(可选项)
3、学生信息管理系统设计(限1人完成)
学生信息包括:
学号,姓名,年龄,性别,出生年月,地址,电话,E-mail等。
试设计一学生信息管理系统,使之能提供以下功能:
学生信息录入功能(学生信息用文件保存)---输入
学生信息浏览功能---输出
查询、排序功能---算法
按学号查询
按姓名查询
学生信息的删除与修改(可选项)
4、学生选修课程系统设计(限1人完成)
假定有n门课程,每门课程有课程编号,课程名称,课程性质,总学时,授课学时,实验或上机学时,学分,开课学期等信息,学生可按要求(如总学分不得少于60)自由选课。
试设计一选修课程系统,使之能提供以下功能:
课程信息录入功能(课程信息用文件保存)--输入
课程信息浏览功能--输出
查询功能:
(至少一种查询方式)--算法
按学分查询
按课程性质查询
学生选修课程(可选项)
5、销售管理系统(限1人完成)
某公司有四个销售员(编号:
1-4),负责销售五种产品(编号:
1-5)。
每个销售员都将当天出售的每种产品各写一张便条交上来。
每张便条包含内容:
1)销售员的代号
2)产品的代号
3)这种产品的当天的销售额
每位销售员每天可能上缴0-5张便条。
假设,收集到了上个月的所有便条,编写一个处理系统,读取上个月的销售情况(自己设定),进行如下处理。
1)计算上个月每个人每种产品的销售额。
2)按销售额对销售员进行排序,输出排序结果(销售员代号)
3)统计每种产品的总销售额,对这些产品按从高到底的顺序,输出排序结果(需输出产品的代号和销售额)
4)输出统计报表
销售统计报表
产品代号 销售之和
销售员
代号 1 2 3 4 5
1
2
3
4
每种产品之和 总和
6、设计一个简单计算器(限最多1人完成)
要求:
在功能上功能尽量模拟windows操作系统中的计算器,系统界面不做强制要求。
7、编写一万年历系统(限最多1人完成)
要求:
模仿现实生活中的挂历.
当前页以系统当前日期的月份为准显示当前月的每一天(显示出日及对应的星期几).
当系统日期变到下一月时,系统自动翻页到下一月.
8、学生成绩管理(限最多2人完成)
主要功能:
(1)能按学期、按班级完成对学生成绩的录入、修改
(2)能按班级统计学生的成绩,求学生的总分及平均分,并能根据学生的平均成绩进行排序
(3)能查询学生成绩,不及格科目及学生名单
(4)能按班级输出学生的成绩单
9、通讯录管理(限最多1人完成)
主要功能:
(1)能建立、修改和增删学生通讯录
(2)能够按多种方式进行查询
要求:
界面友好,易于操作
10、一元多项式简单的计算器(限最多1人完成)
主要功能:
(1)输入并建立多项式;
(2)输出多项式;
(3)两个多项式相加,建立并输出和多项式;
(4)两个多项式相减,建立并输出差多项式。
(5)算法的时间复杂度、另外可以提出算法的改进方法
实现提示:
可选择带头结点的单向循环链表或单链表存储多项式,头结点可存放多项式的参数,如项数等。
要求:
一元多项式简单计算器的基本功能
11、图书管理系统(限最多2人完成)
功能描述:
1).新进图书基本信息的输入。
2).图书基本信息的查询。
3).对撤消图书信息的删除。
4).为借书人办理注册。
5).办理借书手续(非注册会员不能借书)。
6).办理还书手续
信息描述:
有关该系统基本信息的描述,如:
图书名称、图书编号、单价、作者、存在状态、借书人姓名、性别、学号等
12、校园导游咨询(限最多1人完成)
1)、功能描述:
设计你的学校的校园平面图,所含景点不少于10个。
以图中顶点表示学校各景点,存放景点名称,代号,简介等信息;以边表示路径,存放路径长度等相关信息。
2)、为来访客人提供图中任意景点的问路查询,即查询任意两个景点之间的一条最短的简单路径。
3)、为来访客人提供图中任意景点相关信息的查询。
测试数据:
由读者根据实际情况指定。
实现提示:
一般情况下,校园的道路是双向通行的,可设校园平面图是一个无向网,顶点和边均含有相关信息。
13、简单的行编缉器(限最多1人完成)
要求:
设置一个简单的行编缉器,每行以回车结束。
数据以文件形式存储
编辑器具有查找、替换、修改数据的功能。
14、用栈来设置密码(限最多1人完成)
要求:
用栈来做一个密码验证程序,密码验证只有三次机会。
15、双向链表的排序(限最多1人完成)
要求:
输入一个双向链表,显示些双向链表并对此双向链表排序
16、电煤气管理系统
问题描述;涉及一个水电管理信息系统,能够对高校的水电费用进行管理,包括了登记费用,查询费用,以及住户信息管理系统等。
在设计时要考虑到学生和教工在用水电时地不同,学生可以免费使用一定额度地水电,超过这个额度以后必须自费使用,且自费部分水电费地价格要高于教工地收费标准。
基本要求:
实现对用户信息地录入
实现水电煤气数据地录入
计算并查询用户应缴纳费用
查询未缴纳费用名单
17、商品销售统计
问题描述:
编写商品销售统计程序,商品的信息有商品的名称。
计算单位(重量或件)、单价。
所有商品的信息事先存入计算机,屏幕上显示所有的名称,选择商品名,输入商品计量单位(如重量、件数等),根据单价算出总价。
客户一次购物可能购买多种商品,程序应计算出客户应付的钱款数。
基本要求:
程序分为两部分;第一部分用于输入商品的住处并允许个性和删除;第二部分实现销售统计。
程序运用时由用户选择进入哪一部分功能,并能在运行时在两部分之间切换,第二部分运行时,首先先显示所有的商品名称及代码,用户输入商品代码及商品重量或件数,用户一次操作可输入若干商品的购买信息,然后输入一个特殊的代码表示本次购买结束。
测试数据:
程序应输入不少于10种商品信息,并进行模拟运行。
实现提示:
本程序的商品信息管理可采用与课程设计题目2类似的数据结构,即定义一个商品类,每种商品作为商品类的实例存储在链表结点中。
选作内容:
程序在营业结束时统计每种商品的销售量,销售金额及总营业额,因此第二部分应有营业结束的选择,当用户选择此贡时屏幕上显示当天营业的每种商品的销售量,销售金额及总营业额。
注意、商品类的数据成员应曾加有商品粮的销售量和销售金额。
总营额是所有营业额之和,可用静太数据实现,或可用原商品类派生出一个特殊的类,增加上面的数据成员及相应的成员函数。
18、校际运动会管理系统
问题描述:
1).初始化输入:
N-参赛学校总数,M-男子竞赛项目数,W-女子竞赛项目数;
2).各项目名次取法有如下几种:
取前5名:
第1名得分7,第2名得分5,第3名得分3,第4名得分2,第5名得分1;
取前3名:
第1名得分5,第2名得分3,第3名得分2;
用户自定义:
各名次权值由用户指定。
3).由程序提醒用户填写比赛结果,输入各项目获奖运动员的信息。
4).所有信息记录完毕后,用户可以查询各个学校的比赛成绩,生成团体总分报表,查看参赛学校信息和比赛项目信息等。
19、某公司的库存管理系统
1、问题描述(功能要求):
某公司现有以下设备:
普通电视机、DVD、带DVD的电视机,带DVD的电视机的售价为普通电视机和DVD单价之和的80%,要求对所有的库存设备都能按照品名进行显示、查找、增加和删除、保存的功能。
2、问题的解决方案:
根据系统功能要求,可以将问题解决分为以下步骤:
(1)分析系统中的各个实体之间的关系及其属性和行为;
(2)根据问题描述,设计系统的类层次;
(3)完成类层次中各个类的描述(包括属性和方法);
(4)完成类中各个成员函数的定义;
(5)完成系统的应用模块;
(6)功能调试;
(7)完成系统总结报告以及系统使用说明书。
20、车票管理系统(限1人完成)
一车站每天有n个发车班次,每个班次都有一班次号(1、2、3…n),固定的发车时间,固定的路线(起始站、终点站),大致的行车时间,固定的额定载客量。
如
班次发车时间起点站终点站行车时间额定载量已定票人数
18:
00郫县广汉24530
26:
30郫县成都0.54040
37:
00郫县成都0.54020
410:
00郫县成都0.5402
…
(一)功能要求:
用c/c++设计一系统,能提供下列服务:
(1)录入班次信息(信息用文件保存),可不定时地增加班次数据
(2)浏览班次信息,可显示出所有班次当前状总(如果当前系统时间超过了某班次的发车时间,则显示“此班已发出”的提示信息)。
(3)查询路线:
可按班次号查询,可按终点站查询
(4)售票和退票功能
A:
当查询出已定票人数小于额定载量且当前系统时间小于发车时间时才能售票,自动更新已售票人数
B:
退票时,输入退票的班次,当本班车未发出时才能退票,自动更新已售票人数
(二)其它要求:
(1)只能使用C/C++语言,源程序要有适当的注释,使程序容易阅读
(2)至少采用文本菜单界面(如果能采用图形菜单界面更好)
(3)学生可自动增加新功能模块(视情况可另外加分)
(4)写出课程设计报告,具体要求见相关说明文档
21、职工工作量统计系统(限最多1人完成)
编写有一个程序,该程序输入职工工号和完成的产品数量,程序允许同一职工有多次输入,由程序对其完成的产品数量实现累计。
程序按完成数量对他们排序,并确定他们的名次。
按完成的产品数量由多到少的顺序,输出名次、同一名次的职工人数及他们的工号(工号由小到大顺序输出)。
要求程序用有序链表存储数据信息。
22、保安值班安排系统(限最多1人完成)
某公司有7名保安人员:
赵、钱、孙、李、周、吴、陈。
由于工作需要进行轮休制度,一星期中每人休息一天。
预先让每一个人选择自己认为合适的休息日。
请编制一程序,打印轮休的所有可能方案。
当然使每个人都满意,例如每人选择的休息日如下:
赵:
星期二、星期四
钱:
星期一、星期六
孙:
星期三、星期日
李:
星期五
周:
星期一、星期四、星期六
吴:
星期二、星期五
陈:
星期三、星期六、星期日
23、模拟时钟转动程序(限最多1人完成)
要求:
能模拟机械钟表行走,还要准确地利用数字显示日期和时间,在屏幕上显示一个活动时钟,按任意键时程序退出。
24、单项选择题标准化考试系统(限最多2人完成)
(一)功能要求:
(1)用文件保存试题库。
(每个试题包括题干、4个备选答案、标准答案)
(2)试题录入:
可随时增加试题到试题库中
(3)试题抽取:
每次从试题库中可以随机抽出N道题(N由键盘输入)
(4)答题:
用户可实现输入自己的答案
(5)自动判卷:
系统可根据用户答案与标准答案的对比实现判卷并给出成绩。
(二)其它要求:
(1)只能使用C/C++语言,源程序要有适当的注释,使程序容易阅读
(2)至少采用文本菜单界面(如果能采用图形菜单界面更好)
(3)学生可自动增加新功能模块(视情况可另外加分)
(4)写出课程设计报告,具体要求见相关说明文档
25、酒店管理系统源码
功能:
1)、屏幕上出现一个界面,让操作员能够方便的选择所需要进行的操作,如不同级别房间价格的查询修改刷除等。
2)、对不同标准的房间实施不同的收费标准,也可以按天收费或按小时收费,可根据顾客需要在登记的入住的时候进行选择。
3)、月底进行结算,实收多少,应收多少
26、学生考勤管理系统
考勤信息记录了学生的缺课情况,它包括:
缺课日期、第几节课(连续多节课用begin-end的形式表示)、课程名称(课程名称中不会出现空格)、学生姓名、缺课类型(迟到、早退、请假及旷课)。
试设计一考勤管理系统,使之能提供以下功能:
1).录入学生的缺课记录:
从键盘输入数据(提示:
为避免重复从键盘输入数据,测试时可将数据存储在文件中,利用输入重定向功能读入),输入格式为:
缺课日期第几节课课程名称学生姓名缺课类型
每行一条纪录。
例如:
2008-04-293-4C++程序设计实验张三迟到
2008-04-283-4C++程序设计李四旷课
2).修改某个学生的缺课记录:
可以对缺课纪录的任意部分进行修改,然后显示一下修改后的纪录。
3).查询某个学生的缺课情况:
查询结果按照日期升序排序,同一天内按照所缺课程的时间升序排序。
4).统计某段时间内(以天为单位),旷课学生姓名及旷课节数,查询结果先按旷课节数降序排序,旷课节数相同的学生按姓名升序排序;
5).统计某段时间内,有学生旷课的课程及旷课人次,按旷课人次由多到少排序,旷课人次相同的课程按课程名称升序排序;
6).系统以菜单方式工作。
(所谓菜单指用户可以自由选择所要执行的功能)
27、基于哈夫曼编码的数据压缩/解压程序
1.问题描述:
将任意一个指定的文本文件中的字符进行哈夫曼编码,生成一个编码文件(压缩文件);反过来,可将一个压缩文件解码还原为一个文本文件.
2.要求:
1)可设计一个菜单:
Q----Quit
L----ListTextDocument
D----Decoding
C----Coding
2)选择C时:
输入一个待压缩的文本文件名称(可带路径).
如:
D:
\lu\lu.txt
统计文本文件中各字符的个数作为权值,生成哈夫曼树;
将文本文件利用哈夫曼树进行编码,生成压缩文件.
压缩文件名称=文本文件名.COD如:
D:
\lu\lu.COD
压缩文件内容=哈夫曼树的核心内容+编码序列
3)选择D时:
输入一个待解压的压缩文件名称(可带路径)
如:
D:
\lu\lu.COD
从文件中读出哈夫曼树,并利用哈夫曼树将编码序列解码;
生成(还原)文本文件.
文件文件名称=压缩文件名+"_new.txt"
如:
D:
\lu\lu_new.txt
4)选择L时:
输入一个待压缩的文本文件名称(可带路径).
如:
D:
\lu\lu_new.txt
显示出该文本文件的内容
3.功能扩展(自己定制):
编码使用二进制位,利用位运算进行真正的数据压缩.
可对任何文件进行压缩.
显示出各种重要信息,如压缩率,各字符的哈夫曼编码表
……..
28、星空模拟
问题描述假设太空船在太空航行,看见星星不断出现并在身边掠过.
要求:
1)新的星星的出现位置是在屏幕中央位置随机产生,方向随机产生,颜色也随机确定;
2)星星的行走路线是以确定的方向从中心点到屏幕外连接的直线.
3)按"+"键,星星的数目会增加;按"-"键,星星的数目会减少.
4)所有的星星存储在一个循环链表中.每个结点定义为:
5)当一个星星的位置出了屏幕范围时,删除它的结点;
重新增加一个新结点作为新产生的星星.
功能扩展(自己定制):
星星的速度有加速度;
可控制和改变星星的移动速度;
星星的大小可变化;
星星的路线可以有一定的弧度.………
size
direction
color
y
x
29、猫抓老鼠的模拟
1.问题描述:
在一个迷宫内,猫正在追老鼠,猫总是选择在迷宫中到老鼠最近的路线走,而老鼠也选择远离猫的路线逃离.模拟猫抓老鼠的动态过程.
2.要求:
1)设计一个迷宫;猫,老鼠的位置随机生成;
2)猫,老鼠每移动一次,都重新计算最短路径.
3)分别模拟猫的速度大于老鼠,猫的速度等于老鼠两种情形.
4)迷宫可用数组表示,最短路径可用队列表示.
3.功能扩展(自己定制):
可增加猫的数量;
可随机生成迷宫墙壁的位置;
设计老鼠应该用何策略才有可能逃脱被抓的命运
………..
30、正方形破坏者
1.问题描述:
左边的图中是由24根火柴拼成的3×3的网格.每根火柴的长度为1.在这个网格中,可以发现若干个不同大小的正方形—9个边长为1,4个边长为2和1个边长为3的正方形.
如左图中所示,网格中的火柴按从上到下从左到右的顺序编号.如果从中拿出若干根火柴,会形成一个不完整的3×3网格,原来网格中的某些正方形就会被破坏.右图是拿出编号为12,17和23的火柴后形成的不完整网格,原来网格中有5个边长为1,3个边长为2和1个边长为3的正方形被破坏,仅剩4个边长为1和1个边长为2的正方形.
现在的问题是,给定一个完整或不完整的N×N网格(含有不超过2N(N十1)根火柴),如何从中拿出最少根数的火柴,使得其中所有的正方形均被破坏
2.要求:
1)【输入数据】
测试数据包括两行:
第一行包括一个正整数N(N≤5),表示网格的边长;第二行的第一个整数K表示网格中已经缺失的火柴根数,接下来的K个整数表示缺失火柴的编号.注意,如果K=0,表示输入的网格是一个完整的N×N网格,否则表示是一个从完整的N×N网格中拿出K根火柴后所形成的不完整的N×N网格.
2)【输出数据】
输出至少需要拿走几根火柴,是哪几根火柴.
3)【样例输入】
网格的边长N:
2
网格中已经缺失的火柴根数K:
0
网格的边长N:
3
网格中已经缺失的火柴根数K:
3121723
4)本题所用数据结构自己设计.
功能扩展(自己定制):
显示出原来的网格和所有的正方形均被破坏后的网格;
讨论时间复杂度和空间复杂度;
31、数制转换
定义一个数制转换器,要求能够实现二进制、十进制、八进制、十六进制间的相互转换,并测试
32、飞机订票系统
假定民航机场共有n个航班,每个航班有一航班号、确定的航线(起始站、终点站)、确定的飞行时间(星期几)和一定的成员订额。
试设计一民航订票系统,使之能提供下列服务:
航班信息录入功能(航班信息用文件保存)--输入
航班信息浏览功能--输出
查询航线:
(至少一种查询方式)--算法
●按航班号查询
●按终点站查询
承办订票和退票业务(可选项)
33、ATM取款机程序
(1)软件用途:
ATM取款
(2)功能概述:
模拟ATM取款机登陆、取款、查询
34、上海公交助手嵌入式系统
1).查询某一个公交的整个路线图.
2).查询某一个公交的发车时间,车次,抵达时间,使用费用
3).查询从一个出发点到目的地的所有路线,并找到最佳路线(包括最短,最廉价,最好)
4).支持多个公交换乘到达目的地的最佳算法(包括公共汽车与地铁换乘)
5).查询上海公交某一个站点
6).查询上海公交站某一个站
35、酒店点菜系统
(1)自定义文件生成工具:
将酒店提供的餐饮项目进行汇总,生成自定义的文件供移动设备使用。
(2)点菜软件:
运行在移动设备上,供客人点菜、退菜、结帐。
(3)服务端软件:
对客人点的菜进行管理,数据备份,通知酒店。
36、课程设计选题管理系统
主要包括下列模块:
1).新增、修改、删除课程设计题目;
2).新增、修改、删除学生信息;
3).查询课程设计内容;
4).课程设计选题;
37、杂志订阅管理系统
使用计算机对杂志进行管理,该杂志最多拥有订户不超过10人,每个订户的信息包括:
姓名,性别,电话号码,杂志单位,订阅数,订阅期限(某年某月)
要求有以下功能:
(1)增加新订户,即将新订户的全部信息输入到文件中
(2)根据当天的日期对新订户全部信息进行查询,删除已到期的订户记录
(3)统计本期杂志订户数并打印运算结果
本期订信息
订户名订阅数单价全额
李平25.511.0
黄海15.55.5
合计31.016.5
38、成绩记录簿
编制一个C++语言成绩记录簿,每个学生信息包括:
学号、姓名、C++语言成绩。
具体功能:
(1)创建信息链表并以磁盘文件保存;
(2)读取磁盘文件并显示输出所有学生的成绩;
(3)按学号或姓名查询成绩;
(4)添加成绩记录;
(5)修改指定姓名或学号的学生的成绩并可存盘;
(6)显示输出60分以下、60~79、80~89、90分以上各分数段的学生信息。
39、Fibonacci数列。
Fibonacci数列的计算公式如下:
fib
(1)=1;
fib
(2)=1;
fib(n)=fib(n-1)+fib(n-2); //对大于等于3的任意n
(1)简单变量“数据平移”方法计算Fibonacci数列的第n项(正整数n通过键盘输入):
说明变量old1=1,old2=1,newItem;新的Fibonacci项newItem总是“距它最近”的前两项(old1与old2)的累加和。
而后通过“old1=old2;old2=newItem;”进行所谓的“数据平移”。
接着计算另一个新的Fibonacci项newItem,依次循环,直到求出数列的第n项时为止。
(2)使用数组求出Fibonacci数列的第n项(正整数n通过键盘输入)并显示在屏幕上:
说明数组f用来存放Fibonacci数列的各项之值,且仅初始化前两个元素f[0]=1,f[1]=1,而后通过f[i]=f[i-2]+f[i-1];依次计算出f[2]到f[n-1](注意f[n-1]恰为所要求出的第n项)并将该值显示在屏幕上。
40、编程序,循环进行如下的处理过程:
由计算机生成简单的四则运算题;用户给出答案;计算机判断对错。
直到用户回答说不再继续做了时结束程序。
提示:
可让用户选择指定出加、减、乘、除哪一种运算题,以及出一位数还是两位数的运算题;而后通过使用“rand()%10”或“rand()%100”来获得一个0到9的一位整数随机值或得到0到99的两位整数随机值来为用户出题。
还可进一步对用户所做算术题的对错次数进行记录,结束程序时给出一个某种形式的成绩。
41、数的进制转换
(1)将输入的2进制数(一个非“0”即“1”的字符串)化为10进制数。
提示:
用字符数组a盛放所输入的二进制数;而后从后往前逐一计算每一位的“位权”w(2的0次方、2的1次方、...),再计算“位权”乘以“位值”并累加到一个初值为0的变量value上,最后输出该value。
(2)如何把8进制数或16进制数化为10进制数。
(3)如何把某一个k进制的