资源简介
设计一个包含学生基本信息(学号,姓名,成绩)的顺序表,编程完成如下功能:
⑴ 初始化顺序表 L: 根据用户指定的学生数,逐个输入学生信息;
⑵ 打印表中所有学生信息: 逐个显示表中所有学生的基本信息;
⑶ 判断 L 是否为空表;
⑷ 查找指定学生: 根据姓名进行查找, 返回学生的位序,并输出学生的学号和成绩;
⑸ 根据指定的位置, 返回并输出相应学生的基本信息;
⑹ 给定一个学生信息, 将其插入到表中指定的位置;
⑺ 删除指定位置的学生记录;
⑻ 统计表中学生个数(求表长度);
⑼ 销毁表 L;
以上为必做题, 下面为附加题(选做) 。
⑽ 建立两个有序(学号) 的学生顺序表 La 和 Lb: 分别向顺序表 La 和 Lb 逐个输入 m 个
和 n 个学生的信息(并不一定按学号大小顺序输入);
⑾ 打印表 La 和 Lb 中的学生信息;
⑿ 将 La 和 Lb 归并为新的有序表 Lc;
⒀ 打印表 Lc 中的学生信息;
⒁ 销毁顺序表 La、 Lb 和 Lc。
其他要求:
⑴ 将所需要的标准头文件以及一些符号常量的定义等放在 Common.h 头文件中;
⑵ 顺序表类型定义( 采用定义二) 和基本操作函数声明放在 Sqlist.h 头文件中;
⑶ 基本操作函数的实现放在 Sqlist.cpp 文件中;
⑷ 测试应用程序放在 SqlistTestApp.cpp 文件中( 可以任意重复测试) 。
代码片段和文件信息
#include“common.h“
#include“Sqlist.h“
void print()
{
printf(“************************************\n“);
printf(“* 0.输出选项 *\n“);
printf(“* 1.请按顺序输入n个学生的信息 *\n“);
printf(“* 2.显示所有学生的信息 *\n“);
printf(“* 3.判断该表是否为空表 *\n“);
printf(“* 4.输入学生姓名,查找该学生的信息*\n“);
printf(“* 5.输入位置,显示该学生信息 *\n“);
printf(“* 6.添加学生信息 *\n“);
printf(“* 7.删除学生信息 *\n“);
printf(“* 8.计算学生个数 *\n“);
printf(“* 9.销毁表 *\n“);
printf(“* 10.分别输入学生表La和Lb *\n“);
printf(“* 11.分别输出学生表La和Lb的信息 *\n“);
printf(“* 12.将La和Lb归并有序表Lc *\n“);
printf(“* 13.输出Lc的信息 *\n“);
printf(“* 14.销毁LaLbLc *\n“);
printf(“* 其他:输出选项 *\n“);
printf(“************************************\n“);
}
void InitList(Sqlist &L)
{
int ijtemi;
double temd;
char str1[100];
printf(“请输入录入学生信息的个数:“);
scanf(“%d“&L.length);
for(i=0;i {
printf(“请输入该同学学号:“);
scanf(“%d“&L.a[i].xuehao);
printf(“请输入该同学姓名:“);
scanf(“%s“&L.a[i].name);
printf(“请输入该同学分数:“);
scanf(“%lf“&L.a[i].fenshu);
printf(“\n“);
}
for(i=0;i {
for(j=i+1;j {
if(L.a[i].xuehao>L.a[j].xuehao)
{
temi=L.a[i].xuehao;
L.a[i].xuehao=L.a[j].xuehao;
L.a[j].xuehao=temi;
strcpy(str1L.a[i].name);
strcpy(L.a[i].nameL.a[j].name);
strcpy(L.a[j].namestr1);
temd=L.a[i].fenshu;
L.a[i].fenshu=L.a[j].fenshu;
L.a[j].fenshu=temd;
}
}
}
printf(“已完成录入\n“);
}
void InitList(Sqlist L1Sqlist L2Sqlist &L3)
{
int ijk=0temi;
double temd;
char str1[100];
L3.length=L1.length+L2.length;
for(i=0;i {
L3.a[k].xuehao=L1.a[i].xuehao;
strcpy(L3.a[k].nameL1.a[i].name);
L3.a[k].fenshu=L1.a[i].fenshu;
k++;
}
for(i=0;i {
L3.a[k].xuehao=L2.a[i].xuehao;
strcpy(L3.a[k].nameL2.a[i].name);
L3.a[k].fenshu=L2.a[i].fenshu;
k++;
}
for(i=0;i {
for(j=i+1;j {
if(L3.a[i].xuehao>L3.a[j].xuehao)
{
temi=L3.a[i].xuehao;
L3.a[i].xuehao=L3.a[j].xuehao;
L3.a[j].xuehao=temi;
strcpy(str1L3.a[i].name);
strcpy(L3.a[i].nameL3.a[j].name);
strcpy(L3.a[j].namestr1);
temd=L3.a[i].fenshu;
L3.a[i].fenshu=L3.a[j].fenshu;
L3.a[j].fenshu=temd;
}
}
}
printf(“成功归入Lc!“);
}
void DispList(Sqlist &L)
{
int i;
if(L.length==0) printf(“该表已空!\n“);
for(i=0;i {
printf(“学号:%d “L.a[i].xuehao);
printf(“姓名:%s “L.a[i].name);
printf(“成绩:%.1lf“L.a[i].fenshu);
printf(“\n“);
}
}
void Panduan(Sqlist &L)
{
if(L.length==0) printf(“该表为空表!\n“);
printf(“该表不为空表\n“);
}
void Findname(Sqlist &Lchar str[])
{
int i;
for(i=0;i {
if(strcmp(strL.a[i].name)==0)
{
printf(“该同是%d名 “i+1);
printf(“学号:%d
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2016-04-14 14:42 顺序表\
目录 0 2016-04-14 14:42 顺序表\Debug\
文件 31283 2015-12-22 11:37 顺序表\Debug\Sqlist.obj
文件 16926 2015-12-22 11:27 顺序表\Debug\SqlistTestApp.obj
文件 13838 2015-10-03 17:02 顺序表\Debug\function.obj
文件 99328 2015-12-22 11:37 顺序表\Debug\vc60.idb
文件 102400 2015-12-22 11:30 顺序表\Debug\vc60.pdb
文件 282692 2015-12-22 11:28 顺序表\Debug\顺序表.exe
文件 392184 2015-12-22 11:28 顺序表\Debug\顺序表.ilk
文件 1999088 2015-12-22 11:26 顺序表\Debug\顺序表.pch
文件 607232 2015-12-22 11:28 顺序表\Debug\顺序表.pdb
文件 4799 2015-12-22 11:30 顺序表\Sqlist.cpp
文件 636 2015-12-22 11:26 顺序表\Sqlist.h
文件 1374 2015-09-30 12:35 顺序表\SqlistTestApp.cpp
文件 95 2015-09-29 22:20 顺序表\common.h
文件 4476 2015-09-29 22:25 顺序表\顺序表.dsp
文件 520 2015-09-29 22:25 顺序表\顺序表.dsw
文件 66560 2015-12-22 11:38 顺序表\顺序表.ncb
文件 49664 2015-12-22 11:38 顺序表\顺序表.opt
文件 712 2015-12-22 11:37 顺序表\顺序表.plg
- 上一篇:oracle 存储过程
- 下一篇:最新最全SQL2008存储过程解密
评论
共有 条评论