数据结构停车场管理系统.docx

上传人:b****5 文档编号:8515664 上传时间:2023-01-31 格式:DOCX 页数:28 大小:476.90KB
下载 相关 举报
数据结构停车场管理系统.docx_第1页
第1页 / 共28页
数据结构停车场管理系统.docx_第2页
第2页 / 共28页
数据结构停车场管理系统.docx_第3页
第3页 / 共28页
数据结构停车场管理系统.docx_第4页
第4页 / 共28页
数据结构停车场管理系统.docx_第5页
第5页 / 共28页
点击查看更多>>
下载资源
资源描述

数据结构停车场管理系统.docx

《数据结构停车场管理系统.docx》由会员分享,可在线阅读,更多相关《数据结构停车场管理系统.docx(28页珍藏版)》请在冰豆网上搜索。

数据结构停车场管理系统.docx

数据结构停车场管理系统

数据结构课程设计

实验报告的书写要求

1、问题描述。

2、解题思路的描述:

(1)数据结构的选择和描述;

(2)主要算法的功能和描述(用框图或其他形式均可)。

3、源程序清单及实例的运行结果(源程序中应该附有必要的注释)。

4、小结,包括:

(1)说明遇到的问题及解决方法;

(2)算法复杂性分析;

(3)关于程序的特色和改进设想;

(4)其他需要说明的情况。

5、报告的叙述应该简单明确、切合实际、一目了然。

实验名称:

停车场的程序实验日期:

2010.12.5

一、课程设计要求

1、自行设计,独立完成。

2、根据项目任务,设计主要算法及流程。

3、设计测试数据。

4、列出程序清单(加有必要的注释)

5、列出程序的运行结果。

二、课程设计任务描述

利用线性链表实现学生成绩管理系统,具体功能:

输入、输出、插入、删除、查找、追加、读入、显示、保存、拷贝、排序、索引、分类合计、退出,并能在屏幕上输出操作前后的结果。

3、课程设计目的

1、握线性链表的建立。

2、掌握线性链表的基本操作。

3、掌握查找的基本算法。

四、程序清单及运行结果(列出程序清单,写出运行结果)

#include"stdio.h"

#include"stdlib.h"

#include"ctype.h"

#include"alloc.h"

#include"conio.h"

#include"string.h"

structstudent

{

intnum;

charname[10];

intage;

intclass;

}r[20];

menu_select()

{

char*menu[]={"***************MENU***************",

"0.createlist",

"1.sortbynum(shellsort)",

"2.sortbyage(Bubblesort)",

"3.sortbyclass(easysort)",

"4.searchbyname",

"5.searchbynameandnum",

"6.exit"};

chars[3];

intc,i;

gotoxy(1,80);

printf("\npressanykeyentermenu......\n");

getch();

clrscr();

gotoxy(1,3);

textcolor(YELLOW);

putch(0xc9);

gotoxy(2,3);

for(i=2;i<70;i++)

putch(0xcd);

putch(0xbb);

for(i=4;i<17;i++)

{

gotoxy(1,i);putch(0xba);

gotoxy(70,i);putch(0xba);

}

gotoxy(1,17);

putch(0xc8);

for(i=3;i<71;i++)

putch(0xcd);

putch(0xbc);

for(i=0;i<8;i++)

{gotoxy(15,7+i);

cprintf("%s",menu[i]);

}

textbackground(BLACK);

gotoxy(30,20);

do

{

textcolor(YELLOW);

printf("\nEnteryouchoice(0~6):

");

scanf("%s",s);

c=atoi(s);

}while(c<0||c>6);

returnc;

}

voidsearch(structstudentd[20],intn)

{

inti;

charm[10];

intflag=0;

structstudent*q;

q=d;

printf("pleaseenterthenamethatyouwanttosearch");

scanf("%5s",&m);

for(i=0;i

{

if((strcmp(m,q->name)==0))

{clrscr();

flag=1;

printf("\nsucess!

!

");

printf("\ntheinformationofthestudentis:

\n");

printf("num:

%2d",q->num);

printf("name:

%2s",q->name);

printf("age:

%2d",q->age);

printf("class:

%2d",q->class);

}

if(!

flag)

printf("Itdoesn'texist!

!

");

}

}

voidsearchzuhe(structstudentd[20],intn)

{

inti;

intnum1;

charm[10];

structstudent*p;

p=d;

printf("pleaseenterthenamethatyouwanttosearch");

scanf("%5s",&m);

printf("pleaseenterthenumthatyouwanttosearch");

scanf("%5d",&num1);

for(i=0;i

{

if(((strcmp(m,p->name)==0))&&(strcmp(num1,p->num)==0))

{clrscr();

printf("\nsucess!

!

");

printf("\ntheinformationofthestudentis:

\n");

printf("num:

%2d",p->num);

printf("name:

%2s",p->name);

printf("age:

%2d",p->age);

printf("class:

%2d",p->class);

}else

printf("Itdoesn'texist!

!

");

}

}intcreate()

{inti,j;

printf("pleaseenterthetotalnumberyouwantyoinsert:

");

scanf("%d",&i);

for(j=0;j

{printf("pleaseentertheinformationofthe%dstudent",j+1);

printf("\npleaseenterthenumber");

scanf("%4d",&r[j].num);

printf("\npleaseenterthename");

scanf("%s",&r[j].name);

printf("\pleaseentertheage");

scanf("%d",&r[j].age);

printf("\npleaseentertheclass");

scanf("%d",&r[j].class);

}return(i);

}voidprint(structstudenta[20],intn)

{

inti;

clrscr();

for(i=0;i

{

textcolor(YELLOW);

printf("\n\n\n****************************TheSTUDENT********************************\n");printf("num:

%2d",a[i].num);

printf("name:

%2s",a[i].name);

printf("age:

%2d",a[i].age);

printf("class:

%2d",a[i].class);

}

}

voidshell(structstudenta[20],intn)

{

inti,j,k;

charstr1[10],str2[10],str3[10],str4[10];

for(i=n;i>=1;i--)

{

a[i].num=a[i-1].num;

a[i].age=a[i-1].age;

a[i].class=a[i-1].class;

strcpy(str1,a[i-1].name);

strcpy(a[i].name,str1);

}

k=n/2;

while(k>=1)

{

for(i=k+1;i<=n;i++)

{

a[0].num=a[i].num;

a[0].age=a[i].age;

a[0].class=a[i].class;

strcpy(str2,a[i].name);

strcpy(a[0].name,str2);

j=i-k;

while((a[j].num>a[0].num)&&(j>=0))

{

a[j+k].num=a[j].num;

a[j+k].age=a[j].age;

a[j+k].class=a[j].class;

strcpy(str3,a[j].name);

strcpy(a[j+k].name,str3);

j=j-k;

}

a[j+k]=a[0];

}

k=k/2;

}

for(i=0;i

{

a[i].num=a[i+1].num;

a[i].age=a[i+1].age;

a[i].class=a[i+1].class;

strcpy(str4,a[i+1].name);

strcpy(a[i].name,str4);

}

printf("theshellresultis:

\n");

}

voidbubblesort(structstudenta[20],intn)

{

inti=0;

intj;

inttag,x,y,z;

charstr1[10],str2[10];

do

{

tag=0;

for(j=n-1;j>i;j--)

if(a[j].age

{

x=a[j].age;

y=a[j].num;

z=a[j].class;

a[j].age=a[j-1].age;

strcpy(str1,a[j-1].name);

strcpy(str2,a[j].name);

strcpy(a[j].name,str1);

a[j].class=a[j-1].class;

a[j].num=a[j-1].num;

a[j-1].age=x;

a[j-1].num=y;

a[j-1].class=z;

strcpy(a[j-1].name,str2);

tag=1;

}

i++;

}while(tag==1&&i

}

voideasysort(structstudentc[20],intn)

{

inti,j,x,z,y,l;

charstr1[10],str2[10];

for(i=0;i<=n-1;i++)

{

z=i;

for(j=i+1;j<=n-1;j++)

if(c[j].class

z=j;

{

x=c[i].class;

y=c[i].age;

l=c[i].num;

strcpy(str1,c[i].name);

strcpy(str2,c[z].name);

c[i].class=c[z].class;

c[i].age=c[z].age;

c[i].num=c[z].num;

strcpy(c[i].name,str2);

c[z].class=x;

c[z].age=y;

c[z].num=l;

strcpy(c[z].name,str1);

}

}

}

main()

{

intnumber;

for(;;)

{

switch(menu_select())

{

case0:

{clrscr();

number=create();

print(r,number);

}break;

case1:

{

clrscr();

shell(r,number);

print(r,number);

}break;

case2:

{

clrscr();

bubblesort(r,number);

print(r,number);

}break;

case3:

{clrscr();

easysort(r,number);

print(r,number);

}break;

case4:

{

clrscr();

search(r,number);

}break;

case5:

{

clrscr();

searchzuhe(r,number);

}break;

case6:

exit(0);}}}

停车场主界面:

车子进入停车场:

车子不进入停车场:

stoponstreet:

想进入停车场的截图:

不想进入停车场的截图:

离开停车场的截图为:

输出停车场中的所有信息的截屏为:

五、总结检验

1、是否达到课程设计目的?

何处体现?

这个程序达到了最终的目的,实现了队、栈的操作及其特点;通过实现改程序的运行可以得到结果。

2、哪些地方使你困惑?

你是如何解决的?

还是有一些代码不能够熟练地、快速地深刻理解部分代码,比如说是出队、出栈操作;通过向老师请教获得更进一步的理解,最总明白了整个程序代码,深刻理解两种特殊线性表在实际生活中的应用。

3、你认为哪些知识点重要,必须牢记?

对于特殊线性表这方面的知识,我认为应该抓住基础,深刻理解、融会贯通他们的基本操作,重点是定义,栈的顺序存储结构的运算,应用(算术表达式的应用),中缀表达式转换为等价的后缀表达式;还有就是队列的顺序存储结构及其运算,入队、出队,循环队列的基本操作和应用;队列的链式存储结构的基本操作,它的应用(了解键盘输入讯缓冲区的问题),我们还应给了解什么是一种受限制的特殊线性表。

成绩

6、教师评语及成绩

评语:

指导教师:

日期:

实验名称:

学生成绩管理系统实验日期:

2010.12.06

一、课程设计要求

1、自行设计,独立完成。

2、根据项目任务,设计主要算法及流程。

3、设计测试数据。

4、列出程序清单(加有必要的注释)

5、列出程序的运行结果。

二、课程设计任务描述

1.掌握线性链表的建立。

2.掌握线性链表的基本操作。

3掌握查找的基本算法。

三、课程设计目的

1.写出系统需求分析,并建模。

2.编程实现,界面友好。

3.输出操作前后的结果。

四、程序清单及运行结果(列出程序清单,写出运行结果)

#include"stdio.h"

#include"stdlib.h"

#include"ctype.h"

#include"alloc.h"

#include"conio.h"

#include"string.h"

structstudent

{intnum;

charname[10];

intage;

intclass;

}r[20];/*定义一个结构体变量r[20]*/

menu_select()

{char*menu[]={"***************MENU***************",/*字符型的菜单数组*/

"0.createlist",

"1.sortbynum(shellsort)",

"2.sortbyage(Bubblesort)",

"3.sortbyclass(easysort)",

"4.searchbyname",

"5.searchbynameandnum",

"6.exit"};

chars[3];

intc,i;/*定义两个整型变量c和i*/

gotoxy(1,80);

printf("\npressanykeyentermenu......\n");/*打印输出按任何键进入菜单选项*/

getch();

clrscr();

gotoxy(1,3);

textcolor(RED);/**/

putch(0xc9);

gotoxy(2,3);

for(i=2;i<70;i++)

putch(0xcd);

putch(0xbb);

for(i=4;i<17;i++)

{

gotoxy(1,i);putch(0xba);

gotoxy(70,i);putch(0xba);

}

gotoxy(1,17);

putch(0xc8);

for(i=3;i<71;i++)

putch(0xcd);

putch(0xbc);

for(i=0;i<8;i++)

{gotoxy(15,7+i);

cprintf("%s",menu[i]);

}

textbackground(BLACK);/*文本的背景色为黑色*/

gotoxy(30,20);

do

{textcolor(RED);

printf("\nEnteryouchoice(0~6):

");/*选项0到6*/

scanf("%s",s);

c=atoi(s);

}while(c<0||c>6);/*选择循环条件满足*/

returnc;/*函数返回值为c*/

}

voidsearch(structstudentd[20],intn)/*主查找函数;学生总个数为20,循环变量为n*/

{

inti;

charm[10];

intflag=0;/*flag初始值赋0*/

structstudent*q;

q=d;/*把d的值赋给指针q*/

printf("pleaseenterthenamethatyouwanttosearch");

scanf("%5s",&m);

for(i=0;i

{

if((strcmp(m,q->name)==0))/*比较字符串;指针q指向name*/

{clrscr();

flag=1;

printf("\nsucess!

!

");

printf("\ntheinformationofthestudentis:

\n");

printf("num:

%2d",q->num);

printf("name:

%2s",q->name);

printf("age:

%2d",q->age);

printf("class:

%2d",q->class);

}

if(!

flag)

printf("Itdoesn'texist!

!

");

}

}voidsearchzuhe(structstudentd[20],intn)/*主查找组合函数*/

{inti;

intnum1;

charm[10];

structstudent*p;

p=d;

printf("pleaseenterthenamethatyouwanttosearch");

scanf("%5s",&m);

printf("pleaseenterthenumthatyouwanttosearch");/*请键入你要的菜单项*/

scanf("%5d",&num1);

for(i=0;i

{if(((strcmp(m,p->name)==0))&&(strcmp(num1,p->num)==0))

{clrscr();

printf("\nsucess!

!

");/*查找成功*/

printf("\ntheinformationofthestudentis:

\n");

printf("num:

%2d",p->num);

printf("name:

%2s",p->name);

printf("age:

%2d",p->age);

printf("class:

%2d",p->class);

}

else

printf("Itdoesn'texist!

!

");/*否则输出不存在*/

}

}intcreate()/*建立学生信息库*/

{inti,j;

printf("pleaseenterthetotalnumberyouwantyoinsert:

");

scanf("%d",&i);/*从键盘取值*/

for(j=0;j

{printf("pleaseentertheinformationofthe%dstudent",j+1);

printf("\npleaseenterthenumber");

scanf("%4d",&r[j].num);

printf("\npleaseenterthename");

scanf("%s",&r[j].name);

printf("\pleaseentertheage");

scanf("%d",&r[j].age);

printf("\npleaseentertheclass");

scanf("%d",&r[j].class);

}return(i);/*返回输入的总数*/

}voidprint(structstudenta[20],intn)

{

inti;

clrscr();/*清屏*/

for(i=0;i

{textcolor(RED);/*文本颜色为黄色*/

printf("\n\n\n****************************TheSTUDENT********************************\n");

printf("num:

%2d",a[i].num);

printf("name:

%2s",a[i].name);

printf("age:

%2d",a[i].age);

printf("class:

%2d",a[i].cla

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

当前位置:首页 > 初中教育

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

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