问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501
你好,欢迎来到懂视!登录注册
当前位置: 首页 - 正文

用C++语言设计一个简单的学生成绩管理系统,主要功能包括:

发布网友 发布时间:2022-06-01 02:28

我来回答

2个回答

热心网友 时间:2023-11-13 02:15

#include "stdio.h"
#include "stdlib.h"
#include "string.h"
#include "malloc.h"
typedef char ElemType;
#define OK 1
#define ERROR 0
#define OVER -1
typedef struct node
{
int number;
char name[20];
int chinese,math,english;
struct node *next;
} LinkList;
LinkList *InitList()
{
LinkList *H;
H=(LinkList *)malloc(sizeof(LinkList));
H->next=NULL;
return(H);
}
int Length_list(LinkList *H)
{
LinkList *p;
int j=0;
p=H;
while(p->next!=NULL)
{ p=p->next;
j++;
}
return j;
}
void CreateList(LinkList *H,int n)
{
int i;
LinkList *s,*last;
char ch;
last=H;
for(i=1;i<=n;i++)
{ s=(LinkList *)malloc(sizeof(LinkList));
printf("\n请输入第%d个学生的学号:",i);
scanf("%d",&s->number);
printf("\n请输入第%d个学生的姓名:",i);
scanf("%s",&s->name);
printf("\n请输入第%d个学生的语文、数学和英语成绩:",i);
scanf("%d%d%d",&s->chinese,&s->math,&s->english);
s->next=NULL;
last->next=s;
last=s;
}
}
LinkList *Locate(LinkList *H,int num)
{
LinkList *p;
p=H->next;
while(p!=NULL&&p->number!=num)
p=p->next;
return p;
}
LinkList *GetList(LinkList *H,int i)
{
LinkList *p;
int j=0;
p=H;
while(p->next!=NULL &&j<i)
{
p=p->next;
j++;
}
if(j==i)
return p;
else
return NULL;
}
int InsList(LinkList *p,LinkList x)
{
LinkList *s;
s=(LinkList *)malloc(sizeof(LinkList));
s->number=x.number;
strcpy(s->name,x.name);
s->chinese=x.chinese;
s->math=x.math;
s->english=x.english;
s->next=p->next;
p->next=s;
return OK;
}
int Ins_List(LinkList *H,int i,LinkList x)
{
LinkList *p;
p=GetList(H,i-1);
if(p!=NULL)
{
InsList(p,x);
return OK;
}
else
return ERROR;
}
int DelList(LinkList *p,LinkList *x)
{
LinkList *s;
s=p->next;
x->number=s->number;
strcpy(x->name,s->name);
x->chinese=s->chinese;
x->math=s->math;
x->english=s->english;
p->next=s->next;
free(s);
return OK;
}
int Del_List(LinkList *H,int i,LinkList *x)
{
LinkList *p;
p=GetList(H,i-1);
if(p!=NULL&&p->next!=NULL)
{
DelList(p,x);
return OK;
}
else
return ERROR;
}
out()
{
printf("\n*****************************************");
printf("\n请输入序号(0-4)选择要进行的操作:");
printf("\n0-------退出");
printf("\n1-------建立一个学生信息表");
printf("\n2-------插入一个学生信息");
printf("\n3-------删除一个学生信息");
printf("\n4-------查找一个学生是否在该学生信息表中");
printf("\n*****************************************\n");
}
void DisLinkList(LinkList *H)
{
LinkList *p;
printf("\n所有学生的信息如下:");
printf("\n 学号 姓名 语文 数学 英语\n");
p=H->next;
while(p!=NULL)
{
printf("%2d%10s%9d%9d%9d\n",p->number,p->name,p->chinese,p->math,p->english);
p=p->next;
}
}
void main()
{
LinkList *H,*p,*q,x;
int i,n,menux,flag,num;
//clrscr();
out();
H=InitList();
scanf("%d",&menux);
do{switch(menux)
{
case 0: exit(0); break;
case 1:
printf("\n请输入要生成学生信息表的元素各数:");
scanf("%d",&n);
CreateList(H,n);
printf("建立的学生信息表为:\n");
DisLinkList(H);
break;
case 2:
printf("\n请输入要插入的学生位置:");
scanf("%d",&i);
printf("\n请输入要插入的学生信息:");
printf("\n请输入学生的学号:");
scanf("%d",&x.number);
printf("\n请输入学生的姓名:");
scanf("%s",&x.name);
printf("\n请输入学生的语文 数学和英语成绩:");
scanf("%d%d%d",&x.chinese,&x.math,&x.english);
flag=Ins_List(H,i,x);
if(flag)
{
printf("\n插入后的学生信息表为:");
DisLinkList(H);
}
break;
case 3:
printf("请输入要删除的学生的位置:");
scanf("%d",&i);
flag=Del_List(H,i,&x);
if(flag)
{
printf("\n删除第%d个学生后,表中信息为:",i);
DisLinkList(H);
}
break;
case 4:
printf("\n请输入查找的学生学号:\n");
scanf("%d",&num);
if((q=Locate(H,num))!=NULL)
{
printf("\n在学生信息表中存在着学号为%d的学生!",num);
printf("\n学号 姓名 语文 数学 英语\n");
printf("%2d%10s%9d%9d%9d",q->number,q->name,q->chinese,q->math,q->english);
}
else
printf("\n在学生信息表中不存在着学号为%d的学生!",num);
break;
default:
printf("\n输入选项错误,请重新输入(0-4)!");
}
out();
scanf("%d",&menux);
}while(1);
}

热心网友 时间:2023-11-13 02:16

邮箱啊

声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。
E-MAIL:11247931@qq.com
电脑今天玩游戏突然风扇转的很快.鲁大师显示cpu86度平均79度然后从开... SL400P9C开机后一直窝吱吱的声音是怎么回事?电流声就正常吗?国产货还能... 手机号给别人补号了后通话提示什么? 养小金鱼吃什么食物 给小金鱼吃什么 家里小金鱼吃什么食物 大拇指筋断了后遗症 ...第一次剪去它的五分之二,第二次剪去它的三分之一,这块步还剩几分之... 一根一米长的小棒第一次截去它的三分之一第二次截去剩下的三分之一第... ...第一次用去全长的三分之一,第二次用去五分之六米,还剩全长的50%,这... 做学生成绩管理系统主要功能分为三大模块: 1.学生信息管理; 2.课程信息管理; 3.成绩信息管理。 海水在什么温度下会结冰 平板电脑网络连接 买螃蟹有什么技巧 只要掌握哪3个小技巧,就能挑出鲜活肥美膏满流油的螃蟹? verilog中的#是什么意思:`timescale 1ns&#47;10ps; reg wave;parameter d; #(d) wave=0;#(2*d) wave=1. verilog hdl 我想通过按键来分频 ,但是为啥没有结果输出呢 ? verilog HDL 的相关问题 请大神注释一段verilog HDL的分频程序 Verilog HDL问题 Verilog HDL语言关键字有哪些? 有关Verilog HDL的问题 跪求各位高手解读 万分感谢!!! 怎样把异步FIFO的Verilog hdl 代码中的parameter DSIZE = 8; parameter ASIZE = 4;改为宽度为16位,谢谢! Verilog HDL中单引号的作用:下面这些单引号怎么解释? parameter T100MS = 23&#39;d5_000_000;&#47;&#47;50M晶振 鱼籽要蒸多久才能蒸熟鱼籽要蒸多长时间才能熟 小米4怎么开后盖?如何开后盖?小米4开后盖方法 这份视力检查单怎么看呢?谢谢 小米4的后盖是什么材质 外科主要作什么 首套房优惠政策是什么 北京蔚蓝数字工业科技有限公司怎么样? 工业数字孪生技术离我们百姓有多远 数值模拟技术在工业生产中有哪些用途 &quot;“工业4.0”传统制造业与数字技术结合指的是什么? &quot; 用代理服务器怎么在家电脑上上网 请问,如何使在局域网下的电脑使用代理上网? 电脑怎么代理上网 保健品有哪些?又该怎么选择保健品呢? 局域网电脑通过使用代理上网 有哪些正规的保健品推荐? 车辆不解压法院能强制执行吗 怎么才能把Q币从一个号里给另外一个号呢 金价跌跌跌,央行却五连增黄金储备 透露着什么重大意义 怎么修改笔记本亮度 笔记本亮度怎么调,详细教您笔记本亮度怎么调 笔记本电脑如何调整屏幕亮度? 怎么做好吃,四季豆炒肉的家常做法 机械表刚买回来就快也是受磁了吗 oppor11系统更新想返回旧版本,不去oppo专卖店还能怎么弄? OPPOR11怎么恢复原版本?
  • 焦点

最新推荐

猜你喜欢

热门推荐