经典结构的典型应用程序 课件 .pdf
附录A经典结构的典型应用程序
A1顺序表的应用
以顺序表为存储结构,设计和实现学生成绩管理的完整程序。程序包含如下功能。
(1)建立学生成绩表,包含学生的学号、姓名和成绩。
(2)可以显示所有学生的成绩。
(3)可以计算学生的总数。
(4)可以按序号和学号查找学生。
(5)可以在指定位置的学生前插入学生成绩数据。
(6)可以删除指定位置的学生数据。
(7)可以把学生成绩按从高到低的顺序排列。
程序源代码如下:
“A1.CPP”
#includestdlib.h
#includestdio.h
#includestring.h
#includemalloc.h
#defineMAXSIZE100
typedefstructStudent
{
intscore;
charsno[10],sname[10];
}Student;
typedefstruct
{
intlast;
Studentdata[MAXSIZE];
}sqList;
//输出一个学生的信息
voidDispStudent(Student*stu)
{
system(cls);
printf(\n\n);
printf(学号:%s\t姓名:%s\t成绩:%d\n\n,stu-sno,stu-sname,stu-score);
printf(\n);
}
//输入一个学生的信息
Student*InputData()
{
Students,*stu=s;//声明一个结构体类型变量,声明一个指针指向它
charsno[10],sname[10];
printf(\n请输入学生学号:);
scanf(%s,sno);
if(!strcmp(sno,END))//如果在学号中输入END,则返回NULL,创建结束
returnNULL;
strcpy(stu-sno,sno);
printf(\n请输入学生姓名:);
scanf(%s,sname);
strcpy(stu-sname,sname);
printf(\n请输入学生成绩:);
scanf(%d,stu-score);
returnstu;
}
//输出所有学生信息
voidDispList(sqList*List)
{
inti=0,k=List-last;
printf(\n======学号======姓名======成绩======\n\n);
while(i=k)
{
printf(%s,List-data[i].sno);
printf(%s,List-data[i].sname);
printf(%d\n,List-data[i].score);
i++;
}
printf(\n====================================\n\n);
}
//创建顺序表
sqList*CreatesqList(sqList*List)
{
Student*stu;//声明一个结构体类型储存学生信息
while(1)
{
system(cls);
printf(请录入学生的信息,输入END结束:\n\n);
printf(当前有%d位学生的信息\n,List-last+1);
stu=InputData();//调用函数输入学生信息,返回Student指针给变量stu
if(stu==NULL)break;//指针为空,则结束创建
List-last++;//顺序表长度加一
List-data[List-last]=*stu;//将指针stu所指赋值给顺序表L的data
}
printf(创建完成!\n);
returnList;//返回顺序表的