首页 > 其他分享 >c语言多媒体文件管理及检索系统220

c语言多媒体文件管理及检索系统220

时间:2024-04-08 19:05:17浏览次数:16  
标签:文件 功能 要求 多媒体 检索系统 信息 注释 输入 220

 定制魏:QTWZPW,获取更多源码等

目录

选题

程序设计题1:基于数据分析的小区电量扩容推荐程序

程序设计题2:神气的盒子

程序设计题3:多媒体文件管理及检索系统

程序设计题4:  计算24点游戏

程序设计题5:上网计费系统模拟

程序设计题6:信息产业发展统计

程序设计题7:挖地雷

程序设计题8:排班系统

程序设计课题9 模拟工资管理系统

程序设计题10:简单音乐播放器系统

程序设计题11:食堂自动化管理系统

程序设计题12 拼字游戏

程序设计题13 小区物业管理系统

程序设计题14王者农药

所选题目

程序设计题3:多媒体文件管理及检索系统

1 问题描述

2 功能要求

选做要求:

3 其他要求

4 开发环境

需求分析

主要存储结构:

 主要函数流程

效果展示

​编辑

​编辑 ​编辑

分析

重要代码 


选题
 

程序设计题1:基于数据分析的小区电量扩容推荐程序

1 问题描述

老旧小区的改造是一项重大的民生工程,其中电网的改造又是头等大事。电力系统由于供电容量及工作人员人手的限制,不可能一次完成所有小区的扩容工作。因此,根据老小区已有用量的数据情况综合分析,挑选出急需增容的小区先行改造非常有必要,电力公司也同时会考虑到效益问题。

本课题需要提供抽样小区至少50户以上居民两年的用电情况进行数据的统计和分析,再根据电力公司拟增容的小区数据及效益需求,提供一份小区名单给电力公司作参考,或者提供一份按紧急程度排序的小区完整名单供参考。

2 功能要求

系统中主要有用电数据统计员和供电公司工作人员两种身份的用户,二者各具有不同的功能:

用电数据统计员

(1)提供原始的数据,包括:老小区名称、家庭户名、用电的年月、当月峰时用电量、谷时用电量、每月电费(这一项是计算出来的)等。

(2)形成各类统计报表,如按家庭统计:每年的总用电量、电费;进而按小区来统计:小区每个月的总用电量、总电费、平均到每一户的平均电量和电费等。

(3)对小区数据进行各类排序:按分时用电量、按每月电费总量、按每一户的平均电费或电量等。

供电公司工作人员

(1) 查询功能:可以进行各类查询功能,可以按小区或用户查询用电具体报表数据;

(2)需求提供:可以提供拟扩容小区的数量,或其他要求,如每月电费最低总额等。

(3)查看功能:系统根据需求列出优先扩容的小区建议名单供工作人员查看。

选做要求

  1. 由于原始数据量比较大,可以通过调用随机函数产生模拟数据放入原始的数据文件中。

(2)除了参考用电量及电费之外,如果有特殊优先级要求可以自行设定加入程序中。

(3)同学可以自拟扩展功能并实现。

3 其他要求

(1)界面美观,交互方便,提供菜单选择。

(2)注释详细:每个变量都要求有注释说明用途;函数有注释说明功能,对参数、返回值也要以注释的形式说明用途;关键的语句段要求有注释解释。

(3)程序的层次清晰,可读性强。

(4)变量、函数命名符合规范。

4 开发环境

可以选择TC2.0、TC3.0、VC++6.0,DEV_C++等开发环境,或者与老师讨论,选择自己熟悉的开发工具与平台。

程序设计题2:神气的盒子

1 问题描述

手机等电子设备在使用过程中发出的信号可能干挠飞机驾驶舱与地面的正常通信,使飞机处于错误操作状态,严重影响飞行安全。《中华人民共和国民用航空法》也明文规定限制飞机上使用手机。2013年10月,美国联邦航空管理局发文,允许在飞机上使用“飞行模式”的个人电子设备,随后,很多国家也逐步开放在飞机上使用手机这一限制。

然而,实际情况可能更复杂。很多手机质量堪忧,即使设置成“飞行模式”也可能失效,对飞机飞行造成巨大的安全隐患。针对这一特殊情况,某航班进行大胆革新,制作了一批“神奇的盒子”。在乘客在乘坐飞机时,由该航班的乘务人员发给每个乘客,供乘客放置手机等电子产品。这些盒子上都有编号,只要将手机放进去,无论什么状态都能自动转为“安全飞行模式”,既能正常使用,也能保证飞行的安排。飞机着陆后,乘务人员将回收这些盒子。

请你设计一款方便乘务人员管理这些“神气的盒子”的软件,并对这一服务展开客户满意度调查,为航空公司进一步改善服务提供依据。

2 功能要求

这款软件应该包括以下几个基本功能:

(1)乘务人员的工号和密码验证。完成盒子发放和发回的工作可能由同一个或者不同的乘务人员完成,也可能出现中途换岗。不管哪位乘务员完成都要对自己的工作负责,因此在使用该软件时需要输入他(她)的工号以及密码。

(2)盒子发放。乘务人员在发放盒子的过程中,需要登记乘客的姓名、有效证件、登机牌,出发地和目的地,手机机型及手机号码,备用联系方式,以及盒子的编号等信息。可以考虑登机牌已经包含了乘客身份的有效信息。另外,乘客的“备用联系方式”必须要填写;身份证号码等信息输入有明显错误也应给出提示。

(3)信息保存。将登记的所有信息以文件形式保存。

(4)回收盒子。飞机着陆时,乘客可以将手机等电子设备取出,将空的盒子直接还给乘务员,也可以放在自己的位置上离开,由乘务人员来回收,乘务人员收到盒子需确认“已归还”。所有的信息也必须保存到文件中。

(5)找寻遗失手机的乘客。如果发生手机未取出就离开的乘客,乘务人员能根据盒子的号码找到该乘客的备用联系方式,以取得联系。

(6)满意度调查。针对某航班这一服务,对乘客进行满意度调查。在乘客离开时按键,满意为1,不满意为2,不表态为0。请统计乘客的满意度。

选做要求

(1)如果乘客有什么其他意见和建议,请记录下来或由乘客填写,以便在以后的工作总结会议上进行总体展示。

(2)参加满意度调查的乘客,可参加抽奖活动。请设计一个抽奖过程,以手机号码为准。

(3)如果有什么更好的、更合理功能,请自加。

3 其他要求

  1. 界面美观,交互方便,实用性强。

(2)注释详细:每个变量都要求有注释说明用途;函数有注释说明功能,对参数、返回值也要以注释的形式说明用途;关键的语句段要求有注释解释。

(3)程序的层次清晰,可读性强。

(4)变量、函数命名符合规范。

(5)如有可能,可使用MFC 等开发工具,实现彩色或图形操作界面。

4 开发环境

可以选择TC2.0、TC3.0、VC++6.0等开发环境,或者与老师讨论,选择自己熟悉的开发工具与平台。

程序设计题3多媒体文件管理及检索系统

1 问题描述

建立一个多媒体文件信息管理系统,包括对各种多媒体音视频文件的管理。该系统具有排序、查找、计算、显示等功能。通过此课题,熟练掌握文件、数组、指针的各种操作等。其中,多媒体文件信息应包括:音视频文件的文件名、文件类型、文件大小、导演、演员、浏览次数、发行日期、所获奖项等。

2 功能要求

代码要能提供以下几个基本功能。

  1. 要求进入系统需要输入口令验证。

  2. 按照文件类型分类,并可按照发行日期从近到显示文件信息。

  3. 实现加入新文件信息和删除无用文件信息的更新。

  4. 将所有多媒体文件信息存为文件。

选做要求

  1. 按照导演或者主要演员查询对应的文件信息,并计算某一导演或演员参与的文件总数。

  2. 可根据用户设定做出推荐,比如根据用户所需类别、文件类型和浏览次数等设定综合做出一定推荐。

3 其他要求

(1)界面美观,交互方便。

(2)注释详细:每个变量都要求有注释说明用途;函数有注释说明功能,对参数、返回值也要以注释的形式说明用途;关键的语句段要求有注释解释。

(3)程序的层次清晰,可读性强。

(4)变量、函数命名符合规范。

(5)如有可能,可使用MFC 等开发工具,实现彩色或图形操作界面。

4 开发环境

可以选择TC2.0、TC3.0、VC++6.0等开发环境,或者与老师讨论,选择自己熟悉的开发工具与平台。

程序设计题4:  计算24点游戏

1 问题描述

设计一个带有记分功能的24点游戏(简易版本,只使用1-10之间的数)。能够进行提供四个随机数进行出题,并判断能否算出24点,对读取玩家输入的表达式,并计算结果是否正确。

2 功能要求

代码要能提供以下几个基本功能。

  1. 设计相应的游戏积分功能,以给出题目到游戏者输入结果之间的时间记分。超过一定的时间未给出答案则取消该轮,每轮3次,记总分(3次分相加)前三名。

  2. 游戏参与者进入游戏必须先输入名称,游戏开始,程序随机自动生成四张牌(以1-10之间的数值代替),游戏者要求尽快给出表达式,只能使用 + - × % 运算。可以使用(),不涉及小数运算。比如机器给出四个数为3、3、6、2,游戏者输入表达式:(3+3-2)×6,程序检查运算成功,根据要求3计算时间。如果给出的四个数不能得出24,如:1、2、1、3,那么游戏者必须输入NO,要求计算机进入下一题,但此次如果是正确判断一样记分。如此玩3次,计算总分。任何一次在要求时间内不能给出表达式或NO,那么游戏此轮结束。

  3. 游戏使用出牌到要求给出结果之间的时间限制作为游戏的难度级别,可自行设置。

  4. 设计四个数能否计算得出24的算法是关键,(用于判断游戏者输入NO的判断是否正确,判断错误就结束此轮游戏)。

选做要求

  1. 设计游戏进入界面。提供游戏难度设置,高手总分查询和进入、退出游戏选项。

3 其他要求

(1)界面美观,交互方便。

(2)注释详细:每个变量都要求有注释说明用途;函数有注释说明功能,对参数、返回值也要以注释的形式说明用途;关键的语句段要求有注释解释。

(3)程序的层次清晰,可读性强。

(4)变量、函数命名符合规范。

(5)如有可能,可使用MFC 等开发工具,实现彩色或图形操作界面。

4 开发环境

可以选择TC2.0、TC3.0、VC++6.0等开发环境,或者与老师讨论,选择自己熟悉的开发工具与平台。

程序设计题5:上网计费系统模拟

1 问题描述

本程序模拟根据上网清单、客户资料等生成客户上网账单的过程,该系统主要功能包括促销信息、待购信息的新增、删除、修改、查找等。所有数据都要利用文件系统保存,以备系统下次运行时使用。通过此课题,熟练掌握文件、数组、指针的各种操作,以及一些基本算法的应用。

要求编写一个程序,实现对上网费用的计算。

2 功能要求

代码要能提供以下几个基本功能。

(1)文件管理和存储

1)用户资料文件,存放了用户名、用户帐号以及计费方式。格式如下:

Zhang Qiang 0001 0

Liu Hui 0002 2

Ke Lei 0003 4

其中,计费方式的含义如下:

0 无任何优惠活动,按每分钟 0.03元计算。

1 每月 50元包 30个小时,如上网时长在 30小时之内(含 30小时),应缴 50元,超过部分按每分钟 0.03元计算。

2 每月 95元包 60个小时,如上网时长在 60小时之内(含 60小时),应缴 95元,超过部分按每分钟 0.03元计算。

3 每月 200元包 150个小时,如上网时长在 150小时之内(含 150小时),应缴 200元,超过部分按每分钟 0.03元计算。

4 整包,每月缴 300元,上网时长不限。

2)上网记录文件,存放了所有用户的上网记录,内容包括用户帐号、上网起始时间和上网终止时间(格式:年月日小时分钟秒)。通常每个用户应有多条上网记录。该文件的格式如下:

0003 20151201170000 20151201193024

0001 20151202190006 20151202210000

0003 20151222211343 20151223012558

(2)功能要求

1)用户资料文件由程序设计人员预先从键盘上录入,用户资料文件中的数据记录不得少于 15条。

2)上网记录文件中的数据记录不得少于 150条,首先录入一些上网记录信息,必须有跨年、跨月份的上网记录。

3)用户资料文件及上网记录文件中的数据可随时增加或减少,程序不应进行限制或限定。

4)对上网费用进行计算。首先由操作人员输入年份和月,然后由程序计算该月份所有用户的上网费用并输出账单信息到指定文件夹,格式如下:

0001 Zhang Qiang 0 xxxx xxxxx

0002。。

计费时,对于每条上网记录,不足一分钟按一分钟计算。对于跨年或跨月份的记录,只计算发生在当月的费用。例如对于 2016年 1月 31日 15:00:00至 2016年 2月 1日 01:00:00的上网记录,在计算 2016年 1月的上网费时,仅计算 2016年 1月 31日 15:00:00至 2016年 2月 1日 00:00:00的费用;在计算 2016年 2月的上网费时,仅计算 2016年 2月 1日 00:00:00至 2016年 2月 1日 01:00:00的费用。处理时须考虑闰年的情况。

选做要求

(1)随机生成一批上网记录信息,并判断是否正确,不正确的信息剔除。

(2)设计用户可能需要的报表,或者建议该系统中还需要采集哪些信息,以便更好的提供用户需要的信息。

3 其他要求

(1)界面美观,交互方便。

(2)注释详细:每个变量都要求有注释说明用途;函数有注释说明功能,对参数、返回值也要以注释的形式说明用途;关键的语句段要求有注释解释。

(3)程序的层次清晰,可读性强。

(4)变量、函数命名符合规范。

(5)如有可能,可使用MFC 等开发工具,实现彩色或图形操作界面。

4 开发环境

可以选择TC2.0、TC3.0、VC++6.0等开发环境,或者与老师讨论,选择自己熟悉的开发工具与平台。

*程序设计方法

(1)根据促销或购物的要求,设计合适的数据结构(如结构数组、链表、对象数组等实现)。

(2)选择文件存储格式(文本或二进制)和文件名。

(3)采用自顶向下的设计方法,设计系统的总体模块组成和数据结构。设计主程序的流程图和界面。

(4)对于每项操作,设计一个函数(方法、子模块)进行实现,要明确函数原型。

(5)根据设计结果分步开发实现各模块,最后进行总体集成。

程序设计题6:信息产业发展统计

1 问题描述

该系统要求实现一个简单、实用的信息产业发展统计程序,主要功能包括信息产业发展数据的新增、删除、修改、查找、统计输出等。所有统计数据都要利用文件系统保存,以备系统下次运行时使用。通过此课题,熟练掌握文件、数组、指针的各种操作,以及一些基本算法的应用。

2 功能要求

代码要能提供以下几个基本功能。

(1)信息产业发展数据是由多条数据记录构成,其信息包括:

地区、年份、指标名称、计量单位、指标数量等。其中,地区包括:全国34个省、直辖市、自治区和港澳台;指标名称包括:固定电话用户数、移动电话用户数、互联网用户数、通信固定资产投入、通信业收入、信息服务收入、信息产品收入等。

(2)数据保存形式:

所有信息产业发展数据要以文本或二进制文件保存。

(3)需要实现的功能

1) 新增信息产业发展数据条目。

2) 查找数据(可按地区、年份、指标名称等查找)。

3) 修改数据条目(先查找,再修改。若当前条件查找出多个记录,则提示用户增加查询条件继续查找,直到确定唯一记录后再修改)。

4) 删除数据条目(请参考上面修改的处理)。

5) 显示信息产业发展数据列表。

6) 数据统计(可按地区、年份、指标名称等生成各种统计报表)。

7) 保存数据到文件中、从文件中读入数据。

(4)界面功能要求:

1) 采用友好的字符界面,实现一个功能控制菜单。

2) 每次操作都从该菜单选择,利用循环结构使得一次运行程序可进行多次操作。

选做要求

(1)数据完整性保证。例如:地区和指标名称必须严格、规范。

(2)指标名称的维护和扩展功能,让用户可以添加新的指标名称。

(3)支持多地区、跨年份、多指标综合统计能力,要求报表格式灵活、形式多样、内容清楚,具体请学生自己构思、设计。

3 其他要求

(1)界面美观,交互方便。

(2)注释详细:每个变量都要求有注释说明用途;函数有注释说明功能,对参数、返回值也要以注释的形式说明用途;关键的语句段要求有注释解释。

(3)程序的层次清晰,可读性强。

(4)变量、函数命名符合规范。

(5)如有可能,可使用MFC 等开发工具,实现彩色或图形操作界面。

4 开发环境

可以选择TC2.0、TC3.0、VC++6.0等开发环境,或者与老师讨论,选择自己熟悉的开发工具与平台。

程序设计题7:挖地雷

1 问题描述

你玩过扫雷游戏吧?Windows操作系统中带了这个小游戏。在游戏中要想过关,就必须要在一个 NxM 的区域上找出所有的地雷。游戏过程中,计算机会在地图上显示一些数字从而帮助你确定哪里有地雷。例如,在下面这个有两颗地雷的 4x4 的地图(*表示地雷):

*...
....
.*..
....

根据上面的地图,可以计算出应该提供给游戏者的数字如下所示:

*100
2210
1*10
1110

每个数字表示了该方格周围到底有几个地雷,当然,一个方格周围最多的时候只会有八个。

2 功能要求

代码要能提供以下几个基本功能。

(1)定义一个矩阵,随机产生地雷的分布并由此产生提供给游戏者的数字信息。

(2)定义成绩排行榜,记录前五名的用户名及时间。

(3)提供菜单功能,定义不同等级的地雷地图供选择。

(4)游戏者通过坐标(如1(1,2)、0(3,4)判定第一行第二列位置为地雷,第3行第四列不是地雷)判定是否为地雷,标记地雷位置正确,则正确位置显示@符号,如触碰地雷,游戏结束,没有触碰地雷,显示该坐标位置周边地雷分布情况,如果周边有地雷不显示。

(5)成绩排行榜以文件形式保存。

选做要求

(1)对用户的输入进行一定的正确性检查。

(2)采用Turbo C/C++、MFC等开发工具,实现彩色或图形操作界面。

(3)设计一个功能选项“AI玩家”。当选中此功能后,用电脑模拟用户来玩猜数字游戏,并将整个游戏的过程输出至屏幕或文本文件。

3 其他要求

(1)界面美观,交互方便。

(2)注释详细:每个变量都要求有注释说明用途;函数有注释说明功能,对参数、返回值也要以注释的形式说明用途;关键的语句段要求有注释解释。

(3)程序的层次清晰,可读性强。

(4)变量、函数命名符合规范。

4 开发环境

可以选择TC2.0、TC3.0、VC++6.0等开发环境,或者与老师讨论,选择自己熟悉的开发工具与平台。

程序设计题8:排班系统

1 问题描述

某单位有7名保安人员,要求每个人在一星期中可以休息一天。每名保安可以自行选择自己想要的休息日,而对于休息日的选择既可以是某一天,也可以是某几天中的其中一天。当7名保安依次输入自己想要的休息日后,系统将会给出可能的值班安排。若系统给出的值班安排是0种,证明系统对7名保安的选择无法作出排班,需要重新输入。

要求打印轮休的所有可能方案。当然使每个人都满意,例如每人可以选择的休息日如下: 

钱:星期一、星期六 

孙:星期三、星期日 

李:星期五 

周:星期一、星期四、星期六 

吴:星期二、星期五 

陈:星期三、星期六、星期日

运行结果:

排班表: 1

星期四

星期一

星期五

星期六

星期三

星期二

星期日

排班表: 2

星期四

星期一

星期日

星期五

星期六

星期二

星期三

排班表: 3

星期四

星期六

星期三

星期一

星期五

星期二

星期日

排班表: 4

星期四

星期六

星期日

星期五

星期一

星期二

星期三

2 功能要求

代码要能提供以下几个基本功能。

  1. 用户登录:

·新用户可以注册,旧用户直接登录。

(2)排班表:

·实现选择并存储排班表到排班表文件中。

·维护排班表文件基本信息,实现增加、修改、查询、删除排班表记录的功能。

·由于排班表的特殊性,注意增加、修改、删除时备注操作时间和操作人员信息。

·在系统无法排班时,判断周几没有值班人员。

选做要求

(1)对用户的输入进行一定的正确性检查。

(2)增设特殊情况原因显示,例如:看病>办证>旅游 。

(3)当有某个保安请假一周,即剩下的6名保安有一个人一周要值两天时如何排班。

(4)可增设当天值班保安的工号、电话、地址等信息的显示

(5)升级为总排班人数在7-20,每天排班人数在2-6人,排班天数从7-30(根据系统取每月总天数),则应用范围更广,可应用于假期领导值班系统。

(6)增加打卡功能,则可以升级为考勤系统。

3 其他要求

(1)界面美观简洁,操作方便。

(2)编码规范,程序的层次清晰,主要的程序元素有注释,可读性强,程序运行稳定。

(3)变量、函数命名符合规范。

程序设计课题9 模拟工资管理系统

问题描述 工资管理是一个单位最基本的一项财务管理,该系统要求实现一个简单、实用的财务管理程序,主要功能包括员工信息的录入、查找、修改、删除、统计、排序等。所有帐务数据都要利用文件系统保存,以备系统下次运行时使用。通过此课题,熟练掌握文件、数组、指针的各种操作,以及一些基本算法思想的应用。

开发环境 采用C或C++实现,VC++6.0、Windows98/XP

基本要求

管理员:

1)以密码登录系统

2)录入员工信息具体工资,计算相应的税金(计算规则参见最新公布的政策)

3)查询并显示所有的员工具体信息

4)显示统计信息:员工数目,工资总数和税金总数

4)按照指定条件查询

5)增删具体员工记录

税金政策基本是不同收入等级的工资使用不同的比例收取税金。类似于下表:

工资 税金

0~1500 0%

1500~2500 10%(超出部分)

2500~3500 15%(超出部分)

3500~5000 20%(超出部分)

5000~10000 30%(超出部分)

10000~ 40%(超出部分)

     员工:

  1. 以工号为登录ID,密码自己设定;

  2. 可以查询本人的相关信息;

  3. 系统提供指定时间间隔的查询功能。

设计要求与提示

(1)根据工资管理系统的数据信息要求,设计合适的数据结构(如结构数组、简单链表等)。

(2)选择文件存储格式(文本或二进制)和文件名。

(3)采用自顶向下的设计方法,设计系统的总体模块组成和数据结构。

(4)对于每项操作,设计一个函数(方法、子模块)进行实现,要明确函数原型。

(5)根据设计结果分步开发实现各模块,最后进行总体集成。

拓展功能要求

鼓励采用Turbo C/C++、MFC等开发工具,实现彩色或图形操作界面,可以根据自己的体验增加相关功能模块。

程序设计题10:简单音乐播放器系统

1 问题描述

编写一个简单音乐播放器软件,实现歌单文件的浏览,点歌,加入收藏夹等功能。歌单信息用文件存储,并在当前目录夹下面存放着对应的.wav文件。通过此课题,熟练掌握文件、数组、指针的各种操作,以及一些基本算法的应用。

2 功能要求

(1)歌单文件是由多条数据记录构成,其信息包括:

歌曲编号 歌名 歌手 专辑 ,例如

01 风吹麦浪 李健 《想念你》

02小苹果 筷子兄弟 《小苹果(新年R..》

03爱我中国 龙梅子/高安/祁隆 《一万个对不起》

。。。。。。 

(2)数据保存形式:

系统形成的收藏夹要以文本或二进制文件保存。

(3)需要实现的功能

浏览功能:读取歌单文件,浏览歌曲信息

点歌功能:选择相应的歌名,播放该歌曲,并暂停(播放、停止播放可使用playSound和closeSound函数,具体使用方法请百度)

管理收藏夹功能:浏览歌单,根据歌单形成收藏夹文件,并能对文件进行增删修改查功能

(4)界面功能要求:

1) 采用友好的字符界面,实现一个功能控制菜单。

2) 每次操作都从该菜单选择,利用循环结构使得一次运行程序可进行多次操作。

选做要求

(1)数据完整性保证。例如:歌单编号不得重复。

(2)可以形成歌曲的上一首,下一首播放以及循环播放功能。具体请学生自己构思、设计。 

3 其他要求

(1)界面美观,交互方便。

(2)注释详细:每个变量都要求有注释说明用途;函数有注释说明功能,对参数、返回值也要以注释的形式说明用途;关键的语句段要求有注释解释。

(3)程序的层次清晰,可读性强。

(4)变量、函数命名符合规范。

(5)如有可能,可使用MFC 等开发工具,实现彩色或图形操作界面。

4 开发环境

可以选择TC2.0、TC3.0、VC++6.0等开发环境,或者与老师讨论,选择自己熟悉的开发工具与平台。

*程序设计方法

(1)设计合适的数据结构(如结构数组、链表、对象数组等实现)。

(2)选择文件存储格式(文本或二进制)和文件名。

(3)采用自顶向下的设计方法,设计系统的总体模块组成和数据结构。设计主程序的流程图和界面。

(4)对于每项操作,设计一个函数(方法、子模块)进行实现,要明确函数原型。

(5)根据设计结果分步开发实现各模块,最后进行总体集成。

程序设计题11:食堂自动化管理系统

1 问题描述

编写一份简化的食堂自动化管理系统,实现学生就餐卡管理和菜品管理以及消费记录统计等相关功能。所有数据包括学生就餐卡信息,菜品信息等都要利用文件系统保存,以备系统下次运行时使用。通过此课题,熟练掌握文件、数组、指针的各种操作,以及一些基本算法的应用。

2 功能要求

(1)学生就餐卡和菜品数据是由多条数据记录构成,其信息包括:

学生就餐卡:卡号,姓名,余额,状态(正常和挂失。)

食堂菜品数据:编号 名称 金额 消费次数    

(2)数据保存形式:

所有就餐卡信息,菜品信息数据要以文本或二进制文件保存。

(3)需要实现的功能

代码要能提供以下两个基本模块。

管理员模块:

管理员以密码登录系统,可以完成以下功能

A. 注册学生就餐卡

B.就餐卡的充值挂失模块

C.食堂菜单管理功能,包括对菜单的增删修改查等功能。

D.统计功能:统计菜品销售情况(销售排行),以及学生卡的使用情况(选做)

学生模块

 以就餐卡号登录系统(说明:卡处于挂失,则拒绝登录。)

可以查询卡中余额。

可以查询本卡的消费记录(选做)

可以浏览菜品并按照金额购买

(4)界面功能要求:

1) 采用友好的字符界面,实现一个功能控制菜单。

2) 每次操作都从该菜单选择,利用循环结构使得一次运行程序可进行多次操作。

选做要求

(1)数据完整性保证。例如:就餐卡号和菜单编号不得重复。

(2)学生每次消费可以自动生成消费记录(卡号,购买时间,购买菜品编号,购买金额)。

该消费记录表永久保存,用于事后查询和统计。具体请学生自己构思、设计。 

3 其他要求

(1)界面美观,交互方便。

(2)注释详细:每个变量都要求有注释说明用途;函数有注释说明功能,对参数、返回值也要以注释的形式说明用途;关键的语句段要求有注释解释。

(3)程序的层次清晰,可读性强。

(4)变量、函数命名符合规范。

(5)如有可能,可使用MFC 等开发工具,实现彩色或图形操作界面。

4 开发环境

可以选择TC2.0、TC3.0、VC++6.0等开发环境,或者与老师讨论,选择自己熟悉的开发工具与平台。

*程序设计方法

(1)根据食堂自动化数据管理要求,设计合适的数据结构(如结构数组、链表、对象数组等实现)。

(2)选择文件存储格式(文本或二进制)和文件名。

(3)采用自顶向下的设计方法,设计系统的总体模块组成和数据结构。设计主程序的流程图和界面。

(4)对于每项操作,设计一个函数(方法、子模块)进行实现,要明确函数原型。

(5)根据设计结果分步开发实现各模块,最后进行总体集成。

程序设计题12 拼字游戏

问题描述 拼字游戏历史悠久,能锻炼人的思维和提高单词记忆量。在欧美报纸的版面中经常会见到。本题只是简单地演示单组交叉词。所谓单组交叉词,是指两个单词交叉放置,一个水平放置,另一个垂直放置,交叉点是两个单词都共用一个字母,而且交叉点遵循交叉靠前原则,即这公用的字母尽量在水平单词的前方,然后也尽量在垂直单词的上方。例如:DEFER,PREFECT(前一个为水平单词)的交叉点是E,而PREFECT,EDFER的交叉点是R。双交叉词是指有两组单组交叉词,它们的水平单词放在同一行。试编程将输入的每四个一组的单词尽可能组成双交叉词。

输入:输入文件由若干行组成,每行有四个单词,按顺序每两个为一组,每组第一个单词为水平单词,每个单词由1到10个大写字母组成,单词之间用一个空格隔开。最后一行由一个"#"结束。

输出:输出文件由一系列双交叉词组成,每个水平单词之间隔三个空格。若不能构成双交叉词,则显示"Unable to make two crosses"。每组双交叉词间空一行。

开发环境 采用C或C++实现,VC++6.0、Windows98/XP

基本要求

实现拼字游戏的程序,完成基本功能要求。

设计要求

        要求有合理的算法设计,容错处理,可参考游戏经历增加相关功能。

拓展功能要求

       

鼓励采用Turbo C/C++、MFC等开发工具,实现彩色或图形操作界面。

程序设计题13 小区物业管理系统

问题描述 该系统要求建立某小区物业管理系统,并具有排序、查找、计算、显示等功能。通过此课题,熟练掌握文件、数组、指针的各种操作,以及一些算法思想的应用。

开发环境 采用C或C++实现,VC++6.0、Windows98/XP

基本要求

(1)物业管理信息应包括:

小区资料(小区名称,楼宇总数等),房型资料(房型编号、房型、建筑面积等),住户资料(住户编号、住户姓名、联系电话、联系地址、预付金额、欠费金额等),住户报修管理,住户投诉管理,住户停车车位管理(车位编号,住户信息等),住户物业收费管理(收费名称、收费金额、收费单位、收费周期等)等。

(2)需要实现的功能

  1. 用户需要输入口令进入物业管理系统

  2. 实现物业管理信息的建立

  3. 计算小区的房型种类,查询住户的欠费状况

  4. 显示住户投诉报表和住户报修报表

  5. 按照欠费金额进行排序,显示用户相关信息

  6. 查找住户的车位信息

  7. 将小区的所有相关信息内容存为文件。

设计要求

    1. 界面友好,输入信息符合逻辑:如收费周期应至少以月为单位。

    2. 能从实践生活出发,设计合理的功能模块

    3. 各类信息的数据结构明晰

    4. 可根据自身生活体验添加相关功能模块。

拓展功能要求

鼓励采用Turbo C/C++、MFC等开发工具,实现彩色或图形操作界面。鼓励引入小型数据作为处理数据的来源,拓展知识面。

程序设计题14王者农药

【问题描述】                         

腾讯公司的《王者荣耀》风靡全国,在国外都有不少玩家,带给人很多乐趣,让不少人沉迷其中。《王者荣耀》中有上百位英雄,每位英雄都有自己的特点和个性。现在让我们有C语言来编写一个游戏,名字为《王者农药》。

【游戏规则】

《王者农药》有15位英雄,每位英雄拥有数量不同的3种招数,招数使用数量耗尽之后就不能再使用。

三种招数分别为:剪刀、石头、布;

招数相克关系:剪刀克布,布克石头,石头克剪刀;

15位英雄属性表及所有招数数量:

剪刀

石头

赵云

2

2

2

宫本武藏

4

1

1

2

3

1

白起

5

0

1

韩信

1

2

3

诸葛亮

2

1

3

刘邦

2

0

4

后羿

0

3

3

王昭君

1

1

4

妲己

4

1

1

安琪拉

1

4

1

貂蝉

3

2

1

露娜

1

3

2

不知火舞

4

2

0

蔡文姬

0

5

1

游戏开始时,由玩家选取三位己方英雄,对阵电脑随机选取的三位英雄,采取以下模式进行游戏:

第一步:对方在三位英雄中随机选取一位,随机出招(招数可使用数量不为0),对应可用招数数量减一;

第二步:我方选取一位英雄,英雄随机出招,对应可用招数数量减一。

第三步:如我方胜,我方胜利次数加1,否则对方胜利次数加1。

第四步:如果总次数<9则跳到第一步,否则本场游戏结束,跳到第五步。

第五步:统计我方和对方胜利场数。

【开发要求】

  1. 将每场游戏敌我双方英雄出招情况记录在文件中;

  2. 游戏开始前需要登录玩家,如无账号需先注册;

  3. 对玩家胜利场数进行排行,可以查看所有玩家的排名;

  4. 统计每位英雄的生路并进行排名;

选做要求:

对每次出招的时间进行限制,如果超过时间,则会导致我方随机出招。

【其它要求】

1, 变量、函数命名符合规范;

  1. 注释详细;

  2. 程序层次清晰,可读性强;

  3. 界面美观,交互方便

所选题目

程序设计题3多媒体文件管理及检索系统

1 问题描述

建立一个多媒体文件信息管理系统,包括对各种多媒体音视频文件的管理。该系统具有排序、查找、计算、显示等功能。通过此课题,熟练掌握文件、数组、指针的各种操作等。其中,多媒体文件信息应包括:音视频文件的文件名、文件类型、文件大小、导演、演员、浏览次数、发行日期、所获奖项等。

2 功能要求

代码要能提供以下几个基本功能。

  1. 要求进入系统需要输入口令验证。

  2. 按照文件类型分类,并可按照发行日期从近到显示文件信息。

  3. 实现加入新文件信息和删除无用文件信息的更新。

  4. 将所有多媒体文件信息存为文件。

选做要求

  1. 按照导演或者主要演员查询对应的文件信息,并计算某一导演或演员参与的文件总数。

  2. 可根据用户设定做出推荐,比如根据用户所需类别、文件类型和浏览次数等设定综合做出一定推荐。

3 其他要求

(1)界面美观,交互方便。

(2)注释详细:每个变量都要求有注释说明用途;函数有注释说明功能,对参数、返回值也要以注释的形式说明用途;关键的语句段要求有注释解释。

(3)程序的层次清晰,可读性强。

(4)变量、函数命名符合规范。

(5)如有可能,可使用MFC 等开发工具,实现彩色或图形操作界面。

4 开发环境

可以选择TC2.0、TC3.0、VC++6.0等开发环境,或者与老师讨论,选择自己熟悉的开发工具与平台。

需求分析

添加新文件:选择此选项可以向系统中添加新的多媒体文件。程序会提示用户输入文件名、文件类型、文件大小、导演、演员、浏览次数、发行日期以及所获奖项。这些信息将被保存到系统中。

删除文件:如果用户想要删除系统中的某个文件,可以选择此选项。程序会要求用户输入要删除的文件名,如果存在匹配的文件,则将其从系统中删除。

按照发行日期排序并显示文件信息:选择此选项会对系统中的多媒体文件按照发行日期从近到远进行排序,并将排序后的文件信息显示在屏幕上。这可以帮助用户更方便地查看最新发布的文件。

按文件类型查找并显示文件:用户可以输入想要查找的文件类型,程序会在系统中查找并显示匹配该类型的所有文件的信息。如果系统中没有该类型的文件,则会显示相应提示信息。

保存所有文件到文件:选择此选项可以将当前系统中的所有多媒体文件信息保存到一个文件中。文件会以一定格式写入,以便稍后再次加载。

退出:选择此选项会退出程序,并结束多媒体文件管理及检索系统的运行。

 

主要存储结构:

MultimediaFile 结构体:用于存储多媒体文件的信息。它包含以下字段:

filename:文件名(字符串类型)

filetype:文件类型(字符串类型)

filesize:文件大小(整数类型)

director:导演(字符串类型)

actor:演员(字符串类型)

views:观看次数(整数类型)

release_date:发行日期(字符串类型)

awards:获奖情况(字符串类型)

 主要函数流程

addFile 函数:

输入:MultimediaFile *files(指向 MultimediaFile 数组的指针)、int *numFiles(指向文件数量的指针)

过程:根据用户输入的文件信息,将文件添加到 files 数组中,并更新文件数量

deleteFile 函数:

输入:MultimediaFile *files(指向 MultimediaFile 数组的指针)、int *numFiles(指向文件数量的指针)

过程:根据用户输入的文件名,从 files 数组中删除相应的文件,并更新文件数量

sortByDate 函数:

输入:MultimediaFile *files(指向 MultimediaFile 数组的指针)、int numFiles(文件数量)

过程:按照发行日期对 files 数组进行排序

displayFiles 函数:

输入:MultimediaFile *files(指向 MultimediaFile 数组的指针)、int numFiles(文件数量)

过程:遍历 files 数组,逐个输出文件的信息

displayFilesByType 函数:

输入:MultimediaFile *files(指向 MultimediaFile 数组的指针)、int numFiles(文件数量)、const char *filetype(要查找的文件类型)

过程:根据用户输入的文件类型,从 files 数组中找出匹配的文件,并输出其信息

saveToFile 函数:

输入:MultimediaFile *files(指向 MultimediaFile 数组的指针)、int numFiles(文件数量)

过程:将 files 数组中的文件信息保存到文件中

loadFromFile 函数:

输入:MultimediaFile *files(指向 MultimediaFile 数组的指针)、int *numFiles(指向文件数量的指针)

过程:从文件中读取文件信息,并将其加载到 files 数组中

效果展示


 

分析


要功能包括添加文件、删除文件、按照发行日期排序并显示文件信息、按文件类型查找并显示文件、保存所有文件到文件以及退出程序等。以下是对该代码的运行操作分析:

首先,用户需要运行该程序,并输入正确的密码以进入系统。密码验证成功后,程序会显示一个操作菜单,列出了可用的操作选项,如添加文件、删除文件、排序并显示文件信息等。

用户可以根据需要选择相应的操作。例如,如果用户选择添加文件,程序将提示用户输入文件的各项信息,包括文件名、类型、大小、导演、演员等。用户输入完毕后,程序将添加该文件到系统中,并显示成功添加的消息。

如果用户选择按照发行日期排序并显示文件信息,程序将对文件列表按照发行日期进行排序,并逐个显示每个文件的信息,包括文件名、类型、大小、导演、演员、观看次数等。

用户还可以按照文件类型查找并显示文件信息。用户需要输入要查找的文件类型,程序将从文件列表中找出匹配的文件,并显示它们的信息。

用户还可以选择将所有文件信息保存到文件中,以便后续查看或备份。程序将所有文件的信息写入到指定的文件中,并显示保存成功的消息。

用户可以选择退出程序,退出前程序会提示用户是否保存当前文件信息。用户可以选择保存或不保存,并且程序将相应地执行操作后退出。

重要代码
 

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

#define MAX_FILENAME_LENGTH 100
#define MAX_ACTOR_LENGTH 100
#define MAX_FILES 100
#define PASSWORD "123"
typedef struct {
    char filename[MAX_FILENAME_LENGTH];
    char filetype[MAX_FILENAME_LENGTH];
    int filesize;
    char director[MAX_ACTOR_LENGTH];
    char actor[MAX_ACTOR_LENGTH];
    int views;
    char release_date[MAX_ACTOR_LENGTH];
    char awards[MAX_ACTOR_LENGTH];
} MultimediaFile;

void addFile(MultimediaFile *files, int *numFiles) {
    if (*numFiles >= MAX_FILES) {
        printf("文件数量已达到最大值\n");
        return;
    }
    
    MultimediaFile newFile;
    printf("请输入文件名:");
    scanf("%s", newFile.filename);
    printf("请输入文件类型:");
    scanf("%s", newFile.filetype);
    printf("请输入文件大小(M):");
    scanf("%d", &newFile.filesize);
    printf("请输入导演:");
    scanf("%s", newFile.director);
    printf("请输入演员:");
    scanf("%s", newFile.actor);
    printf("请输入浏览次数:");
    scanf("%d", &newFile.views);
    printf("请输入发行日期:");
    scanf("%s", newFile.release_date);
    printf("请输入所获奖项:");
    scanf("%s", newFile.awards);
    
    files[*numFiles] = newFile;
    (*numFiles)++;
}

void deleteFile(MultimediaFile *files, int *numFiles) {
    if (*numFiles == 0) {
        printf("没有文件可以删除\n");
        return;
    }
    
    printf("请输入要删除的文件名:");
    char filename[MAX_FILENAME_LENGTH];
    scanf("%s", filename);
    
    int found = 0;
    for (int i = 0; i < *numFiles; i++) {
        if (strcmp(files[i].filename, filename) == 0) {
            found = 1;
            
            // 将最后一个文件移到要删除的位置
            files[i] = files[*numFiles - 1];
            (*numFiles)--;
            
            printf("文件已删除\n");
            break;
        }
    }
    
    if (!found) {
        printf("未找到该文件\n");
    }
}

void sortByDate(MultimediaFile *files, int numFiles) {
    // 使用冒泡排序按照发行日期从近到远排序
    for (int i = 0; i < numFiles - 1; i++) {
        for (int j = 0; j < numFiles - i - 1; j++) {
            if (strcmp(files[j].release_date, files[j + 1].release_date) < 0) {
                MultimediaFile temp = files[j];
                files[j] = files[j + 1];
                files[j + 1] = temp;
            }
        }
    }
}

标签:文件,功能,要求,多媒体,检索系统,信息,注释,输入,220
From: https://blog.csdn.net/weixin_64055968/article/details/137519356

相关文章

  • LeetCode 2220.转换数字的最少位翻转次数
    一、题目二、知识点符号描述运算规则&与两位都为1结果为1|或两位都为0结果为0^异或两位相同为0不同为1~取反(非)0变1,1变0<<左移二进制位全部左移,高位丢弃,低位补0>>右移二进制位全部右移,低位丢弃,高位补符号位>>>无符号右移二进......
  • ubuntu2204 部署 stable-diffusion-webui
    显卡:(一个实例仅能用一张卡)顶配:rtx6000ada48g,a10040g,a100 80g,a100 96g,a80080g,h100,h200高端:rtx409024g,rtx4090D24g,rtxa600048g,rtxa500024g,rtx5000ada32g魔改:rtx2080ti22g,rtx308020g性价比:rtx4060ti16g,rtx206012g,rtx306012g,rtx309024g,rtxtitan24g其......
  • 工程师首选:PW2202 NMOS管,200V1A/2A高效稳定,引领行业新潮流
    在当今日新月异的电子科技领域,功率开关电路的设计和应用对于整个系统的性能至关重要。PW2202硅N沟道增强型VDMOSFET以其独特的优势和卓越的性能,在各类功率开关电路中发挥着不可替代的作用。接下来,我们将从描述、特点和应用三个方面,深入剖析PW2202的优异表现。首先,PW2202硅N沟道增......
  • CF1800-2200
    CF1575KKnittingBatik首先不难分析,如果两个矩形不相交,方案数为\(k^{nm-rc}\);如果两个矩形完全重叠,方案数为\(k^{nm}\)。对于两个矩形不完全重叠的情况,显然在两个矩形之外的部分可以随意涂色,重点考虑两个矩形之间的一些限制。对于第一个矩形,在不与第二个矩形相交的部分没有限......
  • 即将截稿 CCF-A多媒体顶会ACM MM‘24 北京时间4月9日提交摘要
    会议之眼快讯第32届ACMMM(ACMMULTIMEDIA)即国际多媒体会议将于2024年10月28-日11月1日在澳大利亚墨尔本隆重举行!MM是由ACM(AssociationforComputingMachinery,计算机协会)主办的国际性学术会议,是计算机科学领域中多媒体研究的首要国际会议,致力于多媒体领域的前沿研究......
  • 高精度、低功耗、小封装电压检测芯片 HXWSEMI桦芯微HX61CC2202MR、HX61CC2702MR、HX61
    HX61C系列芯片是使用CMOS技术开发的高精度、低功耗、小封装电压检测芯片。检测电压在小温度漂移的情况下保持极高的精度。客户可选择CMOS输出或OpenDrain输出。■产品特点高精度:±2%低功耗:2.0µA(Vin=1.5V)检测电压范围:1.0V~6.0V,100mV步进工作电压范围:0.7V......
  • [附源码]计算机毕业设计高校多媒体教室预约系统(JSP+java+springmvc+mysql+MyBatis)
    本项目包含程序+源码+数据库+LW+调试部署环境,文末可获取一份本项目的java源码和数据库参考。项目文件图项目介绍随着信息技术在教育领域的广泛应用,多媒体教室成为高校教学资源的重要组成部分。合理高效的预约管理系统对于充分利用多媒体教室资源、提高教学质量和效率具有显......
  • HTML多媒体标签
    <img>标签<imgsrc="image.jpg"alt="MyImage"width="100"height="100"title="xxx">src:指定图像的URL(地址),这是必需的属性,没有它图像无法显示。alt:提供图片无法显示时的替代文本width和height:设置图片的宽高,如果只设置其中一个,另一个会按比例缩放。title:提供关于图像的额......
  • PaddleNLP:Docker下搭建基于ES的语义检索系统
    PaddleNLP:Docker下搭建基于ES的语义检索系统什么是语义检索?语义检索(也称基于向量的检索):指检索系统不再拘泥于用户Query字面本身(例如:sql查询的like),而是能精准捕捉到用户Query后面的真正意图并以此来搜索,从而更准确地向用户返回最符合的结果。原理是通过使用最先进的语义......
  • 多媒体笔记
    人类感知信息的途径:视觉占65%,听觉占20%,嗅觉、味觉、触觉占15%信息量。 3D视频比2D视频多了深度一维。 视频图像压缩的基本依据:1)空间冗余;2)频率冗余;3)视觉冗余;4)熵冗余;5)时间冗余。 视频图像压缩的基本方法:1)帧内预测编码;2)变换编码;3)量化编码;4)熵编码;5)帧间预测编码。 ......