当前位置:首页 » 考试成绩 » 学生成绩管理系统matlab课程设计

学生成绩管理系统matlab课程设计

发布时间: 2021-02-19 10:50:52

学生成绩管理 matlab gui

学生删除和信息修改 就没有做了 后面的要求都有 不知道要不要参考下??

满意请采纳。

⑵ 学生成绩管理系统课程设计

你好,我曾用c++学生成绩管理系统的程序,希望能对你有所帮助。
#include <string.h>
#include <iostream.h>
#include <stdio.h>
#include <stdlib.h>
#include <malloc.h>
/*------------------------------------定义类部分------------------------------------------------*/
class Node
{
char name[10];
int score;
class Node *next;
public:
Node* CreateNode(int n);
void PrinfListNode(Node *h);
void InsertList(Node *h,int i,char name[],int e,int *n);
void DeleteList(Node *h,int i,int *n);
Node* operator +=(Node *p);
Node *Unique(Node *p,int *n);
};
void DisplayNote(void);

/*--------------------建立单链表的成员函数,单链表节点的个数不确定--------------------------------*/
Node *Node::CreateNode(int n)
{
Node *head;
Node *pre,*p;
int i;
head=(Node*)malloc(sizeof(Node)); //用malloc动态申请内存,个数作为函数的输入参数
head->next=NULL;
pre=head;
for (i=1;i<=n;i++)
{
printf("请输入学生姓名:",i);
p=(Node*)malloc(sizeof(Node));
scanf("%s",p->name);
printf("请输入此学生的分数:",i);
scanf("%d",&p->score);
pre->next=p;
pre=p;
}
p->next=NULL;
return head;
}
/*---------------------------------输出链表函数实现部分------------------------------------------*/
void Node::PrinfListNode(Node *h)
{
Node *p;
p=h->next;
while(p)
{
printf("name:%s\tscore:%d",p->name,p->score);
p=p->next;
printf("\n");
}
}
/*----------------------------实现单链表的插入操作的成员函数--------------------------------------*/
void Node::InsertList(Node *h,int i,char name[],int e,int *n)
{
Node *p,*q;
int j;
if (i<1||i>(*n)+1)
{
printf("出错啦!请重试!.\n");
}
else
{
j=0;p=h;
while(j<i-1)
{
p=p->next;
j++;
}
q=(Node *)malloc(sizeof(Node));
strcpy(q->name,name);
q->score=e;
q->next=p->next;
p->next=q;
(*n)++;
}
}
/*-----------------------------实现单链表的删除操作的成员函数-------------------------------------*/
void Node::DeleteList(Node *h,int i,int *n)
{
Node *p,*q;
int j;
char name[10];
int score;
if (i<1||i>(*n))
{
printf("出错啦!请重试!.\n");
}
else
{
j=0;p=h;
while(j<i-1)
{
p=p->next;
j++;
}
q=p->next;
p->next=q->next;
strcpy(name,q->name);
score=q->score;
free(q);
(*n)--;
}
}
/*--------------------------重载运算符“+=”实现两个链表对象合并功能------------------------------*/
Node *Node::operator +=(Node *p)
{
Node *q=this;
while(q->next!=NULL) //把第一个链表最后的next指向第二个的头
{
q=q->next;
}
q->next=p->next;
return this;
}
/*----------------编写Unique()成员函数,实现剔除链表中重复元素,使所有节点值唯-----------------*/
Node *Node::Unique(Node *p,int *n)
{ Node *q=this,*k,*m;
int i;
if((*n)<=1) //用循环,拿一个和每一个去比较,一样的删除使用已经写好的删除函数
cout<<"ERROR!"<<endl;
else
{
for(i=1;i<(*n);q=q->next)
{
k=q;
p=q->next;
while(p!=NULL)
{
if(strcmp(q->name,p->name)==0)
{
m=p;
p=p->next;
k->next=m->next;
free(m);
(*n)--;
}
else{
k=p;
p=p->next;
}

}
}
}
return this;
}
/*--------------------------------编写主函数测试上述功能---------------------------------------*/
int main()
{
Node *h,*k;
int i=1,n,score;
char name[10];
int *m=0;
while(i)
{
DisplayNote();
scanf("%d",&i);
switch(i)
{
case 1:
printf("请输入表中成员的个数:\n");
scanf("%d",&n);
h=h->CreateNode(n);
printf("表中成员为:\n");
h->PrinfListNode(h);
break;
case 2:
printf("请写出成员的位置:");
scanf("%d",&i);
printf("请输入学生姓名:");
scanf("%s",&name);
printf("请输入学生分数:");
scanf("%d",&score);
h->InsertList(h,i,name,score,&n);
printf("表中成员为:\n");
h->PrinfListNode(h);
break;
case 3:
printf("请写出成员的位置:");
scanf("%d",&i);
h->DeleteList(h,i,&n);
cout<<"表中成员为:\n";
h->PrinfListNode(h);
break;
case 4:
printf("表中成员为:\n");
h->PrinfListNode(h);
break;
case 5:
printf("请输入另一个表中成员的个数:\n");
scanf("%d",&n);
k=k->CreateNode(n);
h=h->operator +=(k);
printf("两个链表相加之后的链表是:\n");
h->PrinfListNode(h);
break;
case 6:
h=h->Unique(h,&n);
printf("剔除重复元素后的新链表是:\n");
h->PrinfListNode(h);
break;
case 0:
return 0;
break;
default:
printf("出错啦!请重试!");
}
}
return 0;
}
void DisplayNote(void)
{
printf("1--建立新的链表\n");
printf("2--添加元素\n");
printf("3--删除元素\n");
printf("4--输出当前链表中的内容\n");
printf("5--两个链表对象合并\n");
printf("6--剔除链表中重复元素\n");
printf("0--退出\n");
}

⑶ 学生成绩管理系统: C++课程设计,设计主要功能:能按学期、按班级完成对学生成绩的录入、修改; 能按班级

去论坛上下一个吧,这种题目估计一搜一大片

⑷ 急求!!!!!一个用MATLAB设计的学生成绩管理系统程序(程序每句都需要加注释)

就是单抄链表定义结构体STUDENT,可袭包括学生姓名,学号,各科成绩,总分等信息,外加一个指向结构体类型的指针next,建立单链表,然后根据要求编写一系列函数,例如删除,插入,修改等,在主函数中调用用这种方法的好处就是在删除、插入信息时比较方便,只需要改变next的指向就好,不需要移动,而如果用数组的话,在删除插入时就要移动一堆的数据,编起来很麻烦啊~这个就是单链表的好处啊~

⑸ matlab 学生成绩管理系统

#include <iostream>
#define number 100
#define increasment 10
using namespace std;
int i;
bool found;
//结构体变量student.
struct student
{
char num[4];//学生的学号.
int score;//学生的分数.
};
//定义线性表变量.
typedef struct
{
student *elem;//线性表的首地址.
int length;
int listsize;
}sqlist;
//初始化此表.
void initlist(sqlist &L)
{
L.elem=(student*)malloc(number*sizeof(student));//分配存储空间.
if(!L.elem)exit(0);
L.length=0;
L.listsize=number;
return;
}
//为次表添加数据.
void inputlist(sqlist &L)
{
int n;
cout<<"输入你要存入学生信息的个数n:"<<endl;
cin>>n;
if(n>L.listsize)cout<<"空间不足.";//如输入的个数大于表的初始长的报错.
cout<<"这"<<n<<"明学生的具体的信息(学号(三位),成绩)是:"<<endl;
cout<<"输入范例:"<<endl<<"001 97"<<endl<<"002 95"<<endl<<"......"<<endl<<"学号 成绩"<<endl;
for(i=0;i<n;i++)
{
buf:
cin>>L.elem[i].num>>L.elem[i].score;//输入学生的学号和成绩.
if(L.elem[i].score<0||L.elem[i].score>100)//判断如果数据是否符合要求.
{
cout<<"输入数据错误,请从新输入"<<endl;
goto buf;
}
L.length++;
}
}
//输出整个表.
void output(sqlist &L)
{
cout<<"学号 成绩"<<endl;
for(i=0;i<L.length;i++)//输出表中所有学生的信息.
cout<<L.elem[i].num<<" "<<L.elem[i].score<<endl;
cout<<"学生总个数为:"<<L.length<<endl;
return ;
}
//在表中的某个位置插入一个元素.
void insertlist(sqlist &L,int i,student &e)
{
student *q,*newbase;
if(i<1||i>L.length+1)//如果插入的位置超出范围则报错.
printf("插入的节点不存在./n");
if(L.length>=L.listsize)
{
newbase=(student*)realloc(L.elem,(number+increasment)*sizeof(student));//开辟内存.
if(!newbase)exit(0);
L.elem=newbase;
L.listsize+=increasment;
}
for(q=L.elem+L.length-1;q>=&(L.elem[i-1]);q--)//插入点数之后的数据进行后移.
*(q+1)=*q;
*(q+1)=e;//插入该点.
L.length++;//表长加1.
output(L);//输出插入元素后所有学生的信息.
return ;
}
//删除一个一个表中的某个元素.
void deletelist(sqlist &L,int i,student &e)
{
student *p;
if(i<1||i>L.length)//删除的点超出范围则报错.
printf("删除的节点不存在./n");
e=L.elem[i-1];
for(p=&(L.elem[i-1]);p<=L.elem+L.length-2;p++)//删除点之后的元素进行前移.
*p=*(p+1);
L.length--;//表长减1.
output(L);//输出删除元素后所有学生的信息.
return ;
}
//合并两个表.
void connect(sqlist &La,sqlist &Lb,sqlist Lc)
{
student *pa,*pb,*pc,*pa_last,*pb_last;
pa=La.elem;pb=Lb.elem;
Lc.listsize=Lc.length=La.length+Lb.length;
pc=Lc.elem=(student*)malloc(Lc.listsize*sizeof(student));//分配新内存.
if(!pc)exit(0);
pa_last=La.elem+La.length-1;
pb_last=Lb.elem+Lb.length-1;
while(pa<pa_last&&pb<pb_last)//将表La和表Lb中的元素进行比较后添加到表Lc中.
{
if((*pa).score<(*pb).score)*pc++=*pa++;
else*pc++=*pb++;
}
while(pa<=pa_last)*pc++=*pa++;//将还剩下的元素也添加到表Lc中去.
while(pb<=pb_last)*pc++=*pb++;
output(Lc);//输出表Lc.
return ;
}
//定位某个元素是否在此线性表中.
bool location(sqlist &L,student &e)
{
found=false;
for(i=0;i<L.length&&!found;i++)//寻找元素是否在表中.
{
found=false;
for(int j=0;j<3;j++)
{
found=false;
if(e.num[j]==L.elem[i].num[j]&&e.score==L.elem[i].score)//存在则found赋值为true.
found=true;
}
}
return found;//返回一个bool型变量,来判断是否找到元素.
}
int main()
{
int n;//作为选择变量.
sqlist La,Lb,Lc;//定义三个表.
student e;//定义学生变量.
initlist(La);//初始化表La.
inputlist(La);//对表La进行赋值.
repeat:
cout<<"你可以对这些学生进行如下操作:"<<endl<<"1:插入元素;2:删除元素;3:显示所有信息;4:合并两个表;5:查找某元素是否在表中."<<endl;
cin>>n;
switch(n)//选择要进行的操作.
{
case 1:
{
cout<<"请输入所插入元素在哪个元素前.";
cin>>i;
cout<<"请输入所插入学生的具体信息,即学号(三位数字):";//输入学生的学号.
cin>>e.num;
cout<<"请输入成绩(0-100):";//数入学生的成绩.
cin>>e.score;
insertlist(La,i,e);break;//将上面的元素插入到表中去.
}
case 2:
{
cout<<"请输入所要删除的元素.";
cin>>i;
deletelist(La,i,e);break;//删除表的此元素.
}
case 3:output(La);break;//输出表.
case 4:
{
cout<<"请再建立一个表,从而能够实现两个表的合并."<<endl;
initlist(Lb);//初始化表Lb.
inputlist(Lb);//对表Lb进行赋值.
cout<<endl;
connect(La,Lb,Lc);break;//合并表La和Lb,并存到表Lc中.
}
case 5:
{
cout<<"请输入所要查找学生的具体信息,即学号(三位数字):";//输入学生的学号.
cin>>e.num;
cout<<"请输入成绩(0-100):";//数入学生的成绩.
cin>>e.score;
if(location(La,e))//确定此元素是否存在.
cout<<"此学生在表中,基本信息是:"<<e.num<<" "<<e.score<<endl;
else
cout<<"此学生不在表中."<<endl;
break;
}
default:cout<<"error";break;//报错.
}
cout<<"是否还进行其它操作,是请按1,否请按2."<<endl;
cin>>i;
if(i==1)//判断是否还进行其它的操作.
goto repeat;//是在跳到repeat出.
return 0;
}

⑹ matlab gui编程学生成绩管理系统,求参考文件。

学生删除和信息修改 就没有做了 后面的要求都有 不知道要不要参考下??

成绩查询系统 _20140109151523.rar" wealth="5" />

⑺ vb学生成绩管理系统(课程设计)

加我,马上解决

⑻ 设计一个简单的学生成绩管理系统,

我没写,只能和你说说怎么写。
可以由类模板和数组写。
我说说类模板的吧。
定义一个Student类存放学生信息(姓名,初始排名,各科成绩,个人总分);
初始排名由输入顺序排,在计算名字的时候就可以通过冒泡排序。
在里面定义计算总分的函数。
下面定义一个Caozuo类,用学生链表的做。你可以去找下这个例子。
数组的就很简单了,你只要想想。先定义数组(姓名,成绩),总分就是个人每科成绩的和,下面5个函数都可以通过数组遍历实现。如
cout<<"请输入你要查询的学生的名字:"<<endl;
cin>>n;
for(int i=0;i<=Maxsize;i++)
{
if(Student[i].name==n)
Student[i].Print();
}

⑼ 求一个学生成绩管理系统课设

用什么语言做?我有asp的学生信息管理系统,里面有学生成绩管理的模块。刚刚毕设做完的,可运行

热点内容
武汉大学学生会辅导员寄语 发布:2021-03-16 21:44:16 浏览:612
七年级学生作文辅导学案 发布:2021-03-16 21:42:09 浏览:1
不屑弟高考成绩 发布:2021-03-16 21:40:59 浏览:754
大学毕业证会有成绩单 发布:2021-03-16 21:40:07 浏览:756
2017信阳学院辅导员招聘名单 发布:2021-03-16 21:40:02 浏览:800
查询重庆2018中考成绩查询 发布:2021-03-16 21:39:58 浏览:21
结业考试成绩怎么查询 发布:2021-03-16 21:28:40 浏览:679
14中医医师资格笔试考试成绩查分 发布:2021-03-16 21:28:39 浏览:655
名著赏析课程标准 发布:2021-03-16 21:27:57 浏览:881
北京大学商业领袖高端培训课程 发布:2021-03-16 21:27:41 浏览:919