版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、项目案例C语言程序设计所在系别: 计算机技术系 所属专业: 网络技术 指导教师: 宋铁桥 专业负责人: 孙志成 项目案例10电话订餐系统的实现一、项目整体目标及要求我们已经学习过了C语言的语法规范和编写一般程序的方法,对于数据类型和输入输出、三种结构化编程等知识都有了一定的应用能力。但是要编写出优秀的程序,需要学会综合应用。本项目将带领同学们用C语言设计一个较大型的综合性应用程序电话订餐系统的实现。通过学习,使大家对于实用的C语言程序有更深的了解,并且通过模仿写出一个较为复杂的C语言程序,从而提高程序设计的技能。(一)项目整体目标1.掌握并熟练运用C语言的基本数据类型与各种表达式,程序的流程控
2、制语句。2.掌握函数的定义,函数的返回值,函数的调用,函数的形式参数和实际参数之间的关系;掌握变量的作用域与生存期,了解函数的作用域。(二)项目内容要求1用C语言实现系统 利用函数调用实现电话订餐系统的实现的设计;系统的各个功能模块要求用函数的形式实现;提供一个界面来调用各个功能;调用界面和各个功能的操作界面应尽可能清晰美观。2. 电话订餐系统的实现设计:试设计电话订餐系统的实现,系统以菜单方式工作,采用自定义函数设计各功能模块被主菜单调用,使之能提供以下基本功能: (1)插入 (2)浏览(3)查询(4)删除(5)修改(6)退出各功能模块对可能出现的异常情况能进行简单的识别和纠错。二、项目解决
3、方案(程序代码清单)#include<stdio.h>#include<stdlib.h>#include<malloc.h>#include<string.h>int PS;struct reqchar name10; /姓名char menu10; /菜单char time8; /订餐时间char address30; /家庭住址char tel15; /联系电话int number; /订餐份数int money; /价钱struct req * next;void main() struct req *head; void fun(str
4、uct req * head); struct req * add(void);void browse(struct req * head);void query(struct req * head); void del(struct req * head); void modify(struct req * head); int choice;head=NULL; fun(head);for(;) printf("请输入菜单选项:");aa: scanf("%d",&choice);if(choice>=1&&choice
5、<=7) switch(choice) case 1: head=add(); break; case 2: browse(head); break; case 3: query(head); break; case 4: del(head); break; case 5: modify(head); break; case 7: exit(0); break;else printf("没有此选项!请重新选择:"); goto aa;void fun(struct req * head) printf("n");printf(" 1.插入
6、 n");printf(" 2.浏览客户信息 n");printf(" 3.查询功能 n");printf(" 4.删除客户 n");printf(" 5.修改客户信息 n");printf(" 6.退出系统 n");printf("n"); struct req * add(void) int i=1,num;struct req *head;struct req *q;struct req *p;printf("请输入客户的个数:");sca
7、nf("%d",&num);PS=num; head=p=q=(struct req *)malloc(sizeof(struct req);for(i=1;i<=num;i+) p=(struct req *)malloc(sizeof(struct req); printf("请输入第%d个客户的数据.n",i);printf("请输入客户姓名:");scanf("%s",&p->name);printf("请输入菜单:");scanf("%s"
8、;,&p->menu);printf("请输入用餐时间:");scanf("%s",&p->time);printf("请输入家庭住址:");scanf("%s",&p->address);printf("请输入电话号码:");scanf("%s",&p->tel);printf("请输入份数:");scanf("%d",&p->number);printf(&quo
9、t;请输入价钱:");scanf("%d",&p->money);q->next=p; q=p; printf("n");p-> next=NULL;printf("用户档案建立完毕!n");return(head); void browse(struct req * head)struct req * p;printf("全部客户信息如下:n");p=head;printf("姓名 菜单 订餐时间 家庭住址 联系电话 订餐份数 价钱n");if(head!=
10、NULL)dop=p->next;printf("%s %s %s %s %s %d %d n",p->name,p->menu,p->time,p->address,p->tel,p->number,p->money);while(p->next!=NULL);else printf("无数据!n");void query(struct req * head)char name26;char menu210;char time28;int number2;int a,i,s;struct req *
11、 p;loop1: p=head; if(head!=NULL) p=head->next; printf ("请选择:n"); printf("1. 按姓名查询 2.按菜单查询 3.按时间查询 4.按订餐分数查询 5.查询总额 n"); scanf("%d",&a); switch(a) case 1: printf("请输入想要查询的客户姓名:"); scanf("%s",&name2); for(i=1;i<=PS;i+) if(strcmp(name2,p-&
12、gt;name)=0)printf("姓名:%s菜单:%s 时间:%s 家庭住址:%s 联系电话:%s 订餐份数:%d 价钱:%d n",p->name,p->menu,p->time,p->address,p->tel,p->number,p->money);break; p=p->next; break; case 2: printf("请输入想要查询的菜单:"); scanf("%s",&menu2); for(i=1;i<=PS;i+) if(strcmp(menu
13、2,p->menu)=0)printf("姓名:%s菜单:%s 时间:%s 家庭住址:%s 联系电话:%s 订餐份数:%d 价钱:%d n",p->name,p->menu,p->time,p->address,p->tel,p->number,p->money);break; p=p->next; break; case 3: printf("请输入想要查询的时间:"); scanf("%s",&time2); for(i=1;i<=PS;i+) if(strcmp
14、(time2,p->time)=0) printf("姓名:%s菜单:%s 时间:%s 家庭住址:%s 联系电话:%s 订餐份数:%d 价钱:%d n",p->name,p->menu,p->time,p->address,p->tel,p->number,p->money);break; p=p->next; break; case 4: printf("请输入想要查询的订餐分数:"); scanf("%d",&number2); for(i=1;i<=PS;i+)
15、 if(number2=p->number)printf("姓名:%s菜单:%s 时间:%s 家庭住址:%s 联系电话:%s 订餐份数:%d 价钱:%d n",p->name,p->menu,p->time,p->address,p->tel,p->number,p->money);break; p=p->next; break; case 5:s=0; for(i=1;i<=PS;i+) s=s+p->money; p=p->next; i=0; printf("销售总额为:%dn"
16、;,s); if(i>PS) printf("查无此人请重新选择:n");goto loop1;else printf("无数据!n");void del(struct req * head)char name26;struct req *p;struct req *q;p=head->next;printf("请输入想要删除的客户姓名:");scanf("%s",&name2); while(p->next!=NULL)&&(strcmp(p->name,name2
17、)!=0) q=p; p=p->next; if(p->next=NULL)&&(strcmp(p->name,name2)!=0) printf("查无此人!n"); free(p); printf("删除命令执行!");void modify(struct req * head)char name26;int i;struct req * p;p=head->next;printf("请输入想要修改的客户姓名:");scanf("%s",&name2);for(i
18、=1;i<=PS;i+)if(strcmp(name2,p->name)=0) printf("请输入修改后的值.n"); printf("请输入客户姓名:");scanf("%s",&p->name);printf("请输入菜单:");scanf("%s",&p->menu);printf("请输入用餐时间:");scanf("%s",&p->time);printf("请输入家庭住址:&q
19、uot;);scanf("%s",&p->address);printf("请输入电话号码:");scanf("%s",&p->tel);printf("请输入份数:");scanf("%d",&p->number);printf("请输入价钱:");scanf("%d",&p->money);p=p->next;三、项目主要技术指标(一)代码应尽可能模块化 无论是面向过程还是面向对象,代码重用是基本原则之一。代码编写可以将具有相近功能的语句或完成一个个具体任务的语句组织在一起,进行模块化编程。这在以后开发大型程序的时候,工作的效率就会明显提高,程序兼容性强。(二)良好的编写风格 一个程序,不可能是绝对完美,以后永远不再修改。既然要修改,就必然要读懂原来的程序代码。而良好的编程风格,可以使人更方便和迅速理解程序的结构,
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年辽源辅警招聘考试真题附答案详解(满分必刷)
- 2025年黄冈辅警协警招聘考试真题及答案详解(有一套)
- 2025年红河州辅警协警招聘考试备考题库附答案详解(培优b卷)
- 2025年黑河辅警协警招聘考试真题带答案详解(完整版)
- 2025年鸡西辅警协警招聘考试真题及答案详解(新)
- 2025年眉山辅警协警招聘考试真题及答案详解参考
- 2025年淮安辅警协警招聘考试备考题库及完整答案详解1套
- 2025年鹤岗辅警协警招聘考试备考题库附答案详解(满分必刷)
- 2025年淮北辅警协警招聘考试备考题库含答案详解(满分必刷)
- 2025年舟山辅警协警招聘考试真题附答案详解(培优a卷)
- 中国古代婚礼流程
- DB4103T177-2024乌苏里拟鲿的亲鱼培育及人工繁殖技术规程
- 酒店新风系统安装合同
- 国家开放大学国开电大《操作系统》形考任务1-3答案
- 江西省南昌市2024-2025学年八年级上期中考试数学试题(含解析)
- 无菌车间管理员工培训
- 土地承包合同(2篇)
- 江苏省南通市通州区2024-2025学年八年级上学期期中考试语文试题(含答案)
- 人教版六年级上册道德与法治知识点
- 产前筛查知情同意书制度
- 五年级上册英语课件-Unit-3-Fun-Facts-人教精通版
评论
0/150
提交评论