学生成绩管理系统
学生成绩管理系统c++课程设计

学生成绩管理系统c++课程设计学生成绩管理系统是一种用于记录和管理学生课程成绩的软件系统。
它能够帮助学校、教师和学生实时监控和分析学生的学业表现,为教育管理者提供决策支持,为学生提供个性化的学习建议。
在C++课程设计中,学生成绩管理系统可以实现以下功能:1. 学生信息管理:包括学生的基本信息(如姓名、性别、年龄、班级等),以及学生的学号、联系方式等。
系统可以提供添加、修改、删除和查询学生信息的功能。
2. 课程管理:包括课程名称、学分、授课教师等信息。
系统可以对课程进行添加、修改、删除和查询操作。
3. 成绩管理:系统可以记录学生的每门课程的成绩,并计算学生的综合成绩。
可以输入或导入成绩数据,支持对成绩进行修改、删除和查询操作。
系统还可以生成成绩报表和统计分析,帮助教师和学校了解班级或全校学生的成绩分布和趋势。
4. 学生选课管理:学生可以根据自己的兴趣或专业要求选择课程。
系统可以提供学生选课、退课的功能,并根据学生的选课情况进行课程调整和排课。
5. 教师管理:包括教师的基本信息、授课情况和成绩评定等。
系统可以对教师信息进行管理,支持教师信息的添加、修改、删除和查询操作。
6. 用户权限管理:系统可以对不同用户设置不同的权限,例如管理员可以对系统进行设置和管理,教师可以录入和修改成绩,学生可以查询自己的成绩等。
通过学生成绩管理系统,学校和教师可以更方便地管理学生的成绩,及时发现和解决学生学习中的问题。
学生可以方便地查询自己的成绩,了解自己的学业表现,及时调整学习策略。
同时,学生成绩管理系统也为教育管理者提供了数据支持,可以通过统计和分析成绩数据来评估教学效果,并为学校的教学改进提供参考依据。
在C++课程设计中,可以通过使用面向对象的编程思想,设计合适的类和数据结构来实现学生成绩管理系统的各项功能。
同时,还可以通过使用文件读写技术,将学生、课程和成绩等信息保存到文件中,实现数据的持久化存储。
在用户界面设计上,可以使用C++图形库或者命令行界面来实现用户与系统的交互。
学生成绩管理系统

学生成绩管理系统学生成绩管理系统是现代教育管理中一种重要的工具,它通过科技手段实现对学生学业情况的全面监测和评估。
学生成绩管理系统能够及时记录学生成绩,对学生学习情况进行分析和反馈,为学校和家长提供有关学生学业发展的重要信息。
本文将从学生成绩管理系统的定义、功能和优势三个方面进行探讨,以期了解学生成绩管理系统对教育管理的积极影响。
学生成绩管理系统是一种基于互联网的教学管理工具,它通过网络互联和数据存储技术,对学生的学习情况进行有效管理和分析。
学生成绩管理系统的核心功能包括学生成绩记录、统计、分析和反馈。
学生成绩记录是指将学生的考试成绩、作业成绩等数据录入系统中进行保存和管理,以便于学校和教师随时查阅。
学生成绩统计是指根据学生成绩数据进行统计和分析,得出班级、年级、学校甚至全市、全国范围内学生学习情况的综合指标。
学生成绩分析是指通过对学生成绩数据进行深入分析,探究学生学习特点、强项和薄弱点,为教学设计和评估提供依据。
学生成绩反馈是指将学生成绩情况及时反馈给学生、家长和教师,帮助他们了解学生的学业发展状况,并及时进行调整和指导。
学生成绩管理系统的功能非常丰富,可以满足各个教育管理环节的需求。
首先,学生成绩管理系统可以有效提高教务管理效率。
传统的成绩管理方式往往需要耗费大量人力物力进行成绩记录和统计工作,而学生成绩管理系统能够自动完成这些任务,大大减轻了教务人员的工作负担。
其次,学生成绩管理系统可以为教学设计和评估提供科学依据。
通过对学生成绩数据进行深入分析和比较,教师可以了解学生的学习水平和特点,为针对性教学提供支持。
再次,学生成绩管理系统可以促进学生、家长和教师之间的沟通和合作。
通过及时的成绩反馈和学业信息共享,学生和家长可以了解学生在学校的学业状况,及时与教师进行沟通和交流,共同关注学生的学习发展。
最后,学生成绩管理系统还可以提供学生综合素质评价的参考依据。
学生成绩管理系统不仅仅可以记录和统计学生的考试成绩,还可以记录学生的课堂表现、作业完成情况、课外活动等能力表现,为学生的个性化发展提供指导。
学生成绩管理系统数据流程图及数据字典

学生成绩管理系统数据流程图及数据字典一、数据流程图学生成绩管理系统是一个用于管理学生的学习成绩的系统。
下面是该系统的数据流程图:1. 学生信息录入流程:- 学生信息管理员将学生的基本信息录入系统中,包括学生的姓名、学号、班级等。
- 系统生成一个惟一的学生ID,并将学生ID与学生的基本信息关联起来。
- 学生信息管理员将学生的课程信息录入系统中,包括课程名称、课程代码等。
- 系统生成一个惟一的课程ID,并将课程ID与课程信息关联起来。
2. 成绩录入流程:- 教师登录系统后,选择要录入成绩的课程。
- 系统显示该课程下的所有学生列表。
- 教师选择要录入成绩的学生,并输入学生的成绩。
- 系统将成绩与学生ID和课程ID关联起来,并存储在数据库中。
3. 成绩查询流程:- 学生登录系统后,选择要查询成绩的课程。
- 系统显示该课程下的该学生的成绩。
4. 成绩统计流程:- 教师登录系统后,选择要统计成绩的课程。
- 系统显示该课程下的所有学生列表及其成绩。
- 教师可以选择按照成绩排序,计算平均成绩等。
二、数据字典下面是学生成绩管理系统的数据字典,包括实体和属性的定义:1. 学生(Student)实体:- 学生ID(StudentID):惟一标识学生的ID。
- 姓名(Name):学生的姓名。
- 学号(StudentNumber):学生的学号。
- 班级(Class):学生所在的班级。
2. 课程(Course)实体:- 课程ID(CourseID):惟一标识课程的ID。
- 课程名称(CourseName):课程的名称。
- 课程代码(CourseCode):课程的代码。
3. 成绩(Grade)实体:- 学生ID(StudentID):学生的ID。
- 课程ID(CourseID):课程的ID。
- 成绩(Score):学生在该课程中的成绩。
4. 用户(User)实体:- 用户ID(UserID):惟一标识用户的ID。
- 用户名(Username):用户的用户名。
学生成绩管理系统设计报告

附录一应用程序综合设计汇报——题目: 学生成绩管理系统2023年1月1.需求分析学生成绩管理系统是学生管理系统旳重要构成部分, 对学生旳德、智、体全面评估有很大旳作用, 因此学生成绩管理系统应当可认为顾客提供以便旳查询平台和数据存储功能。
老式是使用人工旳方式对学生旳信息进行存储, 对于个人旳学生成绩来说, 数据旳整顿和分析就显得很麻烦, 不利于查找、更新和维护。
因此, 顾客但愿制作一种学生成绩管理系统, 来提高老师旳工作效率, 同步予以老师便利。
根据与顾客旳交流, 一般对学生成绩管理系统有如下几点旳规定:A.可认为顾客提供以便旳数据查询功能, 满足复杂、多样旳数据查询需求。
一般我们所需要旳数据都不是可以从原始数据库中直接读取旳, 往往需要一定旳加工, 这样才能使老式复杂旳人工操作变得简朴又精确。
B、成绩管理要可以提供学校考试安排旳管理, 学生考试成绩旳管理, 以及学生单科和总成绩旳记录和分析等功能。
这些是一种学生成绩管理系统最重要旳功能构成, 包括数据旳集成、整合和分析。
上述是顾客对系统需求和功能需求旳两点规定, 我根据顾客对功能旳需求, 将整个学生成绩管理系统提成两个大旳模块, 即基本信息设置模块和成绩管理模块(如图1)。
为了能使本系统可以基本独立, 通过度析, 我又添加了学生基本信息添加功能和班级基本信息添加功能, 这样系统就可以实现本系统旳全面界面化。
2.概要设计根据需求分析, 成绩管理系统重要是实现对考试和学生成绩旳管理功能, 我设计旳整个学生成绩管理系统分为两个大旳模块, 分别为基本信息设置模块和成绩管理模块, 这两个模块包括了成绩管理系统旳所有数据存储和功能需求, 为了愈加清晰了分解学生成绩管理系统, 每个大模块又由几种子功能模块构成, 完毕顾客旳需求。
两个大模块旳子模块详细划分如图2所示:基本信息设置是成绩管理系统中某些基本数据旳添加和修改, 为了可以实现本学生成绩管理系统旳独立性, 我在基本信息设置模块中添加了学生和班级信息添加模块, 以便顾客能直接添加新增旳数据, 而不需要通过程序员来完毕。
学生成绩信息管理系统

学绩信息管理系统学绩信息管理系统文档1. 系统简介1.1 目的和背景1.2 功能概述2. 用户需求分析2.1 学生用户需求- 查看个人成绩记录及排名情况。
- 提交作业、报告等课程相关文件。
- 查询选修课程信息并进行选课操作。
2.2 教师用户需求- 录入学绩,并计算平均分与班级排名。
- 发布作业、考试安排以及其他通知事项给学生。
3.系统设计与架构3.1数据库设计-设计数据库表结构,包括:学生表、教师表、科目表等。
3-2功能模块划分-划定各个子模块职责范围,如登录认证模块, 成绩录入/查询模块, 文件模块等。
4.详细功能描述4-1登陆注册–实现不同角色(管理员/老师/學生)登錄註冊功能,包含用戶驗證與權限控制部分。
4-2成績查詢–允许學生根据条件查询个人成绩,并显示排名情况。
4-3成績录入–允许教师输入学绩,系统自动计算平均分与班级排名,并提供相应的错误提示功能。
4-4 文件- 学生可以提交作业、报告等文件;老师可发布课程资料给学生。
5. 系统测试5.1 单元测试- 对每个模块进行单元测试以验证其正确性和稳定性。
6.部署与运行环境6-1硬件需求-列出服务器及客户端所需要的硬件配置要求。
6-2软件需求-列出操作系統, 数据库管理系统和其他必须安装在服务器上的软体需求。
7.附件8.法律名词及注释:- GDPR(General Data Protection Regulation):欧洲通用数据保护条例,是为了加强对于公民隐私权利和信息处理规范而制定的一项监管政策。
- COPPA (Children's Online Privacy Protection Act):儿童在线隐私保护法案,在美国旨在增强对13岁以下孩子们网络活动中收集到他们身份信息使用者责任意识方面做了规定。
- FERPA (Family Educational Rights and Privacy Act):家庭教育权利和隐私法案,是美国一项旨在保护学生个人信息的联邦法律。
uml学生成绩管理系统

UML学生成绩管理系统简介UML学生成绩管理系统是一个用于管理学生的学业成绩的系统。
该系统可以帮助学校或教育机构轻松管理学生的课程成绩和学术表现。
功能特点1.学生管理:系统可以存储学生的个人信息,包括姓名、年龄、性别和联系方式。
2.课程管理:系统可以管理学生的课程信息,包括课程名称、授课教师、学分和上课时间。
3.成绩管理:系统可以记录学生的考试成绩和平时表现,并生成成绩报告。
4.统计分析:系统可以根据学生的成绩数据进行统计分析,包括平均成绩、最高成绩和最低成绩等。
5.导出报告:系统可以将学生的成绩报告导出为Excel或PDF格式,方便学校和教师查看和分析学生成绩。
UML类图下面是UML类图表示了学生成绩管理系统的设计和关系。
```plantuml @startumlclass Student { - id: int - name: string - age: int - gender: string - contact: string + getID(): int + getName(): string + getAge(): int + getGender(): string + getContact(): string + setID(id: int): void + setName(name: string): void + setAge(age: int): void + setGender(gender: string): void +setContact(contact: string): void }class Course { - id: int - name: string - teacher: string - credit: int - schedule: string + getID(): int + getName(): string + getTeacher(): string + getCredit(): int + getSchedule(): string + setID(id: int): void + setName(name: string): void + setTeacher(teacher: string): void + setCredit(credit: int): void + setSchedule(schedule: string): void }class Grade { - student: Student - course: Course - score: int + getStudent(): Student + getCourse(): Course + getScore(): int + setStudent(student: Student): void + setCourse(course: Course): void + setScore(score: int): void }class GradeReport { - grades: List + addGrade(grade: Grade): void + removeGrade(grade: Grade): void + getAverageScore(): double + getMaxScore(): int + getMinScore(): int + generateReport(): void }Student。
数据库课程设计学生成绩管理系统

可以进一步加强系统的 安全性设计,如增加用 户权限管理、数据备份 与恢复等功能,确保数 据的完整性和安全性。
THANKS
感谢观看
情况下的容错处理。
性能测试用例
设计针对不同用户数量和不同数据量 的测试用例,以验证系统的性能和稳
定性。
安全测试用例
设计针对系统安全性的测试用例,如 用户权限验证、数据加密传输等。
测试执行与结果分析
测试执行
按照测试计划和测试用例进行测试,记录测试结果和发现的问题 。
问题跟踪与修复
对发现的问题进行跟踪,确保问题得到及时修复,并重新进行测试 验证。
测试方法
采用黑盒测试和白盒测试相结合的方法,包括功能测试、 性能测试、安全测试等。
测试范围
包括系统的所有功能模块,如学生信息管理、课程管理、 成绩录入与查询、报表生成等。
测试资源
包括测试人员、测试环境、测试数据等。
测试用例设计
功能测试用例
针对系统的每个功能模块设计测试用 例,包括正常情况下的操作以及异常
系统功能实现
课程信息管理
实现课程基本信息的录入、修 改、查询和删除功能。
报表生成
根据需求生成各类报表,如学 生成绩单、课程统计表等。
学生信息管理
实现学生基本信息的录入、修 改、查询和删除功能。
成绩录入与查询
实现学生成绩的录入、修改、 查询和删除功能,支持批量导 入成绩数据。
权限管理
实现不同用户角色的权限管理 ,确保系统的安全性和稳定性 。
常见问题与解决方案
数据库连接问题
检查数据库连接配置是否正确,确保数据库服务 正常运行,并尝试重新启动数据库服务或修复连 接问题。
系统性能下降
学生成绩管理系统

学生成绩管理系统学生成绩管理系统是一个用于管理、记录和分析学生学习成绩的工具。
它可以帮助学校、教师和家长更好地了解学生的学习情况,提供个性化的教学指导和辅导。
本文将介绍学生成绩管理系统的功能、优势以及在实际应用中的作用。
一、功能介绍1. 学生信息管理:学生成绩管理系统可以存储和管理学生的个人信息,包括姓名、班级、学号、家庭联系方式等。
教师和学校可以通过系统快速查找和更新学生信息。
2. 成绩录入与查询:学生的各科成绩可以通过系统进行录入和查询。
教师可以根据学科、班级或学生姓名进行成绩查询,及时了解学生的学习情况。
3. 成绩分析与报告:学生成绩管理系统可以根据学生的成绩数据生成详细的成绩分析报告。
通过分析学生在不同科目、不同时间段的表现,教师可以更好地评估学生的学习水平和进步空间,及时调整教学内容和方法。
4. 学习计划和目标设定:学生成绩管理系统可以帮助学校和教师制定学生个性化的学习计划和目标。
根据学生的历史成绩和评估结果,系统可以推荐适合学生的学习资源和教材,提供针对性的学习建议。
5. 家校互动平台:学生成绩管理系统还提供了家校互动的功能,家长可以通过系统查看学生的成绩和评语,与教师进行实时沟通。
教师可以向家长发布通知、作业、考试安排等信息,促进学校和家庭的紧密合作。
二、系统优势1. 提高工作效率:学生成绩管理系统可以自动化完成学生信息管理、成绩录入和查询等繁琐的工作,节省教师和学校的时间和精力。
2. 数据准确性:通过使用学生成绩管理系统,可以避免人为录入错误和纰漏,确保学生成绩数据的准确性和完整性。
3. 个性化分析:学生成绩管理系统提供了丰富的成绩分析功能,可以根据学生的特点和需求进行个性化评估和辅导,促进学生全面发展。
4. 促进教学改进:通过对学生成绩进行全面分析,教师可以及时发现学生的薄弱环节和问题,采取有针对性的教学改进措施,提高教学效果。
5. 加强家校联系:学生成绩管理系统提供了家校互动平台,方便教师和家长之间及时沟通,共同关注学生的学习情况和发展。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
课程设计报告课程名称《数据结构》课题名称 _学生成绩管理系统专业计嵌班级学号姓名指导教师2013年 12 月 25 日前言设计课题三十:学生成绩管理系统一、问题描述:现有学生成绩信息文件1(1.txt),内容如下姓名学号语文数学英语张明明01 67 78 82李成友02 78 91 88张辉灿03 68 82 56王露04 56 45 77陈东明05 67 38 47…. .. .. .. …学生成绩信息文件2(2.txt),内容如下:姓名学号语文数学英语陈果31 57 68 82李华明32 88 90 68张明东33 48 42 56李明国34 50 45 87陈道亮35 47 58 77….试编写一管理系统,要求如下:1) 实现对两个文件数据进行合并,生成新文件3.txt2) 抽取出三科成绩中有补考的学生并保存在一个新文件4.txt3) 对合并后的文件3.txt中的数据按总分降序排序(至少采用两种排序方法实现)4) 输入一个学生姓名后,能查找到此学生的信息并输出结果(至少采用两种查找方法实现)5) 要求使用结构体,链或数组等实现上述要求.二、功能要求:1、实现对两个文件数据进行合并,生成新文件3.txt。
2、本系统显示这样的菜单:请选择系统功能项:0.退出1.显示学生信息2.显示按学号排序后的学生信息3.显示按总分排序后的学生信息4.按学号查学生各科分数和总分5.按姓名查学生各科分数和总分6.抽取出三科成绩中有补考的学生并保存三、算法提示:1、数据结构:结构体类型数组四、测试数据:学生人数N=10五、其它:对该系统有兴趣的同学可以在实现上述基本功能后,完善系统的其它功能。
目录第一章绪论第一节课程背景第二节本文所做工作第二章需求分析第三章总体设计第四章详细设计第五章测试第六章使用说明第七章总结附录A 源代码附录B 参考资料第一章绪论学生成绩管理系统是一个教育单位不可缺少的部分,它的内容对于学校的决策者和管理者来说都至关重要,所以学生成绩管理系统应该能够为用户提供充足的信息和快捷的查询手段。学生档案管理系统是典型的信息管理系统(MIS),经过分析如此情况,我们用code#blocks开发工具,利用其提供的各种面向对象的开发工具和功能强大的SQL(结构化查询语言)。
第一节课程背景在我国,各大中小学校的各类信息管理系统并非一个新的课题,但也有的学校根本就没有信息任何管理系统,所有的工作几乎还是手工操作来完成。
计算机技术在日新月异的发展,但是有的很多学校,特别是在西部贫困地区,学校的种类管理都依然由手工操作来完成,这十分落后,效率极低,成本很大,而且极异出错。
随着社会的发展,信息化是社会进程的必然趋势,学校管理只有只有快,准,精才能发挥其价值。
所以机器代替人力是必然的历史发展趋势,只有领导的重视和支持才能从人工操作改为计算机的自动化系统。
人工操作必将被计算机代替。
有些学校虽使用了计算机,甚至管理系统,但是仍然存在很多问题,问题一日不解决,效率就一日提不上去。
第二节本文所做工作本系统是将现代化的计算机技术和传统的教学、教务工作相结合,按照学院的工作流程设计完成的。
为了使系统在学院的管理中发挥更大的作用,实现工作过程的计算机化,提高工作效率和工作质量,现提出如下的系统开发目标:(1)系统管理员进入学生成绩管理系统学生档案管理的主要功能是:实现添加学生的基本信息、修改学生的基本信息、查询学生的基本信息、删除学生的基本信息等基本功能。
(2)系统管理员进入学生成绩管理系统学生成绩管理的主要功能是:实现学生成绩的录入、学生成绩的修改与保存等基本功能。
(3)系统管理员进行学生成绩管理系统查询与统计的主要功能是:实现根据某个学生的基本信息查询他的成绩,还可以根据学生成绩的高低进行排序等基本功能。
1.1 编写目的本需求的编写目的在于研究学生成绩管理系统软件的开发途径和应用方法。1.2 背景及范围本项目的名称:学生成绩管理系统。本软件基本上能具体化、合理化的管理学生的学籍档案,用结构化的思维方式去了解计算机的基本工作原理和高级程序设计语言。1.3 功能主要功能:学生成绩录入、学生信息和成绩修改、查询成绩。第二章系统需求分析可以使用户录入学生信息,并在系统中显示出来,还能对录入的信息进行保存,当需要时还可以对信息进行修改和删除,还能分别用学号、姓名、性别、年龄对学生信息进行查询,用户进入系统需要输入密码。
第三章总体设计struct student:一个结构体类型,他能存放姓名、学号、语文、数学、英语等成绩等不同类型数据组成的组合型的数据结构。
void main():主函数。
FILE * fp:定义一个指向文件的指针变量fp.fp=fopen("学生成绩","w +"):将fopen函数的返回值赋给指针变量fp,或者说,fp指向了学生信息这个文件。
如果文件不存在,则建立一个新的文本文件。
Fscanf,fprintf:用格式化的方式读写文件。
Strcmp:字符串比较函数。
Strcpy:字符串复制函数。
程序中还用到当型循环、swith分支语句、if语句等。
system("cls");:清屏函数,使界面更简洁。
第四章系统调试系统主界面显示学生信息显示按学号排序后的学生信息(按升序)显示按总分排序后的学生信息按学号查学生各科分数和总分按姓名查学生各科分数和总分抽取出三科成绩中有补考的学生并保存第五章使用说明利用结构体函数类型,使函数显得没那么繁琐,利用文件指针,输入的信息将保存在文件中,以便下次查询和修改,使用“w+”方式读写文件,当指定那个文件不存在时,将建立一个文件,不会出现出错信息。
利用fscanf和fprintf 实现对文件的读写。
不足之处:录入的信息没能保存,每次便已运行需要重新输入数据,对所学的东西没有合理结合。
第七章总结当刚开始听到要课程设计时,心里有点怕怕的,因为毕竟刚接触c语言,虽说也学到了一些皮毛,但当听到要自己去编写程序时,才发现自己不会的不懂的还多着呢,要编写一个程序还是有一些困难的,当真的让我去编写程序时,真的是有点怕怕的感觉。
刚入学时,听到要学习c语言时,我是非常的感兴趣,也非常高兴,因为那游戏、软件都要用c语言来实现,我想探究一下那到底是怎么实现的,能达到那样的效果,所以刚开始我很有激情,每节课我都认真听讲,虽然刚开始听起来有点困难,但是我相信功夫不负有心人,我知道课堂上的知识是不够的,所以我利用课下时间,积极搜寻与之相关的信息,去图书馆借阅相关资料和习题,来增长自己的知识。
当程序写完了,我终于可以松口气了,经过一个思考,查资料,写源程序,上机调试.现在终于告一段落了.看到自己的劳动成果,心中不免有些惊喜,没想到自己还能独立完成初次的课程设计,虽然不敢说这个程序都是我一个人写的,但其中大部分都是我的成果,另外我还参考了别人的意见,对自己的程序进行修改和完善。
这种课程设计对我们是非常有好处的,对C这门程序语言的掌握却有非常大的作用.从开始对题目的分析,就注定摆在我这样一个对C了解不多的新手面前的是一段艰难的旅程.但最终很庆幸的是我居然能够坚持下来,而且完成了设计工作.C语言是很难学的,这也许是因人而异,但对我来说确实是一个障碍。
如今要自己完成一个课程设计,无疑是对自己的一个挑战.先是上网查找有关的资料,分析题目所需的数据,要用到哪些函数等等,星期二上网初步调试,将函数用些结构和语句连接起来,做这个工作时,又将书本翻阅了一遍,重新获得许多东西。
如带参函数的特点,以及一些语句的运用及特点等等。
将工作分配到每块是我完成这个设计的主要方法,然而将每块都完成看起来比较轻松,但实际操作起来却是比较麻烦的.由于平时对C知识的积累较为匮乏,(这可能是最主要的原因了),所以操作起来真是寸步难行,没办法,只有拿出课本找到相应的知识点,临阵磨枪.费了一番功夫,再上机调试时就是最痛苦的时候了,错误一大堆,要一个一个的修改。
经过几翻调试修改之后终于可以执行了,那时还兴奋了好长时间呢!然而执行出来的结果是不令人满意的,界面不美观不说,最重要的是输入太烦琐,而且受到的限制太多,如只能以某种方式输入,且个数受限制。
于是又发费了大量时间去修改,终于比较满意了,但也到了星期五了,也就是答辩的时间。
答辩的时候我才发现还有好多知识是我不会的,老师问了我一些问题,我回答出来的却不多,我体会到我还要很努力的学习,在C的学习上我还有很长的一段路要走。
今天不管怎样把这个设计作出来是件很高兴的事情,不过能够把这个设计顺利完成要归功于我的指导老师,帮了我很多忙,也让我发现了我有好多欠缺的地方,真的很感谢你们,谢谢!不管怎么说,我还是完成了这个设计.虽说累了点,但我想这对我们进一步掌握C,并为下学期的C二级考试是有很大的帮助的.能够编出程序,其实本身就是对自己的一种肯定,是对自己前面一段时间学习C综合水平的一个检阅.当然完成后的兴喜,只有经历过了才能体会到,而我体会到了.C语言课程设计是培养学生综合运用所学知识,发现,提出,分析和解决实际问题,锻炼实践能力的重要环节,是对学生实际工作能力的具体训练和考察过程.随着科学技术发展的日新日异,当今计算机应用在生活中可以说得是无处不在。
因此作为二十一世纪的大学来说掌握计算机开发技术是十分重要的。
从拿到题目到完成整个编程,从理论到实践,在整整一个星期的日子里,可以学到很多很多的的东西,同时不仅可以巩固了以前所学过的知识,而且学到了很多在书本上所没有学到过的知识。
通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。
在设计的过程中遇到问题,可以说得是困难重重,这毕竟第一次做的,难免会遇到过各种各样的问题,同时在设计的过程中发现了自己的不足之处,对以前所学过的知识理解得不够深刻,掌握得不够牢固,比如说结构体……通过这次课程设计之后,一定把以前所学过的知识重新温故。
这次课程设计我最要感谢的就是我们的几位指导老师,老师们每天都不辞劳苦为我们服务,不管我们有什么问题,他们都耐心的为我们解答,我们有什么错误他们都积极给我们指正出来,虽然有时也批评一下,但这对我们是有很大帮助的,有这么多优秀的指导老师,我想我以后的学习会更上一层楼。
附录A 源代码# include <stdio.h> # include <stdlib.h> # include <string.h> # include <stdbool.h> # include <math.h># include <conio.h># define eps 1;typedef struct{char name[50];int num;int Chinese;int Math;int English;int sum;}Node;Node student[1000];int n;char text[50];int cmp(const void *a, const void *b){return (*(Node *)b).sum > (*(Node *)a).sum?1:-1;}int cmpnum(const void *a, const void *b){return (*(Node *)a).num > (*(Node *)b).num?1:-1;}void showstudent(){int i;printf(" \t姓名\t学号\t语文\t数学\t英语\t总分\n");for(i=0;i<n;i++){printf("\t%s\t%d\t%d\t%d\t%d\t%d\n",student[i].name,student[i].num,student[i].Chinese,student[i].Math,stude nt[i].English,student[i].sum);}getch();menu();}void sortnum(){int i,j,k;char a[55];for(i=0;i<n;i++){for(j=0;j<n-i-1;j++){if(student[j].num>student[j+1].num){k=student[j].num;student[j].num=student[j+1].num;student[j+1].num=k;k=student[j].Chinese;student[j].Chinese=student[j+1].Chinese;student[j+1].Chinese=k;k=student[j].Math;student[j].Math=student[j+1].Math;student[j+1].Math=k;k=student[j].English;student[j].English=student[j+1].English;student[j+1].English=k;k=student[j].sum;student[j].sum=student[j+1].sum;student[j+1].sum=k;strcpy(a,student[j].name);strcpy(student[j].name,student[j+1].name);strcpy(student[j+1].name,a);}}}showstudent();getch();menu();}void sortsum(){qsort(student, n, sizeof(Node), cmp);showstudent();getch();menu();}void searchnum(int number){int min = 0, max = n-1, mid;bool escape = false;qsort(student, n, sizeof(Node), cmpnum); while(min <= max){mid = (min + max) / 2;if(student[mid].num > number){max = mid - eps;}else if(student[mid].num < number) {min = mid + eps;}else{escape = true;printf("\t姓名\t学号\t语文\t数学\t英语\t 总分\n");printf("\t%s\t%d\t%d\t%d\t%d\t%d\n", student[mid].name, student[mid].num, student[mid].Chinese, student[mid].Math, student[mid].English, student[mid].sum);break;}}if(!escape){printf("\t查无此人");}getch();menu();}void searchname(){ int i;for(i=0;i<n;i++){if(strcmp(text,student[i].name)==0){printf("\t姓名\t学号\t语文\t数学\t英语\t总分\n");printf("\t%s\t%d\t%d\t%d\t%d\t%d\n", student[i].name, student[i].num, student[i].Chinese, student[i].Math, student[i].English, student[i].sum);break;}}if(i>=n){printf("\t查无此人\n");}getch();menu();}void save(){FILE *fp;fp=fopen("4.txt","w");int i;fprintf(fp, "\t姓名\t学号\t语文\t数学\t英语\t总分\n");for(i=0;i<n;i++){if(student[i].Chinese<60||student[i].Math<60||studen t[i].English<60){printf("\t%s\t%d\t%d\t%d\t%d\n",student[i].name,student [i].num,student[i].Chinese,student[i].Math,student[i].E nglish);fprintf(fp,"\t%s\t%d\t%d\t%d\t%d\n",student[i].name, student[i].num,student[i].Chinese,student[i].Math,stude nt[i].English);}}printf("\n");printf("┏━━━━┓\n");printf("┃保存成功┃\n");printf("┗━━━━┛\n");getch();menu();}void menu(){int choice;system("cls");printf(" 菜单\n");printf("┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓\n");printf("┃0.退出┃\n");printf("┃ 1.显示学生信息┃\n");printf("┃ 2.显示按学号排序后的学生信息┃\n");printf("┃ 3.显示按总分排序后的学生信息┃\n");printf("┃ 4.按学号查学生各科分数和总分┃\n");printf("┃ 5.按姓名查学生各科分数和总分┃\n");printf("┃ 6.抽取出三科成绩中有补考的学生并保存┃\n");printf("┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛\n");printf(" 选择代码(0,1,2,3,4,5,6): ");scanf("%d", &choice);switch(choice){case 0:{system("cls");printf("谢谢使用!\n");exit(0);}case 1:{system("cls");showstudent();}case 2:{system("cls");sortnum();}case 3:{system("cls");sortsum();}case 4:{system("cls");int num;printf("\t请输入要查找学生的学号:"); scanf("%d", &num);searchnum(num);}case 5:{system("cls");printf("\t请输入要查找学生的姓名:");scanf("%s", text);searchname();}case 6:{system("cls");save();}}}int main(){n = 0;FILE * fp;fp=fopen("1.txt","r+");{while(fscanf(fp, "%s %d %d %d %d", student[n].name,&student[n].num, &student[n].Chinese, &student[n].Math, &student[n].English)!=EOF){student[n].sum = 0;student[n].sum += student[n].Chinese;student[n].sum += student[n].Math;student[n].sum += student[n].English;n++;}fclose(fp);}fp=fopen("2.txt","r+");{while(fscanf(fp, "%s %d %d %d %d", student[n].name, &student[n].num, &student[n].Chinese, &student[n].Math, &student[n].English)!=EOF){student[n].sum = 0;student[n].sum += student[n].Chinese;student[n].sum += student[n].Math;student[n].sum += student[n].English;n++;}fclose(fp);}menu();return 0;}附录B 参考资料《C程序设计(第三版)》谭浩强主编清华大学出版社《C语言常用函数速查手册》陈超主编化学工业出版社《C语言程序设计实用教程》曹岩、刘佳主编西北工业大学出版社《算法竞赛入门》刘汝佳主编清华大学出版社。