学生成绩簿设计实验报告
学生成绩系统实验报告
目录第 1 章引言 (3)1.1 选题背景 (3)1.2 主要工作 (3)第 2 章学生成绩系统需求分析 (3)2.1 总体概述 (3)2.2 功能需求分析 (3)第 3 章学生成绩系统总体设计 (3)3.1 总体设计思想 (3)3.2 系统技术体系结构 (3)3.3 系统采用的设计模式 (4)3.4 系统数据库设计 (4)第 4 章学生成绩系统详细设计 (5)4.1 设计方案 (5)4.2 部分数据库表 (5)4.3 部分功能实现 (5)第 5 章学生成绩系统系统测试方案 (6)5.1 软件测试 (6)5.2 测试用例 (6)5.3 测试分析 (6)结束语、谢辞 (7)参考文献 (7)附录 1 部分系统界面 (8)附录 2 部分源程序 (9)第 1 章引言1.1 选题背景题目6 学生成绩系统1.2 主要工作论文的主要目标是基于 J2EE 架构,实现网站构建管理系统的基本功能。
本论文的主要工作可以归结如下:(1)分析学生成绩管理系统的功能需求和非功能需求。
(2)设计学生成绩管理系统的技术体系结构,应用设计模式,设计数据库实体联系模型。
(3)实现学生成绩管理系统的组件管理、模块管理、界面模板管理等诸多系统管理功能,提供留言板、滚动新闻、计数器等常用组件和模块。
(4)完成学生成绩管理系统的单元测试、功能测试及性能测试,并给出测试分析。
第 2 章学生成绩系统需求分析2.1 总体概述学生成绩系统,是允许不熟悉 HTML 或其他编程语言的内容管理员或内容编辑者在不具备网站高手应具备的专业知识的情况下,就可以创建,修改或删除网站中的内容。
此种构建方式要实现网站内容管理与网站风格、布局相分离。
2.2 功能需求分析最终实现的主要功能如下:1、学生成绩增删改查;2、学生查询所有课程的成绩及排名;3、某一门课程学生成绩的排序;4、教师所授课程的成绩报表(包括不及格率及各个分数段的学生比例等)。
第 3 章学生成绩系统总体设计3.1 总体设计思想核心系统拟由前台网站界面和后台网站管理两部分组成。
学生成绩管理实训成果报告
一、引言随着教育信息化进程的不断推进,学生成绩管理系统的应用越来越广泛。
为了提高学生成绩管理的效率和质量,我们开展了为期一个月的学生成绩管理实训。
通过本次实训,我们深入了解了学生成绩管理系统的设计、开发、应用和维护过程,取得了显著成果。
现将实训成果报告如下:二、实训背景及目的1. 实训背景随着教育事业的快速发展,学生人数不断增加,传统的手工管理方式已无法满足现代教育管理的需求。
为了提高成绩管理的效率,降低人力成本,我校决定开展学生成绩管理实训,旨在开发一套适合我校实际需求的学生成绩管理系统。
2. 实训目的(1)掌握学生成绩管理系统的设计、开发、应用和维护方法;(2)提高学生成绩管理的效率和质量;(3)培养团队合作精神,提高综合素质;(4)为我校教育信息化建设提供有力支持。
三、实训内容1. 系统需求分析在实训初期,我们首先对学校现有的成绩管理流程进行了调研,了解了成绩管理的各个环节,包括成绩录入、成绩查询、成绩统计、成绩分析等。
在此基础上,我们明确了系统需求,包括:(1)支持多用户登录,不同用户拥有不同的权限;(2)支持成绩录入、查询、修改、删除等功能;(3)支持成绩统计、分析、导出等功能;(4)支持数据备份和恢复功能;(5)具有良好的用户界面和操作便捷性。
2. 系统设计根据系统需求,我们采用了B/S架构进行系统设计。
系统分为前端和后端两部分,前端采用HTML、CSS、JavaScript等技术实现,后端采用Java、MySQL等技术实现。
系统主要模块包括:(1)用户管理模块:实现用户登录、权限管理等功能;(2)成绩管理模块:实现成绩录入、查询、修改、删除等功能;(3)统计与分析模块:实现成绩统计、分析、导出等功能;(4)数据备份与恢复模块:实现数据备份和恢复功能。
3. 系统开发在系统开发过程中,我们遵循软件工程的基本原则,采用敏捷开发模式,分阶段进行开发。
具体步骤如下:(1)需求分析:明确系统功能、性能、界面等方面的需求;(2)系统设计:根据需求分析结果,设计系统架构、数据库结构、界面布局等;(3)编码实现:根据系统设计,编写代码实现系统功能;(4)测试与调试:对系统进行功能测试、性能测试、安全测试等,确保系统稳定运行;(5)部署与维护:将系统部署到服务器,进行日常维护和升级。
学生成绩管理实验报告
2008-10-02 12:52实验报告一.实验目的:(1)复习并使用所学的知识,综合运用各种方法;(2)加强对各种概念的掌握;二.实验内容:1.基本数据说明(1)班级:程序要求处理若干班级,每个班级包括的属性有:年级,专业,班和若干学生。
(2)学生:每个班级饱和多名学生,学生的属性有:学号和姓名。
(3)课程:程序中可以处理多门课程,每个课程的属性:课程编号,名称,学分,学时。
(4)成绩单:期末考试完成后,保存学生的考试成绩单,包括:班级,课程,考试日期,考试人数,每个学生的成绩。
2.数据存储上述数据应该能保存在文件中。
(可以保存在对象文件中)3.实现的功能:(1)基本数据输入:程序提供界面能够见谅并输入班级,学生和课程的信息。
(2) 考试成绩输入:程序提供界面,指定班级,课程后,输入该班级所有学生的该课程的考试成绩。
(3)成绩查询:输入学号和课程后,能够显示该学生的考试成绩。
(4)成绩分析:指定班级和课程后,对该班的该课程进行以下3个方面的分析:O 分数分析:最高分,最低分,平均分O 分数段分析:分别统计0—59,60—69,70—79,80—89,90—100的学生人数和所占的百分比。
O 图形分析:生成如下的图形三.实验报告1.需求分析成绩分析系统最大的特点是可以便利地对大量学生的成绩进行输入和分析统计,所以一般推荐使用数据库存储大量数据和利用JAVA的GUI进行图形化操作与显示。
本程序使用access数据库,可移植性强。
图形窗口的生成使用各种的方法,调用方便。
2.系统分析系统运行事务过程可以用以下关系表示:备注:系统需要建立一个引导菜单,让界面切换操作更方便。
3.系统设计系统的运行依赖于数据库,一般来说设计数据库结构时必须严密,数据库优化设计,可以大量减少程序代码的编写工作。
4.系统实现程序中关键的问题和解决办法有:1)综合利用各种对象如JMenuBar、JMenu、JMenuItem、JButton、JPanel、JComponent、JComboBox、JLabel、JTextField、BorderLayout、Connection、JTextArea进行界面的规划布局;解决办法:使用BorderLayout中的null 的布局方式,对每个元件进行大小和程序界面的相对坐标定位,如:实例名称.setBounds(x,y,a,b)。
学生成绩课程设计报告
学生成绩课程设计报告一、课程目标知识目标:1. 让学生掌握学科基础知识,如公式、概念、原理等,并能够熟练运用。
2. 帮助学生理解学科知识体系,形成知识网络,提高知识整合能力。
3. 指导学生了解学科发展动态,拓展知识视野,提高学术素养。
技能目标:1. 培养学生运用学科知识解决实际问题的能力,提高分析、综合、评价等思维品质。
2. 指导学生掌握学科研究方法,如实验、调查、数据分析等,提高研究能力。
3. 培养学生合作学习、自主学习的能力,形成良好的学习习惯。
情感态度价值观目标:1. 培养学生对学科的兴趣和热情,激发学习动力,提高学习积极性。
2. 培养学生尊重科学、严谨求实的态度,树立正确的价值观。
3. 引导学生关注社会问题,培养社会责任感,提高道德品质。
课程性质:本课程旨在结合学科特点,关注学生个体差异,以提高学生学科素养为核心,注重知识、技能和情感态度价值观的全面发展。
学生特点:学生处于该年级阶段,具有一定的学科基础,但个体差异较大,需要针对不同学生进行因材施教。
教学要求:教师应关注学科知识与学生生活的联系,创设有趣、富有挑战性的教学情境,激发学生学习兴趣,提高教学效果。
同时,注重过程性评价,及时了解学生学习情况,调整教学策略,确保课程目标的实现。
通过本课程的学习,使学生能够达到具体的学习成果,为后续学习奠定坚实基础。
二、教学内容本课程教学内容紧密结合课程目标,依据学科知识体系,科学系统地组织以下内容:1. 基础知识模块:包括学科基本概念、原理、公式等,涉及课本第一章至第三章,重点讲解关键知识点,为学生奠定扎实的基础。
2. 技能训练模块:涵盖实验操作、数据分析、问题解决等,结合课本第四章至第六章,通过实际案例和实践活动,培养学生学科技能。
3. 拓展提高模块:涉及学科前沿动态、学术研究方法等,参考课本第七章至第九章,拓展学生知识视野,激发学术兴趣。
教学大纲如下:第一周:第一章基础知识讲解,第二章概念巩固;第二周:第三章原理学习,第四章实验操作指导;第三周:第五章数据分析,第六章问题解决技巧;第四周:第七章学科前沿动态,第八章学术研究方法;第五周:第九章综合应用,期中复习及测试。
大学生Excel实验报告
大学生Excel实验报告1. 实验目的本实验旨在让大学生掌握并熟练运用Excel软件进行数据处理和分析,提高学生的电脑操作和数据处理能力。
2. 实验步骤本次实验分为以下几个步骤:1. 打开Excel软件并创建一个新的工作簿。
2. 输入实验数据。
3. 建立公式进行数据计算。
4. 进行数据筛选和排序。
5. 制作图表并进行数据分析。
3. 实验数据本次实验使用的数据为一个学生的考试成绩单,包括学生姓名、语文成绩、数学成绩和英语成绩。
学生姓名语文成绩数学成绩英语成绩小明90 85 92小红88 92 85小刚76 80 78小李92 90 94小华85 88 904. 实验结果4.1 公式计算在Excel中,通过使用公式可以进行各种数据计算。
我们可以计算每个学生的总分和平均分。
首先,在D2单元格中输入公式`=B2+C2+D2`,求得小明的总分。
然后,使用填充手柄将公式拖动至D6单元格,求得所有学生的总分。
接着,在E2单元格输入公式`=(B2+C2+D2)/3`,求得小明的平均分。
同样,使用填充手柄将公式拖动至E6单元格,求得所有学生的平均分。
4.2 数据筛选和排序Excel提供便捷的数据筛选和排序功能,使数据处理更加高效准确。
我们可以根据某一列的值进行筛选,也可以根据某一列的值进行排序。
在本次实验中,我们将根据学生的语文成绩进行数据筛选。
选择语文成绩列,点击数据选项卡中的"筛选"按钮,选择"数字筛选",然后在条件中输入"> 85",点击确定。
筛选结果将显示出语文成绩高于85分的学生。
4.3 制作图表Excel还提供了丰富的图表功能,使数据展示更加直观。
我们可以根据实验数据制作柱状图、折线图等。
在本次实验中,我们将制作一个柱状图来展示每个学生的三门成绩。
首先,在F1单元格输入"学生姓名",在G1、H1和I1单元格分别输入"语文成绩"、"数学成绩"和"英语成绩"。
学生成绩信息管理系统实训报告
学生成绩信息管理系统实训报告学生成绩信息管理系统是一种用于管理学生的学习成绩和相关信息的软件系统。
本次实训报告将介绍我设计和实现的学生成绩信息管理系统,并对其功能和效果进行评估。
一、需求分析通过与教师和学生的调研,我明确了学生成绩信息管理系统的需求。
主要功能包括学生信息的录入、学生成绩的录入、查询和统计分析、学生信息和成绩的修改、删除和导入导出等。
还要求该系统具备用户角色分工明确、安全性高、操作简单等特点。
二、系统设计基于需求分析,我采用面向对象的设计方法,将系统划分为学生信息管理、学生成绩管理、查询和统计分析、用户管理、系统管理等模块。
每个模块有独立的功能和界面,便于用户使用和维护。
三、系统实现我选择使用Java语言和MySQL数据库来实现学生成绩信息管理系统。
通过Java语言可以提供灵活、强大的编程接口,而MySQL数据库则可以实现数据的持久化存储。
在编码过程中,我严格按照需求分析和系统设计的要求进行编码,采用模块化、可重用的编程方式,使得系统具备良好的扩展性和可维护性。
我还加入了异常处理和用户输入验证等功能来保证系统的安全性和稳定性。
四、系统测试在系统实现后,我对系统进行了全面的测试。
测试包括功能测试、性能测试、稳定性测试等。
通过多次测试,我检验了系统的各项功能和性能,并对系统进行了优化和改进。
最终,系统测试结果表明学生成绩信息管理系统达到了预期的功能和效果,满足了用户的需求。
五、总结与改进通过本次实训,我对学生成绩信息管理系统的设计和实现有了更深入的了解,并掌握了Java编程、MySQL数据库以及系统测试等技能。
但我也发现了一些不足之处,如系统的界面设计可以更加美观,功能可以再进一步完善等。
下一步工作,将着重改进这些问题,提升系统的用户体验和功能性。
学生成绩信息管理系统的设计和实现对于学校和教师来说,可以减轻了学生信息管理和成绩统计的工作负担,提高了工作效率。
对于学生来说,可以清楚地了解到自己的学习成绩,并对学习状况进行分析和改进。
学生成绩管理系统实习报告
学生成绩管理系统实习报告一、实习背景与目的随着信息技术的不断发展,计算机管理系统在各个领域得到了广泛的应用。
为了提高学生成绩管理的效率,降低人工成本,本次实习我选择了学生成绩管理系统作为课题,旨在掌握结构化程序设计的基本方法,提高面向对象程序设计的能力,培养独立解决问题和团队合作的能力。
二、实习内容与过程1. 需求分析在开始实习之前,我对学生成绩管理系统的需求进行了深入分析。
主要包括以下功能:(1)成绩录入:录入学生姓名、学号和各科成绩。
(2)成绩查询:按学号或姓名查询学生成绩。
(3)成绩统计:计算学生平均分、最高分、最低分和及格率。
(4)成绩排序:按总成绩或单科成绩排序。
(5)成绩删除和修改:删除或修改学生成绩记录。
2. 系统设计根据需求分析,我设计了学生成绩管理系统的功能框图和流程图,明确了各个模块的功能和相互关系。
同时,我选择了C语言作为开发工具,因为它具有较好的跨平台性和较高的可移植性。
3. 编码实现在明确了系统设计和模块功能后,我开始编写代码。
首先,我实现了成绩录入模块,通过键盘输入学生姓名、学号和各科成绩,并将数据存储到文件中。
接着,我实现了成绩查询模块,可以根据学号或姓名查询学生成绩。
然后,我实现了成绩统计模块,计算学生平均分、最高分、最低分和及格率。
接下来,我实现了成绩排序模块,可以按总成绩或单科成绩排序。
最后,我实现了成绩删除和修改模块,可以删除或修改学生成绩记录。
4. 调试与测试在编码完成后,我对系统进行了调试和测试。
通过多次运行和输入不同数据,检查系统是否能够正常运行,并满足需求。
在测试过程中,我发现了一些问题,如输入错误处理不当、排序算法效率较低等,针对这些问题,我进行了相应的优化和改进。
5. 实习报告撰写在实习结束后,我撰写了实习报告,总结了实习过程中的收获和不足,并对后续工作提出了改进措施。
三、实习收获与反思通过本次实习,我掌握了一定的结构化程序设计和面向对象程序设计的基本方法,提高了独立解决问题和团队合作的能力。
学生成绩单的制作实训报告
一、实训背景随着教育信息化的发展,学生成绩单作为学生学业成绩的重要载体,其电子化、标准化的制作成为提高工作效率、保障数据安全的重要手段。
为了提高学生的计算机操作技能和数据处理能力,我校组织开展了学生成绩单制作实训。
本次实训旨在让学生掌握成绩单的设计、制作和打印流程,提高学生的实际操作能力。
二、实训目标1. 熟练掌握成绩单的设计原则和格式要求。
2. 学会使用Word等办公软件进行成绩单的排版和编辑。
3. 了解成绩数据的导入和处理方法。
4. 掌握成绩单的打印和分发流程。
三、实训内容1. 成绩单设计原则与格式要求2. Word软件的使用技巧3. 成绩数据的导入与处理4. 成绩单的打印与分发四、实训过程(一)成绩单设计原则与格式要求1. 设计原则:简洁、美观、实用。
2. 格式要求:- 封面:学校名称、学年学期、班级、姓名等基本信息。
- 目录:课程名称、成绩等级、学分等。
- 成绩列表:课程名称、成绩、学分等。
- 签名:班主任、教导主任、校长等。
(二)Word软件的使用技巧1. 创建新文档:选择“文件”菜单,点击“新建”,选择“空白文档”。
2. 设置页面格式:选择“页面布局”选项卡,设置页边距、纸张大小等。
3. 输入文字:使用“插入”选项卡中的“文本框”或“文本框(竖排)”插入文本框,输入文字。
4. 排版:使用“开始”选项卡中的“字体”、“段落”等工具进行排版。
5. 插入表格:选择“插入”选项卡中的“表格”,设置表格行列数,输入数据。
6. 调整表格:选中表格,使用“表格工具”选项卡中的工具进行调整。
(三)成绩数据的导入与处理1. 使用Excel软件整理成绩数据,包括课程名称、成绩、学分等。
2. 将Excel表格中的数据复制粘贴到Word文档中。
3. 使用“查找和替换”功能,将Excel表格中的数据替换为Word表格中的数据。
(四)成绩单的打印与分发1. 选择“文件”菜单,点击“打印”。
2. 设置打印机、打印份数、打印范围等参数。
学生成绩管理系统数据库设计实验报告
学生成绩管理系统数据库课题: 雇员信息管理系统姓名:学号:同组姓名:专业班级:指导教师:设计时间:2012年6月4号----2012年6月10日一、需求分析阶段1.信息需求对学校而言,学生成绩管理系统是所有工作的首要之选,但是高校学生的成绩管理工作量大、繁杂,人工处理非常困难。
因此,借助于强大计算机的处理能力,能够把人从繁重的成绩管理工作中解脱出来,并且更加准确、安全、清晰的管理环境。
2.功能需求能够进行数据库的数据定义、数据操纵、数据控制等处理功能。
具体功能应包括:系统应该提供课程安排数据的添加、插入、删除、更新、查询;成绩的添加、修改、删除、查询,学生及教职工基本信息查询的功能。
3. 安全性与完整性要求对于学生成绩管理系统数据库来讲,由于其主要数据是学生成绩,只能由本人以及所教老师及教务处知道,因此做好数据安全性是重中之重。
另外,要求所有在校学生的信息都要录入其中,并且要设计好个别情况。
二、概念结构设计阶段概念结构设计阶段是整个数据库设计的关键,它通过对用户需求进行综合、归纳与抽象,形成一个独立于具体DBMS的概念模型。
设计成绩管理数据库包括学生、成绩、课程、教师四个关系。
E-R图如下三、详细设计阶段详细结构是独立于任何一种数据模型的信息结构。
详细结构的任务是把概念结构设计阶段设计好的基本E-R图转化为宜选用的DBMS所支持的数据模型相符合的逻辑结构,并对其进行优化。
E-R图向关系模型转化要解决的问题是如何将实体型和实体间的联系转化为关系模式,如何确定这些关系模式的属性和码。
设计学生成绩管理数据库,包括课程、学生、教师、成绩四个关系, 其关系模式中对每个实体定义的属性如下:课程信息表Class:(课程号,课程名,教师号,学分,学时)学生信息表Student1:(学号,姓名,性别,年龄,专业,系别)成绩表Score:(学号号,课程名,成绩)教师表Teacher1:(教师号,教师名,教师性别,教师系别)2、学生信息表(student1)四、数据库实现数据库实施是指建立数据库,编制与调试应用程序,组织数据入库,并进行试运行。
成绩分析实验报告(3篇)
第1篇一、实验背景随着教育改革的不断深入,我国教育质量得到了显著提高。
然而,在实际教学过程中,教师和学生普遍面临的一个问题是:如何有效地分析学生的学习成绩,从而更好地指导教学和促进学生全面发展。
为了解决这一问题,我们开展了一次成绩分析实验,旨在通过对学生成绩进行深入分析,找出影响学生成绩的关键因素,为教师提供有针对性的教学建议。
二、实验目的1. 分析学生成绩分布情况,了解学生整体学习水平。
2. 找出影响学生成绩的关键因素,为教师提供教学改进方向。
3. 探索科学合理的成绩分析方法,提高教学质量。
三、实验方法1. 数据收集:收集实验班级学生的期末考试成绩、平时成绩、学习态度、家庭背景等相关信息。
2. 数据处理:运用统计学方法对收集到的数据进行整理、分析,得出学生成绩分布、相关因素之间的关系。
3. 结果分析:结合实际教学情况,分析影响学生成绩的关键因素,提出相应的教学改进建议。
四、实验结果与分析1. 学生成绩分布情况通过对实验班级学生的成绩进行分析,得出以下结论:(1)成绩总体分布较为集中,大部分学生成绩处于中等水平。
(2)成绩分布呈现正态分布,即成绩优秀的学生和成绩较差的学生较少,中等成绩的学生占多数。
(3)男女学生在成绩上存在一定差异,女生整体成绩略高于男生。
2. 影响学生成绩的关键因素(1)学习态度:学习态度是影响学生成绩的重要因素之一。
实验结果显示,学习态度积极的学生,成绩普遍较好。
(2)学习方法:学习方法对学生成绩的影响不容忽视。
实验发现,掌握科学合理的学习方法的学生,成绩明显优于其他学生。
(3)家庭背景:家庭背景在一定程度上影响学生的学习成绩。
实验结果表明,家庭条件较好的学生,学习资源较为丰富,成绩相对较好。
(4)教师教学:教师的教学水平、教学方法和教学态度对学生成绩有直接影响。
实验发现,教师的教学效果与学生的成绩呈正相关。
五、教学改进建议1. 加强学生教育,提高学习态度。
教师应关注学生的学习状态,引导学生树立正确的学习观念,激发学生的学习兴趣。
学生成绩信息管理系统实训报告
学生成绩信息管理系统实训报告一、引言随着学校规模的扩大和学生对信息管理的需求不断提高,学生成绩信息管理系统的开发变得越来越重要。
本次实训旨在让学生掌握Java语言的基本语法和面向对象编程思想,提高学生Java应用程序的设计和开发能力,同时培养学生团队协作和沟通能力。
二、系统分析需求分析学生成绩信息管理系统应具备以下功能:(1)学生信息管理:包括学生基本信息(姓名、学号、性别等)和成绩信息(课程名称、成绩等)的录入、修改、删除和查询。
(2)成绩管理:包括成绩的录入、修改、删除和查询。
(3)统计分析:对学生成绩进行统计分析,如计算平均分、最高分、最低分等。
(4)报表生成:根据用户需求生成相应的报表,如学生成绩报表、课程成绩报表等。
数据库设计根据需求分析,学生成绩信息管理系统应包含以下数据表:(1)学生信息表:包括学生基本信息和成绩信息。
(2)课程信息表:包括课程基本信息和成绩信息。
(3)成绩表:包括学生和课程对应的成绩信息。
功能模块设计学生成绩信息管理系统分为以下模块:(1)用户管理模块:负责用户登录、注册和密码管理。
(2)学生信息管理模块:负责学生信息的录入、修改、删除和查询。
(3)成绩管理模块:负责成绩的录入、修改、删除和查询。
(4)统计分析模块:对学生成绩进行统计和分析,生成相应的报表。
三、系统实现界面设计根据需求分析和功能模块设计,学生成绩信息管理系统主要包括以下界面:(1)登录界面:包括用户名、密码输入框和登录按钮。
(2)主界面:包括菜单栏、工具栏、状态栏和数据区域等。
(3)学生信息管理界面:包括学生信息录入表单、修改表单、删除表单和查询表单等。
(4)成绩管理界面:包括成绩录入表单、修改表单、删除表单和查询表单等。
详细设计与实现(1)用户管理模块:实现用户登录、注册和密码管理功能。
其中,登录功能包括用户名和密码的验证,注册功能包括新用户的注册及密码设置,密码管理功能包括密码修改和重置等功能。
C语言课程设计实验报告成绩记录簿
.C语言课程设计报告题目:成绩记录簿学生姓名:学生学号:所在班级:任课教师:2012年6月19日目录1.设计目的2.设计思路3.总体设计4.详细设计5.设计体会6附录(所写是运行程序的图片)一、设计目的要求:编制一个C语言成绩记录簿,每个学生信息包括:学号、姓名、C语言成绩。
具体功能:(1)创建信息链表并以磁盘文件保存;(2)读取磁盘文件并显示输出所有学生的成绩;(3)按学号或姓名查询成绩;(4)添加成绩记录;(5)修改指定姓名或学号的学生的成绩并可存盘;(6)显示输出60分以下、60~79、80~89、90分以上各分数段的学生信息。
、二、设计思路1.设计好算法,用流程图或者用自己简单的想法,并记好记录。
2.分别做好主函数,和需要用到的各个函数,参考我们的教材一点点的综合在一起。
慢慢的从中学到技巧。
3.将已学过的代码和学过的函数拼接起来,做好调试和改正。
4.从新检查一遍,将没用的函数或者多余的步骤简化,提高运行速度。
5.完成系统总结报告以及使用说明书。
三、总体设计四、详细设计#include "stdio.h"#include "stdlib.h"#include "string.h"int shoudsave=0; //struct student{char num[20];//学号char name[20];int cgrade;char neartime[10];//最近更新时间};typedef struct node{struct student data;struct node *next;}Node,*Link;void menu(){printf("*************************************************************** *****************");printf("\t1输入学生资料\t\t\t\t\t2查询学生资料\n");printf("\t3修改学生资料\t\t\t\t\t4显示学生资料\n");printf("\t5统计学生成绩\t\t\t\t\t6保存学生资料\n");printf("\t7获取帮助信息\t\t\t\t\t0退出系统\n");printf("*************************************************************** *****************\n");}void printstart(){printf("-----------------------------------------------------------------------\n");}void Wrong(){printf("\n=====>提示:输入错误!\n");}void Nofind(){printf("\n=====>提示:没有找到该学生!\n");void printc() // 本函数用于输出中文{printf(" 学号\t 姓名C语言成绩\n");}void printe(Node *p)//本函数用于输出英文{printf("%-12s%s\t%d\t \n",p->data.num,p->,p->data.cgrade);}Node* Locate(Link l,char findmess[],char nameornum[]) //该函数用于定位连表中符合要求的接点,并返回该指针{Node *r;if(strcmp(nameornum,"num")==0) //按学号查询{r=l->next;while(r!=NULL){if(strcmp(r->data.num,findmess)==0)return r;r=r->next;}}else if(strcmp(nameornum,"name")==0) //按姓名查询{r=l->next;while(r!=NULL){if(strcmp(r->,findmess)==0)return r;r=r->next;}}return 0;}void Add(Link l) //增加学生{Node *p,*r,*s;char num[10];r=l;s=l->next;while(r->next!=NULL)r=r->next; //将指针置于最末尾while(1)printf("请你输入学号(以'0'返回上一级菜单:)");scanf("%s",num);if(strcmp(num,"0")==0)break;while(s){if(strcmp(s->data.num,num)==0){printf("=====>提示:学号为'%s'的学生已经存在,若要修改请你选择'4 修改'!\n",num);printstart();printc();printe(s);printstart();printf("\n");return;}s=s->next;}p=(Node *)malloc(sizeof(Node));strcpy(p->data.num,num);printf("请你输入姓名:");scanf("%s",p->);getchar();printf("请你输入c语言成绩:");scanf("%d",&p->data.cgrade);//信息输入已经完成p->next=NULL;r->next=p;r=p;shoudsave=1;}}void Qur(Link l) //查询学生{int sel;char findmess[20];Node *p;if(!l->next){printf("\n=====>提示:没有资料可以查询!\n");return;}printf("\n=====>1按学号查找\n=====>2按姓名查找\n"); scanf("%d",&sel);if(sel==1)//学号{printf("请你输入要查找的学号:");scanf("%s",findmess);p=Locate(l,findmess,"num");if(p){printf("\t\t\t\t查找结果\n");printstart();printc();printe(p);printstart();}elseNofind();}else if(sel==2) //姓名{printf("请你输入要查找的姓名:");scanf("%s",findmess);p=Locate(l,findmess,"name");if(p){printf("\t\t\t\t查找结果\n");printstart();printc();printe(p);printstart();}elseNofind();}elseWrong();}void Modify(Link l){Node *p;char findmess[20];if(!l->next){printf("\n=====>提示:没有资料可以修改!\n");return;}printf("请你输入要修改的学生学号:");scanf("%s",findmess);p=Locate(l,findmess,"num");if(p){printf("请你输入新学号(原来是%s):",p->data.num);scanf("%s",p->data.num);printf("请你输入新姓名(原来是%s):",p->);scanf("%s",p->);printf("请你输入新的c语言成绩(原来是%d分):",p->data.cgrade); scanf("%d",&p->data.cgrade);printf("\n=====>提示:资料修改成功!\n");shoudsave=1;}elseNofind();}void Disp(Link l){int count=0;Node *p;p=l->next;if(!p){printf("\n=====>提示:没有资料可以显示!\n");return;}printf("\t\t\t\t显示结果\n");printstart();printc();printf("\n");while(p){printe(p);p=p->next;}printstart();printf("\n");void Tongji(Link l){Node *pc = l; //用于指向分数最高的接点Node *r=l->next;if(!r){printf("\n=====>提示:没有资料可以统计!\n");return ;}while(r!=NULL){if(r->data.cgrade>=pc->data.cgrade)pc=r;r=r->next;}printf("------------------------------统计结果--------------------------------\n"); printf("c语言最高者:\t%s %d分\n",pc->,pc->data.cgrade); printstart();}void Save(Link l){FILE* fp;Node *p;int flag=1,count=0;fp=fopen("c:\\student","wb");if(fp==NULL){printf("\n=====>提示:重新打开文件时发生错误!\n");exit(1);}p=l->next;while(p){if(fwrite(p,sizeof(Node),1,fp)==1){p=p->next;count++;}else{flag=0;break;}if(flag){printf("\n=====>提示:文件保存成功.(有%d条记录已经保存.)\n",count); shoudsave=0;}fclose(fp);}void main(){Link l;//连表FILE *fp; //文件指针int sel;char ch;char jian;int count=0;Node *p,*r;printf("\t\t\t\t学生成绩记录簿\n\t\t\t\t-------计算机信息管理,张志坚(201140130207),李权(201140130106),刘进祎(201140130226),褚璐(201140130114)\n");l=(Node*)malloc(sizeof(Node));l->next=NULL;r=l;fp=fopen("C:\\student","rb");if(fp==NULL){printf("\n=====>提示:文件还不存在,是否创建?(y/n)\n");scanf("%c",&jian);if(jian=='y'||jian=='Y')fp=fopen("C:\\student","wb");elseexit(0);}printf("\n=====>提示:文件已经打开,正在导入记录......\n");while(!feof(fp)){p=(Node*)malloc(sizeof(Node));if(fread(p,sizeof(Node),1,fp)) //将文件的内容放入接点中{p->next=NULL;r->next=p;r=p; //将该接点挂入连中count++;}}fclose(fp); //关闭文件printf("\n=====>提示:记录导入完毕,共导入%d条记录.\n",count);while(1){menu();printf("请你选择操作:");scanf("%d",&sel);if(sel==0){if(shoudsave==1){ getchar();printf("\n=====>提示:资料已经改动,是否将改动保存到文件中(y/n)?\n");scanf("%c",&ch);if(ch=='y'||ch=='Y')Save(l);}printf("\n=====>提示:你已经退出系统,再见!\n");break;}switch(sel){case 1:Add(l);break; //增加学生case 2:Qur(l);break;//查询学生case 3:Modify(l);break;//修改学生case 4:Disp(l);break;//显示学生case 5:Tongji(l);break;//统计学生case 6:Save(l);break;//保存学生case 7:printf("\t\t\t==========帮助信息==========\n");break;default: Wrong();getchar();break;}}}五、设计体会通过这次的课程设计,增加了我对学习C语言和往后要学习C++的兴趣,虽然还不是真正的明白所有的C语言的子函数和里面的一些逻辑顺序,但我从C语言这门课程开始,已经发现程序设计的乐趣,在学习C语言的过程中也学到了许多计算机应用基础知识,对计算机的运行也有一个大体的了解。
统计成绩实验报告程序设计
统计成绩实验报告程序设计一、实验目的本实验旨在设计一个程序,能够对学生的考试成绩进行统计和分析,包括计算平均分、最高分、最低分以及各个分数段的学生人数等。
二、实验环境本实验的编程语言为Python,并利用PyCharm作为开发工具。
三、实验原理本实验的核心思想是通过编写一个统计成绩的程序,输入学生的考试成绩列表,然后根据需求进行相应的统计和分析。
程序的设计思路如下:1. 首先,需要定义一个函数来输入学生的考试成绩,输入结束后返回成绩列表。
2. 然后,设计一个函数来计算成绩的平均分,即将所有成绩相加后除以人数。
3. 接下来,编写函数来找出成绩列表中的最高分和最低分。
4. 最后,编写一个函数来统计成绩在不同分数段的人数。
四、实验步骤步骤1:定义输入成绩函数pythondef input_scores():scores = []while True:score = float(input("请输入成绩(输入-1表示结束输入):")) if score == -1:breakscores.append(score)return scores步骤2:设计计算平均分函数pythondef calc_average(scores):total = sum(scores)average = total / len(scores)return average步骤3:设计找出最高分和最低分函数pythondef find_extreme(scores):maximum = max(scores)minimum = min(scores)return maximum, minimum步骤4:设计统计不同分数段人数的函数pythondef count_scores(scores):count = [0, 0, 0, 0, 0]for score in scores:if score >= 90:count[0] += 1elif score >= 80:count[1] += 1elif score >= 70:count[2] += 1elif score >= 60:count[3] += 1else:count[4] += 1return count步骤5:主程序pythonscores = input_scores()average = calc_average(scores)maximum, minimum = find_extreme(scores)count = count_scores(scores)print("成绩统计结果如下:")print("平均分:{}".format(average))print("最高分:{}".format(maximum))print("最低分:{}".format(minimum))print("90分以上人数:{}".format(count[0]))print("80-89分人数:{}".format(count[1]))print("70-79分人数:{}".format(count[2]))print("60-69分人数:{}".format(count[3]))print("60分以下人数:{}".format(count[4]))五、实验结果假设我们输入的成绩列表为[75, 95, 80, 60, 90, 85, 70, 55, 65]:成绩统计结果如下:平均分:75.0最高分:95.0最低分:55.090分以上人数:180-89分人数:170-79分人数:260-69分人数:360分以下人数:2六、实验总结通过本实验的编程设计,我们可以实现对学生考试成绩的统计和分析。
STL模板 成绩记录薄 实验报告
目录1. 问题分析 (2)2. 总体设计 (3)2.1 功能分析 (3)2.2 数据抽象 (3)2.3 类和关键函数的定义 (4)2.4 总体结构 (11)3. 详细设计 (13)3.1程序流程图 (13)4. 功能测试 (13)4.1 成绩记录薄的主界面 (13)4.2 添加学生信息 (14)4.3显示全部学生信息 (15)4.4 查找所需学生信息 (16)4.5 删除一个或多个学生信息 (17)4.6 修改一个或多个学生信息 (19)4.7 按学生总成绩排序 (20)5.错误分析加处理 (21)5.1 stl中front()与begin() (21)5.2 map的定义 (21)5.3 class的定义 (21)5.4 switch语句 (21)6. 课设小结 (22)参考文献 (22)附录:源代码清单 (23)1. 问题分析1、问题分析和任务定义(1).任务定义:编制一个C++语言成绩记录簿,每个学生信息包括:学号、姓名、C++语言成绩。
具体功能:(1)创建信息链表并以磁盘文件保存;(2)读取磁盘文件并显示输出所有学生的成绩;(3)按学号或姓名查询成绩;(4)添加成绩记录;(5)修改指定姓名或学号的学生的成绩并可存盘;(6)显示输出60分以下、60~79、80~89、90分以上各分数段的学生信息。
(2).问题分析:本程序的关键点在于如何将输入的学生姓名,学号,分数进行排列,而难点就是将输入的的分数分类,可以按照学号姓名查找成绩。
实现本程序需要解决以下几个问题:1、如何创建信息链表并保存并且输出所有学生的成绩。
2、如何按照学号姓名查询成绩。
3、如何添加成绩记录;4、如何修改指定姓名或学号的学生的成绩并可存盘;5、如何显示输出60分以下、60~79、80~89、90分以上各分数段的学生信息。
2. 总体设计2.1 功能分析本次C++课程设计题目是“成绩记录薄”,系统的主要功能是添加学生姓名,学号,分数。
学生成绩管理系统实验报告
C语言集中上机实习报告院系:光电工程学院班级: 02111507姓名:指导教师:***题目:学生成绩管理系统2016年 12月8日完成实验报告的正文有七部分,分别是:•题目名称:•设计思路:包括总体设计和每个模块的算法•最初程序代码:•调试过程(写明调试过程中出现的所有语法错误和逻辑错误,这是评定成绩的主要依据)•最终程序代码:•测试结果:(截图)•心得体会:下面以一个简单的题目为例:一、题目:学生成绩管理系统二、思路:先定义学生人数和学号和学生姓名和各科成绩变量,再调用函数,最后再输出,系统基本完善。
三、最初程序代码:#include <stdio.h>#include <string.h>#include <stdlib.h>#define NUMOFSTU 10 /* 定义学生人数 */#define NUMOFCOURSE 2 /* 定义考试科目 */struct student{int n umber; /* 每个学生的学号 */char name[10]; /* 每个学生的姓名 */int s core[NUMOFCOURSE]; /* 每个学生M门功课的成绩 */ float sum; /* 每个学生的总成绩 */float average; /* 每个学生的平均成绩 */};typedef struct student STU;void PrintScore(STU pt[], int n);void InputStudent(STU pt[],int n);void Total(STU pt[],int n);void Sort(STU pt[],int n);int SearchByNumber(STU pt[], int n,int number_to_search);int SearchByName(STU pt[], int n,char name_to_search[]);char Menu(void);四、调试过程:出现的提示如下:1.执行 cl.exe 时出错.执行结果:经过对整个程序的排错,发现在过程中,缺少一个结束语。
简易学生成绩管理系统课程设计实习报告
简易学生成绩管理系统课程设计实习报告引言简要介绍课程设计的目的、意义以及实习报告的结构。
第一部分:项目概述1.1 项目背景描述开发简易学生成绩管理系统的背景和需求。
1.2 项目目标明确系统设计的主要目标和预期功能。
1.3 系统特点概述系统的主要特点,如用户友好性、数据安全性等。
第二部分:系统需求分析2.1 功能需求详细列出系统应具备的功能,如学生信息管理、成绩录入、成绩查询等。
2.2 性能需求描述系统的性能需求,如响应时间、数据准确性等。
2.3 用户需求分析目标用户群体的需求,确定系统设计的用户界面和交互方式。
第三部分:系统设计3.1 系统架构设计介绍系统的整体架构,包括前端、后端、数据库等。
3.2 数据库设计详细说明数据库的设计,包括数据表结构、数据关系等。
3.3 用户界面设计展示用户界面的设计,包括布局、导航、控件等。
3.4 系统流程设计描述系统的工作流程,包括数据流、用户操作流程等。
第四部分:系统实现4.1 技术选型介绍开发过程中所采用的技术栈和工具。
4.2 功能实现详细描述各个功能模块的实现方法和代码逻辑。
4.3 系统测试说明系统测试的方法、测试用例和测试结果。
4.4 问题与解决记录开发过程中遇到的问题以及解决方案。
第五部分:系统部署与维护5.1 部署方案描述系统的部署过程和部署环境。
5.2 维护计划提出系统的维护计划和未来的改进方向。
5.3 用户培训讨论对用户进行系统操作培训的计划和方法。
第六部分:总结与展望6.1 项目总结总结项目完成情况,评价系统的性能和实用性。
6.2 学习体会分享在课程设计过程中的学习体会和收获。
6.3 未来展望展望系统未来的发展方向和可能的改进。
结语对整个课程设计实习过程进行总结,表达对指导老师和团队成员的感谢。
学生成绩簿设计实验报告
学生成绩簿设计目录一、实训的目的与要求 (1)二、题目说明 (1)三、总体设计 (2)3.1.主函数流程图 (2)3.2.子函数流程图及其他 (3)四、详细设计和实施 (4)4.1 模块1 (4)五、遇到的问题和解决方法 (5)六、实训总结 (6)七、参考文献 (6)附录(源程序代码) (6)一、实训的目的与要求1. C语言课程设计的主要目的是培养学生综合运用C语言程序设计课程所学到的知识,编写C程序解决实际问题的能力,以及严谨的工作态度和良好的程序设计习惯。
2.通过课程设计的训练,学生应该能够了解程序设计的基本开发过程,掌握编写、调试和测试C语言程序的基本技巧,充分理解结构化程序设计的基本方法。
3. C语言程序设计的主要任务是要求学生遵循软件开发过程的基本规范,运用结构化程序设计的方法,按照课程设计的题目要求,分析、设计、编写、调试和测试C语言程序及编写设计报告。
二、题目说明编制一个C语言成绩记录簿,每个学生信息包括:学号、姓名、C语言成绩。
具体功能:(1)创建学生信息并以磁盘文件保存;(2)读取磁盘文件并显示输出所有学生的成绩;(3)按学号或姓名查询成绩;(4)添加成绩记录;(5)修改指定姓名或学号的学生的成绩并可存盘;(6)显示输出60分以下、60~79、80~89、90分以上各分数段的学生信息(可选项)。
三、总体设计3.1.主函数流程图图1主函数流程图3.2.子函数流程图及其他流程图图2 子函数流程图图3 删除信息流程图图3查找信息流程图图4修改信息流程图四、详细设计和实施4.1 模块1步骤1:根据数字提示从1-5中选择要操作的功能,如图5所示:图5步骤2:按1键,会出现提示“插入信息”,按2,会出现“删除信息”,按3,“修改信息”,按4,会出现“查看信息”,按5,“保存”,按q 键即可退出,如图6所示:图6 步骤3:键入1回车,会出现提示“请输入要删除学生信息”,现在就可以删除学生信息,如图7所示:图7步骤4:键入2及Enter键,会出现提示“请输入要查找的学生信息”,然后根据提示将该学生的信息删除,如图8所示:图8五、遇到的问题和解决方法大多的语法错误在通过书本参考下能够修改。
成绩记录簿课程设计报告
课程设计报告课程名称程序设计基础C语言设计题目成绩记录簿姓名杨国俊专业运算机工程班级学号指导教师日期~目录一、目的及要求 (4)二、课程设计内容 (4)三、整体设计 (5)功能模块设计 (5)3.1.1成绩记录簿执行的主流程 (5)3.1.2输入信息模块 (5)3.1.3修改成绩模块 (6)3.1.4删除模块 (6)3.1.5查学生成绩模块 (6)3.1.6查班成绩表模块 (6)3.1.7入文件模块 (6)3.1.8取文件模块 (6)3.1.9出模块。
(7)数据结构设计 (9)3.2.1 stu 结构体 (9)char number[20]; 3.2.2函数main (9)head = init(); 序初始化 (9)student* init() 种合法性检测 (9)5).输入数据(添加) (11)s->result[i]=stu_resurt;改成绩 (14)7).删除成绩 (14)8).查询信息(班级和个人) (15).2f.2f.2f.2f存和打开文件 (16)strcpy(classname[j],p->curriculum_number[j]); 出系统 (18)五、结论及体会 (25)参考文献 (26)一、目的及要求一、目的a)本课程设计是运算机科学与技术专业重要的实践性环节之一,是在学生学习完《程序设计语言》课程后进行的一次全面的综合练习。
本课程设计的目的和任务:b)巩固和加深学生对C语言课程的大体知识的明白得和把握;c)把握C语言编程和程序调试的大体技术;d)利用C语言进行大体的软件设计;e)把握书写程序设计说明文档的能力f)提高运用C语言解决实际问题的能力。
2. 课程设计要求a)分析课程设计题目的要求;b)写出详细设计说明;c)编写程序代码,调试程序使其能正确运行;d)设计完成的软件要便于操作和利用,有整齐、美观的利用界面;e)设计完成后提交课程设计报告和源代码文件的电子文档。
制作成绩通知单实习报告
一、实习背景随着教育信息化的发展,学校对学生成绩的管理逐渐从传统的纸质方式转向电子化。
为了适应这一趋势,提升工作效率,我于2023年在XX学校进行了为期一个月的成绩通知单制作实习。
本次实习旨在熟悉学校成绩管理系统的操作流程,掌握成绩通知单的制作方法,提高自身的信息技术应用能力。
二、实习内容1. 熟悉学校成绩管理系统在实习的第一周,我主要了解了学校使用的成绩管理系统的功能、操作流程和常见问题。
通过查阅相关资料和请教同事,我掌握了成绩查询、成绩录入、成绩修改、成绩导出等基本操作。
2. 学习成绩通知单制作方法成绩通知单是学生和家长了解学生学习成绩的重要途径,因此,制作一份规范、美观的通知单至关重要。
在实习的第二周,我学习了成绩通知单的制作方法,包括:(1)根据学校要求,选择合适的模板;(2)将成绩数据导入模板;(3)对数据进行核对和调整;(4)对通知单进行排版和美化;(5)打印和分发通知单。
3. 实际操作在实习的第三周,我开始独立制作成绩通知单。
我严格按照学校的要求和流程,完成了以下工作:(1)收集学生成绩数据,确保数据的准确性和完整性;(2)选择合适的模板,并根据需要进行修改;(3)将成绩数据导入模板,并进行核对和调整;(4)对通知单进行排版和美化,确保其美观、大方;(5)打印和分发通知单,确保每位学生和家长都能及时收到。
4. 反馈与改进在实习的最后两周,我收集了学生和家长对成绩通知单的意见和建议,并进行了总结和分析。
针对存在的问题,我提出了以下改进措施:(1)优化模板设计,使其更加美观、实用;(2)提高数据核对效率,确保数据的准确性;(3)加强与其他部门的沟通,确保通知单制作工作的顺利进行。
三、实习收获通过本次实习,我收获颇丰:1. 提高了信息技术的应用能力。
在实习过程中,我熟练掌握了学校成绩管理系统的操作方法,学会了如何制作规范、美观的成绩通知单。
2. 增强了团队协作能力。
在实习过程中,我与其他同事相互配合,共同完成了通知单的制作工作,提高了团队协作能力。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
学生成绩簿设计目录一、实训的目的与要求 (1)二、题目说明 (1)三、总体设计 (2)3.1.主函数流程图 (2)3.2.子函数流程图及其他 (3)四、详细设计和实施 (4)4.1 模块1 (4)五、遇到的问题和解决方法 (5)六、实训总结 (6)七、参考文献 (6)附录(源程序代码) (6)一、实训的目的与要求1. C语言课程设计的主要目的是培养学生综合运用C语言程序设计课程所学到的知识,编写C程序解决实际问题的能力,以及严谨的工作态度和良好的程序设计习惯。
2.通过课程设计的训练,学生应该能够了解程序设计的基本开发过程,掌握编写、调试和测试C语言程序的基本技巧,充分理解结构化程序设计的基本方法。
3. C语言程序设计的主要任务是要求学生遵循软件开发过程的基本规范,运用结构化程序设计的方法,按照课程设计的题目要求,分析、设计、编写、调试和测试C语言程序及编写设计报告。
二、题目说明编制一个C语言成绩记录簿,每个学生信息包括:学号、姓名、C语言成绩。
具体功能:(1)创建学生信息并以磁盘文件保存;(2)读取磁盘文件并显示输出所有学生的成绩;(3)按学号或姓名查询成绩;(4)添加成绩记录;(5)修改指定姓名或学号的学生的成绩并可存盘;(6)显示输出60分以下、60~79、80~89、90分以上各分数段的学生信息(可选项)。
三、总体设计3.1.主函数流程图图1主函数流程图3.2.子函数流程图及其他流程图图2 子函数流程图图3 删除信息流程图图3查找信息流程图图4修改信息流程图四、详细设计和实施4.1 模块1步骤1:根据数字提示从1-5中选择要操作的功能,如图5所示:图5步骤2:按1键,会出现提示“插入信息”,按2,会出现“删除信息”,按3,“修改信息”,按4,会出现“查看信息”,按5,“保存”,按q 键即可退出,如图6所示:图6 步骤3:键入1回车,会出现提示“请输入要删除学生信息”,现在就可以删除学生信息,如图7所示:图7步骤4:键入2及Enter键,会出现提示“请输入要查找的学生信息”,然后根据提示将该学生的信息删除,如图8所示:图8五、遇到的问题和解决方法大多的语法错误在通过书本参考下能够修改。
主要是平时看书不仔细、不太注意而产生的。
如没有注意具体数据使用是有一定的范围限定;过分重视分号的重要性而在for、if、while语句中画蛇添足加分号;在使用文件的时候忘记将文件先打开,对打开的方式与使用的情况不太注意而造成不匹配;还有漏掉形参的定义是值不能传递等等。
这些语法错误有信息框的提示一般是能够排除的。
编译、连接的成功并不意味着程序的最终成功。
逻辑上的错误机器不易检查出来,这时需要对数据结果进行分析。
这种错误的查找是最难的,需要编程序的人有相当的耐心和细心去把问题找出来。
这也是本次程序编辑过程中碰到的最大的难题。
往往运行之后得不到另人满意的结果,此时解决的方法一则可以用“分段检查”的方法,在程序的不同位置设几个printf函数语句,输出有关变量的值,逐段往下检查,或用debug进行调试,对检查出的错误进行修改,当调试完毕将设置的printf都删去。
若在程序中找不到问题,则再来考虑算法是否逻辑严谨,再进行修改。
如此循环往复,直到最后程序运行成功。
在本次程序编辑过程中,我就是常遇到编译能通过,能够运行程序,但是总在输入、删除等操作完之后再想去看数据文件中存在的数据记录的时候,却一条记录也显示不出来,我怀疑是哪个对方对n变量的定义或使用出错了,于是在每个主要函数的操作过程中添加了printf语句用来显示n的变化,例如在执行某个函数前添加插入语句显示n的起始值,在执行完该个函数后再添加插入语句显示此时n的结果值,观察n的变化是否正确,如果错误了,也就说明该函数编写过程有错。
诸如这样的调试方法,不断缩小检查范围,最后将错误找到,进行修改。
所以到最后我找到了错误,及时改正,终于把程序完成了,一切功能显示正常。
六、实训总结在课程设计过程中,遇到了不少的问题。
这迫使我不得不参考一些课外资料,向同学和老师们请教。
不过,最后在我的努力和老师同学们的帮助下,还是把程序写出来了,这令我非常高兴。
但是在运行过程中又出现了问题。
一开始就出现了十几个错误,这令我的信心有所下降,有的错误我根本就不知道是啥意思,我就向同学以及上网查一下资料。
在经过几天的检查与修改后,终于能编译出来了,这又使得我非常高兴。
但是运行的结果不是很理想,没能够达到我预想的那样。
在运行出来之后,我有点不敢相信这是我通过努力做出来的,对于我这个编程新手,在课程设计中,刚开始真有点对自己失去信心,在硬着头皮的情况下,还是做出来了。
发现其实事情并不像刚开始自己想的那样。
现在回想起来好像就是开头克服自己最难了,这大概就是人们说的万事开头难。
七、参考文献[1] 李金祥,顾小晶.实用c语言程序设计教程模块六:213-215.[2] 严蔚敏,吴伟民. 数据结构(C语言版)清华大学出版社附录(源程序代码)#include<iostream.h>#include<string.h>#include<stdlib.h>#include<conio.h>#include<fstream.h>class student{private:student* next;public:char stu_num[15]; //学号char stu_name[30]; //姓名 float stu_score ; //成绩/*在该节点后插入一个几点*/void afterInsert(student *p);/*在该节点后删除一个节点*/void afterDelete( );/*获得下一个节点的指针*/student *getNext(){return next;}/***********查询学生信息************/void getMage( );/******学生信息修改******/void changeMage(int n,char *ptr);void changegrade(float p);/******构造*****/student(char *num,char *name ,float score); student();};void student::changegrade(float p){stu_score=p;}student::student() //构造{strcpy(stu_num,"\0");strcpy(stu_name,"\0");stu_score=0;next='\0';}///*********************构造//student::student(char *num,char *name, float score) {strcpy(stu_num,num);strcpy(stu_name,name);stu_score=score;next='\0';}void student::afterInsert(student *p)//插入节点{p->next=next;next=p;}void student::afterDelete( ) //删除节点{student *p=next;next=p->next;delete p;}void student::getMage() //获得信息{cout<<"学号:"<<stu_num <<" 姓名:"<<stu_name; cout<< " c++成绩:"<<stu_score<<endl;}void student::changeMage(int n,char *ptr){switch(n){case 1: strcpy(stu_num,ptr);break;case 2: strcpy(stu_name,ptr);}}//建立链表函数void construct_list(student *tail){student *p=new student;char very[20];float achieve;cout<<"请输入学号:"<<endl;cin>>very;p->changeMage(1,very);cout<<"请输入姓名:"<<endl;cin>>very;p->changeMage(2,very);cout<<"请输入c++成绩:"<<endl;cin>>achieve;p->changegrade(achieve);system("cls");cout<<"信息输入完毕"<<endl;for(;tail->getNext()!='\0';) tail=tail->getNext(); tail->afterInsert(p);}/*********查询信息*********/student *findmege(student *head ){loop:cout<<"1--按姓名查询 2--按学号查询 q--返回上一级菜单"<<endl;char p[5],ptr[20];student *mid=head;cin>>p;if(p[0]!='1'&&p[0]!='2'&&p[0]!='q'||strlen(p)>1){system("cls");cout<<"对不起,你的输入有误,请重新输入!"<<endl;goto loop;}switch(p[0]){case '1':{system("cls");cout<<"请输入要查找姓名:"<<endl;cin>>ptr;for(;strcmp(ptr,mid->stu_name)!=0;mid=mid->getNext())if(mid->getNext()=='\0'){cout<<"对不起,你要查找的人不存在,请确认你的输入是否正确!"<<endl;goto loop;}return mid;}case '2':{system("cls");cout<<"请输入您要查找的学号:"<<endl;cin>>ptr;for(;strcmp(ptr,mid->stu_num)!=0;mid=mid->getNext())if(mid->getNext()=='\0')cout<<"对不起,您要查找的内容不存在,请确认您的输入是否正确!"<<endl; goto loop;}return mid;}case 'q': return '\0';default:{system("cls");cout<<"对不起,您的输入有误,请重新输入!"<<endl;goto loop;}}}/******************删除链表节点***********************/void delete_list(student *head){student *p='\0';char selet[4];system("cls");cout<<"在删除前,系统会根据您的提示找到您要删除的学生信息!"<<endl;p=findmege(head);if(p!='\0'){cout<<"确认要删除吗(yes/任意键返回)"<<endl;cin>>selet;if(strcmp(selet,"yes")==0){for(;head->getNext()!=p;head=head->getNext());head->afterDelete();system("cls");cout<<"该信息删除成功!"<<endl;}}/*******************修改节点信息********************/void change_info(student *head){system("cls");cout<<"在您修改前,系统会根据您提供的信息找的您要修改的信息:"<<endl;student *p='\0';float achieve;p=findmege(head);if(p!='\0'){cout<<"请输入c++成绩:"<<endl;cin>>achieve;p->changegrade(achieve);system("cls");cout<<"修改成功"<<endl;}}/**************输出学生成绩信息**************/void output(student *head){system("cls");cout<<"1-查看指定学生信息;2-查看所有学生信息;3-分段输出学生信息"<<endl; char ch;int n=0;head=head->getNext();cin>>ch;switch(ch){case '1': head=findmege(head);if(head=='\0') break;head->getMage();break;case '2': while(head){head->getMage();head=head->getNext();}break;case '3': cout<<"a-60分以下;b-60~70分之间;c-70~80分之间;d-80~90分之间;e-90~100分之间:"<<endl;cin>>ch;switch(ch){case 'a': while(head){if(head->stu_score<=60) {head->getMage();n++;}head=head->getNext();}break;case 'b': while(head){if(head->stu_score>60&&head->stu_score<=70) {head->getMage();n++;} head=head->getNext();}break;case 'c': while(head){if(head->stu_score>70&&head->stu_score<=80) {head->getMage();n++;} head=head->getNext();}break;case 'd': while(head){if(head->stu_score>80&&head->stu_score<=90) {head->getMage();n++;} head=head->getNext();}break;case 'e': while(head){if(head->stu_score>90&&head->stu_score<=100) {head->getMage();n++;} head=head->getNext();}}if(n==0) cout<<"该分段内没有您要找的学生信息"<<endl;}}/*****************主菜单************************/void mainmenu(student *head){char selet[10];int n=1;ofstream outfile ;ifstream infile ;student *p,*ptr ;student *test=head,*mid ;cout<<"*************************欢迎进入学生信息管理系统*************************"<<endl;do{cout<<"********************************************************************** ****"<<endl;cout<<"1 插入信息; 2 删除信息; 3 修改信息; 4 查看信息; 5 保存"<<endl;cout<<"q键退出 "<<endl;cout<<"********************************************************************** ****"<<endl;cin>>selet;if(((selet[0]<'1'||selet[0]>'6')&&selet[0]!='q')||strlen(selet)>1)system("cls");cout<<"您的输入有误,请重新输入!"<<endl;break;}switch(selet[0]){case '1':output(head);break;case '2': delete_list(head);break;case '3': change_info(head);break;case '4': construct_list(head);break;case '5': outfile.open("students.txt", ios::out|ios::app); for(p=head->getNext();p!='\0';p=p->getNext()){outfile<< p->stu_name <<' ';outfile<< p->stu_num <<' ';outfile<< p->stu_score <<' ';outfile<<endl;}outfile.close();system("cls");cout<<"保存成功!"<<endl;break;case 'q': break;}}while(selet[0]!='q');}void main(){student head ;mainmenu(&head);。