用顺序表实现学生信息管理系统

学生信息管理
本文介绍了一个使用顺序表实现的学生信息管理系统,系统能够完成学生信息的增删改查等基本操作,并支持根据姓名查找学生详情和按位置获取特定学生信息。
用顺序表实现学生信息管理系统

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

#include<stdio.h> 
#include<string.h>
#include<stdlib.h>
#define MAXSIZE 100

 
typedef struct{
	char no[20];       // 学号 
	char name[20];    // 姓名 
	int price;        // 成绩 
}Student;

typedef struct{
	Student elem[MAXSIZE]; //线性表占用的数组空间 
	int last;    //最后一个元素的下标
}SeqList;

int Locate(SeqList *L,Student e)   //按照姓名查找 
{    /*用e返回L中第i个数据元素的值*/ 
    int i;
    for(i=0;i<L->last+1;i++)
	{
		if(!strcmp(L->elem[i].name,e.name)) //比较两个字符串是否相同 
		return i+1;  
    }
    return 0;
}

int InsList(SeqList *L,int i,Student e)   //插入学生信息 
{    /*在L中第i个位置之前插入新的数据元素e,L的长度加1*/ 
	int k;
	if(i<1||(i>L->last+2))
	{
		return 0;
	}
	for(k=L->last;k>=i-1;k--) //元素向后移动位置
	L->elem[k+1]=L->elem[k];
	L->elem[i-1]=e;
	L->last++;
	return 1;
}

int DelList(SeqList *L,int i) //删除指定位置学生记录 
{      
	int k;
	if(i<1||i>L->last+1)
	return 0;
	for(k=i;k<=L->last;k++) 
	{
		L->elem[k-1]=L->elem[k]; //将后面元素依次前移 
	}
	L->last--;
	return 1;
}

int main()
{
	int i,x,a,temp,select,sum=0,c;
	SeqList L;
	Student m,e;
	printf("********************************************************************\n"); 
	printf("*      1. 根据指定学生个数,逐个输入学生信息;                      *\n");
	printf("*      2. 逐个显示学生表中所有学生的相关信息;                     *\n");
	printf("*      3. 根据姓名进行查找,返回此学生的学号和成绩;               *\n");
	printf("*      4. 根据指定的位置返回相应的学生信息(学号,姓名,成绩);      *\n");
	printf("*      5. 给定一个学生信息,插入到表中指定的位置;                 *\n");
	printf("*      6. 删除指定位置的学生记录;                                 *\n");
	printf("*      7. 统计表中学生个数;                                       *\n");
	printf("*      8. 退出。                                                   *\n");
	printf("********************************************************************\n");
	printf("\n"); 
	while(select)
	{
		printf("请选择你要操作的选项:");
		scanf("%d",&select);
		printf("\n");
		switch(select)
		{
			case 1:
				
			    printf("请输入学生的数量:"); 
			    scanf("%d",&x);
			    printf("\n");
			    sum=x; 
			    for(i=0;i<x;i++)
			    {
			    	printf("第%d位学生信息\n",i+1);
			    	printf("\n");
				    printf("学号:");
				    scanf("%s",L.elem[i].no);
				    printf("-----------------------------\n");
				    printf("姓名:");
				    scanf("%s",L.elem[i].name);
				    printf("-----------------------------\n");
				    printf("成绩:");
				    scanf("%d",&L.elem[i].price);
				    printf("-----------------------------\n");
			    } 
			    L.last=x;
			    printf("\n");
			    break;
			    
			case 2:
				
			    printf("所有学生的相关信息为:\n\n");
			    for(i=0;i<L.last;i++)
			    {
			    	printf("学号:%s 姓名:%s 成绩:%d\n\n",L.elem[i].no,L.elem[i].name,L.elem[i].price);
				}
				printf("\n");
				break;
				 
			case 3:
				
			    printf("请输入你要查找的姓名:");
			    scanf("%s",e.name);
			    temp=Locate(&L,e);
			    if(temp!=0)
			    printf("学号:%s 成绩:%d\n\n",L.elem[temp-1].no,L.elem[temp-1].price);
			    else
			    printf("查找失败!\n\n");
			    break;
			    
			case 4:
				
			    printf("请输入你要查询的位置:");
				scanf("%d",&i);
				if(i<=0||i>L.last)
				printf("查询失败!\n\n");
				else
				printf("该位置的学生信息为\n学号:%s 姓名:%s 成绩:%d\n\n\n",
				L.elem[i-1].no,L.elem[i-1].name,L.elem[i-1].price);
				break; 
			    
			case 5:
				
				printf("请输入你要插入的位置:");
				scanf("%d",&a);
				printf("请输入插入学生信息:\n");
				printf("学号:");
				scanf("%s",m.no);
				printf("姓名:");
				scanf("%s",m.name);
				printf("成绩:");                                                                                
				scanf("%d",&m.price);
				if(InsList(&L,a,m))
				{
					sum++;
					printf("插入成功!\n\n"); 
				}
				else
				    printf("插入失败!\n\n");
				break;
				
			case 6:
				
				printf("请输入要删除学生的位置:");
			    scanf("%d",&c);
			    if(DelList(&L,c))
			    {
			    	sum--;
			    	printf("删除成功!\n\n");
				}
			    else
			        printf("删除失败!\n\n");
			    break;
			
			case 7:
				
				{
					printf("总学生个数为:%d\n\n",sum);
				}
				break;
			case 8:
			    {
			    	printf("\n退出系统成功!请按任意键结束!\n");
			    	exit(0);
				}
				break; 		
		} 
	}
	return 0;
} 
学生成绩管理系统 摘 要 随着互联网的飞速发展,越来越多的信息通过网络服务的承载和共享,在促进人类社会大跨步向未来迈进的同时, 也为教育事业带来了蓬勃而持久的春天,而我们也赶上了一个好时代,使得学校与社会,群体与群体之间相互交叉和融合,而教育行业作为人类未来的引路者,与时俱进,应运而产生了不可忽视的教务网络。信息化教育、电化教育、教务管理、数字化校园等名词不断涌现,而自大学到幼儿园,在线教务管理在教育的各个环节都起着至关重要的作用,在线成绩管理系统更是方便和简化了教育评价的工作步骤,因此,在线成绩管理系统的卡发和实现成为了教务管理中的一个重要环节。 关键词 信息化教育/教育事业/教务管理 目 录 中文摘要 Ⅰ 英文摘要 Ⅱ 1绪论 1 1.1 教务信息化分析 1 1.1.1 信息化教育 1 1.1.2 教育信息化 1 1.1.3 当前教育信息化的特征分析 1 1.2 需求分析 1 1.3 系统设计的目的和意义 2 2系统分析 3 2.1 可行性分析 3 2.2 实施方案分析 3 2.2.1 开发语言的选取 3 2.2.2 开发工具 4 2.3 系统功能分析 5 3数据库设计 5 3.1 实体数据分析 5 3.2 实体关系分析 6 3.3 数据库概念分析 6 3.4 数据库表设计 8 4详细设计 10 4.1 学生模块 10 4.1.1注册模块 10 4.1.2登录模块 11 4.1.3查询成绩模块 12 4.2 教师模块 13 4.2.1学期信息模块 13 4.2.2班级信息模块 14 4.2.3学生信息模块 14 4.2.4课程信息模块 16 4.2.5成绩信息模块 17 4.2.6系统管理模块 17 5系统测试 19 5.1 测试的重要性  19 5.2 测试的目的   20 5.3 测试的步骤  20 5.4测试的主要内容  20 致 谢 22 参考文献 23 1绪论 1.1教务信息化分析 1.1.1信息化教育 信息化教育,是指在现代认知发展策略的指导下,充分运用现代信息技术,开发出适合当前潮流、符合个体认知发展规律、并且能够培养学生信息素养的新型教育方式。 1.1.2教育信息化 教育信息化,是指在现代教育教学过程中,通过利用适当的媒介,并辅以适当的设计和引导,优化教育过程,使学习者成长为符合社会发展的需求的人的社会活动过程。 1.1.3当前教育信息化的特征分析 随着第二次工业革命的发展,媒体设备被应用到人类生活中的方方面面,多媒体教学也应运而融入教育活动中,当代教育信息化的表现多种多样,主要表现在以下几个方面: 1.幻灯片与投影仪类设备的应用; 2.依赖网络的教育信息传播; 3.教务信息化策略的实施; 4.个人微型计算机以及便携式移动设备的使用; 5.高度的信息公开策略。 1.2需求分析 作为教务管理平台中的一个至关重要的系统,在线成绩管理系统的出现,将教育者和学习者的距离拉近。在学校教学中,总体分为三个群体:教务管理者、普通教师、学生。教务管理者通过协调学校教育教学过程中的各种关系和矛盾,从而使教学过程更具有效率;普通教师通过教学设计和课堂、课外教学,以及对学生进行阶段性和形成性评价,促进了学生的认知发展;学生通过在校学习,提升了自己的认知结构。 1.3系统设计的目的和意义 对于一个学校而言,学生成绩的管理和查询是一项非常重要的工作,所以学生成绩管理系该主要实现学生成绩的信息化的管理与查询,学生成绩管理系统的开发所需要的资金少,系统正常运行后,能够实现学生成绩在网上进行成绩查询,节省了大量的人力和时间,而且可以减少成绩查询与管理中可能会出现的一些错误,所以,学生成绩管理系统的开发是十分必要的,而且它所带来的实用效益将远远大于本系统的开发成本,该系统操作非常简便,即使不太会使用计算机的人,只要经过培训,也能够很好的使用该系统,即使是管理员,只要经过简单的说明,也能够很快的学会系统的使用,只有对数据库和数据结构进行系统详细的分析,才能开发出满足系统所需要的各种对象,以及各个对象之间的关系,学生成绩管理系统对象有学生,教师,管理员,学生可以在网上查询自己的成绩信息,只要学生能够上网,就随时能够查到自己的成绩,并可以根据需要保存在校期间的所有成绩,学校管理员可以完成对学生信息管理,教师信息管理学生成绩的管理,教师也可以使用这个系统来进行学生成绩的录入和所教授班级成绩的查询。 ...
图书管理系统是典型的信息管理系统(MIS),其开发主要包括后台数据库的建立和维护以及前端应用程序的开发两个方面。对于前者要求建立起数据一致性和完整性强、数据安全性好的库。而对于后者则要求应用程序功能完备,易使用等特点。因此本人结合开入式图书馆的要求,对MS SQL Server2000数据库管理系统、SQL语言原理、Delphi应用程序设计,Delphi数据库技术进行了较深入的学习和应用,主要完成对图书管理系统的需求分析、功能模块划分、数据库模式分析,并由此设计了数据库结构和应用程序。系统运行结果证明,本文所设计的图书管理系统可以满足借阅者、图书馆工作人员和高级管理员三方面的需要。第一章对数据库应用系统开发和图书管理系统进行了简明的介绍,并分析了开发图书管理系统所应进行的工作。第二章对数据库的设计和SQL语言的使用进行了系统分析,为深入理解数据库应用打下了基础。第三章学习了具体的开发工具Delphi 6.0,对其数据库组件,SQL语言在Delphi中的应用等数据库编程关键技术进行了系统的介绍。第四章分析了图书管理信息系统的应用需求,按照数据库设计理论一步一步地给出了系统需求说明书、局部ER图、全局ER图、系统关系模式,子模式,利用MS SQL Server2000建立了数据库第五章进行了具体的程序设计,具体划分了三类用户的操作权限,设计了了三个操作界面。实现了数据库表的浏览,记录的添加、删除和修改,报表的生成,实现了多数据库表的连接操作,实现了多条件查询和模糊查询,并灵活实现了对不可更新查询结果集的更新操作,实现了主从表操作,实现了密码维护功能,最后,系统还可以导入数据库以对任意同结构的数据库进行操作。设计充分利用Delphi 6、MS SQL Server2000数据库技术的强大力量,提高了编程效率和可靠性。关键词:数据库,SQL语言,MS SQL Server,Delphi6,数据库组件,图书管理,窗体,listview组件
摘 要 高校学生成绩管理工作是高等教育中的一个极为重要的环节,是院校学生管理的基础。面对种类繁多的数据和报表,手工处理方式已经很难跟上现代化管理的步伐,传统的文件管理方式进行成绩管理,效率很低,耗时费力,容易出错,安全性也存在问题。特别是在查询上,由于文件过多,带来很多不便。随着计算机及通讯技术的飞速发展,高等教育对教务管理工作提出了更高的要求。尽快改变传统的管理模式,运用现代化手段进行科学管理。 本设计研究的是基于J2EE的高校成绩管理系统的设计与实现。本系统是基于J2EE开发的成绩管理系统,弥补了人工管理的不足,提高了一定的效率。主要功能包括教师对学生成绩的记录,生成总评成绩,成绩单的提交。学生查询相关的成绩信息管理员对学生、教师,课程、班级进行综合管理。该系统为教务处人员提供了强大的成绩管理功能,为教师提供了对平时成绩和期末成绩方便的管理,为学生提供了一个方便快捷的查询功能。本设计的开发工具使用MyEclipse,数据库使用的MySQL,框架是struts整合hibernate。 关键词:J2EE; 成绩管理; MySQL; MyEclipse Abstract College student grade management is a very important aspect of higher education,is the foundation of college students management. Faced with a wide variety of data and statements, the manual processing methods have been difficult to keep up with the pace of modern management, the traditional document management about grade management, is inefficient, time-consuming effort, error-prone, and also existing security issues. Because too many documents, it brings a lot of inconvenience in the query. With the computer and the rapid development of communication technology, higher education must meet a higher demand. We should change the traditional mode of management and use modern means of scientific management as soon as possible. The design based on J2EE technology mainly research about Implementation of grade management system of universities. The system is based on J2EE platform, cover the deficiencies of manual management, and improve the efficiency of management. Main features including: teachers record the grade of students in the term examines, generate the report card to examine. Students can query their information at any time with this system. Administrator can manage the students, teachers, curriculum, classes together. The system for the Registry staff with a powerful performance management capabilities, provide teachers with the usual results and final results for the management, provide students with a convenient and efficient enquiry function. The development tools is MyEclipse, database is MySQL, integrated framework is struts and hibernate. Key words: J2EE; Grade Management; MySql; MyEclipse 目 录 Abstract II 1 绪论 1 1.1高校学生成绩管理系统实施的背景分析 1 1.2选题的目的及意义 1 2 J2EE平台及其支撑技术 3 2.1 J2EE平台 3 2.1.1 J2EE简介 3 2.1.2 JSP技术 5 2.1.3 Servlet技术 7 2.1.4 EJB技术 8 2.1.5 J2EE发展趋势 9 2.2 MVC模式介绍 10 2.3 Struts框架介绍 14 2.4 Hibernate框架介绍 16 3 基于J2EE技术平台的学生成绩管理分析 18 3.1系统可行性分析. 18 3.1.1技术可行性 18 3.1.2经济可行性 18 3.1.3运行可行性 18 3.2系统需求分析 18 3.3系统整体说明 19 3.4系统模块的功能概述 19 4 系统总体设计 20 4.1.系统结构图 20 4.1.1包组织结构图 20 4.3数据流程图设计 21 4.4.1 E-R图 22 4.3主要功能模块的设计 22 4.2.1用户登录模块设计 22 4.2.2管理管理模块设计 23 4.2.3教师成绩录入和修改模块设计 23 4.2.4学生管理模块设计 23 5 基于J2EE技术平台的系统详细设计 24 5.1数据库详细设计 24 5.1.1 数据库需求分析 24 5.1.2 数据库概念结构设计 25 5.1.3 数据库逻辑结构设计 26 5.1.4 数据库结构的实现 28 5.1.5数据库模型 30 6 系统编码与测试 31 6.1系统编码说明 31 6.1.1系统配置文件 31 6.1.2系统运行效果图示. 35 6.1.3系统主要功能模块详细实现 40 6.1.3.1管理管理模块详细介绍 40 6.1.3.2管理管理模块代码说明 40 6.2 系统开发环境的搭建 47 6.2.1软件环境的配置 47 6.2.2硬件环境的配置 47 6.3系统性能测试 47 6.3.1安全性测试 47 6.3.2稳定性测试 47 7 总结与展望 48 7.1总结 48 7.2展望 48 参考文献: 49 致谢 49
评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值