计算机编程设计报告模板.docx

上传人:b****6 文档编号:5863279 上传时间:2023-01-01 格式:DOCX 页数:15 大小:81.61KB
下载 相关 举报
计算机编程设计报告模板.docx_第1页
第1页 / 共15页
计算机编程设计报告模板.docx_第2页
第2页 / 共15页
计算机编程设计报告模板.docx_第3页
第3页 / 共15页
计算机编程设计报告模板.docx_第4页
第4页 / 共15页
计算机编程设计报告模板.docx_第5页
第5页 / 共15页
点击查看更多>>
下载资源
资源描述

计算机编程设计报告模板.docx

《计算机编程设计报告模板.docx》由会员分享,可在线阅读,更多相关《计算机编程设计报告模板.docx(15页珍藏版)》请在冰豆网上搜索。

计算机编程设计报告模板.docx

计算机编程设计报告模板

 

 

计算机编程设计报告

题目:

电话订餐信息处理

专业名称:

信息与计算科学

班级:

2

学号:

2

姓名:

孙龙

指导教师:

组织单位:

时间:

 

1.设计目的

一个小饭馆的生意非常红火,要想用餐必须提前一天打电话预订。

假设我们是饭馆负责接受电话预订的服务员,我们需要做些什么呢?

首先,需要准备一张大小适当的白纸,等待顾客的电话。

李红最先打进了电话,她预约第2天中午12点用餐,用餐人数5人,服务员在纸上做了如下记录:

"李红12点5人“;接着,刘娜、汪寒、孙杰和赵军分别来了电话,服务员根据他们的要求做了记录,此时纸上记录的内容是:

 

孙杰随后又来了电话,将用餐时间推后一个小时,那么记录的内容也应该做相应的修改。

刘娜来用餐以后,可以将其信息从纸上划去。

下面编写程序处理电话订餐的情况。

2.功能描述

这是一个小型的管理系统,可以使用结构数组存储订餐的情况。

每个结构的数据可以包括姓名、人数、用餐时间等。

为了方便处理,还需要给每个打进电话的客户编个号,就像在饭馆等候用餐时,服务员会发给客户一样。

 

3.总体设计

3.1功能模块设计

可以声明以下的结构体类型:

structguest_info{//姓名

charname[8];//人数

intsum;//用餐时间

chartime[10];//编号

intnumber;

}GuestList[MaxSize];

程序包括5个函数,Insert,,Search,Update,Delete和Show,分别负责插入、查询、修改、删除和显示数据。

一般的信息管理系统都应该具备这几个功能,小型信息管理系统也不例外。

程序采用简单菜单驱动方式,屏幕上显示菜单如下:

1————插入(Insert)

2————查询(Search)

3————修改(Update)

4————删除(Delete)

5————显示(Show)

6————退出(Exit)

3.2完整数组程序

#include

#include

#defineMaxSize20

structguest_info{

charname[8];

intsum;

chartime[10];

intnumber;

}GuestList[MaxSize];

voidInsert(int*);

voidSearch(int);

voidUpdate(int);

voidDelete(int*);

voidShow(int);

intmain()

{

inti;

intcount=0;

do

{printf("\n");

printf("1---插入(Insert)\n");

printf("2---查询(Search)\n");

printf("3---修改(Update)\n");

printf("4---删除(Delete)\n");

printf("5---显示(Show)\n");

printf("6---退出(Exit)\n");

scanf("%d",&i);

switch(i)

{case1:

Insert(&count);

break;

case2:

Search(count);

break;

case3:

Update(count);

break;

case4:

Delete(&count);

break;

case5:

Show(count);

break;

case6:

break;

default:

printf("错误选择!

请重选");break;

}

}while(i!

=6);

return0;

}

voidInsert(int*count)

{inti,in_number;

if(*count==MaxSize)

{printf("空间已满!

");return;}

printf("请输入编号:

");

scanf("%d",&in_number);

for(i=0;i<*count;i++)

if(GuestList[i].number==in_number)

{printf("已经有相同的编号:

");return;}

GuestList[i].number=in_number;

printf("请输入姓名:

");

scanf("%s",GuestList[i].name);

printf("请输入人数:

");

scanf("%d",&GuestList[i].sum);

printf("请输入用餐时间:

");

scanf("%s",GuestList[i].time);

(*count)++;

}

voidSearch(intcount)

{inti,number,flag=1;

printf("请输入要查询的编号:

");

scanf("%d",&number);

for(i=0;i

if(GuestList[i].number==number)

{printf("姓名:

%s",GuestList[i].name);

printf("人数:

%d",GuestList[i].sum);

printf("用餐时间:

%s",GuestList[i].time);

flag=0;

}

else

printf("没有查询到!

!

");

}

voidUpdate(intcount)

{inti,number,flag=1;

printf("请输入要修改数据的编号:

");

scanf("%d",&number);

for(i=0;i

if(GuestList[i].number==number)

{

printf("请输入人数:

");

scanf("%d",&GuestList[i].sum);

printf("请输入用餐时间:

");

scanf("%s",&GuestList[i].time);

flag=0;

}

else

printf("没有查询到可以修改的数据!

!

");

}

voidDelete(int*count)

{inti,j,number,flag=1;

printf("请输入要删除数据的编号:

");

scanf("%d",&number);

for(i=0;i<*count&&flag;i++)

{if(GuestList[i].number==number)

{for(j=i;j<*count-1;j++)

GuestList[j]=GuestList[j+1];

flag=0;

(*count)--;

}

else

printf("没有查询到可以删除的数据!

!

");

}

}

voidShow(intcount)

{inti;

printf("\n");

printf("编号姓名人数用餐时间\n");

for(i=0;i

{printf("%10d",GuestList[i].number);

printf("%12s",GuestList[i].name);

printf("%10d",GuestList[i].sum);

printf("%12s\n",GuestList[i].time);

}

}

在上面的程序中,客户的订餐信息是存储在一个数组中的。

数组是一种处理数据的存储方式,下面用单链表存储这组数据。

因为指针是C语言的精髓,不能掌握指针的用法,不能说学会了C语言。

要建立单链表,首先需要正确的定义每个结点的数据是如何构成的,下面是订餐信息存储在链表中的数据定义。

图13.5则是示意图,表示链表中有3个结点时的情况。

typedefstructguest_info{

Charname[8];//姓名

intsum;//人数

chartime[10];//用餐时间

intnumber;//编号

structguest_info*next;

}Guestlink;

刘娜2人11点1

汪寒3人11点502

李红5人12点3

Head头指针

对于单链表,插入,查询,修改,删除和显示也是必须要完成的5个操作。

曾在前面讨论过有关单链表的操作方式,本例是尝试将有关单链表的操作集中起来,构成一个完整的管理系统,供读者参考和使用。

图13.6显示程序部分运行情况。

3.3完整指针程序

#include

#include

#include

#defineMaxSize20

typedefstructguest_info

{

charname[8];

intsum;

chartime[10];

intnumber;

structguest_info*next;

}GuestLink,*Pointer;

voidInsert(Pointer*Head);

voidSearch(PointerHead);

voidUpdate(PointerHead);

voidDelete(Pointer*Head);

voidShow(PointerHead);

intmain()

{

PointerHead=NULL;

inti;

do

{printf("\n");

printf("1---插入(Insert)\n");

printf("2---查询(Search)\n");

printf("3---修改(Update)\n");

printf("4---删除(Delete)\n");

printf("5---显示(Show)\n");

printf("6---退出(Exit)\n");

scanf("%d",&i);

switch(i)

{case1:

Insert(&Head);

break;

case2:

Search(Head);

break;

case3:

Update(Head);

break;

case4:

Delete(&Head);

break;

case5:

Show(Head);

break;

case6:

break;

default:

printf("错误选择!

请重选");break;

}

}while(i!

=6);

return0;

}

voidInsert(Pointer*Head)

{

intin_number;

Pointerp,q,r;

printf("请输入编号:

");

scanf("%d",&in_number);

p=q=*Head;

while(p!

=NULL)

{

if(p->number==in_number)

{printf("已经有相同的编号;");return;}

else

{q=p;p=p->next;}

}

r=(Pointer)malloc(sizeof(GuestLink));

r->next=NULL;

if(r==NULL)

{printf("分配空间失败!

");return;}

if(q==NULL)

*Head=r;

else

{q->next=r;}

r->number=in_number;

printf("请输入姓名:

");

scanf("%s",r->name);

printf("请输入人数:

");

scanf("%d",&r->sum);

printf("请输入用餐时间:

");

scanf("%s",r->time);

}

voidSearch(PointerHead)

{

intflag=1;

intnumber;

Pointerp;

printf("请输入要查询的编号:

");

scanf("%d,d",&number);

p=Head;

while(p!

=NULL&&flag)

{

if(p->number==number)

{

printf("姓名:

%s",p->name);

printf("人数:

%d",p->sum);

printf("用餐时间:

%s",p->time);

flag=0;

}

else

p=p->next;

}

if(flag)

printf("没有查询到!

");

}

voidUpdate(PointerHead)

{

intflag=1;

intnumber;

Pointerp;

printf("请输入要修改数据的编号:

");

scanf("%d",&number);

p=Head;

while(p!

=NULL&&flag)

{if(p->number==number)

{

printf("请输入人数:

");

scanf("%d",p->sum);

printf("请输入用餐时间:

");

scanf("%s",p->time);

flag=0;

}

else

p=p->next;

}

if(flag)

printf("没有找到要修改的记录!

");

}

voidDelete(Pointer*Head)

{intflag=1;

intnumber;

Pointerp,q;

printf("请输入要删除数据的编号:

");

scanf("%d",&number);

p=q=*Head;

while(p!

=NULL&&flag)

{if(p->number==number)

{

if(p==*Head)

{*Head=p->next;free(p);}

else

{q->next=p->next;free(p);}

flag=0;

}

else

{q=p;p=p->next;}

}

if(flag)

printf("没有查询到可以删除的数据!

!

");

}

voidShow(PointerHead)

{

Pointerp;

p=Head;

while(p!

=NULL)

{

printf("姓名:

%-10s",p->name);

printf("人数:

%-10d",p->sum);

printf("用餐时间:

%-10s",p->time);

printf("编号:

%-10d\n",p->number);

p=p->next;

}

}

4.运行结果

运行结果见图13.16。

 

5.小结

如果能够将本例的数据存储到文件中,那么就真正地实现了一个小型的管理信息系统(能将数据存储在磁盘中),请读者参考本章案例1有关文件操作的使用方法对本例进行修改,相信能有很大的收获。

 

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

当前位置:首页 > 经管营销

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

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