C++课程设计报告(学生学籍管理系统)

合集下载

c语言学籍管理系统设计报告

c语言学籍管理系统设计报告

C语言学籍管理系统设计报告1. 引言学籍管理系统作为一种信息化管理工具,已经在现代教育管理中得到广泛应用。

本文将介绍一个基于C语言的学籍管理系统的设计方案。

2. 系统概述学籍管理系统是一个用于管理学生信息的软件系统。

它能够提供学生信息的录入、查询、修改、删除等功能,实现了学生信息的统一管理和快速检索。

本系统旨在简化教务管理流程,提高教务工作效率。

3. 功能需求学籍管理系统应满足以下功能需求:1.学生信息录入:系统提供学生信息录入界面,包括学生姓名、学号、性别、年龄、班级等基本信息。

2.学生信息查询:系统提供学生信息查询界面,可以按照学号、姓名、班级等条件进行查询,并能够显示查询结果。

3.学生信息修改:系统提供学生信息修改界面,可以修改学生的基本信息。

4.学生信息删除:系统提供学生信息删除功能,可以删除学生的信息。

5.成绩管理:系统可以记录学生的成绩信息,并提供相应的成绩查询和统计功能。

4. 系统设计学籍管理系统的设计主要包括以下几个方面:4.1 数据库设计系统使用数据库来存储学生信息和成绩信息。

可以使用关系型数据库(如MySQL)或者文件系统来实现。

•学生信息表:包括学生姓名、学号、性别、年龄、班级等字段。

•成绩信息表:包括学号、科目、成绩等字段。

4.2 用户界面设计系统的用户界面应简洁、直观,方便用户进行操作。

可以使用命令行界面或者图形界面来实现。

•学生信息录入界面:用户可以通过可视化界面输入学生信息,系统将学生信息添加到数据库中。

•学生信息查询界面:用户可以输入查询条件,系统将根据条件从数据库中检索学生信息并显示。

•学生信息修改界面:用户可以修改学生的基本信息,系统将修改后的信息更新到数据库中。

•删除学生信息界面:用户可以指定学生,系统将删除该学生的信息。

4.3 系统模块设计学籍管理系统可以将功能划分为多个模块,每个模块负责一个具体的功能。

下面列举几个主要的系统模块:•学生信息管理模块:负责学生信息的录入、查询、修改和删除。

c语言课程设计学生学籍管理系统

c语言课程设计学生学籍管理系统

c语言课程设计学生学籍管理系统一、教学目标本课程的教学目标是使学生掌握C语言的基本语法和编程方法,能够运用C语言设计学生学籍管理系统。

具体分为三个部分:1.知识目标:学生需要掌握C语言的基本语法、数据类型、运算符、控制结构、函数等基本知识。

2.技能目标:学生能够运用C语言进行程序设计,具备编写和调试程序的能力。

3.情感态度价值观目标:学生通过完成学生学籍管理系统的设计和实现,培养对计算机科学和编程的兴趣和热情,提高解决实际问题的能力。

二、教学内容根据课程目标,教学内容主要包括C语言的基本语法和编程方法,具体包括以下部分:1.C语言的基本语法:数据类型、变量、运算符、控制结构等。

2.函数:函数的定义、调用、参数传递、返回值等。

3.学生学籍管理系统的需求分析:系统的功能、数据结构、界面设计等。

4.编程实践:学生通过编写和调试程序,完成学生学籍管理系统的实现。

三、教学方法本课程采用讲授法、讨论法、案例分析法和实验法等多种教学方法,以激发学生的学习兴趣和主动性。

1.讲授法:教师通过讲解C语言的基本语法和编程方法,为学生提供系统的知识结构。

2.讨论法:教师引导学生进行问题讨论,培养学生的思考和解决问题的能力。

3.案例分析法:教师通过分析学生学籍管理系统的案例,引导学生理解和应用C语言编程。

4.实验法:学生通过动手编写和调试程序,提高编程实践能力。

四、教学资源本课程的教学资源包括教材、参考书、多媒体资料和实验设备等。

1.教材:选用权威、实用的C语言教材,为学生提供系统的知识结构。

2.参考书:提供相关的参考书籍,丰富学生的知识视野。

3.多媒体资料:制作多媒体课件,生动、形象地展示C语言编程的方法和技巧。

4.实验设备:提供计算机实验室,让学生进行编程实践。

五、教学评估本课程的评估方式包括平时表现、作业和考试三个部分,以全面、客观、公正地评价学生的学习成果。

1.平时表现:通过课堂参与、提问、讨论等方式评估学生的学习态度和积极性。

学生学籍管理系统c语言课程设计

学生学籍管理系统c语言课程设计

学生学籍管理系统c语言课程设计
学生学籍管理系统C语言课程设计
一、题目
学生学籍管理系统
二、项目介绍
1、本项目是一个基于C语言实现的学生学籍管理系统。

该系统的主要功能是实现学生学籍的管理,学生可以查看自己的学籍信息,同时管理员可以对学生的学籍信息进行维护和修改。

2、实现的功能:
(1)管理员登录
(2)查看学生学籍
(3)修改学生学籍
(4)添加新学生学籍
(5)删除学生学籍
(6)按学号或姓名查找学生学籍信息
(7)保存学生学籍
(8)退出系统
三、模块结构
1、登录模块
登录模块是本系统的入口,主要负责验证用户的身份信息,如果用户是管理员,则可以进入系统的主界面。

2、学生学籍操作模块
学生学籍操作模块主要负责管理员对学生学籍信息的添加、修改、查看和删除等操作。

3、文件存取模块
文件存取模块负责实现对学生学籍信息的存取,并将学生信息保存到文件中,保证学生学籍信息的安全性。

四、技术要求
1、编程语言
C语言
2、界面
使用C语言实现学生学籍管理系统,界面简单,功能明确。

3、数据操作
使用C语言实现学生学籍管理系统,能够实现对学生学籍的添加、修改、查看和删除等操作。

4、系统功能
系统功能要求具备管理员登录、查看学生学籍、修改学生学籍、添加学生学籍、删除学生学籍、按学号或姓名查找学生学籍信息、保存学生学籍和退出系统等功能。

c课程设计学生管理系统.

c课程设计学生管理系统.

c 课程设计学生管理系统.一、教学目标本课程的学习目标主要包括知识目标、技能目标和情感态度价值观目标。

知识目标要求学生掌握学生管理系统的基本概念、设计和实现方法。

技能目标要求学生能够运用编程语言实现简单的学生管理系统,并具备一定的数据库操作能力。

情感态度价值观目标要求学生在学习过程中培养团队合作意识、创新精神和解决问题的能力。

教学目标应具体、可衡量,以便学生和教师能够清晰地了解课程的预期成果。

在教学过程中,教师需分析课程性质、学生特点和教学要求,明确课程目标,将目标分解为具体的学习成果,以便后续的教学设计和评估。

二、教学内容本课程的教学内容主要包括学生管理系统的需求分析、设计方法和实现技术。

教学大纲将按照以下顺序安排:1.学生管理系统的需求分析:介绍学生管理系统的功能需求、性能需求和约束条件。

2.系统设计:讲解学生管理系统的总体设计、模块划分和接口定义。

3.数据库设计:介绍学生管理系统的数据库表结构设计和查询优化方法。

4.系统实现:讲解学生管理系统的编程实现、调试和测试方法。

5.案例分析:分析实际运行的学生管理系统,探讨其优缺点和改进空间。

教学内容要与课本有关联性,符合教学实际,确保科学性和系统性。

三、教学方法本课程将采用多种教学方法,如讲授法、讨论法、案例分析法和实验法等,以激发学生的学习兴趣和主动性。

1.讲授法:教师讲解基本概念、设计方法和实现技术,引导学生掌握学生管理系统的基本知识。

2.讨论法:学生分组讨论,探讨学生管理系统的需求分析和改进方案,培养学生的团队合作意识。

3.案例分析法:分析实际运行的学生管理系统,让学生了解并评价系统的优缺点,提高问题解决能力。

4.实验法:安排实验课程,让学生动手实现学生管理系统,培养学生的实际操作能力和创新精神。

教学方法应多样化,以适应不同学生的学习需求和特点。

四、教学资源本课程的教学资源包括教材、参考书、多媒体资料和实验设备等。

1.教材:选用权威、实用的教材,为学生提供系统、全面的知识体系。

C语言课程设计报告-学生学籍管理系统

C语言课程设计报告-学生学籍管理系统

信息学院课程设计I报告课程名称C语言程序设计_____ 题目名称学生学籍管理系统学生学院一信息学院______专业班级_ 计科12 _________ 学号___________________________ 学生姓名________________________指导教师______________________2013 年 12 月 26 日目录一、设计目的与要求 .... 错误! 未定义书签题目与设计要求 ........ 错误! 未定义书签本程序设计的知识点 ..... 错误! 未定义书签二、功能设计 .......... 错误! 未定义书签总体设计 .............. 错误! 未定义书签详细设计 .............. 错误! 未定义书签测试结果及分析 ........ 错误! 未定义书签五、总结 .............. 错误! 未定义书签六、参考文献错误! 未定义书签........................设计目的与要求题目与设计要求题目:学生学籍管理系统目的: 1、了解和熟悉 Visual C++ 软件编程开发环境2、熟练掌握结构化程序设计的步骤和模块化设计方法3、熟练掌握C语言数据类型,熟记字符型数据和整形数据的定义和使用4、熟练掌握用 while语句、do…while语句和for语句实现循环结构程序设计的方法5、掌握一维数组、二维数组的定义、赋值和输入输出的方法6、掌握与数组有关的算法(特别是排序算法,熟练掌握冒泡排序法)7、熟悉函数的定义、声明方法及全局变量和局部变量的概念与用法,掌握函数的调用方法8、掌握结构体类型变量的定义和使用及结构体类型数组的概念和应用设计要求:学生学籍信息管理系统设计删除1需求分析学生基本信息、学生成绩基本信息要存入文件当中,因而 要提供文件的输入输出操作;查询功能要求提供查找和显示操 作;删除功能要求实现删除操作;排序功能要求实现排序操作; 另外还应该提供键盘式选择菜单以实现功能选择。

学籍管理系统c语言课程设计报告

学籍管理系统c语言课程设计报告

学籍管理系统c语言课程设计报告一、引言学籍管理系统是一种管理学生信息的工具,它可以帮助学校更好地管理学生的个人信息、课程信息、成绩信息等。

本报告旨在介绍一个基于C语言的学籍管理系统的设计与实现。

二、需求分析1. 功能需求(1)学生信息管理:包括添加、修改和删除学生个人信息。

(2)课程信息管理:包括添加、修改和删除课程信息。

(3)成绩录入:可以输入每个学生在每门课程中的成绩。

(4)成绩查询:可以查询每个学生在每门课程中的成绩。

(5)统计分析:可以统计每门课程的平均分和及格率。

2. 非功能需求(1)界面友好:界面简洁明了,易于操作。

(2)数据安全性高:能够保证数据安全性,避免数据丢失或泄露等问题。

三、系统设计1. 总体设计思路本系统采用模块化设计思路,将整个系统划分为多个模块,以便于开发和维护。

主要模块包括:(1)学生信息模块;(2)课程信息模块;(3)成绩录入模块;(4)成绩查询模块;(5)统计分析模块。

2. 数据结构设计本系统采用链表存储学生和课程信息,每个节点包含学生或课程的基本信息,以及指向下一个节点的指针。

成绩信息则采用二维数组存储。

3. 界面设计本系统采用控制台界面,通过菜单进行操作。

每个菜单选项对应一个功能模块。

四、系统实现1. 学生信息模块(1)添加学生信息:输入学生姓名、性别、年龄等基本信息,并将该学生添加到链表中。

(2)修改学生信息:根据学生ID修改相应的学生信息。

(3)删除学生信息:根据学生ID删除相应的学生信息。

(4)显示所有学生信息:遍历链表输出所有学生的基本信息。

2. 课程信息模块(1)添加课程信息:输入课程名称、授课教师、上课时间等基本信息,并将该课程添加到链表中。

(2)修改课程信息:根据课程ID修改相应的课程信息。

(3)删除课程信息:根据课程ID删除相应的课程信息。

(4)显示所有课程信息:遍历链表输出所有课程的基本信息。

3. 成绩录入模块输入学生ID和课程ID,然后输入该学生在该课程中的成绩,将成绩保存到二维数组中。

c语言课程设计学生学籍管理系统

c语言课程设计学生学籍管理系统

c语言课程设计学生学籍管理系统一、教学目标本课程旨在让学生掌握C语言的基本语法,培养学生编写结构化程序的能力,使学生能够运用C语言实现简单的学生学籍管理系统。

通过本课程的学习,学生将能够:1.知识目标:–理解C语言的基本数据类型、运算符和表达式;–掌握函数的定义和调用,理解局部变量和全局变量的概念;–熟悉控制结构,如if语句、for循环和while循环;–了解数组、字符串和指针的基本使用方法。

2.技能目标:–能够使用C语言编写简单的程序,解决实际问题;–掌握基本的调试技巧,能够找出并修复程序中的错误;–具备阅读和理解他人代码的能力。

3.情感态度价值观目标:–培养学生对计算机科学的兴趣和热情,提高学生的自主学习能力;–培养学生团队协作的精神,增强学生的沟通能力;–培养学生解决问题的能力,提高学生的创新意识。

二、教学内容本课程的教学内容主要包括以下几个部分:1.C语言基本语法:数据类型、运算符、表达式、函数、局部变量和全局变量等;2.控制结构:if语句、for循环、while循环等;3.数据结构:数组、字符串、指针等;4.学生学籍管理系统的实现:学生信息的添加、删除、修改和查询等功能。

三、教学方法本课程采用讲授法、案例分析法和实验法等多种教学方法相结合的方式进行教学:1.讲授法:通过讲解C语言的基本语法和概念,使学生掌握相关知识;2.案例分析法:通过分析实际案例,使学生理解并掌握C语言在学生学籍管理系统中的应用;3.实验法:让学生动手编写代码,实现学生学籍管理系统的功能,提高学生的实际操作能力。

四、教学资源本课程的教学资源包括:1.教材:《C语言程序设计》;2.参考书:《C语言 Primer》;3.多媒体资料:教学PPT、视频教程等;4.实验设备:计算机、网络等。

以上教学资源将有助于实现本课程的教学目标,提高学生的学习效果。

五、教学评估本课程的教学评估将采用多元化评价方式,全面客观地评价学生的学习成果。

c课程设计学生学籍管理系统

c课程设计学生学籍管理系统

c 课程设计学生学籍管理系统一、教学目标本课程旨在让学生掌握学生学籍管理系统的基本概念、设计与实现。

通过本课程的学习,学生将能够:1.理解学生学籍管理系统的需求和功能。

2.掌握学生学籍管理系统的数据库设计。

3.学会使用编程语言实现学生学籍管理系统的基本功能。

4.培养学生的团队协作能力和问题解决能力。

二、教学内容本课程的教学内容主要包括以下几个部分:1.学生学籍管理系统的需求分析:介绍学生学籍管理系统的功能和需求,使学生了解系统的设计背景。

2.数据库设计:教授学生如何设计学生学籍管理系统的数据库,包括表结构的设计和关系的建立。

3.系统实现:教授学生如何使用编程语言实现学生学籍管理系统的基本功能,包括数据的增删改查等。

4.测试与优化:介绍如何对实现的学生学籍管理系统进行测试和优化,以提高系统的稳定性和性能。

5.案例分析:分析一些实际的学生学籍管理系统案例,使学生更好地理解系统的设计和实现过程。

三、教学方法为了提高学生的学习兴趣和主动性,本课程将采用多种教学方法相结合的方式进行教学:1.讲授法:教师讲解学生学籍管理系统的基本概念、需求分析和数据库设计等知识点。

2.案例分析法:分析实际案例,让学生更好地理解学生学籍管理系统的设计和实现过程。

3.实验法:学生动手实现学生学籍管理系统,培养学生的实际操作能力。

4.小组讨论法:学生分组讨论问题,培养学生的团队协作能力和问题解决能力。

四、教学资源为了支持教学内容和教学方法的实施,丰富学生的学习体验,我们将准备以下教学资源:1.教材:为学生提供学生学籍管理系统的基本概念、需求分析和数据库设计等知识点的教材。

2.参考书:提供一些与学生学籍管理系统相关的参考书,供学生课后自主学习。

3.多媒体资料:制作一些与课程相关的多媒体资料,如PPT、视频等,以便于学生更好地理解课程内容。

4.实验设备:为学生提供必要的实验设备,如计算机、数据库服务器等,以便于学生动手实践。

五、教学评估本课程的教学评估将采用多元化评价方式,全面客观地评价学生的学习成果。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

.课程设计学生学籍管理系统课程名称:C++面向对象程序设计课程设计题目:大学生学籍管理系统目录第1章概述 (4)第2章系统分析 (5)第3章系统设计 (6)3.1系统功能设计 (6)3.2类设计 (6)3.3输入输出设计 (7)第4章系统实现 (9)结论 (16)后记 (16)参考文献 (17)【摘要】学籍管理系统设计涉及学生信息的录入,显示,查找,删除,修改,统计,保存,退出等功能,从而能够对信息进行处理。

程序中运用了相关类的知识,同时定义了一定数量的数据及成员函数。

程序使用了数组记录统计的相关数据,运用了指针实现相应功能函数的功能,运用了student ,school两个类实现面向对象的要求。

程序的完成涉及到程序的分析,模块的分解,程序的控制,程序的调试。

【关键词】学籍管理vc++6.0 面向对象程序控制类第1章概述1.1 系统实现的目标课程设计的任务:制作一个小型的学生学籍管理系统,要求制作一个菜单,实现数据的录入,数据的显示,数据查找,数据的删除,数据的保存,数据的统计,数据的修改,系统的退出。

系统的设计要求用到C++面向对象的程序设计,要求用到类来实现,同时每一个功能用到一个函数。

基本功能:学生基本信息(编号,,性别,籍贯,民族,生日,政治面貌,省份证,数学成绩,英语成绩,计算机成绩)成绩统计(各科总成绩,各科平均成绩,各科的及格率)扩展功能:学生数据的添加、修改、与删除学生数据的读取与存储系统特点:系统要能够对相应的数据进行很好的测试,系统的统计对每一科的总成绩,平均成绩,及格律都进行了统计;系统数据的录入除可以手工录入外,还可以采用文件的录入;系统统计学生的基本信息较全面,包括学号,,民族,政治面貌,号,生日,性别,数学、英语、计算机的成绩;程序中查找运用了两种查找式即学号查找和查找。

1.2 系统实现案第一步:分析题目,建立类并派生出它的子类,画出类图。

第二步:画出流程,根据流程图编写程序清单第三步:上机调试程序(使用单步调试,设置断点、分块调试的法)。

第五步:及时整理资料,撰写课程设计报告中有关这个题目的容。

1.3 系统实现环境硬件配置:586以上PC兼容机或品牌机,配有彩色显示器、鼠标、键盘,存不小于64MB,硬盘自由空间不少于200MB。

推荐配置为存128MB或256MB(或以上),硬盘自由空间500MB以上。

操作系统:Windows2000/NT/Xp、Visual C++集成开发环境。

2.1 调查程序对学生学籍的数据处理要求①能够输入并浏览学生的基本信息;②能够实现对学生信息的查询和修改;③能够对成绩进行统计;④能够对学生的信息进行保存;现行的系统功能:资料维护:系统维护包括对各学生信息和成绩的录入操作。

资料维护:对数据表中的信息进行浏览。

系统查询:可以对不同科目的总成绩、不及率、各科平均成绩相关信息。

2.2现行系统分析3.1 系统功能设计系统功能结构图:3.2 类设计类:student数据成员编号,,性别,籍贯,民族,生日,政治面貌,省份证,数学成绩,英语成绩,计算机成绩类:school成员函数录入函数Input():输入编号到计算机的成绩;统计函数count():统计各科的总成绩,计算平均成绩,统计各科的及格率;查询函数found():按学号或查找学生的记录;修改函数mend():修改指定学号学生成绩记录;删除函数del():删除指定学号学生记录;输出函数show():输出班级所有学生成绩记录;UML图:3.3 输入输出的设计1.界面的设计 ①、界面设计程序运行后会出现一个简捷的窗口,便于用户查询数据。

②、功能设计通过主窗体调用其他窗体,具体实现可以参照系统分析相关容。

应用系统主控界面包括学生信息录入,查找等功能模块。

学生信息录入功能完成学生信息和成绩的输入。

记录查询功能可以对数据各分类的记录进行查询。

2.数据输出设计 系统主界面:统计界面:查找界面:显示界面:录入界面:修改界面:第4章系统实现1.代码#include<iostream.h>#include<string.h>#include<fstream.h>#include<iomanip.h>class student{protected:int number; char name[20]; char sex[6]; char place[20]; char nation[6]; char birth[20]; char party[10]; char id[20]; float score[3];public:student *next;student(){ }~student(){ }char* getname(){ return name; }int getnumber(){ return number;}double getscore(int i) { return score[i];}float getg(){ return (score[0]+score[1]+score[2]); }void input(){ int e=1;cout<<"\t\t\t按提示输入:"<<endl;cout<<"\t\t输入编号: "; cin>>number;cout<<"\t\t输入: "; cin>>name;do{cout<<"\t\t输入性别: ";cin>>sex;if(strcmp(sex,"男")==0 || strcmp(sex,"女")==0){ cout<<"\t\t输入籍贯: ";cin>>place; cout<<"\t\t输入民族: ";cin>>nation;cout<<"\t\t输入生日: ";cin>>birth; cout<<"\t\t输入政治面貌: ";cin>>party;cout<<"\t\t输入号: ";cin>>id; cout<<"\t\t输入数学分数: ";cin>>score[0];cout<<"\t\t输入英语分数: ";cin>>score[1];cout<<"\t\t输入计算机分数: ";cin>>score[2];e=0;}else{cout<<"\t\t\t无此类型性别!重新输入!"<<endl;e=1; }}while(e);return ;}void input(ifstream & is){is>>number>>name>>sex>>place>>nation>>birth>>party>>id >>score[0]>>score[1]>>score[2];is.get(); }void output(){cout<<"学生基本信息如下:"<<endl;cout<<"编号:"<<number<<" :"<<name<<" 性别:"<<sex <<" 籍贯:"<<place <<" 民族:"<<nation<<" 生日:"<<birth<<" 政治面貌:"<<party<<endl<<"号:"<<id<<" 数学:"<<score[0]<<" 英语:"<<score[1]<<" 计算机:"<<score[2]<<" 总分:"<<getg()<<endl<<endl;}void output(ofstream & os){ os<<setw(6)<<number <<setw(15)<<name<<setw(20)<<place <<setw(6)<<nation<<setw(20)<<birth<<setw(20)<<party<<setw(20)<<id<<setw(6)<<score[0]<<setw(6)<<score[1]<<setw(6)<<score[2]<<endl;}};class school{public:school(){ head=new student; head->next=NULL; key=0; }~school(){ delete head; }void input(); void mend(); void del();int find(student **p,int num,char *pn="^");void found(); void show(); void count();void save(); void begin(); void clear();char mainmenu();int getkey(){ return key;}void setkey(int k){ key=k; }private:student *head; int key;};//录入函数void school::input(){student *p,*p2=NULL;p=head; int n;while(p->next)p=p->next;while(n){ p2=new student; p2->input();p->next=p2; p2->next=NULL; p=p->next;school::setkey(1);cout<<"\t\t\t按1继续,按0返回: "; cin>>n;} }//子查找函数int school::find(student **p1,int num,char *pn){ student *p; p=head;while(p->next){(*p1)=p;if( (p->next)->getnumber()==num||!strcmp( (p->next)->getname(),pn ) ) return 1; p=p->next;}return 0; }//查找函数void school::found(){ student *p;int num=-1,n=9; char name[20]="^";do{ cout<<"\t\t1:按编号查找,2:按查找: ";cin>>n;}while(n<1||n>2);if(n==1){ cout<<"\t\t\t输入编号: ";cin>>num;}if(n==2){ cout<<"\t\t\t输入: ";cin>>name; }if(!find(&p,num,name) ){ cout<<"\t\t找不到你要查找的容!"<<endl; return;}(p->next)->output();}//删除函数void school::del(){ student *p,*p2; int num;cout<<"\t\t\t输入编号: "; cin>>num;if( !find(&p,num,"^") ){ cout<<"\t\t找不到你要删除的容!"<<endl; return;}(p->next)->output();p2=p->next; p->next=p2->next;delete p2;school::setkey(1); }void school::show() //显示函数{ student *p; p=head;while(p->next){ (p->next)->output();p=p->next;}}//修改函数void school::mend(){ student *p; int num=-1,n;char name[20]="^";do{ cout<<"\t\t1:按编号修改,2:按修改: ";cin>>n;}while(n<1||n>2);if(n==1){ cout<<"\t\t\t输入编号: ";cin>>num;}if(n==2){cout<<"\t\t\t输入: ";cin>>name;}if( !find(&p,num,name) ){ cout<<"\t\t找不到你要修改的容!"<<endl; return;}(p->next)->output(); (p->next)->input(); school::setkey(1);}void school::save() //保存函数{ student *p; p=head;ofstream os("student.txt",ios::out);if (school::getkey()==1){while(p->next){ (p->next)->output(os);p=p->next; }}cout<<"\t\t\t文件已保存! "<<endl; school::setkey(0);}void school::begin()//初始化函数{ student *p,*p2;p=head; clear();long t;ifstream is("student.txt",ios::in);if(!is){ ofstream os("student.txt",ios::out);os.close();return ;}int num=-1;while(1){ num=-1; t=is.tellg();is>>num;is.seekg(t);if(num<0){ is.close();return;}p2=new student; p2->input(is);p->next=p2; p2->next=NULL; p=p->next;}}void school::clear()//清空函数{student *p,*p2;p=head->next;while( p ){p2=p; p=p->next;delete p2;}}void school::count()//统计函数{student *p; p=head;int n=0;double g[3]={0,0,0}; float j[3]={0,0,0};while(p->next){ p=p->next;n++;for(int i=0;i<3;i++){ g[i]=g[i]+( p->getscore(i) );(p->getscore(i) )>=60.0? j[i]++ : 0 ;}}cout<<"\t\t\b\b\b\b数学总分:"<<g[0]<<" 平均分:"<<g[0]/n<<" 及格率:"<<j[0]/n<<endl<<"\t\t\b\b\b\b英语总分:"<<g[1] <<" 平均分:"<<g[1]/n<<" 及格率:"<<j[1]/n<<endl<<"\t\t\b\b\b\b计算机总分: "<<g[2]<<" 平均分: "<<g[2]/n<<" 及格率:"<<j[2]/n<<endl;}//主选菜单函数char school::mainmenu(){char n[6];cout<<"\n\n ☆☆☆☆欢迎进入学籍管理系统☆☆☆☆"<<endl<<endl <<" * * * * * * * * * * * * * * * * * * * * * * * * * * * *"<<endl<<" * * * * * * * * * * * * * * * * * * * * * * * * * * * *"<<endl<<" * * 1: 录入学生信息* *"<<endl<<" * * 2: 显示学生信息* *"<<endl<<" * * 3: 查找学生信息* *"<<endl<<" * * 4: 删除学生信息* *"<<endl<<" * * 5: 修改学生信息* *"<<endl<<" * * 6: 统计学生成绩* *"<<endl<<" * * 7: 保存学生信息* *"<<endl<<" * * 0: 退出系统* *"<<endl<<" * * * * * * * * * * * * * * * * * * * * * * * * * * * *"<<endl<<" * * * * * * * * * * * * * * * * * * * * * * * * * * * *"<<endl<<" 请选择:";cin>>n;return n[0];}//主函数void main(){school pp;int k=1; char n; pp.begin();while(k==1){ n=pp.mainmenu();switch(n){ case '1':pp.input(); break;case '2':pp.show(); break;case '3':pp.found(); break;case '4':pp.del(); break;case '5':pp.mend(); break;case '6':pp.count(); break;case '7':pp.save(); break;case '0':if(pp.getkey()==1){ cout<<"\t\t\t是否保存? 1 : 保存0:不保存: ";cin>>k;if(k==1)pp.save();}pp.clear();k=0;break; }}}2.系统运行的结果结论本程序基本完成了题目要求的功能。

相关文档
最新文档