




已阅读5页,还剩13页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1 XX 学院学院 C 语言课程设计报告语言课程设计报告 课程名称 C 语言课程设计 课程编号 报告题目 学生姓名 学 号 专 业 成 绩 任课教师 评阅日期 2 C C 语言课程设计报告语言课程设计报告 一 一 C C 语言课程设计的目的语言课程设计的目的 C 语言的教学是学生根据课堂讲授内容 学生做相应的自主练习 消化课堂所讲解的 内容 通过调试典型例题或习题积累调试 C 程序的经验 通过完成辅导教材中的编程题 逐渐培养学生的编程能力 用计算机解决实际问题的能力 具体来说 1 进一步掌握和利用 C 语言进行程设计的能力 2 进一步理解和运用结构化程设计的思想和方法 3 初步掌握开发一个小型实用系统的基本方法 4 学会调试一个较长程序的基本方法 5 学会利用流程图或 N S 图表示算法 6 掌握书写程设计开发文档的能力 书写课程设计报告 二 二 课程设计报告正文课程设计报告正文 1 1 课程设计 课程设计题目的原文 题目的原文 假定民航机场共有 n 个航班 航班号 起始站 终点站 飞机号 飞机时间 乘员定 额 余票量 试设计一民航订票系统 使之能提供下列服务 航班信息录入功能 文件保存 完成航班信息浏览功能 查询航线 至少一种查询方式 2 2 题目的分析 需求分析 题目的分析 需求分析 任务 通过此系统可以实现如下功能 录入 可以录入航班情况 数据可以存储在一个数据文件中 浏览 航班信息浏览功能需要提供显示操作 查询 可提供按照航班号 起点站 终点站 飞行时间 查询 可以查询某个 航线的情况 如 输入航班号 起飞抵达城市 确定航班是否满仓 另 外要提供键盘式选择菜单以实现功能选择 要求 根据以上功能说明 设计航班信息 订票信息的存储结构 设计程序完成功 3 能 可以建立航班结构体 结构体成员包括航班号 起点站 终点站 飞行 时间 预售票总数 已售票数 3 3 整体设计与模块划分 整体设计与模块划分 根据需求分析 该程序可分为以下四大模块 输入模块 显示模块查询模块退出模块 飞机订票系统飞机订票系统 4 4 代码设计 代码设计 包括 各功能模块的流程图 重要模块中关键部分的代码分析 关键函数的算法设 计和分析 等等 A A 主函数主函数 1 1 分析 分析 主函数的功能比较简单 形式比较简洁 主要功能为 在系统 中没有程序所要的文件时 为程序建立一个所许的文件 调用菜单函数 程序 中的各模块都要用到同一个文件 如果该文件不存在 则该程序就无法正常运 行 增加第一个功能就是保证文件的可用切可打开 本来只要在主函数里调用 各功能模块就行了 但是为了让程序能够方便的回到主函数里 所以就建立了 一个菜单函数 菜单函数的功能是替主函数调用个功能模块函数 因而设计的基本思路很 简单 即 用一个输入来接受用户的选择 加以个循环来让输入错误的用户继 续输入 直到输入正确为止 用一个 switch 语句来选择用户所要用到的函数 2 2 程序 程序 voidvoid menu menu intint n w n w dodo 4 puts t t MENU n n puts t t MENU n n puts t t t tputs t t t t 1 enter1 enter newnew data data puts t t t tputs t t t t 2 Browse2 Browse all all puts t t t tputs t t t t 3 Search 3 Search puts t t t tputs t t t t 4 exit 4 exit puts n n t tputs n n t t n n printf Choiceprintf Choice youryour number 1 4 number 1 4 b b b b scanf d scanf d if n4 if n4 w 1 w 1 getchar getchar elseelse w 0 w 0 while w 1 while w 1 switch n switch n casecase 1 enter break 1 enter break casecase 2 Browse break 2 Browse break casecase 3 Search break 3 Search break casecase 4 exit 0 4 exit 0 主函数主函数 main main menu menu 5 B B 公共函数公共函数 1 1 分析 分析 各功能模块中的分程序中的交错的较多 因而 本程序的公共函有5个 这使得各功能模块函数显得简洁 这是程序的一个特点 此处的公共函数的功能较为简单 但他很实用 2 2 程序 程序 1 1 把航班信息输入到文件中的函数 把航班信息输入到文件中的函数 voidvoid input i input i structstruct flightflight t t printf nflight noprintf nflight no startstationstartstation endstationendstation flytimeflytime plan ticketplan ticket sell ticket n sell ticket n scanf d s s s d d t plan ticket fp fopen flydata txt ab fp fopen flydata txt ab if fp printf canif fp printf can notnot openopen thisthis file n exit 0 file n exit 0 elseelse fwrite flight 1 fp fclose fp fclose fp 2 2 输出一个 输出一个 航班信息函数航班信息函数 voidvoid printf oneflight intprintf oneflight int i i printf n 5d 20s 20s 10s 4d 4d n fly i flight no fly i startstation fprintf n 5d 20s 20s 10s 4d 4d n fly i flight no fly i startstation f ly i endstation fly i flytime fly i plan ticket fly i sell ticket ly i endstation fly i flytime fly i plan ticket fly i sell ticket 3 3 输出文件内容结构函数 输出文件内容结构函数 voidvoid printf face printf face printf n tNO printf n tNO startstationstartstation endstationendstation flytimeflytime plan ticketplan ticket sell ticket n sell ticket n 6 4 4 载入函数实现文件内容载入程序 并返回飞机航班数值 载入函数实现文件内容载入程序 并返回飞机航班数值 intint load load FILEFILE fp fp intint i i if fp fopen flydata txt rb NULL if fp fopen flydata txt rb NULL printf nCanprintf nCan notnot openopen file n file n exit 0 exit 0 for i 0 feof fp i for i 0 feof fp i fread flight 1 fp fclose fp fclose fp return i 1 return i 1 5 5 返回退出函数实现程序退出 返回 返回退出函数实现程序退出 返回 voidvoid printf back printf back intint w w printf n n tSuccessful n n printf n n tSuccessful n n printf Whatprintf What dodo youyou wantwant toto do n n t1 Browsedo n n t1 Browse allall now t2 back b b now t2 back b b scanf d scanf d if w 1 if w 1 Browse Browse elseelse menu menu C C 航班基本信息航班基本信息输入模块输入模块 航班信息录入函数 航班信息录入函数 1 1 分析 分析 航班的基本信息 对它们输入后 要存进原文件 采用 fwrite 函数就 7 可以实现 但是 用该函数存进文件的数据都是以二进制的形式存在的 不是通常所采用 的形式 可以改用 fprintf 函数来实现该功能 不过本程序采用的是 fwrite 函数 再用户 输入完成后 程序会询问是否继续输入 这个功能更具人性化 可以省去返回到主函数在 进入这个函数的麻烦 流程图 流程图 输入信息输入信息 文件打开否 输入信息 是否继续 将信息输出到磁盘 调用 printf back 函数 结束 开始 输出错误信息 2 2 程序 程序 voidvoid enter enter intint i n i n printf Howprintf How manymany flightsflights dodo youyou wantwant input input b b b b scanf d scanf d printf nprintf n EnterEnter datadata now n n now n n for i 0 i n i for i 0 i n i printf nprintf n InputInput dth dth floatfloat record n i 1 record n i 1 input i input i 8 printf back printf back D D 航班信息浏览模块航班信息浏览模块 流程图 显示信息 流程图 显示信息 开始 文件打开 查找航班信息 是否查找到 输入信息 是否继续 结束 输出错误信息 删除操作 显示航班信息 voidvoid Browse Browse intint i n i n n load n load printf face printf face for i 0 i n i for i 0 i n i if i 10 0 if i 10 0 printf nPressprintf nPress anyany keykey toto contiunecontiune getchar getchar puts n n puts n n 9 puts n n puts n n printf oneflight i printf oneflight i printf tThereprintf tThere areare d d record n n record n n printf nPressprintf nPress anyany keykey toto backback n n getchar getchar menu menu E E 航班信息查询模块航班信息查询模块 分析 基本信息的查询按查询可供选择的方式比较丰富 可按航班号查询 在查询 小模块中采用了直接查找的方法 本模块可以通过多种查询方式进行完善 这是本 程序没有做的地方 流程图 流程图 开始 文件打开 查询方式 是否继续 结束 输出错误信息 航班号 此处可以 完善其它 查询方式 程序 程序 voidvoid Search Search 10 intint m i flight no flag 0 m i flight no flag 0 printf Pleaseprintf Please inputinput flight no n flight no n scanf d scanf d m load m load for i 0 i m i for i 0 i m i if flight no fly i flight no if flight no fly i flight no flag 1 flag 1 printf nTheprintf nThe flightflight messagemessage is n is n printf oneflight i printf oneflight i if flag 1 if flag 1 printf Found printf Found elseelse printf Notprintf Not Found Found printf back printf back 5 5 运行与测试报告 运行与测试报告 在第一步编程过程中很顺利的编写好了各模块 最后整合成了一个完整的程序 但在 调试过程中遇到了许多问题 如一些由于粗心导致分号 括号 字母输错的例子很多 但 都很快改正 还有函数调用错误 fp fopen flydata txt ab 我在写时丢了 fopen 结 果一直错误 并且发现不了 后来请老师才解决问题 还有写程序中我经常忘记头文件包 含命令 以及函数声明 导致调试中出现警告 这让我体会到只有耐心的一行一行的改错 误才能把程序调试好 运行中遇到问题 例如 对数据的写文件操作中 我把存在 fly N 中的数据以 fwrite flight no charchar startstation 20 startstation 20 charchar endstation 20 endstation 20 charchar flytime 10 flytime 10 intint plan ticket plan ticket intint sell ticket sell ticket fly N fly N 定义结构体变量定义结构体变量 FILE FILE fp fp 14 voidvoid Browse Browse voidvoid printf oneflight intprintf oneflight int i i voidvoid menu menu voidvoid input i input i 把航班信息输入到文件把航班信息输入到文件 structstruct flightflight t t printf nflight noprintf nflight no startstationstartstation endstationendstation flytimeflytime plan ticketplan ticket sell ticket n sell ticket n scanf d s s s d d plan ticket fp fopen flydata txt ab fp fopen flydata txt ab if fp printf canif fp printf can notnot openopen thisthis file n exit 0 file n exit 0 elseelse fwrite flight 1 fp fclose fp fclose fp voidvoid printf oneflight intprintf oneflight int i i 输出一个输出一个 航班信息航班信息 printf n 5d 20s 20s 10s 4d 4d n fly i flight no fly i startstation flyprintf n 5d 20s 20s 10s 4d 4d n fly i flight no fly i startstation fly i endstation fly i flytime fly i plan ticket fly i sell ticket i endstation fly i flytime fly i plan ticket fly i sell ticket voidvoid printf face printf face 输出文件内容结构输出文件内容结构 printf n tNO printf n tNO startstationstartstation endstationendstation flytimeflytime plan ticketplan ticket sell ticket n sell ticket n 15 intint load load 载入函数实现文件内容载入程序 并返回飞机航班数值载入函数实现文件内容载入程序 并返回飞机航班数值 FILEFILE fp fp intint i i if fp fopen flydata txt rb NULL if fp fopen flydata txt rb NULL printf nCanprintf nCan notnot openopen file n file n exit 0 exit 0 for i 0 feof fp i for i 0 feof fp i fread flight 1 fp fclose fp fclose fp return i 1 return i 1 voidvoid printf back printf back 返回退出函数实现程序退出 返回返回退出函数实现程序退出 返回 intint w w printf n n tSuccessful n n printf n n tSuccessful n n printf Whatprintf What dodo youyou wantwant toto do n n t1 Browsedo n n t1 Browse allall now t2 back b b now t2 back b b scanf d scanf d if w 1 if w 1 Browse Browse elseelse menu menu voidvoid enter enter 航班信息录入航班信息录入 intint i n i n printf Howprintf How manymany flightsflights dodo youyou wantwant input input b b b b scanf d scanf d 16 printf nprintf n EnterEnter datadata now n n now n n for i 0 i n i for i 0 i n i printf nprintf n InputInput dth dth floatfloat record n i 1 record n i 1 input i input i printf back printf back voidvoid Browse Browse intint i n i n n load n load printf face printf face for i 0 i n i for i 0 i n i if i 10 0 if i 10 0 printf nPressprintf nPress anyany keykey toto contiunecontiune getchar getchar puts n n puts n n puts n n puts n n printf oneflight i printf oneflight i printf tThereprintf tThere areare d d record n n record n n printf nPressprintf nPress anyany keykey toto backback n n getchar getchar 没有返回植没有返回植 menu menu 17 voidvoid Search Search 查询查询 intint m i flight no flag 0 m i flight no flag 0 printf Pleaseprintf Please inputinput flight no n flight no n scanf d scanf d m load m load for i 0 i m i
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 支部联建协议书2025
- 五金工具代工合同协议书
- 四人合作开店合同协议书
- 农村装修施工安全协议书
- 全风险代理案件合同范本
- 2025年铺面合同范本
- 个人转租别墅协议书范本
- 企业模拟股权转让协议书
- 叉车维修员工合同协议书
- 参加文艺团队安全协议书
- 四年级音标试卷及答案
- 学校食堂运营管理职责与分工
- 2025云南师范大学辅导员考试题库
- BEC商务英语(中级)阅读模拟试卷11(共405题)
- 会计师事务所公司质量控制制度范本
- 语文课堂教学目标设计“四出发”
- 2025《义务教育信息科技课程标准(2022年版)》测试题库及答案(共4套)
- 2025年度建筑劳务木工班组施工合作协议
- 《环境保护法》知识参考试题库200题(含答案)
- 食堂食材配送采购投标方案(技术标)
- 矿业行业智能化矿山建设与运营方案
评论
0/150
提交评论