资源描述
五邑大学课程设计报告五邑大学课程设计报告课程名称:课程名称:C 语言程序设计课程设计课程编号:课程编号:0800090学学 时:时:16 学时学学 分:分:1 学分图书信息管理系统的设计与实现图书信息管理系统的设计与实现姓姓 名名: 梁婉琦 学学 号号: 3214002395 班班 级级: 140808 班 专专 业业: 电子信息工程(信息安全) 学学 院院: 计算机学院 指导教师指导教师: 张 胜 利 课程设计递交时间:2014 年 4 月 18 日C 语言课程设计课程设计报告 学生成绩管理系统设计与实现目目 录录1.课程设计目的课程设计目的.12.课程设计的内容课程设计的内容.13.课程设计的要求课程设计的要求.13.1.功能要求:功能要求:.13.2.技术要求:技术要求:.14.概要设计概要设计.14.1.功能模块图功能模块图.14.2.功能能模块描述功能能模块描述.25.详细设计详细设计.25.1.各功能模块的具体实现算法各功能模块的具体实现算法流程图流程图.25.2.重点设计描述重点设计描述.26.系统测试与调试系统测试与调试.27.课程设计心得体会课程设计心得体会.2参考资料参考资料 .2C 语言课程设计课程设计报告 学生成绩管理系统设计与实现01.课程设计目的课程设计目的进一步加深、巩固所学专业课程C 语言程序设计的基本理论知识,理论联系实际,进一步培养自己综合分析问题和解决问题的能力。掌握运用 C 语言独立地编写、调试应用程序和进行其它相关设计的技能。2.课程设计的内容课程设计的内容设计并实现一个图书信息管理系统,要求具有以下功能模块:(1) 图书信息录入模块。(2) 图书信息浏览模块。(3) 图书信息查询模块。(4) 图书修改删除模块。(5) 图书借阅模块:(6) 图书归还模块:(7) 借阅查询模块:(8) 退出系统模块。3.课程设计的要求课程设计的要求3.1.系统功能要求:系统功能要求:1.图书信息录入模块:图书信息包括书名,编号,作者,价格,出版社,类别,原始库存,借出。数据的存储可以采用结构体数组或者链表。图书信息可以通过键盘逐个录入。图书信息可以通过文件导入。将最终数据存储在文件中2.图书信息浏览模块:能够浏览图书的基本信息和借阅信息。将最终数据存储到文件3.图书信息查询模块:通过图书编号查询图书信息。通过图书书名查询图书信息。4.图书修改删除模块:通过图书查询选择要操作的图书。选择修改或删除操作。选择的图书已被借阅则不能继续操作,退出系统。将最终数据存储到文件5.图书借阅模块:通过学生学号和图书编号进行借阅。如果该学号是第一次借阅则需要输入姓名,并存入 student.txt。C 语言课程设计课程设计报告 学生成绩管理系统设计与实现1将最终数据存储到文件 6.图书归还模块:输入学生学号查询该学生已借阅的图书 ,再选择图书编号选择归还的图书。将最终数据存储到文件 7.借阅查询模块:输入学生学号查询该学生已借阅的图书。可查询学生已借但未还的图书。 8.退出系统模块:每次操作结束都选择 system(“pause”);来退出从而进行下一个操作。用户可以根据提示退出系统。3.2.系统技术要求:系统技术要求:1. 用 C 语言实现系统。2. 系统以菜单方式工作。3. 有相应的代码说明(注释)4. 提供一个界面来调用各个功能。3.3.其他要求:其他要求:(1) 最终递交材料:课程报告一份,系统源代码一份。(2) 一人一题,单独完成。4.概要设计概要设计4.1.系统功能框架图系统功能框架图图书信息管理系统图书信息浏览模块图书信息查询模块图书修改删除模块键盘录入模块图书归还模块图书借阅模块退 出系 统模块借阅查询模块图书信息录入模块文件导入模块记录删除模块记录修改模块编号查询模块书名查询模块记录修改模块编号查询模块按编号排序文件导入模块C 语言课程设计课程设计报告 学生成绩管理系统设计与实现2图 1 系统功能模块图4.2.功能模块描述功能模块描述(描述每个功能模块的具体功能)1.图书信息录入模块:按照系统的提示输入图书信息,书名,图书编号,作者,出版日期,图书价格,出版社,图书类别,图书入库数。这个模块我用了strcmp()来对比输入的图书编号是否与之前的编号重复,读出与写入都用fread()和fwrite()来实现,而整个代码都用了这两个函数。而录入的信息则存储在C盘中的book . txt 文件。2.图书浏览模块:能实现把储存在文件里的图书信息输出到显示器上。3.查询图书模块:调用自定义函数dui()对比两个字符串的相关度,用于精确查询,查询有两种形式,按图书编号查询和按图书书名查询。4.删除修改图书模块:修改和删除储存在文件中的图书信息5.图书借阅模块:输入学生学号借阅图书6图书归还模块:输入学生学号和要归还的图书的编号,修改原本借阅图书的数据,再将修改后的数据覆盖原数据。7.借阅查询模块:输入学号,查询该学生所借阅图书的基本信息。8.退出模块:退出系统。C 语言课程设计课程设计报告 学生成绩管理系统设计与实现35.详细设计详细设计5.1.各功能模块的具体实现算法各功能模块的具体实现算法流程图流程图5.1.1.主控 main 函数流程图 yes no no yes 图 2 主控 main 函数流程图 开始 系统初始化调用主控菜单函数 menu();并提示操作方法 While(1)输入【07】之间某一整数输入是否为 0判断键值,调用相应函数,完成相应功能是否已经对修改进行了存盘 结束用相关函数把数据写入文档C 语言课程设计课程设计报告 学生成绩管理系统设计与实现4 yes no图 3.录入图书模块流程图 调用主控菜单函数 menu();并提示操作方法 开始 系统初始化fread(&booq,sizeof(bo),1,fp) While(1)输入是否为 1判断键值,调用相应函数,完成相应功能按提示输入图书基本信息,利用 strcmp 判断输入的图书编号是否重复利用 fread 和 fwrite 读入和输出信息到 book.text 文件中并保存 结束输入【07】之间某一整数C 语言课程设计课程设计报告 学生成绩管理系统设计与实现5yesno图 4.浏览图书模块流程图 开始 系统初始化fread(&booq,sizeof(bo),1,fp)调用主控菜单函数 menu();并提示操作方法 While(1)输入【07】之间某一整数输入是否为 2判断键值,调用相应函数,完成相应功能 结束利用 fread()读出储存在文件的图书信息C 语言课程设计课程设计报告 学生成绩管理系统设计与实现6yesnonoyes 图 5.查询图书模块流程图 开始 系统初始化fread(&booq,sizeof(bo),1,fp)调用主控菜单函数 menu();并提示操作方法 While(1)输入【07】之间某一整数输入是否为 3判断键值,调用相应函数,完成相应功能 结束调用设计的自定义函数 dui()来对比两个字符串的相关度,用于查找是否选择按图书编号查询用 fread()读出信息按图书名查询C 语言课程设计课程设计报告 学生成绩管理系统设计与实现7yesnonononoyesyes图 6.修改删除图书模块流程图修改图书信息(利用文件指针修改)删除图书 开始利用 strcmp()判断输入的编号是否与jieyue.text 中的编号一致 系统初始化fread(&booq,sizeof(bo),1,fp)调用主控菜单函数 menu();并提示操作方法 While(1)输入【07】之间某一整数输入是否为 4判断键值,调用相应函数,完成相应功能 结束是否删除图书将修改后的信息储存在文件C 语言课程设计课程设计报告 学生成绩管理系统设计与实现8 no yes noyes no yes no nono noyes nono yes no 图 7.借阅图书模块流程图 开始输入借阅图书的编号图书编号是否存在输入学号借阅图书编号是否与已借阅图书重复该图书所余数量是否与库存数量一样是否为第一次借阅借阅图书,修改文件的数据该学生是否已借阅五本图书 结束记录学生姓名C 语言课程设计课程设计报告 学生成绩管理系统设计与实现9 no yes 图 9.查询图书模块流程图 图 8.归还图书模块流程图5.2 重点设计描述重点设计描述 修改和删除模块是我做程序设计最重点设计的模块,修改过后的数据储存刚开始我是不知道该怎么弄的,而现在我主要是用文件来储存信息。我用fread()修改原本的数据,用fclose()和fopen(),fseek()找到文件和转移数据。 6.系统测试与调试系统测试与调试 源代码敲完之后进行的调试其实是不行的,因为实在是太多错处了。本来一堆英文,谁看得懂它们是什么?打算下个金山词霸来个全页翻译,但同学告诉我只要在那个下面提示错处的地方双击就会自动告诉你错处在哪个地方,感觉实在是太方便了!还有就是用文件储存信息的时候指针那里总是有问题,也 开始 结束输入学号是否有借书输入要还图书的编号改变文件里的数据 开始输入学号用 fread(),fwind()找到文件并显示出来 结束C 语言课程设计课程设计报告 学生成绩管理系统设计与实现10是请教了别人才会改,问大神和看书我才知道用 fseek(),rewind()解决了问题。还有就是查询的那里依然有点问题,只能够用精确查找,感觉不太方便;而学生的学号 10 位输入进去之后不能在借阅查询找到借阅信息,而定义改了20 位也不可以所以,加了 rewind()也是不能显示,也不知道怎么办?调试程序时主要问题出现在文件指针的移动,图书和借阅信息的删除!因为我整个程序都是通过图书编号来完成操作,所以我必须保证图书编号不被重复,用户修改图书编 号和删除时我都要考虑这本书书是否被借阅 。而删除图书,我先把不用的图书写到另一个文件里,然后再以新建的方式打开原文件,把图书信息又写回来。7.课程设计心得体会课程设计心得体会 通过本次课程设计,我重新认识了 C 语言,这是一门非常需要耐心和思考的课程。而在做课程设计的过程中刚开始我其实是不知道应该从哪里入手的,因为感觉不知道怎么开始。之后就去看教学平台上面的材料,因为开始看不懂所以又转战百度,反正就是找了很多资料才有头绪才开始写的。中途也有很多的问题,不过还好科技比较发达,可以上网找答案,还有.找班里的大神和师兄师姐帮忙,他们都好犀利,一眼就看出哪里有问题,可以说大神好厉害吗?!参考资料参考资料1谭浩强.C 程序设计(第 4 版).北京:清华大学出版社,2010 .2谭浩强.C 程序设计题解与上机指导(第三版).北京:清华大学出版社,2005.3张永健等译,标准 C 语言基础教程(第四版),北京:电子工业出版社,2010.4苏小红等,C 语言程序设计(第 2 版),北京:高等教育出版社,2011.5苏小红等,C 语言程序设计学习指导,北京:高等教育出版社,2011.6网上相关资料.
展开阅读全文