2015-2016-2《程序设计实践》课程报告统一格式 - 题目2:图书信息管理系统-by程立
程序设计实习报告
程序设计实习报告1. 介绍本报告是对我在程序设计实习期间所进行的工作和学习的和回顾。
在这次实习中,我主要参与了一个软件开发项目,并负责了一部分的编码和测试工作。
通过这次实习,我对程序设计的知识和技能有了更深刻的理解,并且提升了我的编程能力。
2. 实习内容在这次实习中,我所参与的项目是一个在线购物网站的开发。
我负责了该网站的后端开发工作,主要包括数据库设计和编写服务端接口。
在数据库设计方面,我使用了MySQL,并根据需求设计了相应的表结构。
在编写服务端接口方面,我使用了Java和Spring Boot框架,并使用了RESTful风格的API。
在开发过程中,我遇到了许多挑战和问题。
是数据库设计方面,我需要根据项目需求来设计合适的表结构,并保证数据的一致性和完整性。
是接口设计和编写,我需要根据前端的需求来设计合适的接口,并保证接口的安全性和性能。
是测试方面,我需要编写相应的测试代码,并保证代码的质量和稳定性。
在解决这些问题的过程中,我学到了很多有关程序设计的知识和技巧。
我了解了数据库的设计原则和优化方法,学会了使用正则表达式和异常处理等技术。
我也学会了使用版本控制工具和调试工具来提高编程的效率和准确性。
3. 心得体会通过这次实习,我深刻体会到了程序设计的重要性和复杂性。
一个好的程序需要考虑到诸多的因素,包括功能的完整性、性能的高效性、安全性的可靠性等等。
而要实现这样的程序,需要有扎实的基础知识和良好的编程习惯。
在实习过程中,我遇到了许多困难和挑战,但我也通过不断的努力和学习去克服它们。
我学会了如何提问和寻找解决问题的方法,并且锻炼了自己的逻辑思维和沟通能力。
我也学会了如何合理分配时间和资源,以及如何与团队合作和协作。
,这次实习对我来说是一次宝贵的经历和学习机会。
通过实践,我不仅提高了自己的编程能力,还增加了对程序设计的认识和理解。
我相信这次实习经历对我的职业发展会有着积极的影响,我也将会继续努力学习和提升自己。
《程序设计实践》课程设计规范与报告模板
《程序设计实践》课程设计规范一、课程设计教学目的及基本要求1.了解并掌握算法的设计方法,具备初步的独立分析和设计能力;2.初步掌握软件开发过程的问题分析、系统设计、程序编码、测试等基本方法和技能;3.提高综合运用所学的理论知识和方法独立分析和解决问题的能力;二、课程设计题目:各类题目三、课程设计报告的规范(书写格式见附件)1、设计内容、要求与目的:进行需求分析,确定每个模块的功能要求。
即根据设计题目的要求,充分地分析和理解问题,明确问题要求做什么?(而不是怎么做?)以及要达到的效果与目的。
2、概要设计和详细设计:进行概要设计和详细设计。
说明用到的数据结构定义、主程序的流程及各程序模块之间的调用关系。
并用自然语言描述每个模块所涉及的算法。
涉及到的重要算法设计与分析(包括流程图)要重点阐述。
3、调试、分析与运行:列出在调试过程中遇到的最大问题,并阐述如何解决。
列出对于给定的输入所产生的输出结果,分析程序系统运行的正确性与可靠性。
4、源程序及系统文件使用说明:附上关键数据结构的定义及关键算法的源代码。
5、程序系统操作说明:写上如何使用程序系统。
6、设计心得体会:谈谈课程设计过程的收获、遇到问题及解决问题过程的思考、程序调试能力的思考、在课程设计过程中对本实践环节的认识等内容。
三、设计最终需提交的内容包括:1.完整的程序系统(电子方式提交)(1).能够对输入产生相应的输出,并在输入输出做必要的提示或有界面。
(2).所有源代码文件全部存在一个目录中,若为多个文件要进行压缩(用Winrar),压缩后的文件按规定格式进行命名,命名格式为:学号+姓名.rar(如2009043120张文.rar)。
(3)将提交作品发送到邮箱hlkfox@2.提交完整的课程设计报告四、考核方式:从完成情况、应用知识、表达能力(书面与口头)、获取知识、创新能力和协作能力几个方面考核评级高级程序设计语言课程设计报告题目:学院:专业:班级:学号:姓名:联系电话:年月日一、设计内容、要求与目的二、概要设计和详细设计(涉及到的重要算法设计与分析(包括流程图)要重点阐述。
程序设计实践报告
程序设计实践报告程序设计实践报告随着个人的素质不断提高,报告十分的重要,报告具有语言陈述性的特点。
那么大家知道标准正式的报告格式吗?以下是小编为大家收集的程序设计实践报告,欢迎大家借鉴与参考,希望对大家有所帮助。
通过c语言实践,让我加深了对c语言的了解,而不只是单单的在课本中学到的那些理论,平时乏味的课程,通过自己动手亲自编写,变的生动有趣,而在自己动手的过程中,出现的问题很多,比理论要难的多,当一个程序写完以后,经常会有很多错误而没法解决。
不过,通过几天的实践,逐渐积攒了一些经验,有些错误可以很快就看出来。
这次实践有很大的收获,让我对c语言有了更深的认识,平时在课堂上学到的东西可以自己动手编写,将其转化成一些实用的技能。
如果是一个程序写完一处错误也没有,会有种成就感,于是兴趣就来了,兴趣来了,自然学的东西也就多了,能把理论变成实际的技能,让我对c语言有了浓厚的兴趣和更深层的认识。
c语言是一个有序的学习,学了最基本的替换,然后扩展到循环,嵌套,条理很清楚,不是一个零散的知识,实际上所有的课程都如此,不过通过实践我也知道了自己的不足,存在的很多问题。
比如自己写的写的小程序出了问题,不会解决了就叫老师帮忙,虽然说一定意义上增加了师生之间的感情,但是会养成一种依赖的心理,碰到问题了第一个想到的是求助而不是自己独立解决,所以以后要多多锻炼自己的信心和增加自己的能力,争取做到老师不在身边的时候也可以完成一些简单的程序编写与错误排除。
还有自己的基础知识不扎实,遇到的问题,没有很好的逻辑思维,亲自编写一个陌生的程序的时候会有种无法下手的感觉,找不到突破口。
通过实践,逐渐理清了顺序,对于简单的程序和一些相对比较繁琐的嵌套,循环,不在是看着一头雾水。
其实只要理清了思路,把基础知识掌握了,然后有条不紊的分析,一步一步理解,c语言还是很有意思的课程。
自己亲自动手编写程序让我增加了对c语言程序开发环境的.了解,在上课的时候老师就讲,学习c语言最重要的是学习c语言的逻辑思维,不管以后从事什么行业,学习c语言都对自己的职业很有帮助,如果是从事编程工程工作的话,就更有帮助了,即使以后的编程工作可能不用c语言,但是拥有扎实的c语言基础是对工作很有用的。
程序设计实践活动报告模板
程序设计实践活动报告模板1. 活动背景和目的本次程序设计实践活动旨在让学生通过参与具体项目的开发,深入理解软件开发过程中的设计原则、工具和技术,并培养解决实际问题的能力和团队合作意识。
2. 活动内容本次活动分为两个阶段。
首先,我们组成了由5名成员组成的团队,根据老师提供的要求和条件,选择了开发一个在线购物系统的项目。
然后,我们按照敏捷开发的方法进行项目开发,分别完成需求分析、设计、编码、测试、部署等环节。
2.1 需求分析我们首先与老师详细讨论了项目的需求和功能点,并对用户需求进行了调研和分析。
在此基础上,我们撰写了项目需求文档,明确了系统的功能和界面设计。
2.2 设计在需求分析的基础上,我们进行了系统的概要设计和详细设计。
首先,我们使用UML建模工具设计了系统的类图、用例图和状态图等。
然后,我们根据设计原则和设计模式编写了详细设计文档,并对系统的数据库进行了设计。
2.3 编码在设计阶段完成后,我们开始进行编码工作。
根据设计文档,每个成员负责一个或多个模块的实现。
我们使用敏捷开发的方法,采用迭代开发的方式,每个迭代周期为两周,定期进行代码评审和测试。
2.4 测试在编码阶段完成后,我们进行了系统的单元测试、集成测试和系统测试。
我们编写了测试用例,对系统的各个功能模块进行了全面测试,并解决了发现的问题。
2.5 部署在测试完成后,我们进行了部署工作。
我们选择了云平台作为系统的部署环境,并对系统进行了配置和优化,确保系统可以稳定运行。
3. 活动成果经过我们团队的共同努力,我们成功地完成了在线购物系统的开发。
系统实现了用户注册、商品浏览、购物车管理、下订单等功能。
用户可以通过系统进行账号注册、查看商品信息、选择购买商品并下订单。
4. 活动总结通过本次活动,我们从理论到实践,全面提高了软件开发的能力和经验。
在需求分析阶段,我们学会了如何与用户进行有效的沟通和需求收集。
在设计和编码阶段,我们掌握了软件设计原则和设计模式,并熟悉了常用的开发工具和技术。
程序设计实习课程设计(实训)报告书.
信息科学与技术学院《程序设计实习》课程设计报告书题目:学生信息管理系统专业:计算机科学与技术班级:姓名:学号:指导老师:设计时间:目录《程序设计实习》课程设计(实训报告书 (11. 课程设计(实训计划 (32. 系统需求分析与功能设计 (43. 总体设计 (54. 算法说明(附录源代码 (85. 技术难点与分析 (166. 系统测试 (187. 心得体会 (248. 参考文献 (251.课程设计(实训计划设计一个计算机程序,实现学生信息成绩管理系统。
1.设计一个含有10个菜单项的主控菜单,这10个菜单项的内容和输入提示如下:0 返回1 输入学生信息2 显示学生信息3 查询学生信息4 更新学生信息5 添加学生信息6 删除学生信息7 计算学生成绩8 显示学生名次请选择功能编号:使用数字0~9来选择菜单项,其它输入则不起作用。
2. 在查询学生信息时,又分为按学号查询或按姓名查询。
菜单项及提示内容如下:1 按学号查询2 按姓名查询3 返回上级菜单请选择功能编号。
使用数字1~3来选择菜单项,其它输入则不起作用。
在计算学生成绩时,又可分为如下功能:计算总成绩计算平均成绩返回上级菜单请选择功能编号。
使用数字1~3来选择菜单项,其它输入则不起作用。
工作进度安排如下:前两天实现学生信息的输入、显示、查找、删除和插入等基本操作。
第三天和第四天完成学生成绩的计算和排名功能,测试并完成所有设计。
最后一天完成设计报告书。
2. 系统需求分析与功能设计需求分析:根据题目要求,设计一个初始的能暂存学生信息的系统,不需要文件的输入,输出等操作。
但程序应提供数据的查找、显示、输入、删除、添加、、更改、成绩计算和成绩排名等功能,由于查找和成绩计算可以有不同的方式,所以应提供不同的算法,最后还应提供菜单的选择功能等客户端操作。
功能设计:0 返回/退出:分两个功能,在主菜单中实现退出系统的功能;在子菜单中实现返回主菜单的功能。
在主菜单中只设计退出系统的功能,返回功能设计在各子函数中。
程序设计实践实验报告(2)
程序设计实践实验报告(2)程序设计实践实验报告2000字从这次实训中我知道了,我们在学校学习和在工作岗位上学习是不一样的;在单位上,是没有人会像老师一样倾其所有的教你,也不会有人花时间手把手的教你,但是你做错了就会有责怪,这种转变让我有点措手不及。
人总是能在逆境中成长,责怪一多,我也慢慢的地去学习,努力的把工作做的细致一点,尽自己最大的能力去把工作做得完美一些,让自己和领导都舒心一点。
在学校,你可以随时不去上课,也可以随时早退或旷课;但是在单位上,你一定会准时甚至提前去。
在学校,你没有准时完成作业,还可以补一补,但是在工作上,你没有准时完成工作,那么就是你的过失,你的能力问题,就算是加班熬通宵,你也必须把任务完成,这就是责任。
这就是工作与学校里的最根本的区别,也是从学生转变成劳动者必须经历的阶段。
通过这次实训,我能感觉得到很多的工作经验,但是在开发中的知识我们了解的还是不够充分,致使我们在开发初期要较多的时间用于入门。
更加让我觉得在学校学习基本知识是非常重要的。
再次我也更加深刻的意识到我们学校部分学生普遍基础理论知识较多,工程经验不足的现象,我们同学大可以去掉以往羞于参与工程,怕在别人前认短的心态,我们应该积极的参加学校的实践活动,多多参与老师的项目,有了这一些知识,我们一般在工程面前还是能很快入手的,而为了更好的进行开发,我们也应该在校期间就多进行一些工程方面的锻炼,培养实际动手能力。
虽然只是短短的两个星期,以前有些知识点以前没有学过,但我也没有去研究,实训时突然间觉得自己真的有点无知,虽然现在去看依然可以解决问题,但要浪费许多时间,这一点是我必须在以后的学习中加以改进的地方,同时也要督促自己在学习的过程中不断的完善自我。
另外一点,也是在实训中必不可少的部分,就是同学之间的互相帮助。
所谓”当局者迷,旁观者清”,有些东西感觉自己做的是时候明明没什么错误,偏偏程序运行时就是有错误,让其他同学帮忙看了一下,发现其实是个很小的错误。
程序设计实验报告格式
一、实验题目程序设计实验二、实验目的1. 熟悉程序设计的基本概念和原理。
2. 掌握编程语言的基本语法和编程技巧。
3. 提高编程能力和解决问题的能力。
三、实验环境1. 操作系统:Windows 102. 编程语言:Python3.83. 开发工具:PyCharm四、实验内容1. 编写一个简单的Python程序,实现以下功能:a. 输入两个整数,计算它们的和、差、积、商。
b. 输入一个字符串,统计其中英文字母、数字、空格和其他字符的数量。
c. 输入一个列表,输出列表中所有大于10的元素。
2. 使用面向对象的方法设计一个简单的图书管理系统,实现以下功能:a. 创建图书类,包含图书的属性(如书名、作者、出版社、价格)和方法(如显示图书信息)。
b. 创建图书管理类,包含添加图书、删除图书、查找图书、显示所有图书信息等功能。
五、实验步骤1. 编写Python程序实现以下功能:a. 输入两个整数,计算它们的和、差、积、商。
- 输入:a = 10, b = 5b. 输入一个字符串,统计其中英文字母、数字、空格和其他字符的数量。
- 输入:str = "Hello, World! 123"- 输出:英文字母 = 10,数字 = 3,空格 = 2,其他字符 = 3c. 输入一个列表,输出列表中所有大于10的元素。
- 输入:lst = [1, 5, 10, 15, 20, 25]- 输出:大于10的元素有:15, 20, 252. 使用面向对象的方法设计一个简单的图书管理系统:a. 创建图书类,包含图书的属性和方法。
- 图书类(Book):- 属性:书名、作者、出版社、价格- 方法:显示图书信息b. 创建图书管理类,包含添加图书、删除图书、查找图书、显示所有图书信息等功能。
- 图书管理类(BookManager):- 属性:图书列表- 方法:- 添加图书:向图书列表中添加新的图书- 删除图书:根据书名删除图书- 查找图书:根据书名查找图书- 显示所有图书信息:遍历图书列表,显示所有图书信息六、实验结果与分析1. 编写Python程序实现以下功能:a. 输入两个整数,计算它们的和、差、积、商。
程序实训课程报告范文
程序实训课程报告范文一、课程背景程序实训是计算机科学与技术专业的一门核心课程,旨在培养学生的编程能力和解决实际问题的能力。
本次报告旨在总结和回顾我在程序实训课程中的学习与成果,分享自己的学习心得和体会。
二、课程内容本次课程分为两个部分,分别是理论学习和实践操作。
理论学习主要包括计算机组成原理、数据结构与算法、操作系统等基础知识的学习。
而实践操作则是通过编写和调试各种程序来锻炼学生的实际动手能力和解决实际问题的能力。
三、课程收获在本次课程中,我主要学到了以下几点知识和技能:1. 理论知识的掌握:通过课程的学习,我对计算机组成原理、数据结构与算法、操作系统等基础知识有了更加深入的理解和掌握。
这些知识对于我后续的学习和工作都具有重要的指导意义。
2. 编程能力的提升:在实践操作中,我不仅学到了多种编程语言的基础知识,还学会了使用各种常用的编程工具和软件。
通过不断的练习和实践,我的编程能力得到了显著提高。
3. 解决问题的能力:在实践操作中,我们经常会面临各种问题和挑战,需要动脑筋去寻找解决方案。
通过对实际问题的分析和学习,我逐渐提高了解决问题的能力,培养了独立思考和创新的能力。
四、学习心得1. 创新思维的重要性:在实践操作中,我们经常会遇到一些新的问题和挑战。
这时候,创新思维就显得尤为重要。
只有不断地开拓思维,尝试新的方法和技巧,才能更好地解决问题。
2. 良好的团队合作:在一些大型的实践项目中,团队合作是必不可少的。
良好的团队合作可以提高工作效率,同时也可以相互借鉴和学习。
因此,良好的沟通和协作能力也是非常重要的。
3. 坚持不懈的精神:学习编程和实践操作是一个漫长而繁琐的过程,需要耐心和毅力。
很多时候,我们会面临各种困难和挫折,但只有坚持不懈,才能克服困难,取得更好的成绩。
五、课程建议1. 加强实践环节:实践操作是程序实训课程的重点,但在实际教学中,有时候实践操作的时间和机会较少。
建议教师能够加强实践环节的时间和安排,让学生更多地动手实践,锻炼实际动手能力。
计算机基础与程序设计实践报告
计算机基础与程序设计实践报告标题:计算机基础与程序设计实践报告引言:计算机基础与程序设计是计算机科学与技术专业的核心课程之一,本报告旨在总结和分享本学期的学习成果和经验。
通过本学期的学习,我对计算机基础知识和程序设计有了更深入的理解,并能够独立完成一些实际的编程任务。
一、计算机基础知识的学习与总结:1. 计算机组成与结构:学习了计算机的组成和各个主要部件的功能,如中央处理器、存储器、输入输出设备等,并了解了它们之间的工作原理和协作方式。
2. 操作系统与文件管理:学习了操作系统的功能和任务,掌握了文件管理的基本操作,并了解了进程管理、内存管理、文件系统等操作系统的重要概念和技术。
3. 网络与通信:学习了计算机网络的基本概念、原理和协议,了解了互联网的组成和工作方式,并学会了使用网络工具进行网络配置和故障排查。
4. 数据结构与算法:学习了常见的数据结构(如数组、链表、栈、队列、树、图等)和算法(如排序、查找、图算法等),并能够灵活应用它们解决实际问题。
二、程序设计实践的经验和收获:1. 编程语言的选择和学习:经过对多种编程语言的比较和评估,最终选择了Python作为主要的编程语言,并通过自学和实践掌握了Python的基本语法和特性,能够进行简单的程序设计和开发。
2. 程序设计思维的培养:通过编程实践,我逐渐培养了良好的程序设计思维,学会了分析问题、设计算法和实现代码的方法,能够高效地解决实际问题,并编写出可读性和可维护性较高的代码。
3. 团队合作与沟通:在实践项目中,我与同学合作完成了一些小型的程序开发任务,通过合作学会了与他人进行有效的沟通和协作,提高了自己的团队合作能力和项目管理能力。
4. 调试与问题解决能力的提升:在编程实践中,我遇到了很多错误和问题,通过耐心的调试和查找解决方案的过程,我逐渐提高了自己的调试能力和问题解决能力,能够更快地找到问题所在并解决它们。
结论:通过本学期的学习和实践,我对计算机基础知识和程序设计有了更全面的理解,并能够独立进行一些实际的编程任务。
《C语言程序设计实践》课程报告
北方民族大学课程报告课程名称:程序设计实践专业班级:软件工程(2)班学生姓名:李思良学号: 20152170任课教师:王晓锋学期: 2015-2016学年春季学期课程报告任务书成绩评定教师:1.需求分析经过大一上学期的理论学习,在基础实验的基础上,本学期我们继续开设了C语言程序设计实践课。
课程要求我们对已经学习的基础实验进行整合与衔接处理,并最终形成一个系统性质的规模较大的程序。
本次课程设计要求我们达到能独立完成一个1000行以上的程序,完成后要求实现已知半径求圆面积、已知球半径,求表面积和体积,输入两个实数、交换其值输出等30中功能。
通过整个程序的开发过程,最终使我们掌握利用计算机解决实际问题的基本方法,熟悉C语言开发的全过程,提高综合应用C语言的能力、编程和调试能力,为学习计算机后续课程打好专业基础。
2.概要设计模块划分:1.int diyi() 已知半径求圆面积2.int dier() 已知球半径,求表面积和体积3.void disan() 输入两个实数,交换其值输出4.void disi() 输入两个整数,求他们的平方和5.void diwu() 分段计费6.void diliu() 求一元二次方程的根7.void diqi() 判断三个整数是否能构成三角形8.void diba() 计算1~1000之间能被三整除的所有自然数之和9.void dijiu() 猴子吃桃问题10.void dishi() 输入一个正整数,求位数和位数之和11.void dishiyi() 输入一行字符,统计大小写字母,数字和其他字符12.void dishier() 输入一个四位数,将其加密后输出13.int dishisan() 用冒泡排序对10个数排序14. void dishisi() 用for,while,do~while循环实现100以内素数之和15. void dishiwu() 将大于10元小于100元的钱换成1元,2元,5元的组合16. void dishiliu() 输出99乘法口诀17. void dihsiqi() 验证哥德巴赫18. void dishiba() gcd(int m,int n) int lcm(int m,int n)求两个正整数的最大公约数和最小公倍数19. void dihsijiu() int isprime(int m) 判断素数20. void diershi() 求(m,n)以内全部素数,每行输出10个21. void diershiyi() 输出10000到99999的所有回数22. void diershier() 两个6*6矩阵的乘积23. void diershisan() void allPrimes(int m,int n) void sort(int array[],int n)对一批数进行排列,求出最大值与平均数24. int diershisi() char switchScore(int score) 输入一批学生的成绩,换成五分制25. void diershiwu() 逆序输出long reverse(long number)返回number的逆序数26. void diershiliu() 求阶乘27. void diershiqi() 用递归函数求Fibonacci数列的前40个数,每行输出8个28. int dierhsiba() 输入某年某月某日,判断这一天是这一年的第几天29. void diershijiu() 写出1000以内的所有完数30. void disanshi() void MonthDay(int year,int yearDay,int *pMonth,int *pDay)输入年和天数,输出对应的年、月、日31.void myprint() 显示菜单界面将以上30个子函数放在一个主函数内进行调用。
程序设计实践实验报告
程序设计实践实验报告程序设计实践实验报告引言在计算机科学与技术领域,程序设计实践是一项非常重要的技能。
通过实践,我们能够将理论知识应用到实际中,进一步提升我们的编程能力。
本篇报告将介绍我在程序设计实践实验中的学习和经验。
实验背景本次实验的目标是设计一个简单的学生成绩管理系统。
该系统需要能够存储学生的基本信息以及他们的成绩,并提供查询和统计功能。
通过这个实验,我们将学习如何设计和实现一个基本的数据库系统。
实验过程1. 需求分析在开始实验之前,我们首先进行了需求分析。
通过与老师和同学的讨论,我们明确了系统的功能和界面设计。
我们希望能够实现学生信息的增加、删除、修改和查询功能,同时还要能够进行成绩的录入和统计。
2. 数据库设计接下来,我们开始设计数据库。
我们选择了关系型数据库MySQL作为我们的存储工具。
通过分析系统的需求,我们设计了两个表格,一个用于存储学生的基本信息,另一个用于存储学生的成绩。
我们使用了合适的数据类型和约束来确保数据的完整性和一致性。
3. 界面设计在数据库设计完成后,我们开始着手设计系统的界面。
我们希望能够设计一个简洁、直观的用户界面,方便用户进行操作。
我们采用了图形用户界面(GUI)的设计方法,并使用了Java Swing库来实现。
4. 编码实现接下来,我们开始编写代码来实现我们的设计。
我们首先实现了数据库的连接和操作功能,然后编写了界面的代码。
在编码过程中,我们遇到了一些问题,比如如何处理异常、如何进行数据验证等。
通过查阅文档和与同学的讨论,我们逐渐解决了这些问题。
5. 测试和调试在编码完成后,我们进行了系统的测试和调试。
我们使用了一些测试用例来验证系统的功能和正确性。
在测试过程中,我们发现了一些bug,并及时进行了修复。
实验结果经过一段时间的努力,我们成功地完成了这个学生成绩管理系统。
该系统具备了我们所设计的功能,并且能够正常运行。
通过这个实验,我们不仅学会了如何设计和实现一个简单的数据库系统,还提升了我们的编码能力和问题解决能力。
《程序设计基础实践》报告模板
程序设计基础实践报告
题目学生信息管理系统的设计与实现
专业软件工程
班级 1161
学号 201611701135
姓名张家魁
指导老师蔡莉华郑苑丹
完成日期 2017年 6 月 22 日
成绩:
评语:
目录
1 系统功能介绍 (3)
2 概要设计 (3)
3 详细设计 (3)
4 调试分析 (4)
5 系统运行结果 (4)
6 总结 (4)
1 系统功能介绍
该学生信息管理系统实现了对于学生信息的插入,修改和删除,以及学生信息的浏览和特定条件的学生查询。
该系统共有六个主要功能:1 增加学生信息;2 显示学生信息;3 排序学生信息;4 查找学生信息;5 删除学生信息; 6 修改学生信息。
学生信息以文本文档的的形式进行存储(sort.txt)。
每个字段使用char型数据,对输入值并未进行限制。
使用的测试输入数据:张家魁201611701135 男19 四川软件工程
梁子炜201611701134 男19 广东软件工程
测试输出结果:
张家魁201611701135 男19 四川软件工程
梁子炜201611701134 男19 广东软件工程
测试输出错误结果:无法完成排序。
2 概要设计
说明本程序中用到的所有类和函数的定义(类的成员和函数,成员要说明其含义,函数需要说明参数含义和功能)、主程序的流程以及各程序模块之间的层次(调用)关系。
3 详细设计
4 调试分析
5 系统运行结果
6 总结。
《程序设计》实验报告
《程序设计》实验报告实验报告:程序设计摘要:本实验是关于程序设计的实践,通过实验探讨了程序设计的基本概念、基本方法和基本技巧。
实验过程中,学生需要自主选择并解决具体问题,从而学习和理解程序设计的过程和思想。
1.引言程序设计是计算机科学和工程的重要组成部分,是指根据特定需求编写计算机程序的过程。
这个过程包括定义问题、设计算法、编写程序、测试和调试程序等。
程序设计既是一种艺术,也是一种科学,需要程序员具备一定的逻辑思维能力和编程经验。
2.实验目的本次实验的目的是通过实践掌握程序设计的基本概念、基本方法和基本技巧。
具体来说,实验要求学生选择一个具体问题,然后根据问题的需求设计并编写出解决问题的程序。
3.实验内容3.1选择问题:首先,学生需要选择一个具体的问题进行解决。
这个问题可以是实际生活中遇到的问题,也可以是抽象的数学问题等。
3.2设计算法:针对所选择的问题,学生需要设计一个合适的算法。
算法是解决问题的思路和步骤的描述,通常通过伪代码或流程图表示。
3.3编写程序:根据设计的算法,学生需要用合适的编程语言编写程序,并且确保程序在运行时能够正确、高效地解决问题。
3.4测试和调试:完成编写程序后,学生需要进行测试和调试,以确保程序的正确性和稳定性。
测试可以包括输入输出的验证、负载测试等。
4.实验结果与分析本次实验中,我选择了一个简单的问题进行解决:计算一个整数序列中的最大值。
针对这个问题,我设计了一个简单的算法:遍历序列,依次比较当前元素和已记录的最大值,更新最大值。
我用C++语言编写了解决问题的程序,并进行了测试。
测试结果表明,我的程序能够正确地计算出给定序列的最大值。
通过本次实验,我对程序设计的基本概念、基本方法和基本技巧有了更深入的理解。
我学会了如何选择问题、设计算法和编写程序,以及如何进行测试和调试。
这些都是程序设计中必不可少的一部分,对我今后的学习和工作都具有重要意义。
5.实验总结本次实验是一次很好的学习机会。
程序设计实践实验报告
程序设计实践实验报告《程序设计实践实验报告》在程序设计课程中,学生们经常需要完成各种实践实验,以加深对编程语言和算法的理解,并提高实际编程能力。
本次实验报告将介绍我们在程序设计实践中所进行的实验内容和实验结果。
实验一:基本语法和数据类型在这个实验中,我们学习了编程语言的基本语法和数据类型,包括变量的声明和赋值、条件语句、循环语句以及各种数据类型的使用。
通过编写简单的程序,我们掌握了如何正确地使用这些语法和数据类型,并且能够编写出简单的程序来解决实际问题。
实验二:数组和函数在这个实验中,我们学习了数组的定义和使用,以及函数的声明和调用。
我们通过编写程序来实现对数组的各种操作,比如查找最大值、最小值、求和等。
同时,我们也学会了如何编写函数来实现特定的功能,并且能够正确地调用这些函数。
实验三:面向对象编程在这个实验中,我们学习了面向对象编程的基本概念和语法,包括类的定义和对象的创建。
我们通过编写程序来实现面向对象的思想,比如定义一个学生类,然后创建多个学生对象,并对这些对象进行各种操作。
实验四:算法设计与实现在这个实验中,我们学习了一些常用的算法,比如排序算法、搜索算法等。
我们通过编写程序来实现这些算法,并且对它们进行测试和分析,以便更好地理解这些算法的原理和性能。
通过这些实验,我们不仅加深了对编程语言和算法的理解,还提高了实际编程能力。
我们相信,在今后的学习和工作中,这些实验经验将会对我们产生积极的影响。
希望通过这份实验报告,能够让更多的人了解到程序设计实践的重要性,以及它对我们的学习和成长所带来的益处。
C++程序设计实习报告
C++程序设计实习报告C++程序设计实习报告在大学的学习生涯中,C++程序设计是一门重要的课程。
为了更深入地掌握这门语言,我参加了一次C++程序设计实习。
通过这次实习,我不仅巩固了课堂上学到的理论知识,还提高了自己的编程能力和解决问题的能力。
一、实习目的本次实习的主要目的是让我们将课堂上学到的 C++知识运用到实际项目中,通过实践来加深对C++程序设计的理解和掌握。
具体而言,包括以下几个方面:1、熟悉 C++编程环境和工具,如 Visual Studio 等。
2、掌握 C++程序的基本结构和语法规则,能够编写正确、高效的C++程序。
3、学会运用 C++中的数据结构和算法,解决实际问题。
4、培养团队合作精神和沟通能力,提高自己的综合素质。
二、实习内容在实习期间,我们主要完成了以下几个项目:1、学生成绩管理系统这个系统要求能够实现学生成绩的录入、查询、修改、删除等功能。
我们使用了 C++中的数组和结构体来存储学生的信息,通过函数来实现各种操作。
在实现过程中,我们遇到了一些问题,比如如何对数组进行动态分配内存,如何处理输入的异常情况等。
通过查阅资料和不断调试,最终成功地完成了这个系统。
2、图书管理系统图书管理系统需要实现图书的添加、借阅、归还、查询等功能。
我们采用了链表来存储图书信息,这样可以方便地进行图书的插入和删除操作。
同时,我们还使用了文件来保存图书信息,以便在程序下次运行时能够读取之前的数据。
在这个项目中,我们学会了如何使用文件操作和链表的相关知识。
3、简单的游戏程序我们设计了一个简单的猜数字游戏,玩家需要在规定的次数内猜出系统随机生成的数字。
这个游戏主要锻炼了我们的逻辑思维和随机数生成的知识。
通过这个项目,我们学会了如何让程序与用户进行交互,提高了程序的趣味性和实用性。
三、遇到的问题及解决方法在实习过程中,我们遇到了各种各样的问题。
下面列举一些典型的问题及解决方法:1、语法错误C++的语法规则比较严格,很容易出现一些细微的语法错误,比如遗漏分号、括号不匹配等。
《程序设计实践》课程报告统一格式
课程报告课程名称:程序设计实践专业班级:学生姓名:学号:任课教师:学期:2012-2013学年第二学期课程报告任务书(1)图书信息录入功能(图书信息用文件保存)--输入①按书名查询②按作者名查询③按照价钱排序④按出版时间排序等等成绩评定教师:1 需求分析(小三黑体)×××××××××(小4号宋体,1.5倍行距)×××××××××××××××××××××………在该部分中叙述:对题目中要求的功能进行的简单的叙述分析,把题目内容给介绍一下。
2 概要设计(小三黑体)可适当参考以下提示:⑴数据结构⑵模块划分⑶程序总体框架×××××××××(小4号宋体,1.5倍行距)××××××××××××××××××××………包括在此说明每个部分的算法设计说明(可以是描述算法的流程图);每个程序中使用的存储结构设计说明也就是简单介绍一下你程序中自定义的函数(函数名,参数,以及功能)等。
3 详细设计(小三黑体)×××××××××(小4号宋体,1.5倍行距)××××××××××××××××××××………各个算法实现的源程序,对每个题目要有相应的源程序(可以是一组源程序,每个功能模块采用不同的函数实现)注意,不能把整个源程序都放进去,可以考虑按照函数为划分。
程序设计实习课程设计(实训)报告书
当需要修改某生数据时,选择功能4先提示输入要修改的学生学 号,输入完成将链表头指针和学号一起传给refresh函数并调用该函 数。在该函数中先利用新指针p和循环结构搜索到指定ID的节点并输 出,提示“确认要修改?”选择y可以进行该节点信息的重新编辑,编 辑完成后返回头指针并退出。
当需要新添加学生信息时,选择功能5调用insert函数,在该函数 中,需要先找到尾节点并把它用r指向,源代码部分如下:
1.
1. 课程设计(实训)计划
设计一个计算机程序,实现学生信息成绩管理系统。 1.设计一个含有10个菜单项的主控菜单,这10个菜单项的内容和 输入提示如下: 0 返回 1 输入学生信息 2 显示学生信息 3 查询学生信息 4 更新学生信息 5 添加学生信息 6 删除学生信息 7 计算学生成绩 8 显示学生名次 请选择功能编号: 使用数字0~9来选择菜单项,其它输入则不起作用。 2. 在查询学生信息时,又分为按学号查询或按姓名查询。菜单项 及提示内容如下: 1 按学号查询 2 按姓名查询 3 返回上级菜单 请选择功能编号。 使用数字1~3来选择菜单项,其它输入则不起作用。 在计算学生成绩时,又可分为如下功能: 计算总成绩 计算平均成绩 返回上级菜单 请选择功能编号。 使用数字1~3来选择菜单项,其它输入则不起作用。 工作进度安排如下:前两天实现学生信息的输入、显示、查找、
while(h!=NULL)
{
NodePtr p=h->next;
while(p!=NULL)
{
if(((h->data).score1+(h->data).score2+(h-
>data).score3)<((p->data).score1+(p->data).score2+(p-
程序设计实践报告模板
程序设计实践设计报告课题名称:____________________________ 学生姓名:____________________________ 班级:____________________________ 班内序号:____________________________ 学号:____________________________ 日期:____________________________1.课题概述1.1课题目标和主要内容简述本课题实现的主要内容和目标,使用的开发平台,采用的主要工具。
1.2系统的主要功能功能列表或功能框图,以及功能的简要说明。
2. 系统设计2.1 系统总体框架包括系统框架图或层次逻辑图,设计思想等2.2 系统详细设计[1] 模块划分图及描述[2] 类关系图及描述[3] 程序流程图及描述[4] 存储结构、内存分配上述4个内容也可以按照模块划分分别设计。
2.3 关键算法分析算法1:函数名[1] 算法功能[2] 算法基本思想[3] 算法空间、时间复杂度分析[4] 代码逻辑(可用伪代码描述)算法2:函数名……2.4 其他包括使用了哪些面向对象的知识,继承、多态、模板类、STL等有助于提高代码简洁和效率的方法说明。
3.程序运行结果分析包括输入数据来源和格式、输出显示方式、主要界面、操作流程、响应时间,运行效果等。
4.总结4.1课题的难点和关键点比如调试方法、程序优化和改进、消息机制、屏幕刷新、网络传输等方面,用什么方法解决了的什么问题。
4.2本课题的评价包括课题本身的评价,还有对自己完成情况的评价,哪些地方有不足,为什么,如何改进等。
4.3心得体会5.参考文献[1]…。
程序设计实践报告模板
程序设计实践报告模板1. 引言该实践报告旨在总结和分析程序设计实践的相关经验与成果。
本报告将介绍实践项目的背景,详细描述实践内容和方法,分析实践中遇到的问题及解决方案,并总结实践的收获和心得体会。
2. 背景为了提升学生的编程能力和开发实践经验,本次实践项目旨在通过完成一个实际的程序设计任务来锻炼学生的实践能力。
具体的项目内容是开发一个学生成绩管理系统,用于管理学生的成绩信息,包括录入成绩、查询成绩等功能。
3. 实践内容与方法3.1 实践目标本次实践的主要目标是让学生熟悉并掌握常用的程序设计语言和开发工具,了解软件开发的基本流程和方法,并能够独立完成一个简单的项目。
3.2 实践步骤下面是本次实践的具体步骤:1. 理解需求:学生首先要仔细阅读项目需求文档,清楚明确地理解项目的功能和要求。
2. 系统设计:学生根据需求文档,设计系统的整体架构和功能模块,并绘制相关的UML图。
3. 编码实现:学生使用所学的程序设计语言,按照系统设计的要求,逐步实现不同的功能模块。
4. 调试测试:学生进行系统的调试测试,确保系统能够正常运行,满足功能和性能要求。
5. 优化改进:学生根据测试结果和反馈,对系统进行优化和改进,增加系统的稳定性和用户体验。
4. 实践问题与解决方案4.1 问题描述在实践过程中,我们遇到了以下几个问题:1. 项目需求变更:由于项目需求在实践过程中发生了变更,导致部分之前设计的功能需要进行修改。
2. 性能问题:在系统测试中发现系统运行速度较慢,尤其是在处理大量数据的情况下。
4.2 解决方案针对以上问题,我们采用了以下解决方案:1. 对于需求变更问题,我们及时与项目组进行沟通,了解需求变更的原因和影响,并根据实际情况进行相应的修改和调整。
2. 对于性能问题,我们进行了系统的性能分析和优化。
通过对代码逻辑的优化、数据结构的调整以及算法的改进,减少了系统的响应时间和资源占用。
5. 实践收获与体会通过本次实践项目,我们团队获得了如下收获:1. 熟悉了常用的程序设计语言和开发工具,提升了编程能力和开发实践经验。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
课程报告课程名称:程序设计实践专业班级:计算机类1501****:***学号: ****************:**学期:2015-2016学年第二学期成绩评定教师:目录一.需求分析 (4)1.1项目要求 (4)1.2具体功能 (4)二.概要设计 (5)2.1 数据结构 (5)2.2 模块划分 (5)2.3程序总体框架 (6)三.详细设计 (6)3.1进入系统函数 (6)3.2主界面及管理员,用户登录函数 (7)3.3用户管理函数 (12)3.3.1批量创建用户函数 (14)3.3.2批量删除用户函数 (15)3.4图书管理函数 (18)3.4.1新书入库函数 (19)3.4.2图书信息查询函数 (21)3.4.3图书信息管理函数 (25)3.5用户系统函数 (29)四. 调试分析 (35)五.测试结果 (36)5.1用户修改密码测试 (36)5.2模糊搜索测试 (36)六.课程心得总结 (37)一.需求分析1.1项目要求用C语言开发一个简单的图书信息管理系统。
图书信息包括:图书编号(唯一性标识每一本图书)、书名、作者、出版社、类别、出版时间、价格等基本信息(也可以根据自己情况进行扩充,比如是否借出、库存量等)。
使其实现以下功能(1)图书馆管理员系统,a, 用户管理系统,删除和创建。
b, 图书管理系统,查询,修改,删除。
1.2具体功能➢登录系统:◆图书管理员系统登录◆个人自主系统登录◆退出系统➢管理员功能:◆批量创建用户信息◆批量删除用户信息◆新书入库◆图书信息查询◆图书信息修改◆退出系统➢用户功能:◆登录◆修改密码◆查询图书信息◆退出系统二.概要设计2.1 数据结构定义结构变量struct yonghu{char ID[20]; //学生学号char name[20]; //学生姓名char pass[10]; //学生登录密码struct yonghu *next; //指针} ;typedef struct yonghu lond, *lost;struct tushu{char bh[20]; //图书编号char sm[20]; //图书书名char cbs[20]; //图书出版社char lb[20]; //图书类别char zz[20]; //图书作者char sj[20]; //图书出版时间double jg; //图书价格struct tushu *next;};typedef struct tushu lxnd, *lxst;2.2 模块划分int glyclxt(lost head, lxst head1); //图书馆管理员系统int ptdzxt (lost head, lxst head1, char xx[20]); //普通读者系统int yhgl(lost head); //用户管理int tsgl(lxst head1); //图书管理int xsrk(lxst head1); //新书入库int tsxxcx(lxst head1); //图书信息查询int tsxxxg(lxst head1); //图书信息修改void plcj(); //批量创建图书信息void plsc(lost head); //批量删除图书信息2.3程序总体框架三.详细设计进入银行业务管理系统选择登录方式:⏹前台管理员登录⏹客户登录⏹退出系统3.1进入系统函数system("mode con cols=80 lines=30");system("color 3e");system("title 人类的最终进化形态-小王");printf("\n\n\n\n\n\n\n\n\n\n\n\n\n\n");printf("\t\t\t \2");printf("欢迎进入河南工业大学图书馆\n\n\n\n\n\n\n");printf("正在进入,请稍后...\n");printf("===============================================================================\r");int j;for(j=0; j<80; j++){Sleep(30); printf(">");}system("cls");3.2主界面及管理员,用户登录函数管理员及用户登录系统如果输入有误,则提示。
while (1){ system("cls");printf("\t\t\t************************************\n");printf("\t\t\t* *\n");printf("\t\t\t* 欢迎进入河南工业大学图书馆 *\n");printf("\t\t\t* *\n");printf("\t\t\t************************************\n");printf("\t\t\t *1.图书馆图书管理员处理系统\n\n\n");printf("\t\t\t *2.普通读者系统\n\n\n");printf("\t\t\t *0.退出\n\n\n");printf("\t\t\t 请输入您的选择:");scanf("%d", &n);printf("\n");if(n==1 ){printf("\t\t\t请输入管理员登录六位密码:\n\t\t\t\t");for(i=0; i<6; i++){a[i]=getch();printf("*");}a[i]='\0';while(strcmp(a,b)!=0){printf("\n\n\t\t\t输入错误,请重新输入;(输入#键停止输入)\n\t\t\t\t");for(i=0; i<6; i++){a[i]=getch();printf("*");if(a[i]=='#')break;}if(a[i]=='#')break;}if(a[i]=='#')continue;if( glyclxt(head, head1)==1)continue;}else if(n==2){FILE *fp;int i,k=0, d=0;char ID[20], name[20], m[10], xx[20];lost p=head->next, rear=head;if((fp = fopen("userinfo.dat","r")) == NULL){printf("can not open this file\n");exit(0);}for(i=0; !feof(fp); i++){fscanf(fp,"%s%s%s", ID, name, m);p=(lost)malloc(sizeof(lond));strcpy(p->ID, ID); strcpy(p->name, name); strcpy(p->pass, m); rear->next=p;rear=p;}rear->next=NULL;fclose(fp);printf("\t\t\t请输入你的账号:");scanf("%s", xx);p=head->next;while(p->next!=NULL){if(strcmp(p->ID, xx)==0){k=1;printf("\n\t\t\t请输入你的账号密码\n\t\t\t\t");for(i=0;i<strlen(p->pass); i++){c[i]=getch();printf("*");}c[i]='\0';while(strcmp(p->pass, c)!=0 ){printf("\n\n\t\t\t输入错误,请重新输入;(输入#键停止输入)\n\t\t\t\t");i=0;for(i=0;i<strlen(p->pass); i++){d=1;c[i]=getch();printf("*");if(c[i]=='#')break;}if(c[i]=='#')break;}if(strcmp(p->pass, c)==0){d=1;if(ptdzxt(head1,head, xx)==1)break;}}p=p->next;if(c[i]=='#')break;}if(k==0){printf("\n\t\t\t查无此号!!!\n\t\t\t");system("pause");continue;}if(d==1)continue;}else if(n==0){exit(0);}else{printf("\n\n\t\t\t输入有误");system("pause"); }}return 0;3.3用户管理函数主要负责批量创建和删除学生信息,初始化学生密码int yhgl(lost head){int n;for(; ;){system("cls");printf("\t\t\t****************************\n\n");printf("\t\t\t* 欢迎进入用户管理系统 *\n\n");printf("\t\t\t****************************\n\n\n\n");printf("\t\t\t1.批量创建普通读者账号\n\n");printf("\t\t\t2.批量删除普通读者账号\n\n");printf("\t\t\t0.返回上一界面\n");printf("\n\t\t\t请输入你的选择;");scanf("%d", &n);system("cls");if(n==1){plcj();system("cls");printf("\n\n\n\n");printf("\t\t\t\t创建成功!!\n"); Sleep(1500);system("cls");}else if(n==2){plsc(head);system("cls");printf("\n\n\n\n");printf("\t\t\t\t删除成功!!\n"); Sleep(1500);system("cls");}else if(n==0){return 1;}else{printf("输入错误,请重新输入\n"); }}3.3.1批量创建用户函数void plcj(){system("cls");char ID[13], name[20], m[10]={"111111"};printf("请输入学生信息(学号,姓名,初始密码)输入#键表示输入结束\n");FILE *fp;if((fp = fopen("userinfo.dat","a+")) == NULL){printf("can not open this file\n");exit(0);}printf("学号\t\t姓名\n");while(scanf("%s",ID), ID[0]!='#'){scanf("%s", name);fprintf(fp,"%s\t\t%s\t%s\n", ID, name, m);printf("\n");}fclose(fp);}3.3.2批量删除用户函数void plsc(lost head){FILE *fp;int i,j,x;char ID[20], name[20], m[10], xx[20];lost p=head->next, rear=head;if((fp = fopen("userinfo.dat","r")) == NULL){printf("can not open this file\n");exit(0);}printf("\n\n当前学生信息如下;\n\n");printf("\n学号\t\t姓名\t登录密码\n");for(i=0; !feof(fp); i++){fscanf(fp,"%s%s%s", ID, name, m);p=(lost)malloc(sizeof(lond));strcpy(p->ID, ID); strcpy(p->name, name); strcpy(p->pass, m);rear->next=p;rear=p;}rear->next=NULL;fclose(fp);p=head->next;for(j=1; j<=i-1; j++){printf("\n\n%s\t%s\t%s\n", p->ID, p->name, p->pass);p=p->next;}printf("请输入要删除的学生的ID:(输入#键输入结束)");scanf("%s", xx);int k=0;if(xx[0]!='#'){p=head->next; rear=head;while(p->next!=NULL){if(strcmp(xx, p->ID)==0){rear->next=p->next;free(p);k=1;break;}rear=p;p=p->next;}for(x=0; ;x++){if(k==1){p=head->next;system("cls");printf("删除后的学生信息为:\n");printf("学号\t\t姓名\t密码\n");while(p->next!=NULL){printf("%-12s%-8s\t%-8s\n\n", p->ID, p->name, p->pass); p= p->next;}break;}else if(k==0){system("cls");printf("\n\n\n\n\n\n\n\t\t");printf("未找到待删除学生信息,请重新选择你要删除的学生ID"); Sleep(1500);system("cls");plsc(head);k+=2;}else{break;}}}if(k==1){ system("pause");}if((fp = fopen("userinfo.dat","w")) == NULL){printf("can not open this file\n");exit(0);}p=head->next;while(p->next!=NULL){strcpy(ID,p->ID);strcpy(name,p->name); strcpy(m,p->pass);fprintf(fp,"%s\t\t%s\t%s\n", ID, name, m);p=p->next;}fclose(fp);}3.4图书管理主函数int tsgl(lxst head1){int n, i;for(i=0; ; i++){system("cls");printf("\t\t\t************************************\n\n");printf("\t\t\t* 欢迎进入图书信息管理系统*\n\n");printf("\t\t\t************************************\n\n\n");printf("\t\t\t1.新书入库\t"); printf("2.图书信息查询\n\n");printf("\t\t\t3.旧书下架\t"); printf("0.返回上一界面\n\n");printf("\t\t\t\t请输入你的选择:");scanf("%d", &n);if(n==1){if(xsrk(head1)==1);continue;}else if(n==2){if(tsxxcx(head1)==1);continue;}else if(n==3){if(tsxxxg(head1)==1);continue;}else if(n==0){return 1;}else{printf("输入有误,请重新输入");}}}3.4.1新书入库函数主要包括从文件中读取和手动输入两种方式int xsrk(lxst head1)//新书入库{char bh[20], sm[20], zz[20], cbs[20], lb[20], sj[20];double jg;int i, n;system("cls");printf("\t\t\t************************************\n\n");printf("\t\t\t* 欢迎进入图书信息管理系统*\n\n");printf("\t\t\t************************************\n\n");printf("\n\n");for(i=0;;i++){printf("\t\t\t*1.从文件中读取入库\t"); printf("*2.直接输入入库\n\n");printf("\t\t\t\t*0.返回上一界面\n\n");printf("\t\t\t\t请输入你的选择:");scanf("%d", &n);if(n==1){FILE *fp;int i;lxst p=head1->next, rear=head1;if((fp = fopen("新建文本文档.dat","r")) == NULL){printf("can not open this file\n");exit(0);}for(i=0; !feof(fp); i++){fscanf(fp,"%s%s%s%s%s%s%lf", bh, sm,zz, cbs, lb, sj, &jg);p=(lxst)malloc(sizeof(lxnd));strcpy(p->bh,bh); strcpy(p->sm, sm); strcpy(p->zz, zz); strcpy(p->cbs, cbs); strcpy(p->lb, lb);strcpy(p->sj, sj);p->jg=jg;rear->next=p;rear=p;}rear->next=NULL;fclose(fp);if((fp = fopen("bookinfo.dat","a+")) == NULL){printf("can not open this file\n");exit(0);}p=head1->next;while(p!=NULL){strcpy(bh,p->bh);strcpy(sm,p->sm); strcpy(cbs,p->cbs);strcpy(zz, p->zz);strcpy(sj,p->sj);strcpy(lb, p->lb);jg=p->jg;fprintf(fp,"%s\t%s\t%s\t%s\t%s\t%s\t%.2f\n",bh,sm, zz, cbs, lb, sj, jg);p=p->next;}fclose(fp);system("cls");printf("\n\n\n\n\n\n\n\n\n\n\n\n\n\n\t\t\t读取成功!!!");Sleep(1500);return 1;}else if(n==2){system("cls");FILE *fp;if((fp = fopen("bookinfo.dat","a+")) == NULL){printf("can not open this file\n");exit(0);}printf("\n\n图书编号\t书名\t作者\t出版社\t类别\t时间\t\t价格(输入#键结束)\n");while(scanf("%s",bh), bh[0]!='#'){scanf("%s%s%s%s%s%lf", sm, zz, cbs, lb, sj, &jg);fprintf(fp,"%s\t%s\t%s\t%s\t%s\t%s\t%.2f\n", bh, sm, zz, cbs, lb, sj, jg);printf("\n");}fclose(fp);system("cls");printf("\n\n\n\n\n\n\n\n\n\n\n\n\n\n\t\t\t\t读取成功!!!");Sleep(1500);return 1;}else if(n==0){return 1;}else{system("cls");printf("\n\n\n\n\n\n\n\n\n\n\n\n\n\n\t\t\t输入有误,请重新输入"); Sleep(1500);}}}3.4.2图书信息查询函数主要包括按书名,出版社,作者三种查询方式其中书名为模糊查询,其他两个为精确查询int tsxxcx(lxst head1)/*图书信息查询*/{FILE *fp;int i, n, k=0; lxst p=head1->next, rear=head1;char bh[20], sm[20], zz[20], cbs[20], lb[20], sj[20], xx[20];double jg;if((fp = fopen("bookinfo.dat","r")) == NULL){printf("can not open this file\n");exit(0);}for(i=0; !feof(fp); i++){fscanf(fp,"%s%s%s%s%s%s%lf", bh, sm,zz, cbs, lb, sj, &jg);p=(lxst)malloc(sizeof(lxnd));strcpy(p->bh,bh); strcpy(p->sm, sm); strcpy(p->zz, zz); strcpy(p->cbs, cbs); strcpy(p->lb, lb);strcpy(p->sj, sj);p->jg=jg;rear->next=p;rear=p;}rear->next=NULL;fclose(fp);for(i=0; ;i++){system("cls");printf("\t\t\t************************************\n\n");printf("\t\t\t* 欢迎进入图书信息管理系统*\n\n");printf("\t\t\t************************************\n\n");printf("\n\n");printf("\t\t\t*1.按书名查询\t"); printf("*2.按作者查询\n\n");printf("\t\t\t*3.按出版社查询\t");printf("*0.返回上一界面\n\n");printf("\t\t\t\t请输入你的选择:");scanf("%d", &n);for(i=0;;i++){system("cls");if(n==1){p=head1->next;printf("\n\n\n\t\t\t请输入你要查询的书名(#返回):");scanf("%s", xx);if(xx[0]=='#')return 1;system("cls");printf("\n\n\n\n\t\t\t正在搜索,请稍后.....");Sleep(1500);system("cls"); printf("\n\n\n搜查结果如下:\n");printf("图书编号\t书名\t作者\t出版社\t类别\t时间\t\t价格\n");while(p->next!=NULL){if(strstr(p->sm, xx)!=NULL){printf("%s\t%s\t%s\t%s\t%s\t%s\t%.2f\n",p->bh, p->sm,p->zz, p->cbs, p->lb, p->sj, p->jg);k=1;}p=p->next;}if(k==0){printf("\n\n\n\n\t\t\t未找到相关图书信息, 请核对后再输入");Sleep(1500);continue;}if(k==1){system("pause");break;}}else if(n==2){p=head1->next;printf("\n\n\n\t\t\t请输入作者名(#返回):");scanf("%s", xx);if(xx[0]=='#')return 1;system("cls");printf("\n\n\n\n\t\t\t正在搜索,请稍后.....");Sleep(1500);system("cls"); printf("\n\n\n搜查结果如下:\n");printf("图书编号\t书名\t作者\t出版社\t 类别\t时间\t\t价格\n");while(p->next!=NULL){if(strcmp(xx, p->zz)==0){printf("%s\t%s\t%s\t%s\t%s\t%s\t%.2f\n\n", p->bh, p->sm,p->zz, p->cbs, p->lb, p->sj, p->jg);k=1;}p=p->next;}if(k==0){printf("\n\n\n\n\t\t\t未找到相关图书信息, 请核对后再输入");Sleep(1500);continue;}if(k==1){system("pause");break;}}else if(n==3)p=head1->next;printf("\n\n\n\t\t\t请输入图书出版社(#返回):");scanf("%s", xx);if(xx[0]=='#')return 1;system("cls");printf("\n\n\n\n\t\t\t正在搜索,请稍后.....");Sleep(1500);system("cls");printf("\n\n\n搜查结果如下:\n");printf("图书编号\t书名\t作者\t出版社\t 类别\t时间\t\t价格\n");while(p->next!=NULL){if(strcmp(xx, p->cbs)==0){printf("%s\t%s\t%s\t%s\t%s\t%s\t%.2f\n\n", p->bh, p->sm,p->zz, p->cbs, p->lb, p->sj, p->jg);k=1;}p=p->next;}if(k==0){printf("\n\n\n\n\t\t\t未找到相关图书信息, 请核对后再输入");Sleep(1500);continue;}if(k==1){system("pause");break;}}else if(n==0){return 1;}else{break;}}if(k==1){break;}}3.4.3图书信息管理函数此函数主要是管理员对图书的删除功能,删除功能均为精确搜索,可以从图书书名,出版时间两方面来查询删除。