学生信息管理系统txtWord下载.docx
- 文档编号:8041977
- 上传时间:2023-05-09
- 格式:DOCX
- 页数:17
- 大小:287.88KB
学生信息管理系统txtWord下载.docx
《学生信息管理系统txtWord下载.docx》由会员分享,可在线阅读,更多相关《学生信息管理系统txtWord下载.docx(17页珍藏版)》请在冰点文库上搜索。
6、源代码
#include<
iostream.h>
string.h>
classStuList;
classStudent
{
friendStuList;
private:
charname[9];
charsex[6];
charadd[20];
intnumber;
Student*next;
public:
Student(char*val=NULL,char*sal=NULL,char*adl=NULL,intNo=0)
{
number=No;
next=NULL;
if(val!
=NULL)
strcpy(name,val);
if(sal!
strcpy(sex,sal);
if(adl!
strcpy(add,adl);
}
};
classStuList//带表头节点的链表类
Student*head,*current;
intcount;
StuList()
current=head=newStudent;
count=2003060;
cout<
<
"
链表已建立"
endl;
~StuList()
makeEmpty();
deletehead;
链表已删除"
//以下是成员函数
voidmakeEmpty();
voidadd(char*value,char*salue,char*adl);
voidinsert(intNo,char*value,char*salue,char*adl);
voidremove(intNo);
voidprint();
voidsearchStu(char*value);
intlength()
returncount-2003060;
voidStuList:
:
makeEmpty()//清空链表
Student*p;
while(head->
next!
p=head->
next;
head->
next=p->
deletep;
current=head;
count=0;
}
add(char*value,char*salue,char*adl)//将新元素value插入到最后
Student*newStu;
newStu=newStudent(value,salue,adl);
while(current->
current=current->
newStu->
next=current->
next=newStu;
number=count+1;
count++;
value<
已经加入表"
insert(intNo,char*value,char*salue,char*adl)//将新元素value插入,使他的学号变为No
Student*node=head;
newStu=newStudent(value,salue,adl,No);
while(node->
if(node->
number==No-1)break;
node=node->
next=node->
number=No;
Student*p=node->
while(p!
p->
number++;
p=p->
已经插入"
remove(intNo)//删除元素value
Student*p,*q;
q=head->
while(q!
if(q->
number==No)break;
q=q->
if(q==NULL)
没找到!
return;
p=head;
=NULL)//找到q的前一个节点p
if(p->
next==q)break;
next=q->
deleteq;
count--;
number--;
学号"
No<
已移除"
print()//输出链表
if(head->
next==NULL)//链表为空
链表为空!
姓名"
性别"
地址"
while(p->
p->
number<
"
name<
sex<
add<
searchStu(char*value)//查找含数据value的节点,返回该地址
current=head->
while(current!
if(strcmp(current->
name,value)==0)break;
if(current==NULL)cout<
elsecout<
找到学号为"
current->
'
'
在链表里"
classMenu//菜单类
char*c1,*c2;
Menu()
c1="
*"
;
c2="
*\n"
voidshow()
c1<
-*-*-*-*-*-*-*-*-*-*-*-*菜单*-*-*-*-*-*-*-*-*-*-*-*-*"
c2;
1.建立链表2.加入学生资料"
3.插入一个学生4.移除一个学生"
5.显示该表6.按姓名查找"
7.学生总数8.清空链表"
9.显示菜单0.退出程序"
-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-"
voidmain()
charcmd;
StuList*list=NULL;
Menumenu;
menu.show();
do{
endl<
请选择要进行的操作序号:
cin>
>
cmd;
if(list==NULL)//检查输入的命令是否合适
while(cmd!
='
1'
&
&
cmd!
9'
0'
)
还没有建立链表,请先建立链表"
switch(cmd)//匹配命令
case('
):
//建表
list=newStuList;
break;
2'
//加入学生到链表后
charinsname2[9],inssex2[6],insadd2[20];
请输入姓名,性别(maleorfemale),地址。
insname2;
inssex2;
insadd2;
list->
add(insname2,inssex2,insadd2);
3'
//按学号插入一个学生
charinsname3[9],inssex3[6],insadd3[20];
intinsnum;
学号(200306x):
insnum;
姓名:
insname3;
性别:
inssex3;
地址:
insadd3;
insert(insnum,insname3,inssex3,insadd3);
4'
//删除一个学生
intrem;
rem;
remove(rem);
5'
//显示所有学生
print();
6'
//按姓名查找一个学生
charsear[9];
姓名:
sear;
searchStu(sear);
7'
//学生总数
共有"
list->
length()<
个学生"
8'
//清空链表
makeEmpty();
链表为空"
//显示菜单
//退出
if(list==NULL)break;
chartemp;
删除链表退出?
(y/n):
temp;
if(temp=='
y'
~StuList();
list=NULL;
elsecmd=10;
default:
请输入菜单中的命令!
}while(cmd!
);
7、测试(程序有相似只列出部分程序)。
()
(1)开始界面:
(2)加入学生资料:
本程序可以添加很多的学生资料(加一个为例)
(3)插入一个学生:
(4)移除一个学生信息:
(5)显示学生人数:
由于移除一个学生,下面的学生学号自动升一位。
(6)按姓名查找:
8、系统评价及展望
优点:
(1)界面友好(良好的人机交互),提供菜单选项,并给出足够的选择信息以及提示信息。
(2)程序具有一定的健壮性,不会因为用户的输入错误引起程序运行错误而中断执行。
(3)源程序要加适当的注释,使程序容易阅读;
(4)可无限添加学生资料
缺点:
(1)学生学号是系统默认的,如果要更改学号要重新编写程序。
(2)本程序要进行操作,首先要建立链表,否则不能进行。
(3)界面中的9操作及彩单重复
展望:
在此程序基础之上还可以进行添加其他功能,例如添加学生的成绩。
且不会对原程序任何影响。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 学生 信息管理 系统 txt