数据结构课程设计
}
} else
cout<<\表为空\\n\\n\
return p;
//----------------------删除函数---------------------------
LinkList * shanchu(LinkList *&p) //删除链表结点,实现对考生及其信息进行删除的功能 { }
//----------------------输出函数---------------------------
void shuchu(LinkList *p) //输出链表,实现考生报名信息表的输出功能 {
LinkList *L; L=p->next;
cout << \考生报名信息表输出:\\n\\n\ cout
<<
LinkList *m=p, *s; char y[12];
cout<<\请输入需删除者的考号\\n\\n\ cin>>y;
while (m!=0 && (strcmp(m->next->data.KH, y)!= 0))
m=m->next;
if (m == 0)
return NULL;
s = m->next; if (s == 0)
return 0;
m->next = s->next; free(s); return p;
\--------------------------------------------------------------------------------------------------\\n\
cout << \考生号 姓名 性别 年龄 籍贯 考试类别(1.高数
2.大学英语 3.数据结构 4.C语言)\\n\\n\
while (L != NULL)
9
数据结构课程设计
{
cout << setiosflags(ios::left) << setw(11) << L->data.KH << setiosflags(ios::left) <<
setw(9) << L->data.XM << setiosflags(ios::left) << setw(9) << L->data.XB << setiosflags(ios::left) << setw(12) << L->data.NL << setiosflags(ios::left) << setw(15) << L->data.JG << setiosflags(ios::left) << setw(0) << L->data.KSLB << endl;
} cout
<<
L = L->next;
\--------------------------------------------------------------------------------------------------\\n\\n\ }
cout << \ 输出结束\\n\\n\
三、软件模块结构图
3.1模块关系图 主函数 链 表录 入模 块 链表统计模块 链表查询模块 链表排序模块 链表修改模块 链表删除模块 链表输出模块 10
数据结构课程设计
四、程序流程图
4.1 程序流程图 1、录入
开始 主函数 main() 输入数字,选择功能 3、查询 5、修改 7、输出信息 2、统计 4、排序 6、删除 0、退出系统 11
数据结构课程设计
五、源程序
//-----------------------头文件--------------------------- #include
//----------------------创建链表------------------------- typedef struct //定义结点数据域
{
char KH[12]; //考生考号 char XM[12]; //考生姓名 char XB[4]; //考生性别 char NL[4]; //考生年龄 char JG[20]; //考生籍贯 int KSLB; //考试类别 }DataType;
typedef struct LNode //定义链表结点 {
DataType data; //结点数据域 struct LNode * next; //结点指针域
}LinkList;
//---------------录入函数----------------------------------
LinkList * luru(LinkList *&p) //录入链表结点,实现对考生信息的录入功能 {
LinkList *L=p ; //头节点 while (L->next!=NULL)
L=L->next;
LinkList *q;
q=(LinkList *)malloc(sizeof(LinkList));
12
数据结构课程设计
}
cout << \考号:\ cin >> q->data.KH; cout << \姓名:\ cin >> q->data.XM; cout << \性别:\ cin >> q->data.XB; cout << \年龄:\ cin >> q->data.NL; cout << \籍贯:\ cin >> q->data.JG;
cout << \考试类别(1.高数 2.大学英语 3.数据结构 4.C语言):\ cin >> q->data.KSLB; q->next = L->next; L->next = q; //头插法 return p;
//----------------------统计函数---------------------------
int tongji(LinkList *p) //统计链表,实现对考生人数及考试类别人数进行统计的功能 {
LinkList *L=p;
int n=0,m=0,i=0,h=0,j=0; while(p->next!=NULL) { n++;
if(p->next->data.KSLB==1) m++;
if(p->next->data.KSLB==2) i++;
if(p->next->data.KSLB==3) h++;
if(p->next->data.KSLB==4) j++; p=p->next; }
13