沈阳工程学院课程设计报告 第4章 开始 功能选择 靠Switch语句实现选择 0退出系统 1-8和0对应不同的子函数 结束 图3-3 主函数功能图
3.5各功能模块实现
1. 增加功能:
具体代码如下,利用链表创建时,首先*p=head(head->=NULL),然后q= new NODE;再读入数据信息q->next=p,q->next=NULL:
void gongneng(NODE *n) {
q= new NODE; q->next=p; n=p=q;
cout<<\经过起点站名称:\ cin>>p->n;
cout<<\经过终点站名称:\ cin>>p->m;
cout<<\车次号码:\ cin>>p->num;
cout<<\发车时间:\ cin>>p->time; }
2. 显示功能:
具体代码如下,利用链表从头往后一直进行结点的遍历,在遍历的过程中实现数据的显
18
沈阳工程学院课程设计报告 第4章
示:
void gongneng() {
p=q;
while (p!=NULL) {
cout<<\经过起点站名称:\ cout<<\经过终点站名称:\ cout<<\车次号码:\ cout<<\开车时间:\
p=p->next; } p=q; }
3. 删除功能:
具体代码如下,找到结点后,利用k指针保存上一个指针,然后将p->next的地址赋值给k->next,再利用free()函数,实现p指针的数据清空:
void del( NODE *k)
{ {
k=new NODE; k=p=q; char n[20];
cout<<\请输入车次号码:\cin>>n;
while (p!=NULL&&(strcmp(p->num,n)!=0)!=0) {
k=p;
p=p->next;
}
if (p==NULL) {
cout<<\查无此车(-_-)!!\} else
if (p==q)
19
沈阳工程学院课程设计报告 第4章
q=q->next;
else
k->next=p->next; free(p); p=q;
cout<<\删除成功!\ } }
void del() {
p=q=NULL;
cout<<\所有信息已删除!\}
4. 修改功能:
具体代码如下,在找到需要修改的信息后,实现对信息的重新输入。首先是输入要修改的编号,系统会提示是否有此编号。根据提示进行有关信息的修改,修改完毕后会有提示修改成功并保存。程序如下:
void gongneng(char n[20])
{
p=q;
cout<<\请输入车次号码:\cin>>n;
while (p!=NULL&&(strcmp(p->num,n)!=0)!=0) {
p=p->next; }
if (p==NULL)
{cout<<\查无此车!!\} else {
cout<<\经过起点站名称:\ cin>>p->n;
cout<<\经过终点站名称:\ cin>>p->m;
cout<<\车次号码:\ cin>>p->num;
20
沈阳工程学院课程设计报告 第4章
cout<<\发车时间:\
cin>>p->time; }
cout<<\按任意键返回!!\}
5. 查询功能:
查询车次信息。在查询车次的函数里,首先通过链表的存在判断是否有资料存在。如果不存在,则界面提示:没有列车信息(-_-)!!当资料存在时,从键盘输入查询方式的选择:1车次查询;2站名查询;3站-站查询。
void gongneng() {
p=q;
char n[20]; char m[20];
char i;
cout<<\请选择查询方式:1车次查询;2站名查询;3站-站查询\\n\ cin>>i; if (p==NULL) {
cout<<\没有列车信息(-_-)!!\ }
switch(i) { case'1': {
cout<<\请输入车次号码:\ cin>>n; while (p!=NULL) {
if(strcmp(p->num,n)==0) {
cout<<\经过起点站名称:\ cout<<\经过终点站名称:\ cout<<\车次号码:\ cout<<\开车时间:\
21
沈阳工程学院课程设计报告 第4章
}
p=p->next; }
cout<<\按任意键返回!!\ return; } case'2':
{cout<<\请输入站名:\ cin>>n;
while (p!=NULL) {
if((strcmp(p->n,n)==0)||(strcmp(p->m,n)==0)) { cout<<\经过起点站名称:\ cout<<\经过终点站名称:\ cout<<\车次号码:\ cout<<\开车时间:\ }
p=p->next; }
cout<<\按任意键返回!!\ return;
}
case'3':{cout<<\请输入起点站名:\ cin>>n;
cout<<\请输入终点站名:\ cin>>m;
while (p!=NULL) {
if((strcmp(p->n,n)==0)&&(strcmp(p->m,m)==0)) {
cout<<\经过起点站名称:\ cout<<\经过终点站名称:\ cout<<\车次号码:\ cout<<\开车时间:\ }
p=p->next; }
22