OC----简单的购物系统----
今天下午OC上机考试,虽然考试的时候没写完, 但是课下写完了.
main.m
#import <Foundation/Foundation.h>
#import "Shops.h"
#import "Person.h"
int main(int argc, const char * argv[]) {
@autoreleasepool { Shops *shop = [Shops shopsWithPen: cup: rubber:]; // 初始化商店
[shop disPlayAllGoods];
Person *per = [Person personWithShop:shop];
[per pay:]; // 用户付款 }
return ;
}
Shops.h
#import <Foundation/Foundation.h> @interface Shops : NSObject @property (nonatomic, assign)NSInteger pen;
@property (nonatomic, assign)NSInteger cup;
@property (nonatomic, assign)NSInteger rubber;
@property (nonatomic, assign)NSInteger code;
@property (nonatomic, assign)NSInteger number;
@property (nonatomic, assign)NSInteger count; - (instancetype)initWithPen:(NSInteger)pen
cup:(NSInteger)cup
rubber:(NSInteger)rubber;
+ (instancetype)shopsWithPen:(NSInteger)pen
cup:(NSInteger)cup
rubber:(NSInteger)rubber; - (void)disPlayAllGoods;
- (void)inputCode;
- (void)showAllBuyGoods;
- (void)deleteGoods;
- (void)buyCode:(NSInteger)code;
- (void)isGoOn:(NSInteger)number;
@end
Shops.m
//
// Shops.m
// 26- 马峰
//
// Created by dllo on 16/3/2.
// Copyright © 2016年 dllo. All rights reserved.
// #import "Shops.h" @implementation Shops
/** 自定义初始化 */
- (instancetype)initWithPen:(NSInteger)pen cup:(NSInteger)cup rubber:(NSInteger)rubber{
self = [super init];
if (self) {
_cup = cup;
_rubber = rubber;
_pen = pen;
}
return self;
}
/** 便利构造器 */
+ (instancetype)shopsWithPen:(NSInteger)pen cup:(NSInteger)cup rubber:(NSInteger)rubber{
Shops *shop = [[Shops alloc]initWithPen:pen cup:cup rubber:rubber];
return shop;
} /** 展示所有的商品 */
- (void)disPlayAllGoods{ NSLog(@"欢迎来到1+1自助超市, 我们这里有以下商品:\n1.笔\n2.水杯\n3.橡皮\n4.退出\n请输入对应的编号选择购买.");
[self inputCode];
}
/** 输入购买商品的编号 */
- (void)inputCode{
scanf("%ld", &_code);
/** 判断是否输入有误 */
if (_code > || _code < ) {
_count++;
if (_count == ) {
NSLog(@"错误三次,程序退出");
}else{
NSLog(@"输入错误,请重新输入:");
[self inputCode];
}
}
[self buyCode:_code];
}
/** 显示已经购买的商品 */
- (void)showAllBuyGoods{
NSLog(@"你选择了%ld只笔, %ld个水杯, %ld个橡皮擦, 一共%ld元.还需要其他的吗. 需要请输入1, 不需要输入2",_pen, _cup, _rubber, _rubber * + _pen * + _cup * );
scanf("%ld", &_number );
/** 判断是否输入有误 */
if (_number > || _number < ) {
_count++;
if (_count == ) {
NSLog(@"错误三次,程序退出");
}else{
NSLog(@"输入错误,请重新输入:");
[self showAllBuyGoods];
}
}
[self isGoOn:_number]; }
/** 删除货物 */
- (void)deleteGoods{ NSLog(@"请选择要删除的货物\n1.笔\n2.水杯\n3.橡皮擦");
scanf("%ld", &_number);
/** 判断是否输入有误 */
if (_number > || _number < ) {
_count++;
if (_count == ) {
NSLog(@"错误三次,程序退出");
}else{
NSLog(@"输入错误,请重新输入:");
[self deleteGoods];
}
}
/** 判断是哪一种货物 */
switch (_number) {
case :
NSLog(@"请输入数量:");
scanf("%ld", &_number);
_pen -= _number;
[self showAllBuyGoods];
break;
case :
NSLog(@"请输入数量:");
scanf("%ld", &_number);
_cup -= _number;
[self showAllBuyGoods]; break;
case :
NSLog(@"请输入数量:");
scanf("%ld", &_number);
_rubber -= _number;
[self showAllBuyGoods];
break;
default: break;
} } /** 根据用户输入判断是否买完 */
- (void)isGoOn:(NSInteger)number{
switch (number) {
case :
[self disPlayAllGoods];
break;
case :
NSLog(@"请付款");
default:
break;
}
}
/** 根据用户输入判断用户要买哪一种商品 */
- (void)buyCode:(NSInteger)code{
switch (code) {
case :
NSLog(@"请输入数量:");
scanf("%ld", &_number);
_pen += _number;
[self showAllBuyGoods];
break;
case :
NSLog(@"请输入数量:");
scanf("%ld", &_number);
_cup += _number;
[self showAllBuyGoods];
break;
case :
NSLog(@"请输入数量:");
scanf("%ld", &_number);
_rubber += _number;
[self showAllBuyGoods];
break;
case :
NSLog(@"程序已经退出!");
break;
default: break;
}
}
@end
Person.h
#import <Foundation/Foundation.h>
#import "Shops.h" @interface Person : NSObject @property (nonatomic, retain)Shops *shop; - (instancetype)initWithShop:(Shops *)shop; + (instancetype)personWithShop:(Shops *)shop; - (void)pay:(NSInteger)money; @end
Person.m
//
// Person.m
// 26- 马峰
//
// Created by dllo on 16/3/2.
// Copyright © 2016年 dllo. All rights reserved.
// #import "Person.h" @implementation Person
/** 自 定 义 初 始 化 */
- (instancetype)initWithShop:(Shops *)shop{
self = [super init];
if (self) {
_shop = shop;
}
return self;
}
/** 便 利 构 造 器 */
+ (instancetype)personWithShop:(Shops *)shop{
Person *per = [[Person alloc]initWithShop:shop];
return per;
} /** 付 款 函 数 */
- (void)pay:(NSInteger)money{ if ((_shop.cup * + _shop.rubber * + _shop.pen * ) > money) {
NSLog(@"你买的东西超过了100块钱!!");
[_shop deleteGoods];
[self pay:money]; }
else{
NSLog(@"付款成功!谢谢惠顾!!");
} } @end
OC----简单的购物系统----的更多相关文章
- python简单的购物系统
#coding = utf-8 #2016-11-19#我的工资是存在文件中的,执行后会判断是否存过工资,如果存过无需输入,直接购物,没存过需要输入工资#wages.txt是存工资的文件 import ...
- DAY4:简单购物系统
根据前几天对于循环和列表的学习,做了一个简单的购物系统: 密码模块就是前篇文章已经做过就,直接调用过来就行,简单说一下该购物系统功能 1,展示货物,需要手动添加,haha 2,判断余额是否充足并充值 ...
- 【小型系统】简单的刷票系统(突破IP限制进行投票)
一.前言 相信大家平时肯定会收到朋友发来的链接,打开一看,哦,需要投票.投完票后弹出一个页面(恭喜您,您已经投票成功),再次点击的时候发现,啊哈,您的IP(***.***.***.***)已经投过票了 ...
- Java Web之网上购物系统(注册、登录、浏览商品、添加购物车)
眼看就要期末了,我的专业课也迎来了第二次的期末作业---------<网上购物系统>.虽然老师的意图是在锻炼我们后台的能力,但是想着还是不利用网上的模板,准备自己写,以来别人写的静态页看不 ...
- Linux内核设计第三周——构造一个简单的Linux系统
Linux内核设计第三周 ——构造一个简单的Linux系统 一.知识点总结 计算机三个法宝: 存储程序计算机 函数调用堆栈 中断 操作系统两把宝剑: 中断上下文的切换 进程上下文的切换 linux内核 ...
- 《Linux内核分析》第三周 构建一个简单的Linux系统MenuOS
[刘蔚然 原创作品转载请注明出处 <Linux内核分析>MOOC课程http://mooc.study.163.com/course/USTC-1000029000] WEEK THREE ...
- 第三节 构造一个简单的Linux系统MenuOS——20135203齐岳
第三节 构造一个简单的Linux系统MenuOS By 20135203齐岳 Linux内核源代码 arch/ 支持不同cpu的源代码 Documentations/ 文档存储 init/ 内核启动相 ...
- Linux内核分析第三周学习总结:构造一个简单的Linux系统MenuOS
韩玉琪 + 原创作品转载请注明出处 + <Linux内核分析>MOOC课程http://mooc.study.163.com/course/USTC-1000029000 一.Linux内 ...
- 一个简单的CS系统打包过程图文版
一个简单的CS系统打包过程图文版 1. 打包内容 1.1. 此次打包的要求和特点 主工程是一个CS系统: 此CS系统运行的先决条件是要有.Net Framework 3.5: 主工程安装完成 ...
- 案例:我行我素购物系统 v1.1
系统逻辑结构: import java.util.Scanner; public class ShoppingSystem { public static void main(String[] arg ...
随机推荐
- Ubuntu 14.04(32位)安装Oracle 11g(32位)全过程
1.将系统更新到最新:sudo apt-get updatesudo apt-get dist-upgrade2.安装Oracle所需的依赖包:sudo apt-get install automak ...
- 深入JVM系列(三)之类加载、类加载器、双亲委派机制与常见问题
一.概述 定义:虚拟机把描述类的数据从Class文件加载到内存,并对数据进行校验.转换解析和初始化,最终形成可以被虚拟机直接使用的java类型.类加载和连接的过程都是在运行期间完成的. 二. 类的 ...
- 边工作边刷题:70天一遍leetcode: day 85-2
Paint Fence 要点: 这题是求number of ways,如果是相邻不相同颜色,那么就trivial了:k*(k-1)^(n-1).所以这里no more than two adjacen ...
- TableLayout(表格布局)
表格布局模型以行列的形式管理子控件,每一行为一个TableRow的对象,当然也可以是一个View的对象.TableRow可以添加子控件,每添加一个为一列. TableLayout属性: android ...
- SSO - 我们为何需要单点登录系统
SSO,Single Sign On,也就是单点登录,保证一个账户在多个系统上实现单一用户的登录 现在随着网站的壮大,很多服务会进行拆分,会做SOA服务,会使用dubbo做微服务,或者简单的小型分布式 ...
- java14-4 Pattern和Matcher类的使用
获取功能 Pattern和Matcher类的使用 模式和匹配器的基本使用顺序 import java.util.regex.Matcher; import java.util.regex.Pat ...
- Spring AOP 针对注解的AOP
我也忘记是从哪里扒来的代码,不过有了这个思路,以后可以自己针对 Controller 还有 Service层的任意 方法进行代理了 package pw.jonwinters.aop; import ...
- PATH路径出错导致任何命令都找不到解决方法
1.export PATH=/usr/bin:/usr/sbin:/bin:/sbin:/usr/X11R6/bin这样可以保证命令行命令暂时可以使用.命令执行完之后先不要关闭终端或者cd /usr/ ...
- [IIS][ASP.NET]“拒绝访问临时目录”的解决方法
开始以为是“C:\Windows\Microsoft.NET\Framework64\v4.0.30319\Temporary ASP.NET Files”文件夹权限的问题,但怎么设置这个权限也解决不 ...
- slatsatck file模块2种写法及系统初始化
一 . lamp搭建 file2种写法 saltstack--一键yum lamp:---请注意重点: http://www.blogs8.cn/posts/WLjId80 知识点: 文件的2种写 ...