程序设计实践I题目及要求_第1页
程序设计实践I题目及要求_第2页
程序设计实践I题目及要求_第3页
程序设计实践I题目及要求_第4页
程序设计实践I题目及要求_第5页
已阅读5页,还剩33页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1 程序设计实践 I 题目及相关要求说明 1 选题 考虑到时间比较紧张 同时也锻炼同学之间的团结协作能力 采用 2 3 人一组选作一题 题目不可重复 课程设计题目见附 2 分组可采用自由组合或按学号顺序安排 由各班学习委员妥善 解决 分组名单 8 月 25 日交给任课教师 以便下达课程设计任务书 2 设计时间 2014 年 8 月 25 日 2014 年 8 月 31 日 为期 1 周 3 课程设计要求 完成相应课程设计题目的基本功能 撰写课程设计报告 报告封面及内容要求见附 1 报告格式要求 标题 课程设计题目 黑体小二 居中 正文 1 报告正文部分主要包括 问题要求及任务描述 解决问题 的主要思路和方法 程序实现 测试和小结 2 报告正文打印要求 第一层次题序和标题用小三号黑体字 第二层次题序和标题用四号黑体字 2 第三层次题序和标题用小四号黑体字 正文用宋体小四号 英文用新罗马体 12 号 参考文献宋体五号 3 报告页面设置 页码一律用小 5 号字标明 正文采用 23 磅 行距 标准字符间距 上边距 25mm 下边距 25mm 左边距 28mm 右边 距 20mm 3 附件 1 程序设计实践 I 设计报告 设计题目 班 级 学生姓名 学 号 分工情况 完成日期 年 月 日 4 标题标题 1 问题要求及任务描述 1 1 题目要求 在此填写 你选择的题目 1 2 主要任务 具体细化 例如主要功能 注意 在此标识出自己的主要工作 2 解决问题的主要思路和方法 2 1 关键问题 关键问题描述 2 2 拟采用解决问题的方法 在此陈述解决问题的思路 准备使用的算法和数据结构等等 2 3 主要算法和处理流程图 关键的数据流程图 3 程序实现 3 1 程序实现时应考虑的问题 函数调用关系图 3 2 主要源代码及说明 源代码 加注释 4 测试 4 1 测试结果及分析 5 小结 5 1 本问题解决方法及程序实现小结 总结系统的有缺点等等 对于程序中所参考的部分代码需要加以声明 并说明 出处 5 2 尚未解决的问题及下一步工作思路 对于程序中未能实现 或有待于进一步完善的部分需要加以说明 6 参考文献 例如 1 严蔚敏 数据结构 清华大学 2004 11 5 附 2 C 程序设计实践参考题目程序设计实践参考题目 机电工程学院 二零一四年八月 6 一 工资管理系统一 工资管理系统 1 需求分析 工资信息存放在文件中 提供文件的输入 输出等操作 要实现浏览功能 提供显示 排序操作 而查询功能要求实现查找操作 另外还应该提供键盘式选择菜单以实现功能选 择 2 总体设计 整个系统可以分为信息输入 信息添加 信息浏览 信息排序 信息查询和信息统计 模块 3 详细设计 工资信息采用结构体数组 Struct Salary Info int Card No 工资卡号 Char name 20 姓名 int month 月份 float Init Salary 应发工资 float Water Rate 水费 float Electric Rate 电费 float tax 税金 float Final Salary 实发工资 SI MAX SI MAX 中每个数组元素对应一个职工工资信息 1 主函数提供输入 处理和输出部分的函数调用 各功能模块采用菜单方式选择 2 输入模块 按照工资卡号 姓名 月份 应发工资 水费 电费的顺序输入信息 税金和实发 工资根据输入的信息进行计算得到 这些信息被录入到文件中 文件操作函数 fopen fwrite fclose 税金的计算 if 应发工资800 姓名 Int age 年龄 Char From 20 来自学校 Athlete 运动员结构体 Struct item Char name 20 项目名 Int weight 在运行时根据用户的输入动态分配空间 各 项目名次取法不同 weight 所指空间依次存放第一名得分 第 二名得分等 Athlete player 指向获奖运动员信息的指针 Item 项目结构体 Struct university Char name 20 学校名 Item item 竞赛项目指针 根据用户输入动态分配空间 Int score 学校得分 Uni 学校结构体 Item TotalItem ItemNum 项目结构体数组 Uni AllUni UniNum 学校结构体数组 1 主函数 提供输入 处理和输出部分的函数调用 各功能模块采用菜单方式选择 2 信息输入模块 输入参赛学校总数 M 男子参赛项目数 W 女子参赛项目数 8 把参赛学校信息和项目信息以及运动员信息录入文件 fwrite 建立三个文件 例如第 i 个项目 Scanf s TotalItem i name 输入项目名 Ch Getchar 通过输入 1 2 3 来选择项目名次取法 Switch ch Case 1 n 5 break Case 2 n 3 break Case 3 printf 取前几名 break Default break TotalItem i weight new int n TotalItem i athlete NULL 指向获奖运动员信息 初始化为空 然后写入文件 fp fopen item txt wb fwrite 学校信息和运动员信息的录入与此类似 2 比赛结果录入模块 通过菜单选择进入比赛结果录入模块 更改 TotalItem i athlete 的值 并把获奖名单 保存到项目文件中 项目文件格式为 项目名 项目权值 按照第一名 第二名 给出权 值 获奖运动员信息 按照第一名 第二名 给出 3 查找模块 查找学校信息文件 生成团体总分报表 用基本查找算法查询参赛学校信息 按照校 名查找 或者比赛项目信息 按照项目名 三 学生学籍信息管理系统设计三 学生学籍信息管理系统设计 1 需求分析 学生基本信息 学生成绩基本信息要存入文件当中 因而要提供文件的输入输出操作 查询功能要求提供查找和显示操作 删除功能要求实现删除操作 排序功能要求实现排序 操作 另外还应该提供键盘式选择菜单以实现功能选择 2 总体设计 整个系统可以设计为数据录入模块 数据查询模块 数据删除模块和数据排序模块 3 详细设计 设计学生基本信息和学生成绩基本信息结构体数组 Struct int stuNo 学号 char name 20 姓名 char sex 2 性别 int domNum 宿舍号 int tel 电话号码 StuInfo 学生基本信息结构体 Struct int stuNo 学号 9 char courseNo 课程编号 char courseName 课程名称 int creditHour 学分 Int triGrade 平时成绩 Int experiGrade 实验成绩 Int examGrade 卷面成绩 Float totalGrade 综合成绩 Float finalCreHour 实得学分 StuGraInfo 学生成绩基本信息结构体 1 数据录入模块 学生基本信息文件可以在磁盘建立 采用写文件方式录入学生成绩基本信息 综合成 绩和实得学分通过计算得到 2 查询模块 通过菜单选择查询功能 再选择学生基本情况查询和成绩查询 若选择前者 再通过 菜单选择学号 姓名或宿舍号码 按照基本查找算法查找 A TXT 然后把查找结果输出若 选择后者 则先在 A TXT 中查找学号对应的姓名 再在 B TXT 中查找该学生的课程情况 并统计科目和实得总学分 输出结果 fread 和查找算法的应用 3 删除模块 通过菜单选择删除学生的功能 输入要删除学生的学号 则分别在 A TXT 和 B TXT 中查找该生信息 删除之 或者输入学生的姓名 先在 A TXT 中得到该生的学号 删除该 生信息 再在 B TXT 中删除该学号对应的信息 注意 C 语言中没有直接删除信息的函数 需要自己实现 可以采取读出数据 判断数据 如果不删除 则进入缓冲区 否则删除 写入数据 把缓冲区中的数据写入文件 的步骤进行 4 排序模块 通过菜单选择排序依据 采用排序算法 冒泡 插入 选择等 对数据进行排序并输 出结果 首先要读文件 fread 四 一种简单的英文词典排版系统实现四 一种简单的英文词典排版系统实现 1 需求分析 运行结果以文本形式存储 因而要提供文件的输入输出操作 检查重复单词要提供查找 操作 按 A Z 的顺序排版 要提供排序操作 添加新单词并重新排版要提供插入操作 另 外通过键盘式菜单实现功能选择 2 总体设计 整个系统被设计为单词录入模块 文件存储模块和单词浏览模块 其中单词录入模块 要完成输入单词 检查是否重复 排序操作 文件存储模块把存放单词的数组中的数据写 入文件 单词浏览模块完成英文词典的输出 即文件的输出操作 3 详细设计 数据结构采用指针数组或二维数组 char dictionary N 或 char dictionary N 20 其中 N 是宏定义 define N 100 表示单词个数 1 单词录入模块 输入一个单词 存放在一个临时字符数组中 以空格或回车表示单词的结束 这也是 默认操作 然后换行输出刚刚输入的单词 采用插入排序算法的思想把该单词插入单词数 组中 不同的是如果两个单词相同则不插入 2 文件存储模块 10 采用 fwrite 或 fprintf 把单词数组输入到文件中 3 单词浏览模块 采用 fread 或 fscanf 把单词从文件中读出 然后输出 五 一担挑游戏五 一担挑游戏 1 数据结构 数据结构定义为二位数组 char chess board 3 3 元素初始化为 2 算法流程 Main char chess board 3 3 定义棋盘 并初始化为空 while 未结束 输出棋盘 用 flag 标志移动方 0 表示计算机走棋 1 表示对弈者走棋 If flag 0 计算机走棋 扫描棋盘矩阵 If 存在空单元 置该单元为 O If 有三个 O 在一条线上 输出棋盘矩阵 输出 计算机赢 退出程序 Flag 1 下一步轮到对弈者走棋 Else 报告平局 退出程序 Else 对弈者走棋 扫描棋盘矩阵 If 存在空单元 置该单元为 X If 有三个 X 在一条线上 输出棋盘矩阵 输出 恭喜你 你赢了 退出程序 Flag 0 下一步轮到计算机走棋 11 Else 报告平局 退出程序 else while main 其中扫描棋盘矩阵可以自行设计函数 最简单的方式是按行或按列扫描棋盘 找到空 位就布棋 判断三点是否连成一条直线的操作比较简单 读者自己思考 六 通讯录管理系统六 通讯录管理系统 1 需求分析 信息记录要存放到文件中去 因而要实现文件的输入输出操作 要实现数据的插入 删 除 修改和显示功能 因而要实现插入 删除 修改和显示操作 要实现按人名或电话号 码进行查询的功能 因而要提供查找操作 另外还应该提供键盘式选择菜单以实现功能选 择 2 总体设计 整个系统可以设计为数据插入模块 数据修改模块 数据删除模块 数据显示模块和数 据查询模块 3 详细设计 采用结构体数组 Struct Char name 20 人名 Char post 20 工作单位 Int tel 电话号码 Char email 20 email 地址 TelInfo 电话簿信息结构体 TelInfo telInfo N 电话簿信息结构体数组 1 数据插入模块 输入数据 然后采用追加方式写文件 以 wb 方式打开文件 再用 fwrite 写入 2 数据修改模块 通过菜单选择修改姓名 电话号码 可以把要修改的姓名或电话号码存储在临时变量 里面 然后读文件 找到要修改的记录 把该记录重新以新的值写入 3 数据删除模块 删除一条记录 则输入要删除的人名 然后读文件 把文件中读出来的记录的人名与 待删除的人名比较 如果不匹配 则重新写入文件 否则舍弃不再写入文件 4 数据显示模块 采用分屏显示 每屏 10 条记录 用 fread 或 fscanf 读文件 输出结果 5 数据查询模块 用基本查找算法对电话簿实现按人名或电话号码的查询 读文件 把读出记录得相应 字段与输入的查询字段比较 并把结果输出 七 投票程序七 投票程序 1 需求分析 实现键盘输入投票人数和投票结果 进行统计时实现排序功能 输出结果 12 2 总体设计 该程序可以分为数据输入部分和统计部分 3 详细设计 采用结构体 Struct Char code 代号 Int score 得分 Candidates N 候选人结构体数组 这里 define N 3 采用二维数组 则行方向对应一张投票 列方向对应各候选人得分 Candidate M N 1 输入部分 Char tmp 3 存放投票的中间变量 输入投票人数 n For i 0 i 输入金额 则输出 交 易成功 并更改 account account 输入金额 否则输出 对不起 您的余额不够 4 实现卡金融交易积分功能 在把积分初始化为 0 只需在卡交易的时候 把交易金额 取整加到积分上 5 实现卡报表功能 读账户信息文件 分屏输出所有账户的帐号和交易金额 十八 组数游戏十八 组数游戏 问题分析 1 输入正整数的个数 n 输出 n 个数连接成的最大的多位数 找出 n 个数中最大数 字的位数 然后将所有的数字通过后面补零的方式扩展成为最大位数 把变换后的 n 位数 从大到小排序 然后把添加上的零去掉 按顺序输出的序列即为所求的最大数字 2 数据结构采用结构体 由于正整数的位数不确定 可能非常大 所以数据类型采 用字符数组 Struct char data 20 数据 char ext data 20 扩展数据 Elem N 结构体数组 N 可以在宏定义中定义 define N 20 3 算法流程 20 输入正整数个数 n Max 0 Max 存储最大位数 输入正整数并计算最大位数 For i 0 iMax Max Tmp 计算扩展数字 For i 0 i n i tmp strlen Elem i data 计算输入数字的位数 m Max tmp m 为需要补 0 的个数 定义一个 m 个 0 的字符串 tmp str Strcat Elem i ext data tmp str 排序 任选一中排序算法 冒泡 插入 选择等 对数字结构体数组按照 ext data 从大到小 排序 输出 按序输出结构体数组中 data 数据 十九 仪器仪表管理十九 仪器仪表管理 1 需求分析 仪器仪表信息用文件存储 故要提供文件的输入输出操作 要能够完成对仪器仪表信 息的修改和删除 需要对提供仪器仪表信息修改和删除操作 实现对仪器仪表信息的查询 和统计及显示操作 另外还要提供键盘式选择菜单以实现功能选择 2 总体设计 整个仪器仪表管理系统分为仪器表信息输入模块 仪器表信息修改和删除模块 仪器表 信息查询和统计模块 3 详细设计 数据结构采用结构体 Struct instrumentInfo Char instrName 20 仪器仪表名 Char instrNo 10 仪器仪表编号 Char buyDate 20 购买时间 Char borrowDate 20 借入时间 Char lendDate 20 借出时间 Char returnDate 20 归还时间 Char repairDate 20 维修时间 21 Int state 状态信息 0 代表可借出 1 代表已借出 2 代表正在维修 InstrInfo 1 输入模块 采用 fwrite 或 fprintf 把仪器仪表信息写入仪器仪表信息文件 2 修改和删除模块 通过菜单选择借出操作 查找文件仪器仪表信息 找到相应的仪器仪表 如果仪器仪 表状态为 0 则允许借出 在文件中更改仪器仪表状态为 1 更改借出时间 否则 即仪器 仪表借出或正在维修 则输出 抱歉 仪器仪表已借出 正在维修 这个过程是一个 对文件查找 读文件 判断是否是要查找的纪录 重新写入的过程 删除操作只需读文件 判断所读纪录是不是要删除的记录 如果是 则舍弃 否则重 新写入文件 3 查询和统计模块 通过菜单选择查询或统计操作 若选择查询 则需要再选择查询方式 基本信息 时 间段 时间点 基本信息查询 就分屏 每屏 10 条信息 显示所有记录 这是一个读文件 和输出的过程 时间段查询 则要输入起止时间和表征字段 可以用 0 表示购买起止时间 1 表示借出起止时间 2 表示维修起止时间 例如输入 2004 1 1 2004 10 10 0 表示查询 2004 年 1 月 1 日到 2004 年 10 月 10 日之间购买的仪器仪表信息 则读一条记录 判断购买时间是否处于起止时间之间 如果处于 则打印输出 否则舍弃 借出和维修查 询与此类似 统计功能和查询功能类似 只需要加一个计数变量即可 二十 服装销售系统二十 服装销售系统 1 需求分析 用户与商品信息要采用文件存储 因而要提供文件的输入输出操作 实现用户的添加 修改 删除 商品信息的添加 修改 删除 查找等需要提供信息的添加 删除 修改与 查找操作 实现商品浏览功能的实现需要实现显示操作 另外还要提供键盘式选择菜单以 实现功能选择 2 总体设计 整个服装销售系统被设计为管理员模块 店长模块 销售员模块 商品模块等 如下图 所示 另外还要实现各用户自身信息的管理 22 服装销售系统 管理员模块店长模块销售员模块商品模块 用户添加 用户删除 用户修改 商品添加 商品删除 商品修改 商品查找 商品浏览 商品出售 3 详细设计 数据结构采用结构体 构造结构体如下 Struct goods 商品 Char name 10 商品名 Char code 10 商品代码 Char producer 10 制造商 Float price 价格 Goods Struct administrator 管理员 Char ID 10 Char password 10 其他信息 Admin Struct shopkeeper 店长 Char ID 10 Char password 10 其他信息 Shkpr 23 Struct seller 销售员 Char ID 10 营业 ID 号 Char name 10 姓名 Char ID 10 所属店长 ID 号 Goods good 指向该销售员销售的商品信息 其他信息 Seller Struct goods report 商品报表 Goods good 商品 Seller assistant 营业员 Char sell data 20 出售日期 先建立文本文件 Admin txt 其中存放管理员的 ID 和密码及其它信息 文本文件 Shopkeeper txt 其中存放店主的用户名和密码及其它信息 文本文件 Seller txt 其中存放销 售员的 ID 和密码及其他信息 登录系统时 通过菜单选择登录身份 然后提示输入用户 ID 和密码 如果以管理员身份登录 则在 Admin txt 文件中查找 采用基本的查找算法 输入的 用户 ID 和密码是否存在 如果存在 则允许进入 显示选择菜单 修改密码 添加用户 用户信息 商品信息 否则 显示 输入的用户名或密码错误 返回上级菜单 店长与销售员登录系统与此类似 店长登录成功后显示选择菜单为 修改密码 修改 个人信息 商品信息 查看报表 商品储备信息 销售员登录成功后显示选择菜单为 商 品浏览 查找商品 出售商品 本日报表 本月报表 密码修改与个人信息修改既是写入新的密码 个人信息 覆盖掉原来的 就是文件的 读写操作 在登录成功后 就标志出登录人员的纪录位置 这样修改信息时 可以直接定 位到修改记录的位置 管理员添加用户 就是执行文件写操作 采用追加的方式把用户信息写入用户信息文 件 根据添加的用户身份选择写入 Shopkeeper txt 还是 Seller txt 删除用户操作 读取用 户信息文件 如果读出的用户不是要删除的用户 则直接重新写入文件 否则 舍弃 管理员选择用户信息 将进入用户信息修改和用户信息统计的选择 用户信息修改操 作 即查找要修改的用户信息文件 找到要修改的用户 写入修改后的信息覆盖掉原始信 息 用户信息统计操作 读用户信息文件 比较统计信息字段 符合统计要求则计数加 1 最后输出符合条件的记录数 也可以把符合条件的记录信息完全输出 管理员选择商品信息 则可以选择商品信息添加 修改 删除 查找 统计 商品信 息的添加 修改 删除 统计操作与用户信息的相应操作类似 查找操作只需采用基本的 查找算法查找商品信息文件即可 店长修改密码和修改个人信息操作与管理员相应操作类似 店长的商品信息可以选择商品信息修改和商品信息统计 此类操作与管理员的相应操 作相同 店长选择查看报表 则显示选择菜单 日报表 月报表 商品销售量报表 营业员业 绩报表 查看日报表 根据输入的日期在商品报表文件中查找 把出售日期与输入日期符 合的记录输出 查看月报表操作类似 查找商品报表文件中商品出售日期在输入月份之间 24 的记录输出 商品销售量报表 这是一个统计的过程 查找商品报表 统计同一商品的销 售量 月销售量 年销售量 查看营业员业绩报表 则读销售员信息文件 把信息打印输 出即可 店长查找浏览修改商品储备信息 查找与修改操作可以参考管理员对商品的查找与修 改操作 浏览操作就是把商品储备信息分屏输出 每屏 10 条记录 按任意键继续 这些操 作在该店长对应的商品储备信息文件中执行 注 每个店长对应一个商品储备信息文件 里面存放该店储备的商品信息 文件格式 店长 ID 商品名 商品代号 制造商 价格 销售员可以选择商品浏览 查找 出售商品 察看自己本日报表 本月报表 商品浏 览 查找以及查看自己本日报表 本月报表可以参考前面相关操作 出售商品操作执行的 动作是 在本店的商品储备文件中查找要出售的商品 如果存在 则出售 在商品报表文 件和销售员销售文件中添加该商品信息 并把该商品信息从商品储备文件中删除 二十一 歌星大奖赛二十一 歌星大奖赛 1 问题分析 对于要求 1 输入 10 个评委的打分 假设分数存放在数组 score 10 中 然后对分 数由高到低排序 冒泡 插入 选择法 选手最后得分为 score 1 score 2 score 8 8 对于要求 2 最不公平的评委比较容易找到 就是把最高分 score 0 和最低分 score 9 分别与 1 得到的平均分比较 差值较大的那个就是最不公平的评委 找最公平 的评委 可以先把中间元素 score 5 与平均分比较 计算差值 然后往前推 计算 score 4 score 3 如果差值比上一次计算所得值大 则停止 再往后推 计算 score 6 与平均值的差值 并与前面得到的最小差值比较 如果大于最小差值 则得到最 小差值的评分对应的评委就是最公平的评委 如果小于最小差值 则把最小差值改为 score 6 并继续比较 score 7 直到所得差值比上一次计算所得值大 2 具体实现 数据结构采用结构体 Struct judge Float score 评委打分 Int judgeNo 评委号码 Judge 10 评委结构体数组 核心程序 一次循环处理一个歌手 While 还有歌手 输入 10 个评委的打分 For i 0 i 10 i Scanf f Judge i judgeNo i 25 输出最后得分 evenScore 0 For i 1 i0 则查看状态 如果 state 3 则允许出借 提示输入租用 的 DVD 编号 在会员信息文件中加入该 DVD 信息 state 并在 DVD 信息文件中把该 DVD 状态改为已借出 4 会员归还 DVD 模块 提示用户输入要归还的 DVD 编号 把该用户记录的该 DVD 信息初始化为空 state 同时在 DVD 信息文件中把其状态改为可供出借 5 信息浏览模块 浏览 DVD 信息 则采用 fread 或 fscanf 从 DVD 信息文件中读记录 分屏输出 浏览会 员信息文件 则读会员信息文件 输出 6 信息查询模块 会员对自己账户状况的查询 则输出其账户信息即可 登录时在会员信息文件中找到自 身信息 事先读到临时变量中 管理员对所有交易情况的查看 则查找用户信息文件 如果用户的 staet 0 则输出用 户信息 三十 歌曲信息管理三十 歌曲信息管理 1 需求分析 用文件存储信息 因而要提供文件的输入输出操作 可对歌曲信息进行输入 删除 浏览 因而要提供文件的输入 删除和信息显示操作 查询歌曲信息要提供查找操作 实 现按作者分组显示功能则要提供排序功能 另外要提供键盘式选择菜单以实现功能选择 2 总体设计 整个管理系统可以被设计为数据输入模块 数据删除模块 信息浏览模块 信息查询模 块和信息分组显示模块 3 详细设计 数据结构采用结构体 建立歌曲信息结构体 Struct SongInfo Char name 20 歌曲名 Char author 20 作者 Char singer 20 演唱者 34 Char pub date 6 发行年月 yyyymm SI 1 数据输入模块 用 fprintf 或 fwrite 把歌曲信息写入文件 2 数据删除模块 采用基本的查找算法 查找歌曲信息文件 如果是要删除的歌曲 则舍弃改信息 否 则重新写入文件 3 信息浏览模块 用 fscanf 或 fread 读歌曲信息文件 分屏显示输出 每屏 10 条信息 4 信息查询模块 通过菜单选择查询字段 歌曲名 作者 演唱者 然后采用基本查找算法在歌曲信息 文件中查找 如果找到 则输出 否则输出 对不起 没有您要找的歌曲信息 5 信息分组显示模块 选择按作者分组显示歌曲信息 用 fread 或 fscanf 把歌曲信息文件中的信息读取到临时 变量中 临时变量数据结构可以采用歌曲信息结构体数组 采用排序算法 冒泡 插入 选择等 把歌曲信息按照作者排序 然后分屏输出 每屏 10 条记录 三十一 交通处罚单管理三十一 交通处罚单管理 1 需求分析 交通处罚单信息用文件存储 因而要提供文件的输入输出操作 要求可以输入 删除 浏览交通处罚单信息 因而要提供信息的输入 删除和显示操作 要实现按车辆 驾驶员 和开单交警查询 则要提供查找操作 另外提供统计操作和键盘式选择菜单以实现功能选 择 2 总体设计 整个管理系统被设计为信息输入模块 信息删除模块 信息浏览模块 信息查询模块 和信息统计模块 3 详细设计 数据结构采用结构体 设计交通处罚单结构体 Struct TranficPunishBill Char carNo 10 车牌号 Char driverNo 20 驾照号 Char policeNo 10 开单交警号码 Char billNo 20 处罚单号码 Char time 12 处罚时间 yyyymmddhhmm 年月日时分 TPB 1 主函数提示用户选择功能 输入 删除 浏览 查询 统计 2 信息输入模块 采用追加的方式用 fwrite 或 fprintf 把处罚单信息写入处罚单信息文件 3 信息删除模块 输入处罚单号码 然后在处罚单信息文件中查找该条处罚单 删除之 具体删除操作 用 fopen 打开该文件 从文件中读一条记录 判断是否要删除 如果是 则舍弃 否则重 新写入文件 读下一条记录 4 信息浏览模块 35 采用 fread 或 fscanf 读处罚单信息文件 分屏输出 每屏 10 条记录 5 信息查询模块 通过菜单选择查询字段 车辆 驾驶员 开单交警 分别按照车牌号 驾照号 开单交警号采用基本的查找算法查找交通处罚单信息文件 如果找到相应得记录则输出处 罚单信息 否则输出 您所查找的信息不存在 6 信息统计模块 提示输入驾驶员的驾照号和时间段 设置一个计数器 初始化为 0 采用基本算法查 找交通处罚单信息文件 比较驾照号 如果驾照号匹配 再看处罚单时间是否出于查询时 间段内 如果是 则计数器加 1 并输出该处罚单号 文件查找结束后 输出计数器的值 三十二 学生证的管理程序三十二 学生证的管理程序 1 需求分析 学生证信息采用文件存储 因而要提供文件的输入输出操作 给定学号或班号 做相 应得操作 要提供查找操作 显示信息要提供显示操作 修改和删除信息要提供文件的修 改和删除操作 提供一些统计各类信息的功能要实现统计操作 另外提供键盘式选择菜单 以实现功能选择 2 总体设计 整个管理程序被设计为数据输入模块 数据查找模块 数据修改模块 数据删除模块 和数据统计模块 3 详细设计 数据结构采用结构体 设计学生证信息结构体 Struct studentCard Char name 10 Int sex 0 表示男 1 表示女 Char stuNo 10 学号 Int classNo 班号 其他信息 StuCard 1 主函数 主函数中 显示功能菜单 信息输入 1 信息查找 2 信息修改 3 信息删 除 4 信息统计 5 按相应的数字键则进入相应的计算模块 2 数据输入模块 输入学生的学生证信息 把该信息以追加的方式写入学生证信息管理文件 3 数据查找模块 进入该模块 首先显示提示菜单 按学号查找 1 按班级查找 2 按学号查找 则提示输入学号 然后采用基本查找算法 顺序查找 在学生证信息文 件中查找学号字段 当找到该记录时 则输出该学生信息 停止继续查找 按班级查找 则提示输入班级班号 然后采用基本查找算法 顺序查找 在学生证信 息文件中查找班号字段 如果班号匹配 则输出该学生信息 直到文件结束 4 数据修改模块 在主菜单中选择 3 则进入数据修改模块 屏幕上提示输入要修改的学生学号 输 36 入学号后 则采用基本查找算法找到该学生信息 修改之 5 数据删除模块 与数据修改模块相似 只是找到相应的学生信息后删除 即不再写入文件 6 数据统计模块 提供对班级学生数 女生人数 男生人数的统计 通过菜单选择统计字段 建立一个 计数器 初始化为 0 例如统计班级学生数 则提示输入班号 然后查找学生证信息文件 比较班号 如果匹配 则计数器加 1 当文件结束后 输出计数器的值 女生人数和男生 人数的统计与此类似 三十三 学生成绩管理程序三十三 学生成绩管理程序 1 需求分析 学生纪录用文件存储 因而要提供文件的输入输出操作 要实现插入一个新的学生纪 录 因而要提供文件的插入操作 要实现学生纪录得修改和删除 以及登记成绩和修改成 绩 因而要提供文件纪录的修改和删除操作 要浏览全班成绩 故要提供显示操作 计算 学生总成绩需要提供简单的统计操作 要按学号排序输出全班成绩表 因而要提供排序操 作 另外要提供键盘式选择菜单以实现功能选择 2 总体设计 整个成绩管理系统设计为数据插入模块 数据修改模块 数据删除模块 成绩登记模 块 成绩修改模块 数据浏览模块 成绩统计模块 成绩表查看模块 3 详细设计 数据结构采用结构体 设计学生纪录结构体 Struct studentRecord Char stuNo 10 学号 Char name 20 姓名 Int age 年龄 Float math 数学 Float English 英语 Float physics 物理 SR 1 主函数输出提示菜单 插入学生纪录 修改学生纪录 删除学生纪录 登记成绩 修改成绩 浏览学生纪录 查看总成绩 查看成绩表 2 数据插入模块 采用追加的方式用 fwrite 或 fprintf 把学生成绩信息写入学生成绩信息文件 3 数据修改模块 通过菜单选择修改学生纪录 用 fopen 打开该文件 从文件中读一条记录 判断是否 要修改 如果是 则修改后重新写入文件 否则直接重新写入文件 读下一条记录 4 数据删除模块 通过菜单选择删除学生纪录 用 fopen 打开该文件 从文件中读一条记录 判断是否 要删除 如果是 则舍弃 否则重新写入文件 读下一条记录 5 成绩登记模块 类似数据修改模块 只是修改字段为各个科目的成绩 6 成绩修改模块 参考数据修改模块 37 7 数据浏览模块 用 fscanf 或 fread 读取学生成绩信息文件 分屏输出 每屏 10 条纪录 8 成绩统计模块 用 fscanf 或 fread 从学生成绩信息文件中读取一个学生纪录 计算该学生的总成绩 简单的成绩相加 输出 然后读取下一条纪录 9 成绩表查看模块 建立结构体数组 St

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论