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