计算机编程设计报告

上传人:无*** 文档编号:116599081 上传时间:2022-07-06 格式:DOC 页数:16 大小:162KB
收藏 版权申诉 举报 下载
计算机编程设计报告_第1页
第1页 / 共16页
计算机编程设计报告_第2页
第2页 / 共16页
计算机编程设计报告_第3页
第3页 / 共16页
资源描述:

《计算机编程设计报告》由会员分享,可在线阅读,更多相关《计算机编程设计报告(16页珍藏版)》请在装配图网上搜索。

1、计算机编程设计报告题 目: 电话订餐信息处理 专业名称: 信息与计算科学 班 级: 2 学 号: 201141210201 姓 名: 孙 龙 指导教师: 组织单位: 时 间: 目 录1. 设计目的22. 功能描述33. 总体设计43.1 功能模块设计43.2 完整数组程序103.3 完整指针程序104. 程序实现144.1 运行结果145. 小结151. 设计目的 一个小饭馆的生意非常红火,要想用餐必须提前一天打电话预订。假设我们是饭馆负责接受电话预订的服务员,我们需要做些什么呢?首先,需要准备一张大小适当的白纸,等待顾客的电话。李红最先打进了电话,她预约第2天中午12点用餐,用餐人数5人,服

2、务员在纸上做了如下记录:李红 12点 5人“;接着,刘娜、汪寒、孙杰和赵军分别来了电话,服务员根据他们的要求做了记录,此时纸上记录的内容是: 李红 12点 5人 刘娜 11点 2人 汪寒 11点 50 3人 孙杰 10点 10 4人 赵军 13点 20 6人 孙杰随后又来了电话,将用餐时间推后一个小时,那么记录的内容也应该做相应的修改。刘娜来用餐以后,可以将其信息从纸上划去。下面编写程序处理电话订餐的情况。2. 功能描述 这是一个小型的管理系统,可以使用结构数组存储订餐的情况。每个结构的数据可以包括姓名、人数、用餐时间等。 为了方便处理,还需要给每个打进电话的客户编个号,就像在饭馆等候用餐时,

3、服务员会发给客户一样。3. 总体设计3.1 功能模块设计可以声明以下的结构体类型:struct guest_info /姓名char name8; /人数int sum; /用餐时间char time10; /编号int number;GuestListMaxSize;程序包括5个函数,Insert,Search,Update,Delete和Show,分别负责插入、查询、修改、删除和显示数据。一般的信息管理系统都应该具备这几个功能,小型信息管理系统也不例外。程序采用简单菜单驱动方式,屏幕上显示菜单如下: 1插入(Insert) 2查询(Search) 3修改(Update) 4删除(Delet

4、e) 5显示(Show) 6退出(Exit)3.2 完整数组程序#include#include#define MaxSize 20struct guest_info char name8;int sum;char time10;int number; GuestListMaxSize;void Insert(int *);void Search(int);void Update(int);void Delete(int *);void Show(int);int main()int i;int count=0;doprintf(n);printf(1-插入(Insert)n);printf(

5、2-查询(Search)n);printf(3-修改(Update)n);printf(4-删除(Delete)n);printf(5-显示(Show)n);printf(6-退出(Exit)n);scanf(%d,&i);switch(i)case 1:Insert(&count); break; case 2:Search(count); break; case 3:Update(count); break;case 4:Delete(&count);break; case 5:Show(count); break; case 6:break; default:printf(错误选择! 请

6、重选);break; while(i!=6);return 0; void Insert(int*count) int i,in_number; if(*count=MaxSize) printf(空间已满!);return; printf(请输入编号:); scanf(%d,&in_number); for(i=0;i*count;i+) if(GuestListi.number=in_number) printf(已经有相同的编号:);return; GuestListi.number=in_number; printf(请输入姓名:); scanf(%s,GuestListi.name)

7、; printf(请输入人数:); scanf(%d,&GuestListi.sum); printf(请输入用餐时间:); scanf(%s,GuestListi.time); (*count)+; void Search(int count)int i,number,flag=1;printf(请输入要查询的编号:); scanf(%d,&number);for(i=0;icount&flag;i+)if(GuestListi.number=number)printf(姓名:%s,GuestListi.name);printf(人数:%d,GuestListi.sum);printf(用餐

8、时间:%s,GuestListi.time);flag=0;elseprintf(没有查询到!);void Update(int count)int i,number,flag=1;printf(请输入要修改数据的编号:);scanf(%d,&number);for(i=0;icount&flag;i+)if(GuestListi.number=number)printf(请输入人数:);scanf(%d,&GuestListi.sum);printf(请输入用餐时间:);scanf(%s,&GuestListi.time);flag=0;elseprintf(没有查询到可以修改的数据!);v

9、oid Delete(int*count)int i,j,number,flag=1;printf(请输入要删除数据的编号:);scanf(%d,&number);for(i=0;i*count&flag;i+)if(GuestListi.number=number)for(j=i;j*count-1;j+) GuestListj=GuestListj+1;flag=0;(*count)-;else printf(没有查询到可以删除的数据!);void Show(int count)int i;printf(n);printf(编号 姓名 人数 用餐时间n);for(i=0;icount;i+

10、)printf(%10d,GuestListi.number);printf(%12s,GuestListi.name);printf(%10d,GuestListi.sum);printf(%12sn,GuestListi.time);在上面的程序中,客户的订餐信息是存储在一个数组中的。数组是一种处理数据的存储方式,下面用单链表存储这组数据。因为指针是C语言的精髓,不能掌握指针的用法,不能说学会了C语言。要建立单链表,首先需要正确的定义每个结点的数据是如何构成的,下面是订餐信息存储在链表中的数据定义。图13.5则是示意图,表示链表中有3个结点时的情况。typedef struct guest

11、_info Char name8;/姓名int sum;/人数char time10;/用餐时间int number;/编号struct guest_info *next;Guestlink;李红5人12点3汪寒3人11点50 2刘娜2人11点1Head 头指针 对于单链表,插入,查询,修改,删除和显示也是必须要完成的5个操作。曾在前面讨论过有关单链表的操作方式,本例是尝试将有关单链表的操作集中起来,构成一个完整的管理系统,供读者参考和使用。图13.6显示程序部分运行情况。3.3 完整指针程序#include#include#include#define MaxSize 20typedef s

12、truct guest_infochar name8;int sum;char time10;int number;struct guest_info * next;GuestLink, * Pointer;void Insert(Pointer * Head);void Search(Pointer Head);void Update(Pointer Head);void Delete(Pointer * Head);void Show(Pointer Head);int main()Pointer Head=NULL;int i; doprintf(n);printf(1-插入(Inser

13、t)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)case 1:Insert(&Head);break;case 2:Search(Head); break;case 3:Update(Head); break;case 4:Delete(&Head); break;case 5:Show(Head); break;case 6:break; default:printf( 错误选

14、择! 请重选);break; while(i!=6);return 0;void Insert(Pointer * Head)int in_number;Pointer p,q,r;printf(请输入编号:);scanf(%d,&in_number);p=q= * Head;while (p!=NULL)if(p-number=in_number) printf(已经有相同的编号;);return;elseq=p;p=p-next;r=(Pointer)malloc(sizeof(GuestLink);r-next=NULL;if(r=NULL)printf(分配空间失败!);return;

15、if(q=NULL)* Head=r;elseq-next=r;r-number=in_number;printf(请输入姓名:);scanf(%s,r-name);printf(请输入人数:);scanf(%d,&r-sum);printf(请输入用餐时间:);scanf(%s,r-time);void Search(Pointer Head)int flag=1;int number;Pointer p;printf(请输入要查询的编号:);scanf(%d,d,&number);p=Head;while (p!=NULL&flag)if (p-number=number) printf(

16、姓名:%s,p-name);printf(人数:%d,p-sum); printf(用餐时间:%s,p-time);flag=0;elsep=p-next;if (flag)printf(没有查询到!);void Update(Pointer Head)int flag=1;int number;Pointer p;printf(请输入要修改数据的编号:);scanf(%d,&number);p=Head;while (p!=NULL&flag)if (p-number=number)printf(请输入人数:);scanf(%d,p-sum);printf(请输入用餐时间:);scanf(%

17、s,p-time);flag=0;elsep=p-next;if (flag)printf(没有找到要修改的记录!);void Delete(Pointer * Head)int flag=1;int number;Pointer p,q;printf(请输入要删除数据的编号:);scanf(%d,&number);p=q= * Head;while (p!=NULL&flag) if(p-number=number)if (p= * Head) * Head=p-next;free(p);elseq-next=p-next;free(p);flag=0;elseq=p;p=p-next;if

18、 (flag)printf(没有查询到可以删除的数据!);void Show(Pointer Head)Pointer p;p=Head;while (p!=NULL)printf(姓名:%-10s,p-name);printf(人数:%-10d,p-sum);printf(用餐时间:%-10s,p-time);printf(编号:%-10dn,p-number);p=p-next;4. 运行结果 运行结果见图13.16。5. 小结 如果能够将本例的数据存储到文件中,那么就真正地实现了一个小型的管理信息系统(能将数据存储在磁盘中),请读者参考本章案例1有关文件操作的使用方法对本例进行修改,相信能有很大的收获。

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!