学生成绩信息管理系统

合集下载

学生成绩管理系统数据流程图及数据字典

学生成绩管理系统数据流程图及数据字典

学生成绩管理系统数据流程图及数据字典一、数据流程图学生成绩管理系统是一个用于管理学生的课程成绩的系统。

下面是该系统的数据流程图,展示了数据在系统中的流动和处理过程。

1. 学生信息管理流程:- 输入:学生信息(学生姓名、学号、性别、年级等)- 处理:将学生信息存储到学生信息表中- 输出:无2. 课程信息管理流程:- 输入:课程信息(课程名称、课程编号、学分等)- 处理:将课程信息存储到课程信息表中- 输出:无3. 成绩录入流程:- 输入:学生课程成绩信息(学号、课程编号、成绩)- 处理:将成绩信息存储到成绩表中- 输出:无4. 成绩查询流程:- 输入:学号- 处理:根据学号在学生信息表中查找学生姓名,并在成绩表中查询该学生的所有成绩信息- 输出:学生姓名及其对应的成绩信息5. 成绩统计流程:- 输入:课程编号- 处理:根据课程编号在课程信息表中查找课程名称,并在成绩表中统计该课程的平均成绩、最高成绩和最低成绩- 输出:课程名称及其对应的平均成绩、最高成绩和最低成绩二、数据字典数据字典是对系统中使用的数据元素进行定义和描述的文档。

下面是学生成绩管理系统的数据字典,包含了系统中使用的各个数据元素及其属性。

1. 学生信息表(StudentInfo):- 学号(StudentID):学生的惟一标识符,数据类型为整数- 学生姓名(StudentName):学生的姓名,数据类型为字符串- 性别(Gender):学生的性别,数据类型为字符串- 年级(Grade):学生所在的年级,数据类型为字符串2. 课程信息表(CourseInfo):- 课程编号(CourseID):课程的惟一标识符,数据类型为整数- 课程名称(CourseName):课程的名称,数据类型为字符串- 学分(Credit):课程的学分,数据类型为浮点数3. 成绩表(Score):- 学号(StudentID):学生的惟一标识符,数据类型为整数- 课程编号(CourseID):课程的惟一标识符,数据类型为整数- 成绩(Grade):学生在该课程中的成绩,数据类型为浮点数通过以上的数据流程图和数据字典,学生成绩管理系统可以实现学生信息的录入和管理、课程信息的录入和管理、成绩的录入、查询和统计等功能。

学生成绩管理系统(详细操作过程)

学生成绩管理系统(详细操作过程)

学生成绩管理系统我将把我的实现步骤完整的写出来,我是在VC 6.0版本下用MFC实现的。

我创建的基于单文档的应用程序,过程不介绍,大家都会。

下面的是我系统菜单:思路:刚进入系统时,只有“登录”菜单可用,其他三个菜单项都是灰色不可用的。

当用户点“进入系统”菜单项时,用户输入用户名、密码和用户类型,系统将根据相应的用户权限使相应的菜单可用,并且“进入系统”菜单项变为不可用。

如:如果用户类型是学生,那么只有学生权限菜单可用,而“教师权限”和“管理员权限”都不可用,同时“进入系统”变为不可用。

“学生权限”下只有“查询成绩”,因为学生只可以查询自己相应的成绩;“教师权限”下有“查询学生成绩”和“增改删学生成绩”两个菜单项,因为教师除了可以查询学生成绩还可以增加、修改和删除学生成绩;“管理员权限”下有“管理学生”和“管理教师”两个菜单项。

整体设计:因为我们要设置系统菜单的状态,所以必须在CMainFrame中添加相应的函数和代码,具体步骤如下:【步骤1】由于系统要使用ODBC类操作数据库,所以需要在stdafx.h中加入代码:#include <afxdb.h>【步骤2】在CMainFrame中的OnCreat()中添加代码如下,实现菜单的初始化工作,当用户没进入系统之前,只有“登陆”菜单下的“进入系统”菜单项可用,而“退出系统”和其他3个权限菜单都不可用,即都是灰色的。

int CMainFrame::OnCreate(LPCREATESTRUCT lpCreateStruct){//使“退出系统”和其他3个权限菜单都不可用,即都是灰色的GetMenu()->GetSubMenu(0)-> EnableMenuItem(1,MF_BYPOSITION | MF_DISABLED | MF_GRAYED);GetMenu()-> EnableMenuItem(1,MF_BYPOSITION | MF_DISABLED | MF_GRAYED);GetMenu()-> EnableMenuItem(2,MF_BYPOSITION | MF_DISABLED | MF_GRAYED);GetMenu()-> EnableMenuItem(3,MF_BYPOSITION | MF_DISABLED | MF_GRAYED);}【步骤3】在CMainFrame中添加自己定义的函数void SetMenuSta(int type),此函数在登陆对话框的OnOK()中被调用,即当用户进入系统后使“进入系统”菜单项不可用,并根据用户类型使相应菜单可用。

学生成绩信息管理系统实训报告

学生成绩信息管理系统实训报告

学生成绩信息管理系统实训报告第一章:引言1.1 研究背景学生成绩信息管理是学校管理的重要组成部分,通过对学生成绩进行管理,可以及时了解学生的学习情况,为学校教育教学提供数据支持。

传统的学生成绩管理方式主要依靠纸质档案进行记录和管理,存在信息不及时、难以查询、易丢失等问题,给学校管理带来了不便。

1.2 研究目的本实训报告的目的是设计一个学生成绩信息管理系统,实现学生成绩的录入、查询、统计、分析等功能,提高学生成绩管理的效率和准确性。

1.3 研究方法本实训采用软件开发的方法,结合需求分析、系统设计和编程实现等步骤,开发学生成绩信息管理系统。

第二章:需求分析2.1 功能需求学生成绩信息管理系统应具备以下功能:1. 学生信息的录入和管理:包括学生的基本信息和成绩信息的录入、修改、删除等操作。

2. 成绩的查询和统计:可以根据学生的姓名、学号、科目等条件进行查询和统计。

3. 成绩的分析和报告:可以生成成绩分析和报告,包括学生的平均成绩、及格率、优秀率等统计信息。

4. 数据的备份和恢复:可以对学生成绩数据进行备份和恢复,防止数据丢失。

2.2 性能需求学生成绩信息管理系统应具备以下性能需求:1. 响应速度快:可以快速响应用户的操作请求,保证系统的流畅运行。

2. 数据安全可靠:学生成绩数据应进行相关的安全措施,保证数据的安全性和可靠性。

3. 系统稳定可靠:系统应具备较高的稳定性和可靠性,能够长期稳定运行。

第三章:系统设计3.1 系统架构设计学生成绩信息管理系统采用三层架构设计,分为表现层、业务逻辑层和数据访问层。

1. 表现层:负责用户界面的展示和用户与系统的交互。

2. 业务逻辑层:负责处理用户请求和业务逻辑的处理,包括学生成绩的录入、查询、统计和分析等操作。

3. 数据访问层:负责与数据库进行交互,包括学生成绩数据的读取、存储和修改等操作。

3.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):家庭教育权利和隐私法案,是美国一项旨在保护学生个人信息的联邦法律。

学生成绩管理系统

学生成绩管理系统

学生成绩管理系统学生成绩管理系统是一个用于管理、记录和分析学生学习成绩的工具。

它可以帮助学校、教师和家长更好地了解学生的学习情况,提供个性化的教学指导和辅导。

本文将介绍学生成绩管理系统的功能、优势以及在实际应用中的作用。

一、功能介绍1. 学生信息管理:学生成绩管理系统可以存储和管理学生的个人信息,包括姓名、班级、学号、家庭联系方式等。

教师和学校可以通过系统快速查找和更新学生信息。

2. 成绩录入与查询:学生的各科成绩可以通过系统进行录入和查询。

教师可以根据学科、班级或学生姓名进行成绩查询,及时了解学生的学习情况。

3. 成绩分析与报告:学生成绩管理系统可以根据学生的成绩数据生成详细的成绩分析报告。

通过分析学生在不同科目、不同时间段的表现,教师可以更好地评估学生的学习水平和进步空间,及时调整教学内容和方法。

4. 学习计划和目标设定:学生成绩管理系统可以帮助学校和教师制定学生个性化的学习计划和目标。

根据学生的历史成绩和评估结果,系统可以推荐适合学生的学习资源和教材,提供针对性的学习建议。

5. 家校互动平台:学生成绩管理系统还提供了家校互动的功能,家长可以通过系统查看学生的成绩和评语,与教师进行实时沟通。

教师可以向家长发布通知、作业、考试安排等信息,促进学校和家庭的紧密合作。

二、系统优势1. 提高工作效率:学生成绩管理系统可以自动化完成学生信息管理、成绩录入和查询等繁琐的工作,节省教师和学校的时间和精力。

2. 数据准确性:通过使用学生成绩管理系统,可以避免人为录入错误和纰漏,确保学生成绩数据的准确性和完整性。

3. 个性化分析:学生成绩管理系统提供了丰富的成绩分析功能,可以根据学生的特点和需求进行个性化评估和辅导,促进学生全面发展。

4. 促进教学改进:通过对学生成绩进行全面分析,教师可以及时发现学生的薄弱环节和问题,采取有针对性的教学改进措施,提高教学效果。

5. 加强家校联系:学生成绩管理系统提供了家校互动平台,方便教师和家长之间及时沟通,共同关注学生的学习情况和发展。

学生成绩管理系统

学生成绩管理系统

学生成绩管理系统简介学生成绩管理系统是一种用于管理学生的学业成绩和相关信息的软件系统。

它可以帮助学校、教师和学生有效地管理和查询学生的成绩,提供全面的成绩分析和统计功能,促进教学质量的提高。

功能学生成绩管理系统通常具有以下核心功能:1.学生信息管理:包括学生的基本信息、课程注册、班级信息等。

2.成绩录入:教师可以登录系统,录入学生成绩,并进行相应的成绩审核和修改。

3.成绩查询:学生、教师和学校管理者均可通过系统查询学生成绩,可以按照学生、班级、课程等维度进行灵活查询。

4.成绩统计与分析:系统可以对成绩数据进行统计和分析,生成各类成绩报告和分析图表,为教师和学校提供决策依据。

5.成绩排名:系统可以根据学生成绩进行排名,可以按照总分、班级、课程等维度进行排名。

6.数据导入导出:系统可以支持将学生成绩数据导入导出到Excel、CSV等格式,方便学校的数据管理。

优势学生成绩管理系统的应用带来诸多优势:1.提高工作效率:通过系统自动化处理和统计成绩数据,节省了大量的人力和时间成本。

2.提供准确的数据:系统可以准确地计算和记录学生成绩,避免了人工计算和录入带来的错误。

3.提供个性化服务:学生成绩管理系统可以根据学生的不同需求提供个性化的信息查询和分析功能,满足学生个性化的学习需求。

4.提供全面的分析和决策支持:系统可以生成各类成绩报告和分析图表,帮助教师和学校进行成绩分析和决策。

5.提高教学质量:通过系统对学生成绩进行全方位的管理和分析,有助于教师了解学生的学习状况,及时调整教学方法,提高教学质量。

使用场景学生成绩管理系统适用于各类学校、教育机构以及在线教育平台的学生成绩管理需求。

以下是几个典型的使用场景:1.学校管理者可以通过系统了解学校整体的学生成绩情况,进行综合分析和决策。

2.教师可以通过系统录入学生成绩、排名、查询历史成绩等,方便管理学生成绩和进行个性化教学。

3.学生可以通过系统查询自己的成绩、查看排名等,及时了解自己的学习状况。

学生成绩信息管理系统

学生成绩信息管理系统

题目:学生成绩信息管理系统用c语言实现学生管理系统,每个学生的信息包括:学号、姓名、性别、平时成绩、期末成绩。

系统能够完成学生信息的查询、更新、插入、删除、排序功能。

1、系统以菜单方式工作;2、学生信息录入功能(学生信息用文件保存)--输入;3、学生信息按条件查询功能—算法;●按学号查询●按姓名查询●按性别查询●按平时成绩查询●按期末成绩查询4、学生信息的删除与修改。

流程图:图1 函数功能模块图输入输出的要求(1)等候用户输入时,给出足够的提示信息,如:选择1,输入学生信息、选择2,查询学生信息。

(2)对输入值的类型,大小范围,字符串长度等,进行检查,对不合法的输入值给出出错信息。

(3)对删除数据给出方式,让用户进行确认删除。

1.概要设计1.抽象数据类型定义struct Student//创建结构体{………………………………};2.系统功能模块划分与设计(系统功能模块图)录入学生信息模块:输入1,判断学生信息是否存在,不存在输入1,继续上次输入,判断学生信息是否存在,运行结束。

输入2,判断学生信息是否存在,不存在输入2,清除数据重新输入,运行结束。

查询学生信息模块:查询学生信息,请输入选择查询方式。

输入1,按姓名查找学生信息输入2,按学号查找学生信息输入3,按性别查找学生信息输入4,按平时成绩查找学生信息输入5,按期末成绩查找学生信息运行结束删除学生信息模块:首先使用查询功能查询出需要修改/删除的记录,然后进行修改/删除操作无学生信息!请选项删除方式。

输入1,按照姓名删除输入2,按照学号删除运行结束修改,输出,排序学生信息输入4,修改学生信息,请输入需要修改的学生信息输入5,按姓名,成绩,平时成绩,期末成绩输出学生成绩。

输入6,将学生信息进行排序。

运行结束2.详细设计1、数据类型的定义struct Student//创建结构体{char num[20]; //学号char name[20]; //姓名char sex[5]; //性别int score; //平时成绩int QiMoscore; //期末成绩struct Student *next; //动态链表连接下一个结构体};2、主要模块的算法描述菜单模块通过while语句给出信息提示;清屏;绘制菜单(包含输入,查询,删除,修改,输出,排序);提示菜单选择并读入到变量;根据读入变量的值调用不同的模块函数;信息录入模块打开文件While(){ 清屏;按照提示输入各种信息;While显示各种信息;通过选择1.确认并继续 2.填写 3.修改 4.确认并返回选择四种功能;}}信息查询While(){ 通过菜单式的选择是学号查询还是姓名printf("\n----------请选择查询方式----------");printf("\n 1.按姓名查询");printf("\n 2.按学号查询");printf("\n 3.按性别查询");printf("\n 4.按平时成绩查询");printf("\n 2.按期末成绩查询");printf("\n 3.返回主菜单");printf("\n****************************\n");}如果选择学号进入学号模块通过输入学号If(学号存在继续){输出学生信息}Else 输出无此学生如果选择姓名进入姓名模块If(根据比较姓名判断学生是否存在){输出学生信息}Else 输出无此学生删除模块while( 继续删除 ){提示并读入待删除的学生的学生号;显示要删除的信息}删除成功信息修改模块输入要修改学生信息的学号:If (判断是否有此学生){ 菜单形式显示要修改的项目printf("\n1.姓名 2.学号 3.性别 4.平时成绩 5. 期末成绩 \n");printf("\n输入0可返回主页面 \n");}打开文件模块struct Student *read(){struct Student *p0, *p1, *head; FILE *fp;if ( ){return NULL;}if ( ){return 0;}do{if ( ){return NULL;}if ( ){return 0;}} while ( );}排序模块int paixu(struct Student *head)while(){while(){if(){}}}}}3.使用说明及编程体会使用说明该程序可以实现学生管理系统的信息排序、查询、更新、插入和删除。

学生成绩管理系统

学生成绩管理系统
3 可以开发移动端应用:方便用户随时随 地进行学生成绩的管理和查询
4 可以引入更多的教学和管理功能:如在 线学习、教学评估等,更好地服务于教 育教学
-
THANK YOU
ENGLISH
可爱/简约/卡通
学生成绩管理系统
-
1
系统功能2系统流程来自3系统要求4
系统实现
5
系统未来发展
学生成绩管理系统
1
学生成绩管理系统是一个用于管理学生成绩的 计算机程序,通常用于学校或教育机构
2
这个系统可以记录每个学生的个人信息和成绩,
包括学生姓名、学号、班级、各科成绩等
3
以下是一个简单的学生成绩管理系统的示例
系统功能
系统流程
系统流程
2.1 学生信息流程
打开系统:进入学生信息管理界面
系统流程
选择添加学生信息:输入学生姓名、学 号、班级等信息
选择编辑学生信息:输入要修改的学生 学号,修改相关信息
选择删除学生信息:输入要删除的学生 学号,删除该学生信息
退出系统
系统流程
2.2 成绩管理流程
打开系统:进入成绩管理界面 选择添加成绩:输入学生学号及各科成 绩 选择编辑成绩:输入要修改的学生学号 及要修改的科目和成绩 选择删除成绩:输入要删除的学生学号 及科目,删除该科目成绩 退出系统

系统实现
系统实现
系统实现
为了实现学生成绩管理系统的各项功能,以下步骤需要被完成 确定系统的需求和功能:制定详细的需求说明书 设计系统的数据库结构和数据模型:包括学生信息、成绩信息等 开发系统的各项功能模块:包括学生信息管理、成绩管理、查询和统计等 进行系统的测试和调试:确保系统的稳定性和正确性 进行系统的用户培训和文档编写:确保用户能够正确使用系统
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

学生成绩信息管理系统1 引言................................. 错误!未定义书签。

设计目的与要求....................... 错误!未定义书签。

设计内容.............................. 错误!未定义书签。

2系统需求与功能分析 ..................... 错误!未定义书签。

系统需求分析......................... 错误!未定义书签。

系统功能分析.......................... 错误!未定义书签。

3总体结构设计........................... 错误!未定义书签。

系统的结构设计........................ 错误!未定义书签。

系统管理流程图........................ 错误!未定义书签。

4 系统详细设计和系统实现................. 错误!未定义书签。

5 系统测试............................... 错误!未定义书签。

6 结束语................................. 错误!未定义书签。

参考文献................................. 错误!未定义书签。

附录1:链表结构化设计源程序清单 ......... 错误!未定义书签。

附录2:顺序表结构化设计源程序清单............... ... . (26)1 引言设计目的与要求该学生信息管理系统采用C++语言开发研制,针对学生成绩及其数据特点,可以全面实现对学生成绩的插入、查询、修改、删除和输出等功能的计算机管理。

它能使学生信息数据的工作人员从繁重的工作中解脱出来,大大减轻了工作量,减少人为的工作失误,全面提高学生信息管理的效率,从而使学校对于学生成绩的管理水平和技术水平跃上一个新的台阶。

(1) 程序要添加适当的注释,程序的书写要采用缩进格式。

(2) 程序要具在一定的健壮性,即当输入数据非法时,程序也能适当地做出反应,如插入删除时指定的位置不对等等。

(3) 程序要做到界面友好,在程序运行时用户可以根据相应的提示信息进行操作。

(4) 根据实验报告模板详细书写实验报告,在实验报告中给出链表根据姓名进行查找的算法和插入算法的流程图。

设计内容定义一个包含学生信息(学号,姓名,成绩)的的顺序表和链表,使其具有如下功能:(1) 根据指定学生个数,逐个输入学生信息;(2) 逐个显示学生表中所有学生的相关信息;(3) 根据姓名进行查找,返回此学生的学号和成绩;(4) 根据指定的位置可返回相应的学生信息(学号,姓名,成绩);(5) 给定一个学生信息,插入到表中指定的位置;(6) 删除指定位置的学生记录;(7) 统计表中学生个数。

2系统需求与功能分析系统需求分析(1) 能完成学生信息的插入、查询、修改、删除、输出等功能;(2)采用单链表与顺序表存储结构实现;(3) 所有数据以外部文件方式保存。

系统功能分析(1)要设计一个学生成绩管理系统,其功能包括:①插入函数Add():将学生成绩信息插入到链表中;②查询函数Search():分别可以按学号和按姓名进行学生成绩查询;③删除函数Delete():当需要删除的学号和姓名一致时则删除对应的学生记录;④修改函数Modify():修改指定的学生成绩信息;⑤输出函数Show():输出全部学生成绩信息;⑥菜单函数Menu():为程序的菜单函数为实现各种功能提供便捷;⑦读取数据函数Read():从外部文件读取学生成绩信息;⑧保存数据函数Save():将数据保存到外部文件中。

3总体结构设计系统的结构设计通过对学生信息管理系统的功能分析,可以定义出系统的总体结构模块图,如图所示。

图学生管理系统总体结构设计系统管理流程图前面的分析中已经定义了系统各个模块,属于静态建模的范围。

在系统运行时刻的动态模型应该由系统的流程决定。

当用户运行该系统后可以来进行学生信息插入管理、学生信息查询管理、学生信息删除管理、学生信息修改管理及学生信息输出等操作,具体的流程如图所示。

图系统流程图主模块应负责应用程序的主界面,由它调用其他模块.因此主模块应具有操作性好、界面清晰的特点,使用户能够很方便地找到所需功能。

根据功能需求的结果分析,主界面应该由学生信息插入管理,学生信息查询管理、学生信息修改管理、学生信息删除管理和学生信息输出管理组成,可以通过输入相应的数字进入相应的功能模块。

4 链表学生信息管理系统详细设计和系统实现系统总体设计完成后,就可以根据需求对各个模块来进行实现了。

在本系统中需要编码实现的主要有学生信息插入、学生信息查询、学生信息修改、学生信息删除和学生信息输出等5个模块。

(1)学生信息插入模块添加的信息包括学号(不允许重复)、姓名(不允许重复)、分数。

流程图如下图所示。

图插入模块流程图本程序采用的是尾插法,就是每次将新申请的结点插在终端结点的后面,其执行过程如图所示。

图尾插法建立单链表操作示意图(2)学生信息查询模块按姓名和学号查找学生信息的流程图分别如下图所示。

图按姓名查找学生信息流程图在单链表中,即使知道被访问结点的位置i,也不能像顺序表那样直接按序号访问,而只能从头指针出发,设置一个工作指针p,顺next域逐个结点往下搜索。

当p指向某个结点时判断是否为第i 个结点,若是则查找成功;否则,将工作指针p后移,即将p指向原来所指结点的后继结点。

直到p为NULL时查找失败。

单链表查找过程如图所示。

图单链表查找过程的示意图按学号查询学生信息同按姓名查找学生信息,此处不再详细列出。

(3)学生信息修改模块首先要查找与要修改数据相匹配的信息,若没有则返回失败。

否则把相应的信息输出,然后再重新输入新的数据并保存到单链表。

(4)学生信息删除模块当选择删除功能时,首先输入要删除的同学的姓名,然后输入要删除的同学的学号,如果该同学存在并且姓名与学号匹配的上,则进行删除操作,否则返回失败。

其流程图如下:图删除学生信息模块流程图删除操作定义为将单链表的第i 个结点删去。

因为在单链表中结点a i 存储地址在其前驱结点a i-1的指针域,所以必须首先找到a i-1的存储地址p ,然后令p 的next 域指向a i 的后继结点,即把结点a i 从链上摘下来,最后释放结点a i 的存储空间,如图所示。

图在单链表中删除结点指针的变化情况(5)学生信息输出模块从单链表表头遍历整个单链表,将所有数据输出。

其部分代码N如下:void Function::Show(){ char choose;Student *temp;system("cls");temp=Student_First->Next;if(!temp){ cout<<"文件无数据\n\n "<<endl;cout<<"1.返回主菜单"<<endl;cin>>choose;while(choose!='1'){ cout<<"1.返回主菜单"<<endl;cin>>choose;}Menu();}else{ cout<<"姓名\t学号\t语文成绩\t数学成绩\t英语成绩\n";while(temp!=NULL){ temp->Out();temp=temp->Next;}}cout<<"1.返回主菜单"<<endl; cin>>choose;while(choose!='1'){ cout<<"1.返回主菜单"<<endl; cin>>choose;}Menu(); }5 系统测试在完成了系统各方面的设计后,并不是可以运行就完成的,为了保证系统性能的稳定性跟安全性等,就要对系统做测试。

测试环境如下:硬件:P4C ,80GB硬盘,512M内存;软件:Windows XP Personal SP2,分辨率1024*768,Microsoft Visual C++ 。

1.这是链表的主界面2.这是顺序表的主界面图运行主界面我就以顺序表为例介绍一下我的学生信息管理系统吧选择1清空学生信息功能时,如图所示。

图插入学生成绩信息实现②返回主菜单后选择3插入学生成绩信息,4删除学生信息,运行结果按由姓名特定位置删除和按学号删除两种分别如图和图所示。

图按学生学号查找相关信息实现图按学号查找相关信息实现③当在主菜单中选择4时,则进行删除功能。

其运行结果如图所示。

图删除学生信息功能实现⑤当在主菜单中选择6时,则进行显示当前信息功能。

其运行结果如图所示。

图输出学生信息功能实现6 结束语通过这次数据结构课程设计的实验,在解决问题的过程中,充分体会到了数据结构这门课程对于软件设计的重要性,也体会到了数据结构+算法=程序这句话的真正含义,一个实际问题的解决第一步就是要依赖于良好的抽象思维的,将实际问题转化为相应的数据结构,只有这一步做好了,才能采取相应的算法和优化方法解决问题和解决好问题。

参考文献[1] 钱新贤,杨猛,程兆炜,张少东.Visual C++编程疑难详解[M].北京:人民邮电出版社,2000[2] 王红梅,胡明,王涛.数据结构(C++)[M].北京:清华大学出版社,2007[3] 程学先.数据库原理与技术[M].北京:中国水利水电出版社,2001[4] Alex Kriegel & Boris .SQL Bible[M].北京:电子工业出版社,2000[5] 郑章,程刚,张勇.Visual C++数据开发技术[M].北京:机械工业出版社,[6] and . C++ Annotations. Version 4.4.0m,ICCE,University of Groningen,Netherlands,1990. 250~280附录1:链表结构化设计源程序清单回主菜单"<<endl;cin>>choose;while(choose!='1'){ cout<<"1.返回主菜单"<<endl;cin>>choose;}Menu();}void Function::Delete() 回主菜单\n2.继续删除"<<endl;cin>>choose;while(choose!='1'&&choose!='2'){ cout<<"1.返回主菜单\n2.继续删除"<<endl;cin>>choose;}if(choose=='1')Menu();else if(choose=='2')Delete();}void Function::Modify() 回主菜单\n2.继续修改"<<endl;cin>>choose;while(choose!='1'&&choose!='2'){ cout<<"1.返回主菜单\n2.继续修改"<<endl;cin>>choose;}if(choose=='1')Menu();else if(choose=='2')Modify();}void Function::Read() 姓名查询\n2.按学号查询\n";cin>>choose;if(choose=='1'){ cout<<"请输入您要查询的姓名:";cin>>t1;while(temp){ if(strcmp(t1,temp->GetName())==0){ flag=1;break;}temp=temp->Next;}if(flag==0)cout<<"\n无该学生的信息\n"<<endl;else{ cout<<"姓名\t学号\t语文成绩\t数学成绩\t英语成绩\n";temp->Out();}break;}else if(choose=='2'){ cout<<"请输入您要查询的学号";cin>>t2;while(temp){ if(t2==temp->GetNo()){ flag=1;break;}temp=temp->Next;}if(flag==0)cout<<"\n无该学生的信息\n"<<endl;else{ cout<<"姓名\t学号\t语文成绩\t数学成绩\t英语成绩\n";temp->Out();}break;}}while(choose!='1'||choose!='2');cout<<"\n1.返回主菜单\n2.继续查询"<<endl;cin>>choose;while(choose!='1'&&choose!='2'){ cout<<"1.返回主菜单\n2.继续查询"<<endl;cin>>choose;}if(choose=='1')Menu();else if(choose=='2')Search();}void Function::Show(){ char choose;Student *temp;system("cls");temp=Student_First->Next;if(!temp){ cout<<"文件无数据\n\n "<<endl;cout<<"1.返回主菜单"<<endl;cin>>choose;while(choose!='1'){ cout<<"1.返回主菜单"<<endl;cin>>choose;}Menu();}else{ cout<<"姓名\t学号\t语文成绩\t数学成绩\t英语成绩\n";while(temp!=NULL){ temp->Out();temp=temp->Next;}}cout<<"1.返回主菜单"<<endl;cin>>choose;while(choose!='1'){ cout<<"1.返回主菜单"<<endl;cin>>choose;}Menu();}void Function::Menu(){ time_t t;time(&t);char choose;system("cls");cout<<" ------------------------版权所有:李卉-------------------------"<<endl;cout<<endl;cout<<"*************************************************** ********"<<endl;cout<<" 平顶山学院欢迎你"<<endl<<endl;cout<<" 学生成绩信息管理系统"<<endl<<endl;cout<<" 显示系统时间和日期: "<<ctime(&t)<<endl;cout<<"*************************************************** ******"<<endl<<endl;cout<<"请选择您需要的操作,选择相关操作请输入相对的括号里的阿拉伯数字!"<<endl;cout<<"\n";cout<<" 1 录入学生成绩信息:\n"<<endl;cout<<" 2 查询学生成绩信息:\n"<<endl;cout<<" 3 删除学生成绩信息:\n"<<endl;cout<<" 4 修改学生成绩信息:\n"<<endl;cout<<" 5 显示全部学生成绩信息:\n"<<endl;cout<<" 6 退出系统"<<endl;cout<<"\n";cin>>choose;switch(choose){ case '1': Add();break;case '2': Search();break;case '3': Delete();break;case '4': Modify();break;case '5': Show();break;case '6': exit(1);break;default:{ cout<<"请按规定输入选择项!"<<endl;Menu();}}}void main(){ Function function; o;cout<<endl;cout<<"请输入第"<<i<<"名同学的姓名:";cin>>[i-1].name ;cout<<endl;cout<<"请输入第"<<i<<"名同学的成绩:";cin>>[i-1].score ;cout<<endl;++;}cout<<"\n本次操作您一共输入了"<<m<<"名数据\n";return 1;}.\n";if(pos<1||pos>{ cout<<"对不起,您要查找的学生不存在,请检查!\n"; return 0;}cout<<"以下是您要找的学生信息:\n\n";cout<<"学生姓名:"<<[pos-1].name<<endl;cout<<"学生学号:"<<[pos-1].No <<endl;cout<<"学生成绩:"<<[pos-1].score<<endl<<endl;return 1;}////删除操作///int dele_elem1(sqlist &sl,int pos,student &elem){ cout<<"请输入您要删除元素的位置:";cin>>pos;if(pos<1||pos>{ cout<<"您要删除的元素不存在,请检查!\n";return 0; }struct student *p,*q;p=&[pos-1]);elem=*p;q=+;for(++p;p<=q;++p) *(p-1)=*p;; cout<<"已删除,请检查输出!\n\n";return 1;}int dele_elem2(sqlist &sl,char *num,student &elem){ student *q,*p; p=;q=+; int flag=0; for(p;p<=q;p++){ if(strcmp(num,p->No)==0){ elem=*p; flag=1; }if(flag)break; }if(flag){ for(++p;p<=q;++p)*(p-1)=*p;;cout<<"已删除!检查输出看是否符合您的要求!\n\n";return 1;}else{ cout<<"不存在该学号代表的学生信息!\n";return 0;}}////输出///int out_list(sqlist sl){ if==0){ cout<<"\n\n~现在还没有任何信息或信息被删除!您可以先建立顺序表!~\n\n";return 0;}else{ cout<<"\n这是您要求的信息显示:\n"; struct student *q;q=;int count=0;for(q;q<+;q++){ count++;cout<<endl;cout<<"第"<<count<<"条:"<<endl;cout<<"学号:"<<q->No<<endl;cout<<"姓名:"<<q->name<<endl;cout<<"成绩:"<<q->score<<endl;cout<<"||||||||||||||||||||||||\n";}cout<<"~~~共有信息"<<<<"条~~~\n\n";}//elsereturn 1;}。

相关文档
最新文档