数据结构课程设计学生信息管理系统Word下载.docx

上传人:b****3 文档编号:18256294 上传时间:2022-12-14 格式:DOCX 页数:22 大小:216.55KB
下载 相关 举报
数据结构课程设计学生信息管理系统Word下载.docx_第1页
第1页 / 共22页
数据结构课程设计学生信息管理系统Word下载.docx_第2页
第2页 / 共22页
数据结构课程设计学生信息管理系统Word下载.docx_第3页
第3页 / 共22页
数据结构课程设计学生信息管理系统Word下载.docx_第4页
第4页 / 共22页
数据结构课程设计学生信息管理系统Word下载.docx_第5页
第5页 / 共22页
点击查看更多>>
下载资源
资源描述

数据结构课程设计学生信息管理系统Word下载.docx

《数据结构课程设计学生信息管理系统Word下载.docx》由会员分享,可在线阅读,更多相关《数据结构课程设计学生信息管理系统Word下载.docx(22页珍藏版)》请在冰豆网上搜索。

数据结构课程设计学生信息管理系统Word下载.docx

⑤。

显示学生信息,print()函数;

将以存在得学生信息输出

⑥.按某科成绩对学生进行排序,sort()函数;

五、详细设计及运行结果

1、 菜单:

2、creat()函数、 

3、find()函数、 

find1():

find2():

3、del()函数、

4、insert()函数、

5、print()函数、

6、sort()函数、

六、调试情况,设计技巧及体会

通过这次课程设计,我对这门课又有了一个新得理解,最大得喜悦不就是写出程序,而就是从中学会了怎么去写,该如何去写,在老师得严格监督下,自己也养成了独立思考得习惯,真得从中得到了很多好处,从思想到着手,所有都就是程序化得,必须踏踏实实得来。

 通过学生信息管理系统得设计,使我对链表有了更深得了解,也懂得了如何用链表进行输入,插入,排序等操作,两个礼拜得实习很快就过去了,这一次真得学到了很多东西,我也将会将自己所学到得东西用到自己以后得学习中去。

七、参考文献

C语言程序设计—---——-—--—---科学出版社

数据结构(C语言描述)—————清华大学出版社

数据结构(使用C语言)---—-电子科技大学出版社

八、附录:

源代码

#include<

stdio、h〉

#include<

string、h〉

#include<stdlib、h>

#defineNsizeof(structstu)

void clearscreen()/*清屏函数*/

{ getchar();

system("cls”);

}

structdate /*定义出生年月日得结构体*/

 {int year;

  intmouth;

intday;

};

structstu  /*定义学生信息得结构体*/

{intnumber;

  charname[30];

 charsex[5];

 struct datebirthday;

charmail[30];

 charphone[30];

intcscore,mscore;

ﻩ struct stu*next;

};

/*输出函数*/

intprint(structstu*p)

{

while(p!

=NULL)/*如果P所指得结点不为空 执行循环*/  

{printf("学号姓名 性别出生日期 E—mail 电话 C成绩  数学成绩\n");

 printf("

%2d%6s%6s%8d-%2d—%2d%11s%11s%6d%8d\n”,p—>number,p—>

name,p-〉sex,p-〉birthday、year,p->

birthday、mouth,p—〉birthday、day,p-〉mail,p->

phone,p—〉cscore,p-〉mscore

ﻩ);

ﻩ p=p->

next;

printf(”\n\n按回车键返回\n\n"

);

 getchar();

return 0;

/*创建链表*/

structstu *creat()

{structstu*p,*head;

inti,k;

  printf(”请输入学生得数:

\n”);

scanf("

%d”,&k);

  p=head=(struct stu *)malloc(N);

printf(”请输入学号\n”);

 scanf("%d”,&p—>number);

  printf("姓名\n");

 scanf("%s”,&p—>

name);

printf("性别\n"

 scanf(”%s",&

p—>

sex);

printf(”出生日期\n"

  scanf("

%d-%d-%d”,&

p-〉birthday、year,&p—>

birthday、mouth,&

p—>

birthday、day);

printf(”E—mail\n”);

scanf("

%s"

,&p->mail);

 printf("

电话\n"

 scanf("

%s"

&

p->

phone);

  printf("c成绩\n”);

scanf(”%d"

&p-〉cscore);

 printf("

数学成绩\n");

 scanf("

%d",&p->

mscore);

if(k〉1)

 for(i=1;

i<

k;

i++)

 {p-〉next=(structstu*)malloc(N);

p=p—〉next;

 printf("

请输入学号\n"

ﻩ scanf("

%d",&p—>number);

  printf("

姓名\n"

 scanf("%s"

&p-〉name);

printf("性别\n”);

scanf("%s”,&p-〉sex);

printf("出生日期\n”);

scanf(”%d—%d-%d”,&p—>

birthday、year,&p->

birthday、mouth,&p-〉birthday、day);

ﻩ printf(”E—mail\n”);

ﻩscanf(”%s",&p-〉mail);

printf("电话\n"

ﻩscanf("

%s”,&p—>phone);

printf(”c成绩\n”);

scanf("%d”,&p-〉cscore);

ﻩprintf(”数学成绩\n”);

ﻩ scanf("

%d",&p—>

mscore);

  }

p->

next=NULL;

  returnhead;

/*查找链表*/

structstu*find1(structstu*p)

{ int number;

if(p==NULL)

printf("

\n提示:

没有资料可以查询!

\n"

);

 return0;

ﻩ}

ﻩprintf(”请输入要查找得学生学号:

"

ﻩscanf("%d",&

number);

while(p!

=NULL)

ﻩ{ﻩ

ﻩif(p—〉number==number)

ﻩreturn(p);

ﻩbreak;

ﻩ}

else

p=p->

next;

return NULL;

structstu*find2(structstu*p)

  {

charname[30];

   if(p==NULL)

   printf("

\n提示:

\n");

 

  return0;

ﻩ printf("请输入要查找得学生姓名:

   scanf("

,name);

ﻩwhile(p!

=NULL)

{

ﻩﻩif(strcmp(p—>

name,name)==0)

ﻩreturn(p);

else

  p=p—〉next;

ﻩ}

 return NULL;

/*删除链表*/

intdel(structstu**h)

 {

intnumber;

   structstu*p,*p0;

ﻩif(*h==NULL) 

ﻩreturn 0;

 printf(”请输入要删除得学号\n”);

ﻩ scanf(”%d”,&number);

p0=*h;

if(p0—>number==number)

ﻩ {

ﻩ *h=p0->

next;

ﻩﻩfree(p0);

ﻩreturn1;

ﻩp=p0->next;

while(p!

=NULL)

ﻩif(p-〉number==number)

ﻩﻩ {

ﻩp0->next=p->

next;

ﻩﻩfree(p);

ﻩreturn1;

ﻩﻩ}

ﻩﻩp0=p;

p=p—〉next;

ﻩ printf(”\n按回车键返回\n");

ﻩgetchar();

ﻩreturn0;

 }

/*插入链表*/

 intinsert(structstu**h)

ﻩstruct stu*p,*p0;

ﻩp=(structstu*)malloc(N);

printf("

请输入要插入得学号\n"

  scanf("

%ld"

,&p—>number);

ﻩ p0=*h;

ﻩ if(p0—〉number==p—>number)

ﻩﻩreturn0;

 printf(”姓名\n”);

scanf("

%s"

p-〉name);

printf(”性别\n"

ﻩscanf(”%s",&

p-〉sex);

 printf("

出生日期\n”);

ﻩscanf("

%d%d%d"

p->birthday、year,&p->

birthday、mouth,&p->

birthday、day);

ﻩprintf("

E—mail\n”);

 scanf("

%s”,&p—>

mail);

printf("电话\n”);

 scanf("

%s"

,&

phone);

printf("

c成绩\n");

ﻩscanf("

%d",&p->

cscore);

printf(”数学成绩\n"

ﻩscanf(”%d"

&p->

mscore);

p-〉next=NULL;

if(*h==NULL)

ﻩ{

*h=p;

ﻩﻩreturn 1;

ﻩp0=*h;

if(p0->number>

p-〉number)

ﻩp—>

next=*h;

*h=p;

ﻩreturn 1;

while(p0->

next!

=NULL&

&p0->next—>

number<

p-〉number)

ﻩﻩ p0=p0—>

next;

 if(p0-〉next==NULL)

ﻩ {

ﻩp0-〉next=p;

ﻩﻩreturn1;

}

p->next=p0—>next;

 p0—〉next=p;

printf(”\n\n按回车键返回\n\n"

getchar();

  return1;

/*排序*/

structstu*sort(structstu*p0)

{

ﻩstruct stu*t,*p,*q,*z;

ﻩif(p0==NULL)

ﻩﻩprintf(”没有学生信息可排序!

\n”);

ﻩreturn0;

}

ﻩif((p0==NULL)||(p0—>

next==NULL))/*当节点不存在或者只有一个节点时*/

{ 

ﻩreturnp0;

ﻩ}

ﻩt=p0;

p=t-〉next;

t—>

next=NULL;

/*将头节点孤立出来*/

ﻩwhile(p)ﻩﻩ/*t始终指向头节点*/

{ 

ﻩq=p—>next;

if(p—>cscore>t—〉cscore)/*用头节点得后一个节点与头节点进行比较*/

ﻩ{

ﻩﻩﻩp->

next=t;

ﻩﻩ/*将分数大得放在前面*/

ﻩt=p;

ﻩﻩ/*t始终指向当前第一个节点*/

ﻩﻩ} 

ﻩelse

ﻩ{ 

ﻩﻩz=t;

ﻩﻩwhile(z-〉next&

&z-〉next->cscore>

=p->

cscore)

ﻩz=z—〉next;

ﻩp->

next=z->

ﻩz-〉next=p;

ﻩ}

ﻩp=q;

ﻩ} 

p0=t;

 return p0;

voidmain()

 struct stu*head,*p;

 int a;

 intb;

ﻩprintf(”*****************************西安邮电学院学生管理系统***************************\n"

ﻩprintf("

要进入系统请按任意键\n"

ﻩgetchar();

printf("*****************************欢迎您!

您已进入管理系统***************************\n");

 printf(”*********************************学生成绩管理系统*******************************\n"

do

ﻩ{

ﻩclearscreen();

  printf(”学生纪录操作:

\n");

ﻩﻩ printf("

1:

输入学生信息\n"

ﻩprintf("

2:

查找学生信息\n”);

ﻩﻩprintf(”3:

删除学生信息\n"

   printf("

4:

插入学生信息\n");

printf(”5:

显示学生信息\n”);

6:

按C语言成绩排序\n");

ﻩ printf("0:

退出系统\n"

ﻩprintf(”请选择(0~6):

”);

scanf("%d”,&b);

ﻩswitch(b)

ﻩﻩcase1:

head=creat();

   print(head);

ﻩﻩﻩbreak;

 case2:

printf("请输入要查找得种类:

如为学号请输1,如为姓名请输2:

\n”);

   scanf(”%d”,&

a);

ﻩﻩswitch(a)

ﻩ {

      case1:

p=find1(head);

break;

ﻩﻩﻩcase 2:

p=find2(head);

break;

ﻩﻩ }ﻩﻩ

     if(p)

ﻩﻩ{printf(”找到情况如下:

\n”);

ﻩﻩﻩgetchar();

ﻩﻩprintf("

学号:

%d姓名:

%s性别:

%s 出生日期:

%d-%d-%d E—mail:

%s电话:

%sC成绩:

%d数学成绩:

%d\n",p—>number,p->name,p-〉sex,p—〉birthday、year,p->birthday、mouth,p—>birthday、day,p—〉mail,p—>

phone,p->cscore,p->

mscore);

ﻩ}

else

ﻩﻩprintf(”没有找到!

\n"

ﻩﻩgetchar();

    break;

 case3:

if(del(&

head))

ﻩ printf("

已正确删除!

ﻩ else

ﻩﻩﻩﻩprintf("

要删除得结点不存在!

      getchar();

   break;

 case4:

if(insert(&head))

ﻩ printf("

已成功插入!

ﻩ else

ﻩﻩﻩprintf(”此学生已存在,插入失败!

    getchar();

      break;

ﻩ case5:

print(head);

ﻩﻩ break;

case6:

p=sort(head);

ﻩﻩ print(p);

ﻩ break;

case0:

break;

default:

printf("

输入错误!

请重新输入!

\n");

ﻩﻩ }

ﻩ}while(b!

=0);

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 管理学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1