c语言大作业程序报告模版Word格式文档下载.docx
- 文档编号:17335829
- 上传时间:2022-12-01
- 格式:DOCX
- 页数:13
- 大小:169.73KB
c语言大作业程序报告模版Word格式文档下载.docx
《c语言大作业程序报告模版Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《c语言大作业程序报告模版Word格式文档下载.docx(13页珍藏版)》请在冰豆网上搜索。
该实验中,首先一方面可以切身体验到图书管理的操作流程,对管理工作有简单的认识,为以后的工作学习积累宝贵经验;
再一方面对个人的逻辑判断,问题分析,模块化处理问题等能力进行了考查与提高;
最后一方面又对所学的C语言语法、算法进行有效检验与巩固。
3.系统功能
系统实现的功能主要有:
管理员/读者登录、菜单选择、借/还书、留言/查看留言、增加/删除书目等。
二、系统使用说明
1.使用环境
本次程序编译平台为MicrosoftVisualC++,版本6.0.0.0,代码规范为“标准C”,系统为Windows8Professional32位,VC6.0下调试通过;
理论上兼容所有标准C编译平台,路径默认。
2.文件组成
程序组成及相应功能如下:
_图书信息管理系统__Beta_1.9.0.c源代码文件
LibrarySystem.c同上
LibrarySystem.h自定义头文件,功能如下:
包含头文件,
编译预处理,
结构体定义,
函数声明,
全局变量,
BookData.dat图书信息数据
BorrowUser.dat借书用户数据
UserData.dat用户数据
Message.dat留言数据
_图书信息管理系统__Beta_1.9.0.exe可执行文件
readme.txt自述文件
3.操作说明
初始管理员账号:
admin,管理员密码:
admin;
其它账户默认为读者;
进入系统后按提示操作。
三、程序设计与实现
1.程序结构
图1图书信息管理系统功能组成框图
2.核心数据结构设计
a)图书信息
typedefstructBookList//图书信息
{
charname[20];
//书名
longintnum;
//索书号
floatprice;
//价格
charauthor[20];
//作者
charpress[20];
//出版社
charversion[20];
//版本
shortintsum;
//库存量
shortintleft;
//剩余量
}BOOK;
b)借书用户信息
typedefstructBorrowUser//借书用户信息
{
charbookname[20];
//被借书名字
longintnum;
//被借书序列号
charusername[20];
//借书用户名字
longintphone;
//借书用户联系方式
shortintyear;
//借出日期:
年
shortintmonth;
月
shortintday;
日
}BORROWUSER;
本程序中为了节省内存,并未采用数组或链表方式,而是创新地利用文件指针的移动,每次读取一个sizeof(structBookList)或sizeof(structBorrowUser)字节内容,通过反复读取文件的方式,完成设计。
3.函数说明
(1)函数原型:
intLogin()
函数功能:
登录模块
入口参数:
无
出口参数:
登录用户权限级别,1代表管理员,0代表读者
算法描述:
读取用户名、密码→判断用户身份→返回级别
(2)函数原型:
intChooseMenu_Admin()
管理员菜单模块
操作选项
显示提示管理员菜单→读取输入→判断选项→返回选项
流程图描述:
图2函数ChooseMenu_Admin()流程图
(3)函数原型:
intChooseMenu_Reader()
读者菜单模块
显示提示读者菜单→读取输入→判断选项→返回选项
(4)函数原型:
voidContro_Admin(intn)
管理员控制模块
控制函数
判断选项→返回控制函数
(5)函数原型:
voidContro_Reader(intn)
读者控制模块
(6)函数原型:
voidFindBook()
控制书目查找方式模块
查找方式选项
(7)函数原型:
voidFindBookName()
按书名查找模块
读取书名→按顺序比对图书数据库→判断是否相等→返回查找结果
图3函数FindBookName()流程图
(8)函数原型:
voidFindBookAuthor()
按作者查找模块
读取作者名→按顺序比对图书数据库→判断是否相等→返回查找结果
(9)函数原型:
voidFindBookNum()
按索书号查找模块
读取索书号→按顺序比对图书数据库→判断是否相等→返回查找结果
(10)函数原型:
voidAddBook()
增加书目模块
读取增加书目信息→判断是否合法→存入数据库
(11)函数原型:
voidDeleteBook()
删除书目模块
读取删除书目信息→判断是否合法→从数据库删除
(12)函数原型:
voidShowBorrow()
显示借阅信息模块
打开借阅用户数据库→读入内存→标准输出设备显示
(13)函数原型:
(14)函数原型:
voidContactManager()
留言模块
读取留言信息→判断是否合法→存入留言数据库
(15)函数原型:
voidShowMessage()
查看留言模块
打开留言数据库→标准输出设备显示→询问是否清空→清空/不清空
(16)函数原型:
voidReturnBook()
归还图书模块
读取归还书目信息→判断是否合法→比对删除借阅用户数据库→删除记录
(17)函数原型:
voidLendBook()
借阅图书模块
读取借阅图书信息→判断是否满足借阅条件→保存借阅信息→修改库存信息
(18)函数原型:
intAskQuit()
询问退出模块
退出选项,1代表退出,0代表继续
询问是否退出→读取选项→返回选项代码
(19)函数原型:
voidFarewell()
退出处理模块
显示退出信息→结束程序
四、设计难点与解决方法
本次实验中,主要遇到以下问题:
✓关于feof()函数的使用,按照清华大学出版社的《基于VisualC++的标准C使用程序设计教程》中的《附录E标准C语言库函数》中讲解该函数在文件结束时返回值为0,实际使用中出现严重逻辑错误。
经反复调试与查找资料,发现feof()函数在文件结束时返回值为1。
✓打开文件后,未对文件操作,文件却丢失。
经反复调试与查找资料,发现fopen()函数,只要文件以写的方式(fopen(char*file,”w”))打开,文件就会被重写,既清空。
✓fwrite()函数在赋值使用中出现乱码,经反复调试与查找资料,发现其赋值方式与之前的文件打开方式有关。
当文件以文本方式打开时,fwrite()函数相当于从标准输入文件(比如键盘)等赋值,优先考虑数据类型的对应;
当文件以二进制方式打开时,相当于从内存中赋值,优先考虑字长大小的对应。
五、设计效果与不足之处
1.经调试,系统运行正常,图4-1至4-10所示为各运行窗口截图:
图4-1登陆界面图4-2管理员菜单界面
图4-3增加书目界面图4-4删除书目界面
图4-5读者留言界面图4-6管理员查看留言界面
图4-7还书界面图4-8借书界面
图4-9查找书籍界面图4-10退出界面
2.本程序存在以下不足之处:
✓只有一个管理员账户,且没有提供会员注册功能。
其实现与图书信息数据库的建立类似,可建立一个文件记录注册用户信息,通过比对信息登陆。
✓没有提供注销功能,不能实现用户之间切换功能。
可建立注销函数voidLogout(void),通过“Logout()→Login()”实现用户切换。
✓图形界面不够友好,程序运行基于MS-DOS系统。
可通过TURBOC2.0平台图形处理函数,实现更加友好的人机交互功能。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 作业 程序 报告 模版