计算机编程设计报告模板.docx
- 文档编号:5863279
- 上传时间:2023-01-01
- 格式:DOCX
- 页数:15
- 大小:81.61KB
计算机编程设计报告模板.docx
《计算机编程设计报告模板.docx》由会员分享,可在线阅读,更多相关《计算机编程设计报告模板.docx(15页珍藏版)》请在冰豆网上搜索。
计算机编程设计报告模板
计算机编程设计报告
题目:
电话订餐信息处理
专业名称:
信息与计算科学
班级:
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有关文件操作的使用方法对本例进行修改,相信能有很大的收获。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 编程 设计 报告 模板
![提示](https://static.bdocx.com/images/bang_tan.gif)