函数 SaveOnestud()用来实现将一各学生的信息保存到文件“stud.dat”中。
函数 SaveAllstuds()用来实现将全部学生的信息保存到文件“stud.dat”中。
函数 OriginalStud()用来实现学生信息的初始化,在程序第 1 次运行时必须调用该函数。
该函数是通过循环多次调用 InputOnestud() 函数实现多个学生信息的输入,然后调用
SaveAllstuds()函数将已输入的所有学生的信息保存在文件“stud.dat”中。
函数 ModifyStud()用来实现学生信息的修改。
函数 AddStud()用来实现添加学生信息。
函数 DelStud()用来实现删除学生信息。
函数 OutputOnestud()用来实现输出一个学生的全部信息。
函数 OutputAllstuds()用来实现输出全部学生的基本信息(即学号和姓名)。
(5) 图 书 信 息 查 询 模 块 包 括 6 个 函 数 :
SearchMenu()、SearcBname()、SearchAuthor()、SearchBclass()、SearchPublisher()、SearchP
ubtime()。管理员和学生都可以使用图书信息查询模块。
函数 SearchMenu()用来显示图书查询服务菜单,用户输入数字可执行相应的查询服务。
函数 SearcBname()用来实现按书名进行图书信息的查询。用户可以输入完整的书名进
行精确查询(如输入“C 语言程序设计”),精确查询是使用字符串比较函数 strcmp(),将输
入的书名与已有图书的书名逐一进行比较,当该函数的返回值等于 0,表示这两个书名完
全相同,即找到要查询的图书。另外,用户也可以输入书名中的几个字进行模糊查询(如
输入“C 语言”,或输入“程序设计”),模糊查询是使用求子串函数 strstr(),在已有图书的书
名中寻找输入的字符串,如果该函数的返回值不为空,则说明该书名中包含这个字符串,
那么就应该输出这本图书的信息。通常,模糊查询会列出多个查询结果。
函数 SearchAuthor()用来实现按作者姓名进行图书信息的查询。用户可以输入完整的姓
名进行精确查询(如输入“谭浩强”),也可以只输入姓氏进行模糊查询(如只输入 “张”),
具体方法与按书名查询类似。
函数 SearchBclass()用来实现按图书分类进行图书信息的查询。考虑到用户可能不能输
入完全正确的图书分类名称,所以在该函数中只采用模糊查询方式。
函数 SearchPublisher()用来实现按出版社名称进行图书信息的查询。用户在输入出版社
名称时,一般不会输入“出版社”这三个字(如想查询清华大学出版社的图书,通常用户会
输入“清华大学”),所以在该函数中也是只采用模糊查询方式。
函数 SearchPubtime()用来实现按出版日期进行图书信息的查询。使用该函数必须注意
要按系统规定的格式输入日期,若想查询 2004 年 5 月份出版的图书,则应输入“2004.5”;
若想查询 2004 年出版的图书,则应输入“2004”。假设输入日期为“2004.5”,进行查询时,
先判断输入的年份与出版日期中的年份是否相等,若不相等则结束本次循环,若相等则用
变量 k 记录其下标,然后再判断月份是否相等,月份若不相等则用 continue 结束本次循环,
月份若相等则可输出这本书(即第 k 本书)的信息,然后再继续判断下一本图书。
(6) 图书借阅管理模块包括 2 个函数:BorrowBook()和 ReturnBook()函数。
函数 BorrowBook()用来实现借书管理。由学生类型定义可知,每个学生有 5 张借书卡,
借书卡的信息包括:借阅标记 flag、所借图书的书号 ISBN 和借阅时间 bor_time。借书时,
首先查找学生是否有空闲的借书卡(即判断该生借书卡的借阅标记 flag 是否为 0),若
flag 为 0,则可以借书,这时要求学生输入要借图书的书号,然后在图书数组 book 中查找
该书,若在数组 book 中没找到该书,则提示“输入的书号有误,请重新输入!”;若找到该书,
则先判断该书的库存量是否为 0,若库存量为 0 则提示"抱歉!该书库存量为 0,无法借阅!”。
若库存量大于 0,则将该书借给学生,此时需要进行以下 6 步操作:
step1 将该书的库存量减 1;
评论0
最新资源