C/C++《程序设计(上机)》选题[2023-09-05]

C/C++《程序设计(上机)》选题[2023-09-05]

2023-2024-1 《程序设计(上机)》授课计划

开发工具:Turbo C / Visual studio 等等
具体要求:用上述系统平台和开发工具完成所分配题目的程序,并撰写报告。

一、课程任务概述
本课程是学生在学习了C或C++等编程语言之后进行的一次实践性学习,通过较复杂和综合的题目对学生的程序设计能力进行一次综合训练,使学生了解应用问题的分析方法及解决实际问题的具体过程。
本课程主要涉及《高级语言程序设计》、《面向对象程序设计及C++》等课程,涉及到的知识点有常量、变量、表达式、流程控制、函数的定义与调用、数组、指针、结构体、文件读写等。如果选用面向对象程序设计方法,还会涉及到类与对象的定义与使用、类的继承与派生、多态性的实现、基于流的文件读写等知识点。在课程实施过程中,学生需要编写一定量的代码,撰写报告,并进行答辩。
二、选题规则

  1. 各位同学请自行组队,每队不超过3人,其中1人为组长,其他人为组员。
  2. 每队同学选择一道题目,合作完成编程和实验报告,实验报告封面上的组员顺序默认按课题贡献的大小排序。
  3. 同学之间可以相互讨论与交流,但每个同学必须独立完成,且每位同学必须完成一定的编程任务。
  4. 标注*的题目有一定难度。选题时请注意难易,请选用自己适合的题目。另外,一个题目只能一组选用,不同的组题目不能相同。 
    三、考核及报告要求
    考核根据平时的上机出勤情况、为上机所做的准备情况、上机时的表现、程序的完成情况、报告的完成情况、验收答辩时的表现等综合打分,等级为优秀、良好、中等、及格、不及格。
    报告内容及格式要求见《南京邮电大学程序设计报告样稿》。
    四、课题内容及要求
    课题内容和基本要求如下。
    实现时可根据课题需求,自行增加和进一步完善系统功能,不必局限于课题中的要求。

程序设计题一:模拟投票小程序

1 问题描述
网络上经常出现问卷调查、投票等小程序,请设计完成一个投票系统,实现三个角色:选民、备选对象、管理员;实现功能包括:参加投票、管理投票过程、结果查询与公布等。
2 功能要求
代码要能提供以下几个基本功能。
(1)每个进入系统的人员需注册,管理员不用。
(2)提供菜单选项,设置用户角色——管理员、注册用户、参选对象。
(3)管理员可以审核参选对象;可以查看用户注册信息(用户名、手机号、投票次数 等);可以修改投票次数的限定、选举时间限定;发布、统计投票结果等。
(4)注册用户可以查询参选对象的信息和当前投票状态(参选对象、票数、排名、百分比 等)
(5)对用户的输入进行一定的正确性检查。
(6)手机一天投票数量限制。比如:同一个手机号码一天只能投一次,或者一天只能给一个参选者投一次票。
3 其他要求
(1)界面美观,交互方便。
(2)注释详细:每个变量都要求有注释说明用途;函数有注释说明功能,对参数、返回值也要以注释的形式说明用途;关键的语句段要求有注释解释。
(3)程序的层次清晰,可读性强。
(4)变量、函数命名符合规范。
(5)如有可能,可使用MFC 等开发工具,实现彩色或图形操作界面。
4 开发环境
可以选择TC2.0、TC3.0、VC++6.0等开发环境,或经老师同意选择自己熟悉的开发工具与平台。

源码

https://pan.baidu.com/s/1SHX3aW20HP_98kAK11GSJg?pwd=0000

程序设计题二: 模拟电影院售票系统

1 问题描述
已知某电影院有5个放映厅,请模拟实现电影放映排片和观众购票。系统要求对文件中所存储的票务信息进行各种常规操作,如:查询、计算、显示等功能。通过此课题,熟练掌握文件、数组、指针的各种操作,以及一些算法思想的应用。
2 功能要求
代码要能提供以下几个基本功能:
(1)角色:系统设置管理员和普通观众
(2)提供菜单选择项,如角色选择、时间选择、功能选择等
(3)管理员功能如下:
 根据密码登录,对每个放映厅进行第二天的排片工作。
 统计某部电影当天的票款。
 对当天的票房进行排序。
(4)用户的功能:
 注册。
 密码登录后,可以浏览排片信息
 查看每个放映厅的售票情况,如:

□□□□□□□□□□
□□□□□□□□□□
    □□□●●□□□
    □□□●●●□□
□□□□□●●●       ●已售出  □待售

(5)后台售票和退票功能:售票和退票后自动更新余票数量,并将上图中相应的位置变更图案。
选做要求:
(1)对用户的输入进行一定的正确性检查。
(2)用户可以查看历史购票记录。
3 其他要求
(1)界面美观,交互方便。
(2)注释详细:每个变量都要求有注释说明用途;函数有注释说明功能,对参数、返回值也要以注释的形式说明用途;关键的语句段要求有注—释解释。
(3)程序的层次清晰,可读性强。
(4)变量、函数命名符合规范。
(5)如有可能,可使用MFC 等开发工具,实现彩色或图形操作界面。
4 开发环境
可以选择TC2.0、TC3.0、VC++6.0等开发环境,或经老师同意选择自己熟悉的开发工具与平台。

程序设计题三:南邮图书馆管理系统

1 问题描述
该系统要求建立一个南邮图书馆管理系统,并具有排序、查找、计算、显示等功能。通过此课题,熟练掌握文件、数组、指针的各种操作,以及一些算法思想的应用。
图书的信息应包括:索引号,名称,馆藏地址(三牌楼、仙林)、类别(人文、科技、外语等),数量,价格,入库日期,归还日期,借阅次数,借阅状态(可借、不可借)等。
2 功能要求
代码要能提供以下几个基本功能:
(1)对已有图书信息进行更新操作,包括添加、删除、修改图书信息(例如图书被借阅,书的数目减1,借阅次数加1,如果数量为0则状态为不可借);
(2)可以按图书的名称查询图书信息;
(3)显示所有即将到期的图书(归还日期在三天之内);
(4)按借阅次数对所有图书进行排序;
(5)将图书的所有相关信息内容存为文件。
选做要求:
(1)对用户的输入进行一定的正确性检查。
(2)采用Turbo C/C++、MFC等开发工具,实现彩色或图形操作界面。
(3)设计一个功能选项“AI玩家”。当选中此功能后,用电脑模拟用户来玩猜数字游戏,并将整个游戏的过程输出至屏幕或文本文件。
3 其他要求
(1)界面友好,输入信息符合逻辑。
(2)注释详细:每个变量都要求有注释说明用途;函数有注释说明功能,对参数、返回值也要以注释的形式说明用途;关键的语句段要求有注释解释。
(3)程序的层次清晰,可读性强。
(4)变量、函数命名符合规范。
4 开发环境
可以选择TC2.0、TC3.0、VC++6.0等开发环境,或经老师同意选择自己熟悉的开发工具与平台。

源码

https://pan.baidu.com/s/1SHX3aW20HP_98kAK11GSJg?pwd=0000

程序设计题四:会员卡计费系统

1 问题描述
设计一个会员卡计费管理系统,要求对会员进行分级管理,根据会员的级别享受不同的优惠政策。通过此课题,熟练掌握文件、数组、指针的各种操作,以及一些基本算法思想的应用。
2 功能要求
这款软件应该包括以下几个基本功能:
(1)用户密码验证。用户分为两类:管理员和操作员。注意两类用户的权限不同,管理员能完成操作员的所有功能,反之则不可。
(2)登记新会员。将会员个人信息及会员卡信息录入系统。
(3)会员信息查询、修改、续费,如需修改会员信息,需经过管理员认证(即由管理员输入密码方能完成修改)。
(4)会员消费结算。根据会员卡号(或者手机号)找到该会员信息,进行此次消费结算,以一年时间为周期,累计消费(或续费)满5000升级为银卡会员,享受95折,满10000升级为金卡会员,享受9折,满20000升级为钻石卡会员,享受8折优惠,若一年内没有达到所在级别的消费额度则自动降级。
(5)会员退卡。(注销会员卡号,余款退还,删除会员信息)
(6)统计功能:能够按照会员的缴费总额进行排序,并给出所有会员的缴费总额,实际消费总额。能够按会员的累计消费总额排序。
选做要求:
(1)每月进行整理统计记录,向排名前三和后三位的用户发放代金券,消费满额使用。
(2)如果有什么更好的合理功能,请自行添加。
3 其他要求
(1)界面美观,交互方便,实用性强。
(2)注释详细:每个变量都要求有注释说明用途;函数有注释说明功能,对参数、返回值也要以注释的形式说明用途;关键的语句段要求有注释解释。
(3)程序的层次清晰,可读性强。
(4)变量、函数命名符合规范。
(5)鼓励实现彩色或图形操作界面。
4 开发环境
可以选择TC2.0、TC3.0、VC++6.0等开发环境,或经老师同意选择自己熟悉的开发工具与平台。

程序设计题目五:考试管理系统

1 问题描述
要求用C或C++模拟实现考试过程的管理。包括:考生信息管理、成绩管理、试题库(单选、多选题,不考虑其他题型)以及模拟考试过程。
2基本功能要求
(1)考生管理:考生信息的增、删、改。
(2)考试过程管理,包括:
 设置考试题数,可以设置默认值,并允许修改
 抽取试题:考试时从试题库随机抽取规定数量的试题并显示,题目不能重复
 模拟考生参加考试的过程:首先输入学号,已经参加过考试的给出提示,不允许再考。考生答题完成后立刻给出成绩,并存储到成绩文件中。
(3)试题库管理:录入真实的C语言试题。题库数目不少于200题。可向试题库中增加试题。试题以文件的形式存在。每个试题包括题干、4个备选答案以及标准答案(需要考虑多选题)。
(4)成绩查询:输入考试学号或姓名可以查看成绩及排名。
3 设计要求
(1)数据结构的选择,特别是试题的存储问题,可以用结构体数组或链表存储从文件中读取的题目。
(2)考试过程的实现,特别是随机试题的产生,怎样才能保证其唯一性。
(3)功能合理、界面友好。
(4)基本功能要求必须完成,可以结合实际情况,设计合适的交互界面、合理的功能菜单,并考虑增加实用的功能,可参考扩展要求。
4 拓展功能要求
(1)成绩管理:以什么顺序存储?如何排序?
(2)题库管理:题库增、删、改时如何保持题目的唯一性
(3)模拟实际考试进行测试
另:其他可行功能(自行考虑)
5 开发环境
可以选择TC2.0、TC3.0、VC++6.0等开发环境,或经老师同意选择自己熟悉的开发工具与平台。

程序设计题目六:模拟校园卡

1问题描述
同学们在机房做实验或自由上机时,需要用校园卡进行消费。请根据实际使用需求,实现一个模拟校园卡消费的记录和查询系统 ,实现登录,计费,挂失,统计等相关功能。
2功能要求
主要功能模块:
(1)登录模块:同学根据自己设定的密码登录。三次错误则冻结账户。
(2)管理员可以用密码登录系统,实现:充值、挂失、重置学生密码等功能。
(3)学生登录系统后,可查询卡中余额、上机时间和地点记录,可统计自己上机时间和使用费用等。
参考的数据结构:
struct card
{ char ID[10]; //卡号
char name[10]; //姓名
char number[10];//学号
double echarge;//充值数额
double remain;//余额
int state; //状态 ,正常、挂失、冻结
……
}
 每个学生对应一个文本文件,例如: B17010101.txt,用于存放上机记录。上机记录表永久保存,用于事后查询和统计。
struct record
{ char ID[10]; //卡号
char Date;//上机日期
char start_time;//开始时间
int duration;//上机用时
char state; //状态 ,是否上机中
char address[10];//上机地点等
……
}
选做要求:
(1)对用户的输入进行一定的正确性检查。
(2)管理员能统计全部当天收入情况。
(3)提供菜单选择项,如角色选择、时间选择、功能选择等。
3其他要求
(1)界面美观,交互方便。
(2)注释详细:每个变量都要求有注释说明用途;函数有注释说明功能, 对参数、返回值也要以注释的形式说明用途;关键的语句段要求有注—释解释。
(3)程序的层次清晰,可读性强。变量、函数命名符合规范。
(4)如有可能,可使用MFC 等开发工具,实现彩色或图形操作界面。
4开发环境
可以选择TC2.0、TC3.0、VC++6.0等开发环境,或经老师同意选择自己熟悉的开发工具与平台。

源码

https://pan.baidu.com/s/1SHX3aW20HP_98kAK11GSJg?pwd=0000

程序设计题目七:手机电话薄

1 问题描述
现代人用手机维持人与人之间亲密的关系,对手机通讯信息的管理尤其重要。用 C 语言设计出模拟手机通信录管理系统,实现对手机中的通讯录进行管理。
2 功能要求
代码要能提供以下几个基本功能。
(1)查看功能:该功能提供“A 办公类”、“B 个人类”、“C 商务类”三种选择。当选中某类时,显示出此类中所有数据的姓名和电话号码。
(2)增加功能:能录入新数据(包括:姓名、电话号码、分类等),可选项有(A 办公类 B 个人类 C 商务类)、电子邮件、QQ 号码、备注。
例如:

杨春 13589664454 商务类 chuny@126.com   8888888	备注:大学同学

当录入了重复的姓名和电话号码时,则提示数据录入重复并取消录入;录入的新数据能按递增的顺序自动进行条目编号(并保存到文件中)。
(3)修改功能:选中某个人的姓名时,可对此人的相应数据进行修改
(4)查询功能:输入姓名,则查询出此人的电话号码。
(5)删除功能:选中某个人的姓名时,可对此人的相应数据进行删除,并自动调整后续条目的编号。
选做要求:
(1)查询时能模糊查询,输入一个字时,显示出所有名字中包含该字的所有信息。
(2)能统计通讯录中每个联系人的通信的频数,浏览时按频数由高到低进行显示。
3 其他要求
(1)界面美观,交互方便。
(2)注释详细:每个变量都要求有注释说明用途;函数有注释说明功能,对参数、返回值也要以注释的形式说明用途;关键的语句段要求有注释解释。
(3)程序的层次清晰,可读性强。
(4)变量、函数命名符合规范。
(5)如有可能,可使用MFC 等开发工具,实现彩色或图形操作界面。
4 开发环境
可以选择TC2.0、TC3.0、VC++6.0等开发环境,或经老师同意选择自己熟悉的开发工具与平台。

程序设计题目八:小学 100 以内正整数加减运算

1问题描述
设计并实现“小学 100 以内整数加减运算”系统,程序要求如下:
(1)随机出 10 道题,这 10 道题目不能重复,如果是减法运算,要求被减数大于减数。
(2)这些题目,可以选择以下两种方式中的一种给出: a.选择题,要求随机生成 4 个选项,正确答案包含其中; b.填空题,可以让用户从键盘输入答案。
(3)用户每次答题,能根据答案计算是否得分,并计入总分。
(4)答题完毕,系统给出总用时。
(5)根据答题情况,能将用户的错误作答题目及答案保存,可以提供用户查看错题功能
2功能要求
代码要能提供以下几个基本功能。
(1)提供菜单选项,让用户登录,答题。
(2)提供菜单选项,让用户查阅答题情况,答题期间不能查阅。
(3)提供菜单选项,错题再答,如果错题答对了,应从错题集中删除。
(4)提供菜单选项,可以选择生成题目到文本文件,同时生成所对应的答案到相应的文本文件,以便线下测试。
选做要求:
(1)在运算中添加括号,比如 5-(95-93),系统也能正确算出答案。
(2)在菜单选项中,增加帮助功能,提供系统使用说明,模拟答题功能。
3其他要求
(1)界面美观,交互方便。
(2)注释详细:每个变量都要求有注释说明用途;函数有注释说明功能,对参数、返回值也要以注释的形式说明用途;关键的语句段要求有注释解释。
(3)程序的层次清晰,可读性强。
(4)变量、函数命名符合规范。
(5)如有可能,可使用MFC 等开发工具,实现彩色或图形操作界面。
4开发环境
可以选择TC2.0、TC3.0、VC++6.0等开发环境,或经老师同意选择自己熟悉的开发工具与平台。

程序设计题目九:智能实验室预约系统

1问题描述
为提高实验室利用率,开通实验室预约使用模式,实验室有 40 台电脑,每天开放时间为 8:00-17:00,预约时间以 1 个小时为单位,请设计一个预约系统。
2功能要求
代码要能提供以下几个基本功能。
(1)设计两个角色:管理员和学生。管理员和学生需要先注册用户,再使用密码登录。
 管理员数据结构:

struct admin:
{

char	name[10];	//姓名
char	password[10]; // 密码
char	ID[5] ;	//工号
……
}
	学生数据结构:
struct student:
{

char	name[10];	//姓名
char	password[10]; // 密码
char	ID[5] ;	//学号
int	time; //累计时间
……
}

(2)管理员功能:
 维护电脑状态,比如标记故障电脑,以!标记。
 查询实验室使用情况,比如当前实验人数,正在做实验的学生信息等等。
 统计一天实验室使用情况保存在文件count.txt 中。
(3)学生功能:
 查询实验室预约情况。
 预约时间和取消预约。
 报告电脑故障,保存在文件error.txt 中,供管理员维护;
(4)系统可满足选座的要求:根据实验室电脑使用信息,显示实时座位使用情况表,供学生选择。
实验室座位图如下(可自行设计座位图和座位编号):

** ** ** **
** ** !* **
*# ** *# **
** ** ## **
** ** ## ##

空座位以*表示,被选择的座位以#符号标记,!标记为故障电脑;
(5)实验室电脑信息数据结构(供参考):

struct lab
{ int	No;	//编号
char	name[10];	//姓名
char	number[10]	;  //学号
int	eight;	//时间段状态,下同
int	nine;	
int	ten;	
int	eleven;	
int	twelve;	
int	thirteen;	
int	fourteen;
int	fifteen;
int	sixteen;
}

选做要求:
(1)对用户的输入进行一定的正确性检查。
(2)管理员统计一周实验室使用情况。
(3)学生查看实验累计时间
3其他要求
(1)界面美观,交互方便。
(2)注释详细:每个变量都要求有注释说明用途;函数有注释说明功能, 对参数、返回值也要以注释的形式说明用途;关键的语句段要求有注释解释。
(3)程序的层次清晰,可读性强。
(4)变量、函数命名符合规范。
(5)如有可能,可使用MFC 等开发工具,实现彩色或图形操作界面。
4开发环境
可以选择TC2.0、TC3.0、VC++6.0等开发环境,或经老师同意选择自己熟悉的开发工具与平台。

源码

https://pan.baidu.com/s/1SHX3aW20HP_98kAK11GSJg?pwd=0000

程序设计题目十:模拟火车票售票系统

1 问题描述
一火车站每天有n个发车班次,每个班次都有班次号,固定的发车时间,固定的路线(起始站、终点站),大致的行车时间,固定的额定载客量,如:
车次 发车时间 起点站 终点站 行车时间 额定载量 余票数量
G1113 07:25 南京南 广州南 7 600 30
G1887 07:39 南京南 重庆西 12 700 40
G180 12:22 南京南 北京南 5 700 20
G1210 13:05 上海虹桥 济南西 4 800 2
该系统要求对一个文件中所存储的票务信息进行各种常规操作,如:查询、计算、显示等功能。通过此课题,熟练掌握文件、数组、指针的各种操作,以及一些算法思想的应用,实现一个模拟火车售票系统。
2 基本功能要求
(1)管理员,根据密码登录,修改班次信息(信息用文件保存number.dat),可随时增加新车次数据
(2)用户以身份证注册,登录后可以:
 查询路线:给出起点和终点后,系统根据发车时间给出顺序的发车时间表(排序方法自选),并存入文件保存(sort.dat)。
 显示所有车次当前状况(如果当前系统时间超过了某班次的发车时间,则显示“此车已发出”的提示信息)。
 按班次号等,查询售票情况。
(3)售票员:密码登录后,可进行售票和退票。
 当查询出已定票人数小于额定载量,且当前系统时间小于发车时间时,才能售票,后台自动更新余票数量。
 可以设定提前售票时间。
 退票时,输入退票的班次,当本车次发出前半小时才可以退票,自动更新已售票人数。
(4)实名制售票,系统设置每张身份证只允许购买一张火车票。
3 设计要求
(1)根据要求,设计合适的数据结构(如结构数组、简单链表等)。
(2)选择文件存储格式(文本或二进制)和文件名。
(3)采用自顶向下的设计方法,设计系统的总体模块组成和数据结构。
(4)对于每项操作,设计一个函数(方法、子模块)进行实现,要明确函数原型。
(5)根据设计结果分步开发实现各模块,最后进行总体集成。
4 拓展功能要求
鼓励采用QT、MFC等开发工具,实现彩色或图形操作界面。
5 开发环境
可以选择TC2.0、TC3.0、VC++6.0等开发环境,或经老师同意选择自己熟悉的开发工具与平台。

程序设计题目十一:大学生考勤系统

1 问题描述
该系统要求实现一个简单、实用的学生考勤系统程序,主要功能包括考勤数据的新增、删除、修改、查找、统计、排序、输出等。所有统计数据都要利用文件系统保存,以备系统下次运行时使用。通过此课题,熟练掌握文件、数组、指针的各种操作,以及一些基本算法的应用。
2 功能要求
代码要能提供以下几个基本功能。
(1)考勤数据是由多条数据记录构成,其信息包括:学号(唯一)、姓名、班级、考勤日期(由月和日组成)等等。
(2)数据保存形式:所有信息要以文本或二进制文件保存。
(3)考勤功能实现:
 新增学生信息数据(避免重复记录,若在,不可再增加)。
 查找数据(可按学号、姓名、考勤日期等查找)。
 修改学生记录(可以先查找,再修改)。
 删除学生记录(请参考上面修改的处理)。
 显示学生考勤数据列表(可显示部分或全部)。
 排序(可按学号、姓名、考勤日期等排序)。
 数据统计(对考勤数据统计分析,统计完成后,可以通过考勤系统中得出考勤明细表,考勤日报表、考勤汇总表、考勤异常表,请假汇总表等)。
 保存数据到文件中并从文件中读入数据。
(4)界面功能要求:
采用友好的界面,实现一个功能控制菜单。每次操作都从该菜单选择,利用循环结构使得一次运行程序可进行多次操作。
备注:
(1)数据完整性保证。例如:学号和姓名必须严格、规范。
(2)要求报表格式灵活、形式多样、内容清楚,具体请学生自己构思、设计。
(3)考勤符号:出 勤√ 旷 课 X 事 假 △ 病 假 ○ 迟 到 + 早 退 –
(4)考勤时间段不少于十条。
3 其他要求
(1)界面美观,交互方便。
(2)注释详细:每个函数有注释说明功能,对参数、返回值也要以注释的形式说明用途;关键的语句段要求有注释解释。
(3)程序的层次清晰,可读性强。
(4)变量、函数命名符合规范。
(5)如有可能,可使用MFC 等开发工具,实现彩色或图形操作界面。
4 开发环境
可以选择TC2.0、TC3.0、VC++6.0等开发环境,或经老师同意选择自己熟悉的开发工具与平台。

程序设计题十二:物业费管理系统

1 问题描述
为维护小区正常的运营管理,居民应按时缴纳小区管理费,请设计一个物业费管理系统,对小区的住户进行收费管理。通过此课题,熟练掌握文件、数组、指针的各种操作,以及一些基本算法思想的应用。
2 功能要求
这款软件应该包括以下几个基本功能:
(1)用户密码验证。用户分为两类:管理员和操作员。注意两类用户的权限不同。管理员能完成操作员的所有功能,反之则不可。
(2)新住户信息添加。户主姓名、性别、联系电话、楼号,单元号,房号,面积、物业单价(高层3元/平方,多层2元/平方,由楼号区分),公摊水电费,应缴纳物业费,备注信息等。
(3)修改、查询、删除住户信息的功能。
(4)应缴物业费自动生成,每月1日起生成缴费额,如遇到拖欠则实施累加,并按每天1%的标准收取滞纳金。
(5)奖励,对于一次缴纳一年物业费的住户享受9折优惠,提前半年缴纳的住户享受97折优惠。
(6)统计功能,能够按楼号分类统计所有未缴清物业费的住户,并公示提醒,能够按月统计物业营收费总额,实际收费总额,能够按拖欠款项的多少对用户信息进行从大到小的排序。
选做要求:
(1)对于积极缴纳物业费的业主进行奖励,比如发放代金券。
(2)添加捐款箱服务,用于小区内困难业主的帮扶。
(3)如果有什么更好的、更合理功能,请自加。
3 其他要求
(1)界面美观,交互方便,实用性强。
(2)注释详细:每个变量都要求有注释说明用途;函数有注释说明功能,对参数、返回值也要以注释的形式说明用途;关键的语句段要求有注释解释。
(3)程序的层次清晰,可读性强。
(4)变量、函数命名符合规范。
(5)如有可能,可使用MFC 等开发工具,实现彩色或图形操作界面。
4 开发环境
可以选择VS2010,dev等开发环境,或者与老师讨论,选择自己熟悉的开发工具与平台。

程序设计题十三:模拟工资管理系统

1 系统的基本功能
本课题要求编写C程序实现对员工信息和工资信息的管理。一个综合的员工管理系统,要求能够管理若干个员工信息及工资,需要实现以下功能:读取以数据文件形式存储的员工信息;可以按工号增加、修改、删除员工的信息;按照工号、姓名、岗位等方式查询员工信息;可以按照工号顺序浏览员工信息;可以统计每个岗位员工的各类工资总和,应发工资和实发工资,年度工资总和;能够对员工的收入进行排名。。
系统内的所有信息必须以文件的方式存储在硬盘中,员工信息文件,存放了员工的工号,姓名,性别,岗位,总工资,依据总工资的排名。格式如下:

B01,Tom,Male,部门经理,15000
B02,Rose,Female,人力资源,10000
B03,Jack,Male,财务,8000
……

2 要求及提示
2.1 基本要求
系统提供的基本功能包括:
(1)系统内的相关信息文件由程序设计人员预先从键盘上录入,文件中的数据记录不得少于20条;
(2)设计并实现系统的相关界面,提供良好的交互界面;
(3)排序功能:能实现由用户选择按各项数据升序或降序排序对查询出的信息进行显示;
(4)可以添加/删除/修改员工信息;
(5)可以添加/删除/修改工资信息;
(6)查询员工信息:
 输入一个工号,查出此员工的基本信息并显示输出。
 输入一个工号,查询出此员工的所有工资情况。
(7)查询工资信息:
 输入一个岗位编号,可查询出本岗位所有的员工的基本信息并显示输出。
 输入一个岗位名称时,查询岗位的最高工资、最低工资和平均工资。
2.2 选做要求
使用QT或其他编译器,为本课题设计一个可视化的界面,要求界面美观、布局合理、功能正确以及对用户的错误操作能够进行友好提示。
2.3 提示

  1. 程序的总体框图如下:

图1 员工管理系统总体框图

  1. 数据结构:
    依据给定的员工信息、岗位信息和工资信息,定义员工类,设计内容举例如下:
    struct wage
{  char item[10];   //工资类别,如:各种补贴、绩效、基本工资、工龄工资等
   double amount;  //数额
struct Staff
    {   char     num[10];                  	//工号
        char  name[20] ;               	//姓名
        char  gender   ;          		//性别
        wage   income[10];             	//各类工资
        wage  outcome[5];            //各类扣款
        double  total;              		//应发工资
        double  realwage ;              //实发工资
        char job[10];                 	//岗位
}

2.4 其他要求
 在上述功能要求的基础上,为了提高本课程的成绩,可以和任课教师沟通,为程序设计题添加一些额外的功能。
 变量、方法命名符合规范。
 注释详细:每个变量都要求有注释说明用途;方法有注释说明功能,对参数、返回值也要以注释的形式说明用途;关键的语句段要求有注释解释。
 程序的层次清晰,可读性强。
3 开发环境
开发环境使用VS2010以上版本,鼓励实现图形界面。

程序设计题十四:媒体信息统计

1 问题描述
该系统要求实现一个简单、实用的媒体信息统计程序,主要功能包括媒体信息数据的新增、删除、修改、查找、统计输出等。所有统计数据都要利用文件系统保存,以备系统下次运行时使用。通过此课题,熟练掌握文件、数组、指针的各种操作,以及一些基本算法的应用。
2 功能要求
代码应满足以下几个方面的要求。
(1)媒体信息数据是由多条数据记录构成,每条记录包括:媒体类型、作者/表演者、出版者、地区、年份、风格、数字化编码类型、介质类型、体积、时长等数据项。其中媒体类型取值包括:文字、音频、图像、图形、视频、动画等。
(2)数据保存形式:所有信息数据要以文本或二进制文件保存。
(3)需要实现的功能要求

  1. 新增媒体信息数据条目。
  2. 查找数据(可按作者、出版者、年份、风格等查找)。
  3. 修改数据条目(先查找,再修改。若当前条件查找出多个记录,则提示用户增加查询条件继续查找,直到确定唯一记录后再修改)。
  4. 删除数据条目(请参考上面修改的处理)。
  5. 显示媒体信息数据列表。
  6. 数据统计(可作者、出版者、年份、风格等生成各种统计报表)。
  7. 保存数据到文件中、从文件中读入数据。
    (4)用户界面要求
  8. 采用友好的字符界面,实现一个功能控制菜单。
  9. 每次操作都从该菜单选择,利用循环结构使得一次运行程序可进行多次操作。
    选做要求:
    (1)数据完整性保证。例如:地区和风格名称必须严格、规范。
    (2)指标名称的维护和扩展功能,让用户可以添加新的指标名称。
    (3)支持多地区、跨年份、多指标综合统计能力,要求报表格式灵活、形式多样、内容清楚,具体请学生自己构思、设计。
    3 其他要求
    (1)界面美观,交互方便。
    (2)注释详细:每个变量都要求有注释说明用途;函数有注释说明功能,对参数、返回值也要以注释的形式说明用途;关键的语句段要求有注释解释。
    (3)程序的层次清晰,可读性强。
    (4)变量、函数命名符合规范。
    (5)如有可能,可使用MFC 等开发工具,实现彩色或图形操作界面。
    4 开发环境
    可以选择TC2.0、TC3.0、VC++6.0等开发环境,或者与老师讨论,选择自己熟悉的开发工具与平台。

*程序设计指导与提示
(1)根据媒体数据信息要求,设计合适的数据结构(如结构数组、链表、对象数组等实现)。
(2)选择文件存储格式(文本或二进制)和文件名。
(3)采用自顶向下的设计方法,设计系统的总体模块组成和数据结构。设计主程序的流程图和界面。
(4)对于每项操作,设计一个函数(方法、子模块)进行实现,要明确函数原型。
(5)根据设计结果分步开发实现各模块,最后进行总体集成。

程序设计题十五:个人帐本管理系统

【问题描述】
该系统要求实现一个简单、实用的个人帐本管理程序,主要功能包括帐务收支明细数据的录入、查找、修改、删除、统计、排序等。所有帐务数据都要利用文件系统保存,以备系统下次运行时使用。通过此课题,熟练掌握文件、数组、指针的各种操作,以及一些基本算法思想的应用。
【基本要求】
(1)程序中有合理的数据结构设计,如个人帐务数据是由帐务明细条目构成,其信息应包括:序号,日期(年、月、日),收支项类别(餐饮、交通出行、生活缴费、衣着、学习、休闲娱乐、日用耗品、医疗、投资、奖励等等),收支金额(正/负数表示收支),备注等(可自行设计添加条目)。
(2)程序有完整的数据保存形式:
所有个人帐务数据要以文本或二进制文件保存。(随源程序提交)
(3)程序需以多文件形式设计,只有一个主程序的设计,只能评及格。
【功能要求】
1) 有明确的多级菜单选择功能。
2) 能够随时添加帐务明细数据。
3) 查找帐务数据(可按序号、日期(年、月、日)、名称、金额等查找)。
4) 修改和删除帐务明细条目(先查找,再修改。若查找出多个条目,则进一步提示用户选择条目的序号,再修改)。
5) 对帐务数据排序(可按日期、名称、金额等排序。要求排序后,记录的序号也要重新编排)。
6) 帐务统计(根据日期范围,进行分类汇总并输出报表,如不同类型的支出进行汇总)
7) 保存帐务数据到文件中、从文件中读入帐务数据。
界面功能要求:

  1. 采用友好的字符界面,实现一个功能控制菜单。
  2. 每次操作从该菜单选择,利用循环结构使得程序可进行多次重复操作。
    【程序设计的具体说明】
    (1)根据个人帐务数据信息要求,设计合适的数据结构(如结构数组)。
    (2)采用自顶向下的设计方法,设计系统的总体模块组成和数据结构。
    (3)对于每项操作,设计一个函数(方法、子模块)进行实现。
    (4)根据设计结果分步开发实现各模块,最后进行总体集成。
    【程序设计的开发环境】
    采用vs2010以上版本,DEV。
    【★拓展功能要求★】
    鼓励实现彩色或图形操作界面。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
#include<iostream> using namespace std; class C { public: float card_fee; virtual void real_fee() = 0; virtual void show_the_real_fee() = 0; }; class student : public C { public: student(float fee) { card_fee = fee; } void real_fee(){ card_fee *= 0.5; }//计算学生卡的实际费用 void show_the_real_fee(){ cout << "学生卡实际的费用是:" << card_fee<<"元"<<endl; } }; class older : public C { public: older(float fee){ card_fee = fee; } void real_fee(){ card_fee *= 0.6; }//计算老人卡的实际费用 void show_the_real_fee(){ cout << "老人卡实际的费用是:" << card_fee << "元" << endl; } }; class normal : public C { public: normal(float fee){ card_fee = fee; } void real_fee(){ card_fee *= 0.95; }//计算一般卡的实际费用 void show_the_real_fee(){ cout << "一般市民卡实际的费用是:" << card_fee << "元" << endl; } }; void main() { cout << "请输入公交费原价:"; float fee; cin >> fee; cout <<"公交费原价为"<<fee<<"元"<< endl; cout << "请输入刷卡人群性质" << endl << "学生卡:请输 1;" << endl << "老人卡:请输 2;" << endl << "普通卡:请输 3;" << endl; int man; cin >> man;//2.定义了一个变量,用于了解用户刷的卡的种类,以便进相应的计算 C *p_card;//3.定义了一个父类指针,为了方便对子类的操作(即:该指针指向"谁"时,用这个指针调用的函数就是"谁"的函数,因为子类的函数的名子都一样,函数里的内容不一样,调用不同子类的函数后,计算的结果就不同) switch (man)//4.根据用户的输入,开启相应的功能 { case 1: {student stu_card(fee); p_card = &stu_card; p_card->real_fee(); p_card->show_the_real_fee();}break; case 2: {older old_card(fee); p_card = &old_card; p_card->real_fee(); p_card->show_the_real_fee();}break; case 3: {normal normal_card(fee); p_card = &normal_card; p_card->real_fee(); p_card->show_the_real_fee();}break; default:cout <<"输入错误!"<< endl;//5.如果用户输入的不是1,2,3,而是其他字符,则报错 } getchar();getchar(); }

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值