编程实现一个简单学生成绩管理系统的操作(静态表C语言代码)

5 篇文章 5 订阅
订阅专栏

编程实现一个简单学生成绩表的操作

实验要求

此系统的功能包括:
1 查询:按特定的条件查找学生
2 修改:按学号对某个学生的某门课程成绩进行修改
3 插入:增加新学生的信息
4 删除:按学号删除已退学的学生的信息。
5 要求采用顺序存储结构来实现对上述成绩表的相关操作
在这里插入图片描述

解析

通过顺序表,将一个一个元素插入然后再打印出来,本题解我用的是静态的顺序表,并实现查询,删除,插入,修改的功能。

代码段

用C写的代码段

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


typedef struct {       //定义一个学生结构体
	char no[20];       // 学号
	char name[20];    // 姓名
	char sex[20];        //性别
	int price;       // 英语成绩
	int score;       //高数成绩
} 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("请输入学生的数量:");
	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("姓名:");
		scanf("%s",L.elem[i].name);
		printf("性别:");
		scanf("%s",L.elem[i].sex);
		printf("英语成绩:");
		scanf("%d",&L.elem[i].price);
		printf("高数成绩:");
		scanf("%d",&L.elem[i].score);

	}
	L.last=x;
	printf("\n");




	printf("所有学生的相关信息为:\n\n");
	for(i=0; i<L.last; i++) {
		printf("学号:%s 姓名:%s 性别:%s 英语成绩:%d 高数成绩:%d\n\n",L.elem[i].no,L.elem[i].name,L.elem[i].sex,L.elem[i].price,L.elem[i].score);
	}
	printf("\n");


	while(1) {
		printf("------------------菜单------------------\n");
		printf("  1-姓名查找\n");
		printf("  2-位置查找\n");
		printf("  3-插入\n");
		printf("  4-删除\n");
		printf("  5-修改学生成绩\n");
		printf("  6-退出系统\n");
		printf("------------------菜单------------------\n");
		scanf("%d",&x);
		switch(x) {
			case 1:
				printf("请输入你要查找的姓名:");
				scanf("%s",e.name);
				temp=Locate(&L,e);
				if(temp!=0)
					printf("学号:%s 性别:%s 英语成绩:%d 高数成绩:%d\n\n",L.elem[temp-1].no,L.elem[temp-1].sex,L.elem[temp-1].price,L.elem[temp-1].score);
				else
					printf("查找失败!\n\n");
				break;
			case 2:
				printf("请输入你要查询的位置:");
				scanf("%d",&i);
				if(i<=0||i>L.last)
					printf("查询失败!\n\n");
				else
					printf("该位置的学生信息为\n学号:%s 姓名:%s 性别:%s 英语成绩:%d 高数成绩:%d\n\n\n",
					       L.elem[i-1].no,L.elem[i-1].name,L.elem[i-1].sex,L.elem[i-1].price,L.elem[i-1].score);
				break;
			case 3:
				printf("请输入你要插入的位置:");
				scanf("%d",&a);
				printf("请输入插入学生信息:\n");
				printf("学号:");
				scanf("%s",m.no);
				printf("姓名:");
				scanf("%s",m.name);
				printf("性别:");
				scanf("%s",m.sex);
				printf("英语成绩:");
				scanf("%d",&m.price);
				printf("高数成绩:");
				scanf("%d",&m.score);
				if(InsList(&L,a,m)) {
					sum++;
					printf("插入成功!\n\n");
				} else
					printf("插入失败!\n\n");

				break;
			case 4:
				printf("请输入要删除学生的位置:");
				scanf("%d",&c);
				if(DelList(&L,c)) {
					sum--;
					printf("删除成功!\n\n");
				} else
					printf("删除失败!\n\n");
				break;

			case 5: {
				printf("请输入你要修改成绩的学生姓名:");
				scanf("%s",e.name);
				temp=Locate(&L,e);
				if(temp!=0) {
					printf("请依次输入英语成绩和高数成绩: ");
					int a,b;
					scanf("%d%d",&a,&b);
					L.elem[temp-1].price=a;
					L.elem[temp-1].score=b;
					printf("修改成功!\n");
					printf("学号:%s 性别:%s 英语成绩:%d 高数成绩:%d\n\n",L.elem[temp-1].no,L.elem[temp-1].sex,L.elem[temp-1].price,L.elem[temp-1].score);
				} else {
					printf("输入名字有误,请重新输入\n");
				}

			}
			break;

			case 6: {
				printf("当前总学生个数为:%d\n\n",sum);
			}

			printf("当前所有学生的相关信息为:\n\n");
			for(i=0; i<L.last; i++) {
				printf("学号:%s 姓名:%s 性别:%s 英语成绩:%d 高数成绩:%d\n\n",L.elem[i].no,L.elem[i].name,L.elem[i].sex,L.elem[i].price,L.elem[i].score);
			}
			printf("\n");
			printf("退出成功\n");
			return 0;
			default:
				printf("ERROR!\n");
		}
		printf("\n");
	}


	return 1;
}

结果展示

输入学生信息
实现姓名查找,位置查找
实现插入和删除
实现修改成绩和退出

点赞支持下作者吧(卑微ˋ( ° ▽、° ) )

海大11年秋季B卷第2题:编写一个简单学生成绩管理程序。有M个(M=50)学生,每个学生有N门(N=3) 课程的成绩。从键盘输入以上数据(包括学号,姓名,3门课的成绩), 计算出平均成绩,将原始数据
立志冲海大
08-28 580
题目 本题是中国海洋大学《C语言程序设计》2011年秋季B卷编程题第2题。 题目: 编写一个简单学生成绩管理程序。有M个(M=50)学生,每个学生有N门(N=3) 课程的成绩。从键盘输入以上数据(包括学号,姓名,3门课的成绩), 计算出平均成绩,将原始数据和计算出的平均成绩存放在student.dat文件中, 然后将该文件中的数据读入到结构体数组中并在显示器上输出。 以下是本篇文章正文内容,欢迎朋友们进行指正,一起探讨,共同进步。——来自考研路上的lwj 一、解题思路 思路: void main()
实现一个简单学生成绩管理系统
06-02
实现一个简单学生成绩管理系统 功能如下:首先输入学生的姓名、学号、3门课的成绩,人数在150人以内。程序可以1、计算出某门课程的最高分、最低分、平均分, 并输出;2、计算每位同学的平均分的最高分、最低分、平均分,并排序输出平均分;3、把每门功课的不及格率、优秀率,以图形化的 方式输出 提示:姓名、学号用2个2维字符数组保存;3门课的成绩用1个2维实型数组保存;中间结果可以根据需要使用2维实型数组
python编写一个简单学生成绩管理程序
Clt216的博客
03-28 890
对于此系统我所使用的是window11系统,所用python解释器版本:python3.8,建议在pycharm进行编写.基于对Python基础知识的掌握,对学生成绩管理系统进行全方位刨析,一步一步讲解,希望对有需要的人有所帮助。用户根据输入功能模块对应的数字编号进行操作,功能使用完成后再次返回主页面。用户如果输入数字0后,根据提示输入y则退出系统,否则继续返回主界面menu()choice=int(input('请选择:'))answer = input ('请确定要退出系统?y/n:')
C语言C语言 学生成绩管理系统(源码+报告)【千行代码】【独一无二】
最新发布
测试开发自动化
07-11 1385
学生成绩管理系统旨在提供一个高效且便捷的工具,用于管理学生、课程和选课信息,并生成和显示学生成绩单。系统主要包括以下功能模块: 数据初始化模块:读取学生、课程和选课信息文件,初始化系统数据。 主菜单模块:显示主菜单,供用户选择操作。 学生信息管理模块:添加、修改、删除和查询学生信息。 课程信息管理模块:添加、修改、删除和查询课程信息。 选课信息管理模块:添加、修改、删除和查询选课信息。 成绩单管理模块:根据选课信息和课程信息生成学生成绩单,并支持显示和排序功能。 数据存储模块:将当前的学生信息、课程信息和
使用Python文件I/O编写一个简易学生成绩管理系统
阿飞的博客
09-23 594
Python调用文件进行输入输出,我们可以用一个简单的小例子来更清楚的学习输入输出 #学生成绩管理简易系统 file = "studentInfo.txt" #定义文件地址为全局 def sysMenu(): # print("-"*50) print("学生成绩简易系统".center(50,"-")) print("-"*50) print("1.录入成绩") print("2.查询成绩") print("3.打印全部学生信息") pr
一个学生成绩管理程序
我选择我最爱
01-16 1905
实现目的:1、增加学生对象(学号、姓名、成绩)2、删除学生对象3、修改成绩4、平均成绩5、分别打出优秀,良、中等、不及格人数的百分比6、查询学生 package studentapplication;import java.util.HashMap;import java.util.Scanner;import java.util.Iterator;class
大一期末c语言大作业-学生成绩管理系统
10-03
在大一的学习阶段,C语言通常被视为编程入门的重要课程,而设计一个学生成绩管理系统是常见的实践项目,旨在让学生深入理解和应用C语言的基本概念。这个系统通过文件存储数据,这在实际开发中是非常常见的方式,因为...
学生信息管理系统(C++实现,链实现,还有完整的实验报告)
06-27
定义结构体类型,使用动态链结构编程实现学生 管理系统如下功能: (1)录入每个学生的基本信息; (2)计算每个学生的平均分; (3)按平均分从高到低输出学生信息; (4)按学生姓名的字典顺序输出学生基本信息; (5)按...
C语言学生成绩管理系统第二弹.zip
05-05
在这个“C语言学生成绩管理系统”中,开发者运用了C语言的基本语法和特性,构建了一个能进行成绩管理的简单系统。下面,我们将深入探讨该系统实现细节和涉及的知识点。 首先,该系统采用了结构体来封装学生的信息...
学生成绩管理系统代码c语言编写)
11-26
学生成绩管理系统代码C语言编写)】是C语言课程设计中常见的一项实践项目,旨在让学生通过实际操作,深入理解和应用C语言编程知识。这个系统通常包括一系列功能,如添加学生信息、录入成绩、查询成绩、计算平均...
基于C语言实现学生成绩管理系统.doc
08-25
本项目是基于C语言实现一个学生成绩管理系统,旨在让学生掌握C语言的基本语法和文件操作技能,以及如何构建简单的数据库系统C语言是一种静态类型、编译式的通用程序设计语言,它以其简洁和高效著称,是系统...
一个C语言编写的成绩,供大家参考
03-14
C++编写的成绩。能满足编程爱好者的需要
C语言编程实现输出成绩
10-16
C语言编程实现输出成绩 C语言初学者肯定遇到
C语言程序成绩排序
11-23
这是一个C语言程序,用以给学生成绩算总分和平均分,并且按照总分平均分高到底排序。
成绩程序
07-20
成绩程序
一个简单学生成绩管理系统(我的第一篇博客)
qq_41996971的博客
07-20 3741
学生成绩管理系统Demo,android+servlet(前端+后台) 一个简单学生成绩管理系统 Hello,这还是自己第一次写博客,有点小激动~ 一个完美的系统的展现是源于知识的积累沉淀,感觉自己还是个android知识小白,虽然这个管理系统不是那么完善,但是也花了一些时间,分享给大家,请大家多多指教哈~ 我这次使用的是androidstudio和intelliJ IDES,这个系统分为教师和...
学生成绩管理系统简单实现
qq_60486011的博客
03-02 162
使用单链和顺序简单实现学生成绩管理系统,sdu数据结构课程设计实验1
学生成绩管理程序
m0_68176382的博客
07-10 2852
学生成绩管理程序:用结构体数组设计一个菜单驱动的学生成绩管理程序。 学生的基本信息包括学生的学号、姓名、数学、语文、英语等信息。实现如 下管理功能: (1) 能输入并显示n 个学生的基本信息。 (2) 计算学生的平均分和总分。 (3) 按总分降序进行排序。 (4) 任意输入一个学号,能显示该学生的基本信息。 (5) 可添加学生信息到指定位置,亦可在最后追加一批学生信息。 (6)文件的导入和导出(从文件中读取若干条学生信息,或者将学生信息 输出到文件中)。 输出菜单形式如下: 请选择下面的菜单: 1 创建 2
一个简单学生成绩管理程序 (转)
ciya3282的博客
10-17 117
一个简单学生成绩管理程序 (转)[@more@]#include #include structlist{ intnum; charname[256]; intchina; intenglish; int...
C语言实现数据结构学生成绩管理系统与顺序操作
实验部分由韩英杰老师指导,实验一为设计性实验,要求学生熟悉C语言编程规范,理解算法复杂度分析,掌握函数定义与调用,以及文件读写操作。实验内容涉及存储学生信息,计算数学平均成绩,并对比静态与动态内存分配...
写文章

热门文章

  • 数据结构六种常见的排序方法(超详细图解内附代码) 14407
  • 如何用idea创建第一个Javaweb项目(新版idea超详细解答) 9792
  • 狂神说JavaWeb笔记(超级详细) 9341
  • 用栈实现回文判断 4468
  • 数据结构之索引表的创建设计 3764

分类专栏

  • 数据结构 5篇
  • Javaweb 3篇
  • 算法类比赛 3篇

最新评论

  • 数据结构六种常见的排序方法(超详细图解内附代码)

    学习使我妈快乐: 希尔排序有点问题

  • 数据结构六种常见的排序方法(超详细图解内附代码)

    m0_74873655: 希尔排序增量是多少?

  • 顺序查找和二分查找的编写(静态表实现内附代码与菜单)

    顾屿南歌。: 你这名字说的对

  • 数据结构六种常见的排序方法(超详细图解内附代码)

    m0_49876899: 大佬,为什么我运行希尔排序只有当增量为1时才是正确的

  • 如何用idea创建第一个Javaweb项目(新版idea超详细解答)

    呜呜呜白白呀: 这是哪一个版本的idea

大家在看

  • 啊啊啊啊啊啊 320
  • Adobe Premiere Pro(pr2024)软件下载安装(附win/mac安装包)
  • 【亲测可用】Adobe Photoshop (PS2024)软件下载安装(附安装包)
  • LLM-基于Zero-shot方式实现金融信息抽取
  • 传统到AI 大数据分析的演变,颠覆智慧水电的未来?

最新文章

  • 黑马老师前端教程HTML标签及CSS样式笔记资源
  • 狂神说JavaWeb笔记(超级详细)
  • 顺序查找和二分查找的编写(静态表实现内附代码与菜单)
2021年12篇

目录

目录

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值

国外留学毕业证书制作公司合肥做国外学历证代办珠海办理海外文凭证书制作长春补办国外留学文凭制作西宁办国外博士毕业证杭州海外成绩单制作杭州制作国外留学毕业证成都补办国外毕业证珠海定做国外学历补办珠海制作国外本科毕业证制作济南办理海外硕士毕业证乌鲁木齐办理国外大学毕业证制作哈尔滨代做海外毕业证制作长沙代办国外学位证定制沈阳做国外学历杭州定做海外证书代办南宁代做国外留学生学位证上海办海外证书代办银川定做海外文凭代做哈尔滨办理海外文凭补办上海做海外大学毕业证定做天津制作海外留学文凭定做南昌做海外文凭证书办理昆明代做国外本科毕业证定制南昌补办国外文凭代办哈尔滨代办国外留学毕业证定做济南代做国外学历证福州制作海外学位证制作海外文凭毕业证长沙补办国外文凭制作哈尔滨定做国外学历代做淀粉肠小王子日销售额涨超10倍罗斯否认插足凯特王妃婚姻让美丽中国“从细节出发”清明节放假3天调休1天男孩疑遭霸凌 家长讨说法被踢出群国产伟哥去年销售近13亿网友建议重庆地铁不准乘客携带菜筐雅江山火三名扑火人员牺牲系谣言代拍被何赛飞拿着魔杖追着打月嫂回应掌掴婴儿是在赶虫子山西高速一大巴发生事故 已致13死高中生被打伤下体休学 邯郸通报李梦为奥运任务婉拒WNBA邀请19岁小伙救下5人后溺亡 多方发声王树国3次鞠躬告别西交大师生单亲妈妈陷入热恋 14岁儿子报警315晚会后胖东来又人满为患了倪萍分享减重40斤方法王楚钦登顶三项第一今日春分两大学生合买彩票中奖一人不认账张家界的山上“长”满了韩国人?周杰伦一审败诉网易房客欠租失踪 房东直发愁男子持台球杆殴打2名女店员被抓男子被猫抓伤后确诊“猫抓病”“重生之我在北大当嫡校长”槽头肉企业被曝光前生意红火男孩8年未见母亲被告知被遗忘恒大被罚41.75亿到底怎么缴网友洛杉矶偶遇贾玲杨倩无缘巴黎奥运张立群任西安交通大学校长黑马情侣提车了西双版纳热带植物园回应蜉蝣大爆发妈妈回应孩子在校撞护栏坠楼考生莫言也上北大硕士复试名单了韩国首次吊销离岗医生执照奥巴马现身唐宁街 黑色着装引猜测沈阳一轿车冲入人行道致3死2伤阿根廷将发行1万与2万面值的纸币外国人感慨凌晨的中国很安全男子被流浪猫绊倒 投喂者赔24万手机成瘾是影响睡眠质量重要因素春分“立蛋”成功率更高?胖东来员工每周单休无小长假“开封王婆”爆火:促成四五十对专家建议不必谈骨泥色变浙江一高校内汽车冲撞行人 多人受伤许家印被限制高消费

国外留学毕业证书制作公司 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化