文档详情

经典结构的典型应用程序 课件 .pdf

发布:2024-12-24约3.34万字共48页下载文档
文本预览下载声明

附录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;//返回顺序表的

显示全部
相似文档