C语言程序设计报告(菜单+源码+测试)_第1页
C语言程序设计报告(菜单+源码+测试)_第2页
C语言程序设计报告(菜单+源码+测试)_第3页
C语言程序设计报告(菜单+源码+测试)_第4页
C语言程序设计报告(菜单+源码+测试)_第5页
已阅读5页,还剩13页未读 继续免费阅读

下载本文档

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

文档简介

一 系统功能一 系统功能 基本功能基本功能 图书的录入 删除 查找 和导入导出等 图书属性图书属性 书号 书名 第一作者 版次 出版年等 菜单功能菜单功能 1 Input Records 输入若干条记录 从键盘一次输入一本书的信息 存放到结构体数组中 然后显示 提示信息 确认是否输入下一条记录 2 Display All Records 显示所有记录 按顺序显示所有记录 每屏显示 10 条记录 按键继续显示 下一屏 3 Delete a Record 按书名查找 删除一本书 输入待删除书的书名 显示该书名的所有书目 提示输入待删除书 目的书号 提示是否删除 确认后 删除该书 4 Sort 排序 以书名为升序排列数组 5 Insert a record 插入一条记录 以书名为序排列的数组中插入一条记录 插入后 数组仍然有序 输出插入成功后的信息 6 Query 查找并显示一个记录 输入书名 查找并显示包含该书名的所有图书信息 7 Add Records from a Text File 从文件读入图书信息到结构体数 组中 用户可事先建立一个文本文件 Dictory txt 存放所有图书信息 文件格式如下 2 1182高等数学刘浩荣 5 同济大学出版社 2013 7300 物理化学王德明 2 化学工业出版社 2015 8 Write to a Text File 将数组中的全部记录写入文件 Records txt 中 要求格式与 Dictory txt 相同 0 Quit 退出图书管理系统 新增加菜单功能 新增加菜单功能 9 Change a record 修改某一条记录的值 a Menu 显示菜单 b Clear Screen 清屏 c Pause 按暂停 按任意键继续 二 数据结构 Typedef struct char ISBN 10 书号 char book 30 书名 char author 20 作者 Int edition 版本号 char press 50 出版社 名 int year 出版年 Bookinfo 三 函数调用关系 main Query Query a record Delete Sort by name Insert AddfromText Insert a record Write to Text Display main menu Input Display Delete a record Change a record 四 主要算法及实现 插入算法 i 0 i 0 ii 1 b 语句 B dictList i 1 s 语句 Bn 1i 否 否 否 是 是 是 排序算法 b strcmp dictList p book dictList j book 语句 A t dictList p dictList p dictList i dictList i t 开始 i0j n j 语句 A i 0 p i j i 1 p j i 结束 是 是 是 是 否 否 否 否 五 源程序 含注释 include include include define NUM 100 typedef struct 定义结构体数组 char ISBN 10 书号 char book 30 书名 char author 20 作者 int edition 版本号 char press 50 出版社名 int year 出版年 Bookinfo int Input Bookinfo dictList int n 从键盘输入数据 存入结构体数组 dictList char c1 c2 do c1 getchar printf Please input ISBN n gets dictList n ISBN printf Please input book n gets dictList n book printf Please input author n gets dictList n author printf Please input press n gets dictList n press printf Please input edition n scanf d printf Please input year n scanf d n 1 printf 是否输入下一条 确认 y 取消 n n 提示信息 c1 getchar while c2 getchar y return n 返回值为新的记录数量 void Display Bookinfo dictList int n 显示所有记录 每 10 个暂停一次 输入回车继续显示 int i 0 j char input c printf 10s 23s 18s 8s 15s 4s n ISBN book author edition press year c getchar do j 10 每 10 个循环一次 do printf 10s 23s 18s 8d 15s 4d n dictList i ISBN dictList i book dictList i author dictList i edi tion dictList i press dictList i year i j while j if i n break 若数据全部输出 则跳出循环 scanf c while input n 输入回车 执行循环 int delete Bookinfo dictList int n char ISBN 只删除书号为 ISBN 的第 一条记录 int i j for i 0 i n i if strcmp dictList i ISBN ISBN strcmp 函数判断两个字符串是否 相等 for j i j n 1 j dictList j dictList j 1 将目标值右面的数据全部左移一位 return n 1 删除后记录数减少 1 return n int Delete a record Bookinfo dictList int n 删除某一条记录 int i j 0 char book 30 isbn 10 s c c getchar printf 请输入待删除的书目的书名 n gets book 获取书名字符串 printf 10s 23s 18s 8s 15s 4s n ISBN book author edition press year for i 0 i0 printf 请输入待删除的书目的书号 n gets isbn 获取要删除的数据的书号 printf 确实要删除该记录 是 y 否 n n 提示删除 if s getchar y for i 0 i n i if strcmp dictList i ISBN isbn 调用 delete 函数删除 printf 删除成功 n return delete dictList n dictList i ISBN printf 未找到待删除记录 n 删除成功后记录减 1 else printf 已取消删除 n 取消删除后记录数不变 return n else printf 未找到待删除记录 n void Sort by name Bookinfo dictList int n 选择法按书名升序排列 int i j p Bookinfo t for i 0 i n 1 i p i for j i 1 j0 p j if p i t dictList p dictList p dictList i dictList i t int insert Bookinfo dictList int n Bookinfo s 按书名顺序插入记录 int i j Sort by name dictList n for i 0 i n 1 i if strcmp s book dictList 0 book 0 j dictList j dictList j 1 dictList 0 s return n 1 else if strcmp s book dictList i book 0 j dictList j dictList j 1 dictList i 1 s 放在 i 和 i 1 之间或者放在最后一个 return n 1 dictList n s return n 1 int Insert a record Bookinfo dictList int n 出现问题 调用该函数时总是全 部显示记录 int k char c Bookinfo s 输入数据 c getchar printf Please input ISBN n gets s ISBN printf Please input book n gets s book printf Please input author n gets s author printf Please input press n gets s press printf Please input edition n scanf d printf Please input year n scanf d k insert dictList n 根据 insert 的返回值是否大于 n 判断插入成功与 否 if k n printf 插入成功 n return k else printf 插入失败 n return n int Query Bookinfo dictList int n char book 查询并显示书名为 book 的记录 int i count 0 printf 10s 23s 18s 8s 15s 4s n ISBN book author edition press year for i 0 i0 printf 共找到 d 条记录 n i 若查 到数据 Query 函数的返回值为正数 else printf 未找到所查找的记录 n int AddfromText Bookinfo dictList int n char filename int i Bookinfo s FILE p p fopen filename r fscanf p d 先读取文件第一行的记录数 while i fscanf p s s s d s d n s ISBN s book s author 读取记录的具体值 n insert dictList n 插入到 dictList 数组中 fclose p printf 读取成功 n return n void WritetoText Bookinfo dictList int n char filename FILE p2 int i p2 fopen filename w for i 0 i0 确认找到待修改记录 printf 共找到 d 条记录 n 请输入待修改图书的书号 n i gets ISBN for i 0 i n i if strcmp dictList i ISBN ISBN printf 请更新书号为 s 的图书数据 n ISBN 开始修改 printf Please input ISBN n gets dictList i ISBN printf Please input book n gets dictList i book printf Please input author n gets dictList i author printf Please input press n gets dictList i press printf Please input edition n scanf d printf Please input year n scanf d printf 修改完成 n else printf 未找到相关记录 n main static int n 12 char filename1 30 filename2 30 c 创建初始结构体数组 应不少于十个 Bookinfo books NUM 97814842 python Language gnus Lie land 2 Berkeley 2014 97871190 history of Chinese Goa qua 2 Beijing 2009 97814129 public communication Ronald E Rice 3 London 2013 97836422 cultural composition Yang Pan 2 pardon 2012 97801240 analyzing the social Jennifer beck 1 Walt 2013 78016958 recored servicing Scottish Qua 1 Chinese 2004 01354851 management guide Ferdinand K Levy 1 Englewood 1969 1096 424 macroeconomics Dusk 2 Gog 1977 04448649 competitive economics Ki Hang Kim 2 Amsterdam 1983 08531419 guide to banking Robin Pr 7 London 1973 01311606 guide to banking Jerry S Rosen 2 Englewood 1972 97875100 dirt pricing dynamic Pamela La 1 World book 2013 Display main menu 显示菜单 while c getchar 持续获取输入 并用 switch 语句调用相应函数 switch c case 0 exit 1 break case 1 n Input books n break case 2 Display books n break case 3 n Delete a record books n break case 4 Sort by name books n break case 5 n Insert a record books n break case 6 Query a record books n break case 7 printf 请输入文件名 n scanf s filename1 n AddfromText books n filename1 break case 8 printf 请输入文件名 n scanf s filename2 WritetoText books n filename2 break case 9 Change a record books n break case a Display main menu break case b system cls break case c system pause break 六 程序执行 包含典型测试数据 1 Input records 2 Display All Records 3 Delete a Record 4 sort 5 Insert a Record 6 Query 7 Add Records from a Text File 8 Write to a Text File 9 Change a record 0 Quit TIPS a Menu b Clear Screen c Pause Give your choice 1 Please input ISBN 4296 Please input book 明朝那些事明朝那些事 Please input author 当年明月当年明月 Please input press 浙江出版社浙江出版社 Please input edition 2 Please input year 2011 是否输入下一条 确认 y 取消 n n 2 ISBN book author edition press year 97814842 python Language gnus Lie land 2 Berkeley 2014 97871190 history of Chinese Goa qua 2 Beijing 2009 97814129 public communication Ronald E Rice 3 London 2013 97836422 cultural composition Yang Pan 2 pardon 2012 97801240 analyzing the social Jennifer beck 1 Walt 2013 78016958 recored servicing Scottish Qua 1 Chinese 2004 01354851 management guide Ferdinand K Levy 1 Englewood 1969 1096 424 macroeconomics Dusk 2 Gog 1977 04448649 competitive economics Ki Hang Kim 2 Amsterdam 1983 08531419 guide to banking Robin Pr 7 London 1973 01311606 guide to banking Jerry S Rosen 2 Englewood 1972 97875100 dirt pricing dynamic Pamela La 1 World book 2013 4296 明朝那些事当年明月 2 浙江出版社 2011 3 请输入待删除的书目的书名 明朝那些事明朝那些事 ISBN book author edition press year 4296 明朝那些事当年明月 2 浙江出版社 2011 请输入待删除的书目的书号 4296 确实要删除该记录 是 y 否 n y 删除成功 4 2 ISBN book author edition press year 97801240 analyzing the social Jennifer beck 1 Walt 2013 04448649 competitive economics Ki Hang Kim 2 Amsterdam 1983 97836422 cultural composition Yang Pan 2 pardon 2012 97875100 dirt pricing dynamic Pamela La 1 World book 2013 08531419 guide to banking Robin Pr 7 London 1973 01311606 guide to banking Jerry S Rosen 2 Englewood 1972 97871190 history of Chinese Goa qua 2 Beijing 2009 1096 424 macroeconomics Dusk 2 Gog 1977 01354851 management guide Ferdinand K Levy 1 Englewood 1969 97814129 public communication Ronald E Rice 3 London 2013 97814842 python Language gnus Lie land 2 Berkeley 2014 78016958 recored servicing Scottish Qua 1 Chinese 2004 5 Please input ISBN 84772281 Please input book english learning Please input author tom Please input press Alla Please input edition 2 Please input year 2016 插入成功 6 请输入待查找的书名 recored servicing ISBN book author edition press year 78016958 recored servicing Scottish Qua 1 Chinese 2004 共找到 1 条记录 7 请输入文件名 Dictory txt 读取成功 2 ISBN book author edition press year 97801240 analyzing the social Jennifer beck 1 Walt 2013 04448649 competitive economics Ki Hang Kim 2 Amsterdam 1983 97836422 cultural composition Yang Pan 2 pardon 2

温馨提示

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

评论

0/150

提交评论