- 1、本文档共25页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
--
-
语言程序设计
图书管理系统
学生:
专业:电子信息科学与技术
学号:
指导老师:
设计要求
课程设计是对学生的一种全面综合训练, 是与课堂听讲、 自学和练习相辅相成的、必不可少的一个教学环节。 通常,课程设计中的问题比平时的习题复杂得
多,也更接近实际。 课程设计着眼于原理与应用的结合点, 使学生学会如何把书上学到的知识用于解决实际问题,培养软件工作所需要的动手能力;另一方面,能使书上的知识变“活” ,起到深化理解和灵活掌握教学内容的目的。
题
目
:
图
书
销
售
管
理
系
统
设
计
图书信息包括:序号、书名、作者、出版单位、价格。
试设计一图书销售管理系统,使之能提供以下功能:
1、系统以菜单方式工作
2、图书信息录入功能(图书信息用文件保存)--输入
3、图书信息的删除与修改功能
4、图书信息浏览功能--输出
5、查询功能--算法:按书名 / 作者查询
6、排序功能--算法
按书名排序
按价格排序
7、图书购买功能: 统计选购图书的总价, 给出清单, 屏幕输出参考以下的实际购书单 (求:
1、 独立完成
2、 需随程序设计与实现完成一份描述该过程的报告,供考核时参考。
考核方式:
上机面试。在完成程序和文档后,根据题目要求和同学自行完成的文档,可能考核设计思路、代码分析、修改代码、增加功能、跟踪调试等各方面。
设计思路
1. 主目录
2.录入
3.图书查询目录
4.排序查询
序号排序查询:
价格排序查询:
5.自定义查询
6.全部查询
7.修改
8.删除
9.替换
9.购买
设计思路
录入:
INSERT()函数,因为录入的数据最后要保存进文件中,以供查询、购买等功能的使用,
所以在文件已开始 if 判断语句打开文件 a,打开文件也就定义了指针的位置。其次输入
信息,写代码时我发现,如果使用 scanf()函数,每次在输入一个整形或字符时,总会因为敲了一个回车而提前进入下一行代码,影响正常输入。于是,我在前面加了一个
ch=getchar(); 以接收回车符。
当输入完信息后,使用
fwrite ();函数将之前已经赋值的结构体变量存入
a 文件,并用
fclose();关闭文件,防止文件内容被篡改。
在最后加一个 switch 分支语句以判断是否循环退出,当输入字符‘ y’后,自动重复调
用 INSERT();,否则调用 MAINMENU ()退到主目录。
按功能查询:
在按序号 (价格 )查询时,首先依然是打开之前已经写入要查询内容的文件,然后通过输
入要查询的字符串或整形变量与文件内容比较, 如果一致则打印输出此数组的其他结构
体成员。具体的比较我使用的是字符串比较函数 strcmp ( char a[20],char b[20] );或利
if(“ int a==int b ”)判断整形变量的相等。如果相等则输出结构体变量的其他成员,
否则进入下一循环。这里的循环用 for ()实现,有几个变量就比较几次(包括和自己比较)。
排序:
对于排序, 有很多种方法, 这里我用的是比较简单的冒泡法。 冒泡法的原理: 首先做一个内循环, 将数组的第一个值与后面的值分别比较, 如果前者小于后者(降序) 则交换两值的位置。然后是外循环,由 for 实现第二、第三个值分别与其后面的值比较。最后循环结束后得到交换赋值后的结构体变量, 并打印输出。 一般的, 外层循环的次数是字
符数的 n-1 次,内循环每次循环是起始比较值后面剩下的字符数。同样的,字符串我用 strcmp ( char a[20],char b[20] ),整型变量用‘ ==’。
修改:
修改功能其实是查询函数 SEARCH();和录入函数 INSERT();的使用。首先还是打开文件,然后,利用 scanf();接收要修改的数组的任意一个变量,用 strcmp();和‘ ==’比较是否相符,同样这里要使用 for()让输入的变量于每一个数组的相同的类型变量进行比较。若符合则开始进入录入函数给选择的结构体变量分别赋值。
删除:
如果是全部删除, 则给每一个录入的变量赋空值即可。 若是单项删除, 首先查询要删除
数组的其中一个结构体变量(同修改) ,如果符合,则赋空值即可。我用的是复制覆盖
的方法,即后从要删除的数组后一个数组开始,分别向前移动一位,这里可以用 strcpy
( char a[20],char b[20] );字符串复制函数,在这里 b 把值赋给 a,但不改变 b 的值。
6.购买:
购买功能是前面所有功能的综合。 先输入要购买的书的一个关键变量, 然后与录入的图
书信息比较, 如果相符则打印出来。 此时也可以在定义一个结构体变量, 用来存放购买图书
所要使用的信息。
源代
文档评论(0)