c++面向对象课程设计报告(学生成绩管理系统)
学生成绩管理系统c语言课程设计报告
学生成绩管理系统c语言课程设计报告一、引言学生成绩管理系统是一个为学校或教育机构提供学生学业成绩管理的重要工具。
通过该系统,可以方便地记录和查询学生的各项成绩,帮助教师和学生了解学生的学业表现,及时作出教学和学习的调整和改进。
本文将介绍一个基于C语言的学生成绩管理系统的设计与实现。
二、需求分析1. 学生信息管理:包括学生基本信息的录入、修改和删除。
2. 成绩信息管理:包括成绩的录入、修改和删除。
3. 成绩查询与统计:可以按照学生学号或姓名查询学生的成绩,并能够进行成绩的统计分析,如计算平均分和排名等。
4. 数据存储与备份:能够将学生信息和成绩信息存储在文件中,并能够进行数据的备份和恢复。
三、系统设计1. 学生信息管理模块:设计一个结构体来存储学生的基本信息,包括学号、姓名、性别、年龄等。
通过菜单选择,可以实现学生信息的录入、修改和删除功能。
2. 成绩信息管理模块:设计一个结构体来存储学生的成绩信息,包括科目名称和成绩。
通过菜单选择,可以实现成绩信息的录入、修改和删除功能。
3. 成绩查询与统计模块:通过学号或姓名查询学生的成绩,并能够进行成绩的统计分析,如计算平均分和排名等。
4. 数据存储与备份模块:设计文件操作函数,将学生信息和成绩信息存储在文件中,并能够进行数据的备份和恢复。
四、系统实现1. 使用C语言编写程序代码,通过结构体和数组等数据结构实现学生信息和成绩信息的存储。
2. 利用文件操作函数实现数据的读取和存储,包括学生信息和成绩信息的存储和备份。
3. 设计菜单界面,通过用户选择来实现各个功能模块的调用。
五、系统测试与优化1. 针对各个功能模块进行测试,验证系统的正确性和稳定性。
2. 根据测试结果优化程序代码,提高系统性能和用户体验。
3. 完善系统功能,考虑异常情况的处理,提高系统的容错性和健壮性。
六、总结与展望通过本次课程设计,我们成功实现了一个基于C语言的学生成绩管理系统。
该系统能够方便地记录和查询学生的成绩信息,帮助教师和学生进行教学和学习的分析和改进。
C学生成绩管理系统课程设计报告
C学生成绩管理系统课程设计报告The document was prepared on January 2, 2021一.目的与要求通过本课程设计的实践,全面总结C++课程学习中的的数据类型、程序结构、数组、函数、指针、结构体、链表等基本概念,掌握其使用方法。
掌握面向对象程序设计中有关类、对象、继承、重载、多态性、输入输出流类体系、文件操作的基本概念,初步学会用类与对象这种面向对象的程序设计方法编写应用程序。
培养使用面向对象的程序设计方法编写计算机程序的能力。
通过设计一个《学生成绩统计管理》,进一步熟悉C++中类的概念、类的封装、继承的实现方式。
了解系统开发的需求分析、类层次设计、模块分解、编码测试、模块组装与整体调试的全过程,加深对C++的理解与Visual C++环境的使用;逐步熟悉程序设计的方法,并养成良好的编程习惯。
程序设计是一门实践性很强的课程,必须十分重视实践环节。
许多实际的知识不是靠听课和看书学到的,而是通过长时间的实践积累的。
一、设计内容学生成绩管理系统1.基本功能:这个程序的主要功能是输入学生姓名、成绩,学号,并可以对学生的成绩按学号进行查询。
该系统具有存贮学生数据,按学号按需要修改学生成绩,列出学生成绩和统计功能。
2.扩展功能:学生数据的添加、修改、与删除—R二、过程与结果主要内容如下:1.关键类的设计,继承层次关系,代码:首先,创建了一个student类. Student类的声明如下:class Student{public:int Class,num;char name[8];float cpp,math,eng,ave;int order;Student *next;public:Student() {}Student(int c1,int n1,char*n,float e1,float c2,float m,float e2,float s,float p,float a,int o,Student *next=NULL){Class=c1;num=n1;strcpy(name,n);cpp=c2;math=m;eng=e2;ave=a;order=o;this->next=next;}主要功能函数的设计:1.创建学生数据,对学生的成绩的录入。
c++面向对象课程设计报告 (学生成绩管理系统)
课程设计报告课程名称面向对象程序设计课题名称学生成绩管理系统专业计算机科学与技术班级计算机1001学号2010030101姓名指导教师李珍辉陈淑红李杰军2011年12 月28 日湖南工程学院课程设计任务书课程名称面向对象程序设计课题学生成绩管理系统专业班级计算机1001学生姓名学号2010030101指导老师李珍辉陈淑红李杰军审批任务书下达日期2011 年11 月15 日任务完成日期2011 年12 月28 日一、设计内容与设计要求1.课程设计目的:面向对象程序设计课程设计是集中实践性环节之一,是学习完《面向对象程序设计》课程后进行的一次全面的综合练习。
要求学生达到熟练掌握C++语言的基本知识和技能;基本掌握面向对象程序设计的思想和方法;能够利用所学的基本知识和技能,解决简单的面向对象程序设计问题,从而提高动手编程解决实际问题的能力。
2.课题题目1)公司库存管理系统2)高校学籍管理系统3)高校工资管理系统4)高校人事管理系统5)通讯录程序设计6)学生成绩管理系统7) 图书管理系统8)文本编辑器的设计与实现9)学生考勤管理系统10)公司人员管理系统3.设计要求:⑴设计课题题目:每位同学根据自己学号除以10所得的余数加1选择相应题号的课题。
随意换题者不记成绩。
⑵根据自己对应的课题完成以下主要工作:①完成系统需求分析:包括系统设计目的与意义;系统功能需求(系统流程图);输入输出的要求。
②完成系统总体设计:包括系统功能分析;系统功能模块划分与设计(系统功能模块图)。
③完成系统详细设计:包括数据库需求分析;数据库概念结构设计(E-R图);数据库逻辑结构设计;类层次图;界面设计与各功能模块实现。
④系统调试:调试出现的主要问题,编译语法错误及修改,重点是运行逻辑问题修改和调整。
⑤使用说明书及编程体会:说明如何使用你编写的程序,详细列出每一步的操作步骤。
⑥关键源程序(带注释)⑶按规定格式完成课程设计报告,将其打印稿(A4纸)上交给老师存档。
c学生成绩管理系统课程设计报告
c学生成绩管理系统课程设计报告一、教学目标本课程的教学目标是使学生掌握学生成绩管理系统的核心知识,包括系统的设计、实现和应用。
具体来说,知识目标要求学生了解成绩管理系统的原理、结构和常用技术;技能目标要求学生能够使用相关工具和语言进行成绩管理系统的开发和维护;情感态度价值观目标要求学生认识到成绩管理系统在教育领域的重要性,培养学生的责任感和使命感。
二、教学内容根据课程目标,教学内容主要包括成绩管理系统的原理、结构、设计和实现。
具体来说,教材的章节安排如下:1.第一章:成绩管理系统的概述,介绍成绩管理系统的定义、功能和应用场景。
2.第二章:成绩管理系统的结构与原理,讲解成绩管理系统的组成部分、工作原理和关键技术。
3.第三章:成绩管理系统的需求分析,引导学生学习如何进行需求分析,并编写需求说明书。
4.第四章:成绩管理系统的系统设计,教授系统设计的方法和技巧,包括数据库设计、界面设计和模块划分。
5.第五章:成绩管理系统的实现与测试,指导学生进行系统编码、调试和测试,确保系统功能的正确性和稳定性。
三、教学方法为了实现课程目标,我们将采用多种教学方法,如讲授法、讨论法、案例分析法和实验法。
具体来说:1.讲授法:用于讲解成绩管理系统的理论知识,帮助学生建立系统性的知识体系。
2.讨论法:鼓励学生就实际问题进行讨论,培养学生的思考能力和团队协作精神。
3.案例分析法:通过分析典型成绩管理系统案例,使学生更好地理解并应用所学知识。
4.实验法:让学生动手实践,亲身体验成绩管理系统的开发和应用过程,提高学生的实际操作能力。
四、教学资源为了支持教学内容和教学方法的实施,我们将准备以下教学资源:1.教材:选用权威、实用的教材,为学生提供系统性的知识学习。
2.参考书:提供丰富的参考资料,帮助学生拓展视野,深入理解成绩管理系统。
3.多媒体资料:制作课件、教学视频等多媒体资料,增强课堂教学的趣味性和互动性。
4.实验设备:配置必要的实验设备,确保学生能够进行实际操作,提高实践能力。
学生成绩管理系统实验报告,C++
char sjk[10];
char jsjyy[10];
int pjf;
}Student;
Student stu[80];
int menu()
{
char c;
for(;c<'0'||c>'8';)
{
system("cls");
cout<<"
欢迎使用本学
生 成 绩 管 理 系 统 !! "<<endl;
#include<string.h>
#include<iostream>
#include<iomanip>
using namespace std;
typedef class
{
public:
char num[10];
char cla[10];
char name[10];
char byyl[10];
char jsjzc[10];
二 总 体 设 计 ........................................................................................5 三 详 细 设 计 ........................................................................................6 四 调 试 与 测 试 ................................................................................. 16 五 心 得 体 会 ......................................................................................21
c语言课程设计报告学生成绩管理系统
c语言课程设计报告学生成绩管理系统一、教学目标本课程旨在让学生掌握C语言的基本语法和编程技巧,通过实现一个学生成绩管理系统,培养学生运用C语言解决实际问题的能力。
具体目标如下:1.知识目标:–掌握C语言的数据类型、运算符、控制结构、函数等基本语法。
–理解结构体和文件操作等相关知识。
2.技能目标:–能够运用C语言编写简单的程序。
–学会使用C语言实现数据的输入、输出和处理。
–掌握使用结构体创建学生成绩数据结构,并实现对成绩的增删改查等操作。
3.情感态度价值观目标:–培养学生对编程的兴趣,增强自信心。
–培养学生的团队协作能力和解决问题的能力。
二、教学内容本课程的教学内容主要包括C语言的基本语法、数据结构、文件操作等。
具体安排如下:1.C语言基本语法:数据类型、变量、运算符、控制结构、函数等。
2.数据结构:结构体、数组、指针等。
3.文件操作:文件的打开、关闭、读写等。
4.学生成绩管理系统:实现一个学生成绩管理系统,包括学生的增删改查、成绩的排序、统计等功能。
三、教学方法本课程采用讲授法、案例分析法和实验法相结合的教学方法。
1.讲授法:用于讲解C语言的基本语法和概念。
2.案例分析法:通过分析实际案例,让学生学会运用C语言解决实际问题。
3.实验法:让学生动手实践,编写程序,培养实际编程能力。
四、教学资源1.教材:《C程序设计语言》或《C语言入门教程》。
2.参考书:《C Primer Plus》、《C语言编程思想》等。
3.多媒体资料:教学PPT、视频教程等。
4.实验设备:计算机、网络等。
五、教学评估本课程的评估方式包括平时表现、作业、考试等。
评估方式应客观、公正,能够全面反映学生的学习成果。
具体安排如下:1.平时表现:占课程总评的30%,包括课堂参与度、提问回答、小组讨论等。
2.作业:占课程总评的30%,包括课后练习、编程作业等。
3.考试:占课程总评的40%,包括期中考试和期末考试。
六、教学安排本课程的教学安排如下:1.教学进度:按照教材的章节进行教学,确保在有限的时间内完成教学任务。
学生成绩管理系统c语言课程设计报告
学生成绩管理系统c语言课程设计报告一、项目概述本项目是一个基于C语言的学生成绩管理系统,旨在实现对学生信息及其成绩的录入、查询、修改和删除等功能。
通过该系统,可以方便地管理学生的个人信息和成绩情况,提高教学效率和管理水平。
二、项目功能1. 学生信息录入:包括学生姓名、性别、年龄、学号、班级等基本信息的录入。
2. 成绩录入:包括语文、数学、英语等科目的成绩录入。
3. 学生信息查询:按照学号或者姓名进行学生信息的查询。
4. 成绩查询:按照学号或者姓名进行学生成绩的查询。
5. 学生信息修改:对学生信息进行修改,包括姓名、性别、年龄、学号、班级等。
6. 成绩修改:对学生成绩进行修改,包括语文、数学、英语等科目。
7. 学生信息删除:删除指定学生的个人信息及其成绩记录。
8. 成绩统计:针对所有学生的各科成绩进行统计,包括总分、平均分、最高分、最低分等。
三、开发环境和工具1. 操作系统:Windows 102. 编程语言:C语言3. 集成开发环境:Dev-C++ 5.11四、项目实现1. 学生信息和成绩的存储方式采用结构体数组的方式进行学生信息和成绩的存储,通过循环遍历的方式可以方便地对学生信息和成绩进行操作。
2. 功能模块的实现(1) 学生信息录入模块:通过键盘输入的方式逐条录入学生信息,并将其存储到结构体数组中。
```void input(Student stu[], int n){for(int i = 0; i < n; i++){printf("请输入第%d个学生的信息:", i+1);printf("姓名:");scanf("%s", &stu[i].name);printf("性别:");scanf("%s", &stu[i].sex);printf("年龄:");scanf("%d", &stu[i].age);printf("学号:");scanf("%d", &stu[i].num);printf("班级:");scanf("%d", &stu[i].class);}}```(2) 成绩录入模块:通过键盘输入的方式逐条录入学生成绩,并将其存储到结构体数组中。
面向对象课程设计报告学生成绩管理系统
面向对象课程设计报告:学生成绩管理系统1. 引言学生成绩管理系统是一个用于管理学校中学生课程成绩的软件应用程序。
本报告旨在描述学生成绩管理系统的设计与实现过程。
学生成绩管理系统采用面向对象的设计方法,以提高系统的可扩展性、可维护性和可重用性。
2. 系统需求分析学生成绩管理系统需要满足以下功能需求: - 学生管理:包括学生信息的增删改查操作。
- 课程管理:包括课程信息的增删改查操作。
- 成绩管理:包括成绩的录入和查询功能。
- 统计分析:具备对学生成绩的统计和分析能力。
3. 系统设计3.1 类的设计根据系统需求分析,学生成绩管理系统主要包括以下几个类:- Student(学生类):包含学生的基本信息,例如学号、姓名、性别等。
- Course(课程类):包含课程的相关信息,例如课程编号、课程名称、学分等。
- Grade(成绩类):包含学生成绩的相关信息,例如学生、课程、成绩等。
- GradeManagementSystem(成绩管理系统类):包含对学生、课程和成绩进行管理和操作的方法。
3.2 类之间的关系学生成绩管理系统中,学生、课程和成绩之间存在以下关系: - 学生和课程:学生可以选择多门课程,课程可以被多个学生选择,是多对多的关系。
- 学生和成绩:每个学生可以有多门成绩,一个成绩对应一个学生,是一对多的关系。
- 课程和成绩:每门课程可以有多个成绩,一个成绩对应一门课程,是一对多的关系。
3.3 类的实现class Student:def__init__(self, student_id, name, gender): self.student_id = student_id = nameself.gender = genderclass Course:def__init__(self, course_id, name, credit): self.course_id = course_id = nameself.credit = creditclass Grade:def__init__(self, student, course, score):self.student = studentself.course = courseself.score = scoreclass GradeManagementSystem:def__init__(self):self.students = []self.courses = []self.grades = []def add_student(self, student):self.students.append(student)def remove_student(self, student):self.students.remove(student)def add_course(self, course):self.courses.append(course)def remove_course(self, course):self.courses.remove(course)def add_grade(self, grade):self.grades.append(grade)def remove_grade(self, grade):self.grades.remove(grade)def get_student_grades(self, student): student_grades = []for grade in self.grades:if grade.student == student:student_grades.append(grade) return student_gradesdef get_course_grades(self, course):course_grades = []for grade in self.grades:if grade.course == course:course_grades.append(grade)return course_grades4. 系统实现学生成绩管理系统可以采用Python语言实现。
原创c语言学生成绩管理系统设计报告
原创C语言学生成绩管理系统设计报告一、引言学生成绩管理是学校教务工作中的重要组成部分,对于学校管理和学生评价具有重要意义。
为了提高学生成绩管理效率和准确性,本文设计并实现了一个基于C语言的学生成绩管理系统。
本系统以学生的基本信息和成绩为核心,提供了学生信息录入、成绩查询、成绩统计等功能,方便学校教务人员管理学生的学籍和成绩信息。
二、需求分析学生成绩管理系统的主要功能需求如下: 1. 学生信息的录入和修改:系统需要提供录入学生基本信息(如姓名、学号、性别、年级等)的功能,同时可以修改已录入学生的信息。
2. 学生成绩的录入和修改:系统需要提供录入学生成绩的功能,在录入成绩时,需要输入学生学号和各科成绩,并计算总分和平均分。
同时可以修改已录入学生的成绩信息。
3. 学生成绩的查询和统计:系统需要提供根据学生学号或姓名查询学生成绩的功能,并能够对学生成绩进行统计,包括科目平均分、总分排名等。
4. 界面友好、操作简便:系统需要使用简洁明了的界面设计,方便用户进行操作,并给出相应的提示和错误信息。
三、系统设计3.1 数据库设计本系统的数据库需要存储学生的基本信息和成绩信息。
设计采用两个数据表:student和score。
#### 3.1.1 student表字段包括:学生学号(sid)、姓名(name)、性别(gender)、年级(grade)。
#### 3.1.2 score表字段包括:学生学号(sid)、科目1成绩(score1)、科目2成绩(score2)、科目3成绩(score3)、总分(total_score)、平均分(average_score)。
3.2 系统模块设计本系统设计采用模块化设计,将各个功能模块进行划分,提高代码的可维护性和重用性。
#### 3.2.1 学生信息管理模块该模块实现学生信息的录入、修改和删除功能,包括以下函数:- add_student():添加学生信息。
- modify_student():修改学生信息。
c设计学生成绩管理系统课程设计
c 设计学生成绩管理系统课程设计一、教学目标本课程旨在让学生掌握学生成绩管理系统的设计与实现方法,培养学生的编程能力、逻辑思维能力和问题解决能力。
具体目标如下:1.知识目标:使学生了解并掌握C语言的基本语法、数据结构、函数、文件操作等相关知识。
2.技能目标:培养学生能够运用C语言独立设计并实现一个学生成绩管理系统的能力。
3.情感态度价值观目标:培养学生对编程事业的热爱,增强其团队协作意识,提高其面对挑战的勇气和信心。
二、教学内容教学内容以教材《C程序设计》为主线,结合实际情况进行调整。
具体内容包括:1.C语言基本语法和数据类型。
2.控制结构:顺序结构、分支结构、循环结构。
3.函数:函数的定义、调用、参数传递、返回值。
4.数组和字符串:一维数组、多维数组、字符串的基本操作。
5.指针:指针的概念、指针的运算、指针与数组、指针与函数。
6.结构体和联合体:结构体的定义、使用、联合体的定义和使用。
7.文件操作:文件的打开、关闭、读写。
8.学生成绩管理系统的设计与实现:系统需求分析、系统设计、系统实现。
三、教学方法本课程采用讲授法、案例分析法、实验法等多种教学方法,以激发学生的学习兴趣和主动性。
1.讲授法:通过讲解C语言的基本语法、数据结构、函数等内容,使学生掌握相关知识。
2.案例分析法:分析典型的学生成绩管理系统的案例,使学生了解实际应用中的问题解决方法。
3.实验法:引导学生动手实践,设计和实现一个学生成绩管理系统,提高学生的实际操作能力。
四、教学资源为支持教学内容和教学方法的实施,丰富学生的学习体验,我们将提供以下教学资源:1.教材:《C程序设计》。
2.参考书:提供相关的编程实践书籍,以供学生课后自主学习。
3.多媒体资料:制作精美的PPT,以便于讲解和展示。
4.实验设备:提供计算机实验室,让学生能够进行实际的编程练习。
五、教学评估为全面、客观、公正地评估学生的学习成果,本课程采用以下评估方式:1.平时表现:考察学生在课堂上的参与程度、提问回答、小组讨论等,占总评的20%。
《面向对象程序设计》课程设计报告_学生成绩管理系统
《面向对象程序设计》课程设计报告专业:姓名:学号:指导教师:二O一一年九月日一、课程设计问题描述设计完成一套学生成绩管理系统,要求能够实现学生成绩管理的基本功能,包括:学生成绩的键盘录入、学生成绩的条件输出、学生成绩的条件抽取、学生成绩的条件排序、条件修改。
其中具体设计内容如下:(1)从键盘输入学生基本信息(学号、姓名、英语成绩、高数成绩),计算每个学生的平均成绩,并将数据存入文件student.txt文件中。
(2)按如下格式输出大于等于平均成绩的学生信息:学号姓名英语高数平均成绩(3)将两门可课都不及格的学生信息抽取出来,另存入文件bat.txt中。
(4)提供按学号进行查询的功能。
(5)尽可能使用运算符重载以简化操作。
(6)使用多文件结构和菜单操作,并考虑相应的操作权限。
二、课程设计目的和要求:经过一学期对面向对象程序设计的初步学习,对于面向对象程序设计有了一定的编程基础,为更好地理解和掌握面向对象程序设计,将通过为期一周的上机实践编程,运用面向对象程序设计完成课程设计编程任务的同时,补充和完善面向对象程序设计的相关知识。
三、系统环境(包括硬件环境和软件环境)无。
四、程序设计思想描述首先明确这是一个学生成绩管理系统,那么这个系统应该具备管理学生成绩的基本功能。
同时考虑到使用对象的不同,应考虑到权限方面的相应开放,为简便用户操作以及个人能力限制将采用文字菜单模式。
1、成绩管理系统——>成绩(中心)——>学生(以学生为管理对象)——>学生属性和方法。
*学生类属性包括:学号、姓名、英语成绩、高数成绩、平均成绩、名次(以链表的当前位置为计)。
*学生类方法包括:构造函数、析构函数、设置函数、修改函数以及获取相应属性的函数。
2、操作权限——>教师——>教师特权。
*教师特权包括:成绩录入、条件抽取、条件修改、排序以及删除。
操作权限——>学生——>普通权限。
*教师与学生共同权限包括:条件查询。
c学生成绩管理系统课程设计
c 学生成绩管理系统课程设计一、课程目标知识目标:1. 学生能够理解学生成绩管理系统的重要性,掌握其基本功能模块和使用方法。
2. 学生能够运用数据库基础知识,创建并管理学生信息表、成绩表等相关数据表。
3. 学生能够运用结构化查询语言(SQL)进行成绩查询、统计和分析。
技能目标:1. 学生能够运用所学编程语言,设计并实现一个简单的学生成绩管理系统。
2. 学生能够通过实践操作,掌握数据库的设计、创建、查询和优化等技能。
3. 学生能够运用问题解决策略,针对实际需求,对系统进行改进和优化。
情感态度价值观目标:1. 学生能够认识到信息技术在现实生活中的广泛应用,增强对信息技术的学习兴趣。
2. 学生能够在团队协作中发挥自己的优势,培养合作精神和沟通能力。
3. 学生能够遵循道德规范,保护个人隐私,树立正确的价值观。
分析课程性质、学生特点和教学要求:1. 本课程为信息技术课程,旨在培养学生运用信息技术解决实际问题的能力。
2. 学生为初中生,具有一定的计算机操作基础,对编程和数据库知识有一定了解。
3. 教学要求注重实践操作,鼓励学生动手实践,培养实际操作能力。
二、教学内容1. 学生成绩管理系统的基本概念与功能模块介绍- 系统需求分析- 功能模块划分- 数据库设计基本原理2. 数据库基础知识- 数据表创建与管理- 数据类型与约束- 关系运算与SQL语句3. 编程语言应用- 界面设计- 业务逻辑实现- 数据库操作方法4. 学生成绩管理系统实践操作- 系统设计- 编程实现- 测试与优化5. 教学内容安排与进度- 第一周:学生成绩管理系统基本概念与功能模块介绍- 第二周:数据库基础知识学习与应用- 第三周:编程语言应用与系统设计- 第四周:实践操作与测试优化6. 教材章节及内容列举- 第二章 数据库设计基础- 第三章 SQL语言- 第四章 界面设计与编程- 第五章 系统测试与优化教学内容科学性和系统性:本教学内容依据课程目标,结合教材章节,确保学生能够系统掌握学生成绩管理系统的设计与实现。
学生成绩管理系统课程设计报告书(C语言)
课程设计报告书课程名称:学院:班级:学号:姓名:指导老师:设计时间:学生成绩管理课程设计一、设计题目用C语言编写程序完成以下任务:(1)能按学期、按班级完成对学生成绩的录入、修改(2)能按班级统计学生的成绩,求学生的总分及平均分,并能根据学生的平时成绩进行查询(3)能查询学生成绩,不及格科目及学生名单(4)能按班级输出学生的成绩单二、设计要求(1)贯彻结构化的程序设计思想。
(2)用户界面友好,功能明确,操作方便。
(3)用户界面中的菜单至少应包括“统计各班总分及平均分”、“平均成绩排序”、“成绩单显示”和“退出”4项。
(4)代码应适当缩进,并给出必要的注释,以增强程序的可读性。
三、设计需求分析经过对程序设计题目的分析可知,整个程序的设计实现大致分为十个模块,每一个模块对应一个函数。
在这些函数当中,按学期对学生信息查询函数、按班级对学生信息查询函数、按平均成绩排序函数、按班级显示学生成绩单函数、统计全部学生总分及平均分函数、按总成绩排序函数、统计成绩不及格学生信息函数、显示全部学生信息并统计人数函数的实现严格按照题目的要求。
读取文件函数对其它函数的实现起辅助作用,主函数及菜单函数控制程序的整体运行。
1.显示全部学生信息并统计人数这里要用到文件打开函数和文件读取数据函数,再加入人数的统计语句,以实现将文件内容显示到窗体并统计总人数。
2.统计全部学生总分及平均分这一步在第一项功能的基础上稍加改动,添加求学生总分和平均分的函数就可以实现预期的功能。
3.按学期对学生信息查询实现的功能是按照学期对学生的成绩和数据进行查询,要求输入正确学期实现该功能。
4.按班级对学生信息查询实现的功能是按照班级对学生的成绩和数据进行查询,要求输入正确班级实现该功能。
5.按总成绩排序该项为附加功能实现的是总成绩的递减排序以及名次显示,其中总成绩相同者名次相同。
6.按平均成绩排序按照题目的具体要求实现的是平均成绩的递减排序以及名次显示,其中平均成绩相同者名次相同。
c语言课程设计报告学生成绩管理系统
c语言课程设计报告学生成绩管理系统一、课程目标知识目标:1. 学生能理解并掌握C语言基础,包括变量定义、数据类型、运算符、控制结构等。
2. 学生能运用C语言实现学生成绩管理系统的基本功能,如添加、删除、修改、查询学生成绩。
3. 学生了解并掌握文件操作在C语言中的应用,实现对数据的持久化存储。
技能目标:1. 学生能够运用结构体数组管理大量数据,培养数据组织和管理的实际操作能力。
2. 学生通过编程实践,掌握模块化编程方法,提高代码的复用性和可维护性。
3. 学生通过团队协作,培养沟通与协作能力,共同完成学生成绩管理系统的设计与实现。
情感态度价值观目标:1. 学生通过解决实际问题,培养对编程的兴趣,激发探究精神。
2. 学生在团队协作中,学会尊重他人意见,培养合作精神,提高解决问题的信心。
3. 学生认识到编程在生活中的实际应用,增强对计算机科学的认识和热爱。
课程性质:本课程为实践性较强的学科,结合C语言编程知识,以项目驱动的方式进行教学。
学生特点:学生为高中一年级学生,已具备一定的计算机操作能力,对编程有一定了解,但实际操作经验不足。
教学要求:教师需引导学生掌握C语言基础知识,注重实践操作,鼓励学生主动探究、团队协作,培养解决实际问题的能力。
在教学过程中,将课程目标分解为具体的学习成果,以便进行有效的教学设计和评估。
二、教学内容根据课程目标,教学内容分为以下三个部分:1. C语言基础知识:- 变量定义、数据类型、常量与变量- 运算符、表达式、语句- 控制结构:顺序、选择、循环- 函数的定义与调用- 指针与数组2. 学生成绩管理系统功能实现:- 结构体的定义与使用- 结构体数组操作- 系统功能模块划分:添加、删除、修改、查询学生成绩- 函数调用关系分析,实现模块化编程3. 文件操作与数据持久化:- 文件打开、关闭、读写操作- 学生成绩数据的存储与读取- 文件错误处理与异常处理教学大纲安排:第一周:C语言基础知识复习,学习结构体和结构体数组第二周:学生成绩管理系统功能设计,编写添加、删除、修改、查询功能的代码第三周:文件操作学习,实现学生成绩数据的持久化存储,优化系统性能第四周:项目测试、调试与优化,总结交流教学内容与教材关联性:本教学内容与教材《C语言程序设计》相关章节紧密关联,涵盖第3章至第6章的知识点,以及第8章文件操作部分。
学生成绩管理系统C语言课程设计报告
学生成绩管理系统C语言课程设计报告摘要:本报告旨在介绍学生成绩管理系统的设计和实现过程。
学生成绩管理系统是一个基于C语言开发的应用程序,旨在帮助学校或教育机构有效管理学生的成绩信息。
本报告将涵盖系统需求分析、设计思路、关键功能模块和实现细节等方面,并对系统的功能和性能进行评估。
1. 引言学生成绩管理系统的开发旨在解决传统成绩管理方式中存在的问题,提高管理效率和准确性。
通过利用计算机技术和数据库管理系统,该系统能够方便地记录、查询和分析学生的成绩信息。
2. 需求分析在需求分析阶段,我们与教育机构的教师和管理人员进行了沟通和讨论,明确了系统的功能需求。
主要功能包括学生信息管理、成绩录入、成绩查询和统计分析等。
3. 设计思路基于需求分析结果,我们采用了模块化设计的思路来构建学生成绩管理系统。
系统主要分为以下几个模块:学生信息管理模块、成绩录入模块、成绩查询模块和统计分析模块。
每个模块都具有清晰的功能和接口,便于系统的扩展和维护。
4. 系统实现我们使用C语言作为系统的开发语言,并采用了MySQL数据库管理系统来存储学生的成绩信息。
在系统实现过程中,我们利用C语言提供的文件操作和数据库连接库来实现各个功能模块的代码编写。
5. 关键功能模块5.1 学生信息管理模块:实现学生信息的录入、修改和删除等功能,保证学生信息的完整性和准确性。
5.2 成绩录入模块:教师可以通过该模块录入学生的成绩信息,并将其存储到数据库中。
5.3 成绩查询模块:学生和教师可以通过该模块查询学生的成绩信息,包括单个学生和全班学生的成绩查询。
5.4 统计分析模块:根据学生的成绩信息,实现成绩的统计分析功能,包括平均成绩、最高成绩、最低成绩等统计指标的计算。
6. 系统评估为了评估学生成绩管理系统的功能和性能,我们进行了一系列测试和调优。
测试结果表明系统能够准确地录入和查询学生的成绩信息,并具有良好的用户界面和响应速度。
7. 结论通过本次课程设计,我们成功地设计和实现了学生成绩管理系统。
学生成绩管理系统c课程设计
学生成绩管理系统 c 课程设计一、课程目标知识目标:1. 学生能够理解学生成绩管理系统的基础知识,掌握系统的功能模块及其作用。
2. 学生能够掌握数据库的基本操作,如创建、查询、更新和删除数据。
3. 学生能够运用C语言编写简单的程序,实现学生成绩管理系统的基本功能。
技能目标:1. 学生能够运用结构体数组、文件操作等C语言知识,设计和实现一个简单的学生成绩管理系统。
2. 学生能够运用数据库知识,对系统中的数据进行有效管理。
3. 学生能够通过编程解决实际问题,提高分析问题和解决问题的能力。
情感态度价值观目标:1. 学生通过课程学习,培养对计算机编程的兴趣和热情,增强自信心。
2. 学生能够认识到团队合作的重要性,学会与他人协作共同完成任务。
3. 学生能够遵循编程规范,养成良好的编程习惯,培养认真负责的工作态度。
课程性质:本课程为实践性较强的课程,结合C语言和数据库知识,让学生在实际操作中掌握编程技巧。
学生特点:学生已具备一定的C语言基础和数据库知识,对编程有一定的了解,但实际操作能力有待提高。
教学要求:注重理论与实践相结合,强调动手实践,培养学生解决实际问题的能力。
在教学过程中,关注学生的个体差异,给予个性化指导,确保每位学生都能达到课程目标。
通过课程学习,使学生能够独立设计并实现一个简单的学生成绩管理系统。
二、教学内容1. C语言基础知识回顾:变量、数据类型、运算符、控制结构(条件语句、循环语句)。
教材章节:第1章至第4章2. 结构体和数组:结构体定义、结构体数组、结构体指针。
教材章节:第5章3. 文件操作:文件打开、读取、写入、关闭。
教材章节:第6章4. 数据库基础知识:数据库概念、数据表、SQL语句(增删改查)。
教材章节:第7章5. 学生成绩管理系统功能设计:需求分析、功能模块划分、界面设计。
教材章节:第8章6. 编程实现学生成绩管理系统:a. 数据结构设计(结构体数组、链表等)b. 功能模块实现(增加、删除、修改、查询等功能)c. 界面交互设计(命令行界面、菜单等)教材章节:第9章7. 测试与调试:编写测试用例、进行系统测试、调试程序。
学生成绩管理系统C语言课程设计报告
C语言课程设计设计报告制作人:学号:指导老师:时间:一、设计内容和设计要求1、设计内容题目:学生成绩管理系统设计该系统包含20个学生姓名和成绩信息,可对成绩进行排序,并实现由姓名查找成绩及由成绩查找姓名。
2、设计要求1)由键盘输入20个学生(姓名)的某门课程的学习成绩60~99分。
2)将分数由低到高排序(用直接排序法和冒泡法),并显示学生姓名和对应的分数。
3) 用线性搜索法检索某个学生的成绩(输入姓名,显示成绩)。
4 )*对分搜索法检索某个学生的成绩(输入成绩,显示姓名)。
二、设计思路首先是要建立20个学生信息,即学生姓名和学生成绩,使用子函数input输入,学生成绩使用一维数组,学生姓名使用二维数组。
然后分别定义四个子函数,即直接排序法、冒泡排序法和线性查找法、对分查找法。
在两个排序法中,用字符串拷贝函数来实现姓名的交换,另外,在用成绩查找姓名时,可以用直接查找,也可以用对分查找法,在这里我两种方法都使用了。
最后在主函数中来设计人机界面,用switch函数来实现操作选择,对应的情况中就调用之前定义的子函数来完成排序或查找。
三、程序设计流程图1、程序总体流程2、直接排序法流程图3、冒泡排序法流程图四、程序设计中遇到的问题和解决方案最开始编程时,直接排序和冒泡排序法中都是通过swap函数来实现成绩交换和姓名交换,以达到排序目的,但在主函数中调用时却调用不了,程序在排序时就不能正常运行,我的解决方案就是去掉swap函数,因为有可能有些函数的调用有限制条件,这样改变之后,就不存在限制问题,可以正常排序。
另外一个问题就是姓名数组的交换问题,这个之前是用中间变量的方式实现交换,结果调试时显示非法,于是经过多次改变和尝试,发现姓名用二维数组更不容易出现问题,于是就将姓名设置为二维数组,然后用字符串拷贝函数来实现交换,以达到最终排序的目的。
这样解决之后,一方面可以使姓名不至于限制在一个字符内,另外一个好处就是解决了排序过程中姓名交换的问题。
面向对象C++ 学生成绩管理系统
课程设计(论文)题目名称学生成绩管理系统课程名称专业课程设计I学生姓名学号系、专业信息工程系、计算机科学与技术指导教师2013年11 月15日目录1前言ﻩ错误!未定义书签。
2需求分析ﻩ错误!未定义书签。
2.1任务ﻩ错误!未定义书签。
2.2 要求............................................................... 错误!未定义书签。
2.3 运行环境.................................................. 错误!未定义书签。
2.4 开发工具ﻩ23 分析和设计 (2)3.1 系统分析及设计思路ﻩ23.2主要类图ﻩ错误!未定义书签。
3.3 函数流程图 (6)4 具体代码实现........................................................................... 85 课程设计总结................................................. 错误!未定义书签。
5.1 程序运行结果或预期运行结果ﻩ错误!未定义书签。
5.2课程设体会ﻩ错误!未定义书签。
参考文献................................................................ 错误!未定义书签。
致谢ﻩ错误!未定义书签。
1 前言当前的编程语言主要分为面向过程和面向对象两种,其中我们所熟悉的C语言是一种面向过程的语言,而C++则是一种面向对象的语言。
面向对象主要是一种思想,面向对象的概念和应用已超越了程序设计和软件开发,扩展到很宽的范围。
如数据库系统、交互式界面、应用结构、网络管理结构、人工智能等。
对于此次课程设计学生成绩管理系统的设计,主要是考察我们对面向对象中类的定义和使用,成员变量和成员函数的定义和使用,友元函数的理解和调用,继承性与派生类,文件输入输出的掌握情况,在实际设计中首先定义一个基类stu用来存放学生的基本信息,再定义一个派生类stu1用了存放课程信息。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
课程设计报告课程名称面向对象程序设计课题名称学生成绩管理系统专业计算机科学与技术班级计算机1001学号**********姓名指导教师李珍辉陈淑红李杰军2011年12 月28 日湖南工程学院课程设计任务书课程名称面向对象程序设计课题学生成绩管理系统专业班级计算机1001学生姓名学号**********指导老师李珍辉陈淑红李杰军审批任务书下达日期2011 年11 月15 日任务完成日期2011 年12 月28 日一、设计内容与设计要求1.课程设计目的:面向对象程序设计课程设计是集中实践性环节之一,是学习完《面向对象程序设计》课程后进行的一次全面的综合练习。
要求学生达到熟练掌握C++语言的基本知识和技能;基本掌握面向对象程序设计的思想和方法;能够利用所学的基本知识和技能,解决简单的面向对象程序设计问题,从而提高动手编程解决实际问题的能力。
2.课题题目1)公司库存管理系统2)高校学籍管理系统3)高校工资管理系统4)高校人事管理系统5)通讯录程序设计6)学生成绩管理系统7) 图书管理系统8)文本编辑器的设计与实现9)学生考勤管理系统10)公司人员管理系统3.设计要求:⑴设计课题题目:每位同学根据自己学号除以10所得的余数加1选择相应题号的课题。
随意换题者不记成绩。
⑵根据自己对应的课题完成以下主要工作:①完成系统需求分析:包括系统设计目的与意义;系统功能需求(系统流程图);输入输出的要求。
②完成系统总体设计:包括系统功能分析;系统功能模块划分与设计(系统功能模块图)。
③完成系统详细设计:包括数据库需求分析;数据库概念结构设计(E-R图);数据库逻辑结构设计;类层次图;界面设计与各功能模块实现。
④系统调试:调试出现的主要问题,编译语法错误及修改,重点是运行逻辑问题修改和调整。
⑤使用说明书及编程体会:说明如何使用你编写的程序,详细列出每一步的操作步骤。
⑥关键源程序(带注释)⑶按规定格式完成课程设计报告,将其打印稿(A4纸)上交给老师存档。
⑷不得抄袭他人程序、课程设计报告,每个人应体现自己的个性设计。
二、进度安排第 17 周星期一 8:00——12:00星期二 8:00——12:00星期四 8:00——12:00第 18 周星期一 8:00——12:00星期二 14:30——18:30星期三 8:00——12:00三、参考书籍1.《C++程序设计课程设计》刘振安编著 TP312C5632.《C++ Builder和Delphi课程设计与系统开发案例》伍俊良清华大学出版社7-302-06072-X3.Visual C++课程设计案例精编严华峰中国水利水电出版社 7-5084-2007-1 20044.Visual C++课程设计与系统开发案例伍俊良清华大学出版社 7-302-05968-3 20025.Visual C++语言课程设计 : 案例精选与编程指导陈清华朱红东南大学出版社7-81089-275-4 20036.VisualC++课程设计案例精编中国水利水电出版社 7-5084-1004-1 20027.数据结构课程设计案例精编 : 用C/C++描述李建学李光元吴春芳清华大学出版社 7-302-14536-9 2007(编程平台不限,vc++, c++ Builder等等。
)课题6:学生成绩管理系统(一)、课程设计题目:学生成绩管理系统(二)、目的与要求:1、目的:(1)要求学生达到熟练掌握C++语言的基本知识和技能;(2)基本掌握面向对象程序设计的基本思路和方法;(3)能够利用所学的基本知识和技能,解决简单的面向对象程序设计问题。
2、基本要求:(1)要求利用面向对象的方法以及C++的编程思想来完成系统的设计;(2)要求在设计的过程中,建立清晰的类层次;(3)在系统中至少要定义四个类,每个类中要有各自的属性和方法;(4)在系统的设计中,至少要用到面向对象的一种机制。
3、创新要求:在基本要求达到后,可进行创新设计,如根据查找结果进行修改的功能。
4、写出设计说明书(三)、设计方法和基本原理:1、问题描述(功能要求):设计一个实用的小型学生成绩管理程序,具有查询,检索和删除功能,并且能够打开或修改指定文件及将多个文件组成一个文件。
它完全使用类来实现,充分体现面向对象的程序设计特点。
要求:实现主要功能:建立文件,文件的存取和显示,删除记录,查询记录。
可以随时检索,删除,或增加记录,也可以保存或取消新的记录。
2、问题的解决方案:根据系统功能要求,可以将问题解决分为以下步骤:(1)应用系统分析,建立该系统的功能模块框图以及界面的组织和设计;(2)分析系统中的各个实体及它们之间的关系包括属性和行为;(3)根据问题描述,设计系统的类层次;(4)完成类层次中各个类的描述(包括属性和方法);(6)完成系统的应用模块;(7)功能调试;(8)完成系统总结报告以及系统使用说明书目录1.系统需求分析 (1)2.总体设计 (2)3.详细设计 (3)4.系统调试 (6)5.结果分析 (8)6.总结 (8)7.程序代码 (9)1.系统需求分析1.1系统设计的目的与意义:现在的学校学生数量较多,各样的考试也比较频繁,因此需要一个学生成绩管理系统来对学生的成绩进行管理。
1.2 系统功能需求:本系统有四个类,Score类、Subject类、Student类、Class类,存储学生的个人信息、考试科目及成绩信息。
有学生成绩信息录入、学生成绩信息修改、学生成绩信息显示、学生成绩信息删除、学生成绩信息查询以及数据保存文件等功能。
2.总体设计2.1 系统功能分析:系统通过调用函数来实现学生成绩信息录入、学生成绩信息修改、学生成绩信息删除、学生成绩信息查询以及数据保存文件等功能。
Insert()函数用于录入学生成绩及信息;Update1()函数用来修改学生成绩及信息;Show()函数用于显示所有已有的记录;Delete()函数用来删除学生成绩及信息;Search1()及Search2()函数用来查询及信息;Save()函数用于将输入的信息存入文件内;主函数main()用于调用这些函数。
2.2系统功能模块划分与设计:本系统定义了Score类、Subject类、Student类以及Class类这四个类,定义了Insert()、Update1()、Show()、Save()、Delete()、Search1()及Search2()等函数来实现系统所需功能。
2.3 系统功能模块图:3.详细设计3.1 分数类的设计:该类定义了一个整型变量用来存放分数,定义了设置份总数和显示分数的函数。
图3.13.2 科目类的设计:该类定义了一个Score类类型的变量,定义了一个字符数组用来存放科目名称,定义了设置和显示私有成员的函数。
图3.23.3 学生类的设计:该类定义了一个Subject类类型的数组,一个字符型数组和一个字符变量,两个整型变量以及设置和显示私有成员的函数。
图3.33.4 班级类的设计:该类定义了一个Student类类型的变量、字符型数组、整型及设置和显示私有成员的函数等。
图3.43.5 各个类的关系描述:图3.5.1图3.5.2图3.5.34.系统调试4.1 在调试过程中,出现了下面一些错误:1、输入数据时,输错了数据的类型会造成死循环,因此输入时需要注意。
2、一开始主界面输入非正确字母时,没有提示错误。
容易造成用户误解,在主函数的switch语句结束处加上default:cout<<"选择错误,请从新选择!";就可以了。
4.2 具体调试过程:主界面学生成绩录入学生成绩查询学生成绩显示学生成绩修改记录存入文件学生成绩删除5.结果分析程序总共设计了四个类,满足了课题对类的要求,在设计的过程中,建立了较为清晰的类层次,也利用了面向对象的方法以及C++的编程思想来完成系统的设计,做到了用文件存储学生成绩信息、从文件中读取学生成绩信息、修改信息、查询信息、删除信息显示文件中存储的信息等要求。
而且界面简洁,容易操作。
但是程序太长,不够简练,导致出现错误很难发现和修改。
6.总结首先,接到设计题目之后,在对本题目进行分析的时候,我懂得了一个很重要的道理,那就是说一个程序的产生需要一个对题目要求有一个正确全面的分析。
其次,就该考虑程序算法的问题了,一个好的算法是一个好程序的灵魂,也决定了一个程序的质量。
两个星期的课设虽然有些疲劳和困倦,但带给我很多的收获。
C++已经学了一个学期了,有许多知识都存在似懂非懂的现象,这种现象通过实际的上机操作,已经减少了许多。
对这些知识也有了更深的理解和很好的掌握。
也有很多理论上说得过去的代码,但到了实际操作,却是行不通的。
这种困惑,有许多已经通过实际操作解决了,并能够深刻认识,但也有很多没有明白。
只能避过这些方法,换方法实现。
在课程设计之前,因为有了综合实验的经验与教训,明白了写代码这一步是非常重要的,因为当你把代码输入电脑,并用编译器将其运行,发现通过不了,再来检查找出问题,这是一件非常辛苦的事情,也很浪费时间。
于是在课程设计的时候,我花了四天的时间来规划与写代码,将要实现的内容分析清楚,才把代码输入电脑。
我觉得写程序,应该先找到该程序中的核心地方,用多种方法来实现该核心,这才可能避免等到发现逻辑上或者编译器不支持上的错误,才来想补救的措施,这样花费时间在想补救措施是很不值得的。
这次的课程设计,真是让我充分的感觉到了要自己设计一个程序是多么的难,以及学习好c++是多么的重要。
在这个程序的设计过程中,我清楚的意识到自己的水平有多么的薄弱,课程的知识学得有多么的不扎实。
看网上的例子好像觉得也没那么难,自己一上机实际操作就出现了很多问题,调试的时候系统总是在报错,还有很多警告,每增加一个函数就要调试好久,有时候应为少了一个大括号或是分号,导致要找很久很久。
虽然系统可以运行,也具有了一些基本的功能,但我意识到了自己有太多的不足。
以后还会有很多的课程设计,一定要吸取这次的教训,把知识学懂学透学精,真正的为我所用,这样走上社会我才能真正的发挥所长。
7.程序代码#include<iostream>#include<fstream>#include<string>using namespace std;int M=100;static int M2=0;class Score{ //分数类private:int score;public:Score(int s=0){score=s;}void set1(){cout<<"请输入分数:"<<endl;cin>>score;}void show1(){cout<<": "<<score<<endl;}};class Subject{ //科目类private:Score sc;char subject[20];public:Subject(){for(int i=0;i<20;i++)subject[i]=0;}void set2(){cout<<"请输入科目名称:"<<endl;cin>>subject;sc.set1();}void show2(){cout<<subject;sc.show1();}};class Student{ //学生类private:Subject p1[8];char name[20];int num;char S;int n;public:Student(){for(int i=0;i<20;i++)name[i]=0;num=0;S=0;}void set3();void show3();int getNU1(){return num;}char *getNA1(){return name;}};void Student::show3(){ //学生类显示函数int i;cout<<"姓名:"<<name<<"\t性别:"<<S<<"\t学号:"<<num<<endl;for(i=0;i<8;i++)p1[i].show2();}void Student::set3(){ //学生类修改函数int i;cout<<"请输入学生姓名:";cin>>name;cout<<"请输入该生学号:";cin>>num;cout<<"请输入该生性别:";cin>>S;cout<<"请输入每门课程的名字及分数."<<endl;for(i=0;i<8;i++)p1[i].set2();}class Class{ //班级类private:Student stu;char name2[20];int num2;public:Class(){for(int i=0;i<20;i++)name2[i]=0;num2=0;}int getNU(){return stu.getNU1();}string getNA(){return stu.getNA1();}void set4(){cout<<"请输入该生所在班级名称:";cin>>name2;cout<<"请输入该班班号:";cin>>num2;stu.set3();}void show4(){cout<<"班级:"<<name2<<"\t班号:\t"<<num2;stu.show3();}friend void Search1(Class c1[],int count1);friend void Search2(Class c2[],int count2);friend void Update1(Class c3[],int count_d);friend void Delete(Class c4[],int *count_c);friend void Insert(Class c5[],int &count_a);}b[100];void Save(Class c6[],int count) //记录存入文件函数{fstream file("class.dat",ios::out|ios::binary);if(!file){cout<<"file coun't open."<<endl;abort();}for(int i=0;i<count;i++)file.write(reinterpret_cast<char*>(&c6[i]),sizeof(c6[i]));file.close();}void Show(Class c7[]) //显示记录函数{int i=0;for(i=0;c7[i].getNU()!=0;i++)c7[i].show4();}void Insert(Class c5[],int &count_a) //信息录入函数{int i,in_number,n=0;if(count_a==M){cout<<"空间已满!";return;}cout<<"请输入学生的学号:"<<endl;do{do{cin>>in_number;for(i=0;i<count_a;i++){if(c5[i].getNU()==in_number)cout<<"已有相同的学号,请重新输入!"<<endl;break;}}while(c5[i].getNU()==in_number);if(in_number<1)cout<<"输入错误,请重新输入大于零的整数!"<<endl;}while(in_number<=0);i=count_a;c5[i].set4();count_a++;cout<<endl<<endl;n=n+1;if(n!=0)cout<<"学生成绩录入成功!"<<endl;}void Search1(Class c1[],int count1) //按学号查询信息函数{int i,number,flag=1,n=0;cout<<"请输入所要查询的学生的学号:"<<endl;do{cin>>number;if(number<=0)cout<<"输入错误,请重新输入大于零的整数!"<<endl;}while(number<=0);for(i=0;i<count1&&flag;i++)if(c1[i].getNU()==number){c1[i].show4();flag=0;n=n+1;}if(n==0)cout<<"没有查询到该学生的资料!"<<endl;}void Search2(Class c2[],int count2) //按姓名查询信息函数{int i,n=0;char nam[20];cout<<"请输入所要查询的学生的姓名:"<<endl;cin>>nam;for(i=0;i<count2;i++)if(c2[i].getNA()==nam){c2[i].show4();n=n+1;}if(n==0)cout<<"没有查询到该学生的资料!"<<endl;}void Update1(Class c3[],int count_d) //信息修改函数{int i,n=0,flag=1,m;char nam[20];cout<<"请输入所要修改的学生的姓名:"<<endl;cin>>nam;for(i=0;i<count_d&&flag;i++){if(c3[i].getNA()==nam){cout<<"请输入所要修改的学生的学号:"<<endl;cin>>m;for(i=0;i<count_d&&flag;i++){if(c3[i].getNU()==m){c3[i].set4();flag=0;n=n+1;}}}break;}if(n!=0)cout<<"修改成功!"<<endl;if(n==0)cout<<"没有查询到该学生的资料!"<<endl;}void Delete(Class c4[]) //信息删除函数{fstream file("class.dat",ios_base::in|ios_base::out|ios_base::binary);int i=0;for(i=0;i<100;i++){file.read(reinterpret_cast<char*>(&b[i]),sizeof(b[i]));}for(i=0;b[i].getNU()!=0;i++);M2=i;Class c9;int n=0,number,flag=1;cout<<"请输入要要进行操作的学生的学号:"<<endl;cin>>number;for(i=0;i<M2&&flag;i++){if(c4[i].getNU()==number){for(i;i<M2&&flag;i++)c4[i]=c4[i+1];flag=0;(M2)--;n=1;Save(b,M2);break;}}if(n==0)cout<<"没有查询到可以删除的资料!"<<endl;if(n!=0)cout<<"资料删除成功!"<<endl;}int main(){char a1;fstream file("class.dat",ios_base::in|ios_base::out|ios_base::binary); cout<<"\t\t**************欢迎进入学生成绩管理系统**************"<<endl<<endl;do{cout<<"请选择功能:"<<endl;cout<<"\t\t\ta.学生成绩查询"<<endl;cout<<"\t\t\tb.学生成绩录入"<<endl;cout<<"\t\t\tc.学生成绩删除"<<endl;cout<<"\t\t\td.学生成绩修改"<<endl;cout<<"\t\t\te.显示全部记录"<<endl;cout<<"\t\t\tf.记录存入文件"<<endl;cout<<"\t\t\tg.退出系统"<<endl;int i=0;for(i=0;i<100;i++){file.read(reinterpret_cast<char*>(&b[i]),sizeof(b[i]));}for(i=0;b[i].getNU()!=0;i++);M2=i;cin>>a1;switch(a1){case 'a':{cout<<"\t\t\t请继续选择:"<<endl;cout<<"\t\t\t\t1.按学号查询信息"<<endl;cout<<"\t\t\t\t2.按姓名查询信息"<<endl;int x;cin>>x;switch(x){case 1:Search1(b,M2);break;case 2:Search2(b,M2);break;default:cout<<"选择错误,请重新选择!"<<endl;}}break;case 'b':Insert(b,M2);break;case 'c':{file.close();Delete(b);}break;case 'd':Update1(b,M2);break;case 'e':Show(b);break;case 'f':{file.close();Save(b,M2);cout<<"保存文件成功!"<<endl;fstream file("class.dat",ios_base::in|ios_base::out|ios_base::binary);};break;case 'g':{file.close();break;}default:cout<<"选择错误,请重新选择!"<<endl;}}while(a1!='g');return 0;}计算机与通信学院课程设计评分表教师签名:日期:。