中易网

用C++实现一个简易的高校学籍管理系统。

答案:2  悬赏:0  
解决时间 2021-12-28 21:10
基本要求
1.采用单链表存储方式。
2.提供建立、查询、删除、增加、修改的功能。
3.main()函数中使用菜单选择各项功能。
-----------------------------------------------
以下是前面代码。
-----------------------------------------------
#include
#include
class list //建学生链表类
{
public:
int num,score;
char name[10];
class list *next;

};
typedef class list node;
typedef node *link;

link r,head,s; //声明头指针、工作指针、新结点指针

void create() //创建单链表
{
s=new node; //建立新节点,用s指针指向她
cout<<"请输入学号:"; // 输入节点内容
cin>>s->num ;
cout<<"请输入姓名:";
cin>>s->name ;
cout<<"请输入学分:";
cin>>s->score ;
r->next=s; // 把新节点连到链表上
r=s;
}

void linklist() //遍历单链表
{
r=head->next;
while(r)
{
cout<<"学号:"<num< cout<<"姓名:"<name< cout<<"成绩:"<score< r=r->next ;
}
}

void main()
{int i;
head=new node; //建立头指针
r=head; //工作指针指向头指针
cout<<"请建立学生档案链表:"<for(i=1;i<=3;i++)
create();
linklist();
//遍历单链表
}

-----------------------------------------------

在此谢谢,本人在线等 高手百度hi我。很急、、明天结束问题。。。。
最佳答案
#include
#include

class list //建学生链表类
{
public:
int num,score;
char name[10];
class list *next;

};

typedef class list node;
typedef node *link;

link r,head,s; //声明头指针、工作指针、新结点指针

void create() //创建单链表
{
link p;
s=new node; //建立新节点,用s指针指向她
cout<<"请输入学号:"; // 输入节点内容
cin>>s->num ;
cout<<"请输入姓名:";
cin>>s->name ;
cout<<"请输入学分:";
cin>>s->score ;
s->next=NULL;
if(!head->next)
head->next=s;
else
{
p=head->next;
while(p->next)
p=p->next;
p->next=s;
}
}

void linklist() //遍历单链表
{
link q=head->next;
if(!q)
cout<<"没有学生信息!"< {
while(q)
{
cout<<"学号:"<num< cout<<"姓名:"<name< cout<<"成绩:"<score< q=q->next ;
}
}
}

void show_node(link q)
{
cout<<"学号:"<num< cout<<"姓名:"<name< cout<<"成绩:"<score< }

link search_node(int num) //学号查找
{
link q=head->next;
while(q)
{
if(q->num==num)
return q;
else
q=q->next ;
}
return NULL;
}

void delete_node(int num)
{
link p=head,q=head->next;
while(q)
{
if(q->num==num)
{
p->next=q->next;
delete q;
q=NULL;
}
else
{
p=q;
q=q->next ;
}
}
}
void modify_name(char a[],char b[])
{
for(int i=0;i<10;i++)
a[i]=b[i];
}

void modify(int num,link p)
{
link q=head->next;
while(q)
{
if(q->num==num)
{
q->num=p->num;
modify_name(q->name,p->name);
q->score=p->score;
break;
}
else
q=q->next ;
}
}
void main()
{
head=new node; //建立头指针
head->next=NULL;
cout<<"1、添加学生信息"< cout<<"2、显示学生信息"< cout<<"3、查询学生信息"< cout<<"4、修改学生信息"< cout<<"5、删除学生信息"< int choice;
while(true)
{
cout<<"输入您的命令代号:";
cin>>choice;
switch(choice)
{
case 1:create();break;
case 2:
{
cout<<"学生信息为:"< linklist();
};break;
case 3:{
int code;
link q=NULL;
cout<<"输入要查询的学号:";
cin>>code;
q=search_node(code);
if(!q)
cout<<"您查找的学生不存在!"< else
{
cout<<"查找结果为:"< show_node(q);
}
};break;
case 4:{
int code;
link q=NULL;
cout<<"输入要修改的学生学号:";
cin>>code;
q=search_node(code);
if(!q)
cout<<"您查找的学生不存在!"< else
{
link p=new node;
p->num=code;
cout<<"输入新的信息:"< cout<<"姓名:";
cin>>p->name;
cout<<"学分:";
cin>>p->score;
modify(q->num,p);
cout<<"修改后的学生信息为:"< show_node(p);
}
};break;
case 5:{
int code;
link q=NULL;
cout<<"输入要删除的学号:";
cin>>code;
q=search_node(code);
if(!q)
cout<<"您要删除的学生不存在!"< else
{
delete_node(q->num);
cout<<"删除后的结果为:"< linklist();
}
};break;
}
}
}
全部回答

自己动手!丰衣足食!

我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
大英县城市管理监察执法大队火车站执法队地址
村范的意思是什么啊?请解释下!
私办的意思是什么?私办的释义是什么啊?
大英县城西管委会城市管理办公室地址在什么地
2011南宁民歌节有哪些明星来?
璀錯的意思是什么?璀錯的释义是什么啊?
两辆汽车同事时从甲乙两地相对开出甲车每小时
神牵鬼制的意思是什么啊?请解释下!
鼠标手严重了会怎么样
風流韻事的意思是什么?風流韻事的释义是什么
ふるさと是什么意思?这词的音调是什么
力诺瑞特太阳能热水器水量太小怎么办
噗通的意思是什么啊?请解释下!
怎么能瘦腿?
济南电焊工工资大约多少钱一月
推荐资讯
香港自由行 旅行社可以给预定机票和酒店吗?
末胄的意思是什么?末胄的释义是什么啊?
福州猎头公司哪家好,在民营企业方面做的好的
一本书第一天读了40页,第二天读了80%,第二
中馗的意思是什么啊?请解释下!
耀晔的意思是什么啊?请解释下!
三角带和平带关系
护页的意思是什么?护页的释义是什么啊?
微信朋友圈消息显示这条评论已删除是怎么回事
军宪的意思是什么啊?请解释下!
倒囷的意思是什么啊?请解释下!
耳石症可以自己在家里复位吗?
手机登qq时,显示手机磁盘不足,清理后重新登
刺客的套装怎么选啊?