1. 오늘 실습코드
1) boss.c
#include<stdio.h>
#define R 3
#define C 2
void main(){
//강남점 (일반 키즈)
//신촌점 (일반 키즈)
//홍대점 (일반 키즈)
//각 지점별 매출액 저장소(2차원 배열 3행 2열)
int arrIncome[R][C] = { 0, };
//지점 명칭에 규칙성 부여
//포인터자료형 앞에 const는 참조상수
//포인터명 앞에 const는 상수
char arBranchName[R][100] = { "강남점","신촌점","홍대점" }; //수정 가능
//const char* arBranchName[R] = { "강남점", "신촌점","홍대점" }; //수정 불가능
//연령별 명칭에 규칙성 부여
char arAgeName[C][100] = { "일반점", "키즈점" };
//지점별 총 매출액 저장소
int arBranchTotal[R] = { 0, };
//지점별 평균 매출액 저장소
double arBranchAvg[R] = { 0.0, };
//연령별 총 매출액 저장소
int arAgeTotal[C] = { 0, };
//연령별 평균 매출액 저장소
double arAgeAvg[C] = { 0.0, };
//전체 총 매출액
int total = 0;
//전체 평균 매출액
double avg = 0.0;
//인센티브 매장 Flag(1byte)
char check = '0';
//지점 개수만큼 반복(강남, 홍대, 신촌)
for (int i = 0; i < R; i++) {
//연령별 지점 개수만큼 반복(일반, 키즈)
for (int j = 0; j < C; j++) {
//강남점 일반점 매출액 입력
//강남점 키즈점 매출액 입력...
printf("%s %s 매출액 입력(단위 : 만원)\n", arBranchName[i], arAgeName[j]);
scanf_s("%d", arrIncome[i]+j);
//지점별 총 매출액 누적
arBranchTotal[i] += arrIncome[i][j];
//연령별 총 매출액 누적
arAgeTotal[j] += arrIncome[i][j];
//전체 매출액 누적
total += arrIncome[i][j];
}
//하나의 지점 매출액 입력이 끝나는 영역
//지점별 평균 매출액 저장(지점은 2개의 값이 더해진다(일반점, 키즈점)
//따라서 2로 나누어준다.
arBranchAvg[i] = (double)arBranchTotal[i] / C;
}
//모든 지점 매출액 입력이 끝나는 영역
for (int i = 0; i < C; i++) {
//연령별 평균 매출액 저장(연령은 3개의 값이 더해진다(강남, 홍대, 신촌)
//따라서 3으로 나누어준다.
arAgeAvg[i] = (arAgeTotal[i] + 0.0) / R;
}
//전체 평균 매출엑 저장(총 6개 매장)
avg = (double)total / (C * R);
//지점 매출액 관련 메세지 출력
for (int i = 0; i < R; i++) {
printf("%s 총 매출액 : %d만원\n", arBranchName[i], arBranchTotal[i]);
printf("%s 평균 매출액 : %.2lf만원\n", arBranchName[i], arBranchAvg[i]);
}
//연령 매출액 관련 메세지 출력
for (int i = 0; i < C; i++) {
printf("%s 총 매출액 : %d만원\n", arAgeName[i], arAgeTotal[i]);
printf("%s 평균 매출액 : %.2lf만원\n", arAgeName[i], arAgeAvg[i]);
}
//전체 매출액 관련 메세지 출력
printf("나이키 총 매출액 : %d만원\n", total);
printf("나이키 평균 매출액 : %.2lf만원\n", avg);
//인센티브 매장
printf("★인센티브 매장★\n");
for (int i = 0; i < R; i++) {
for (int j = 0; j < C; j++) {
//각 매장 매출액 모두 평균과 비교
//전체 평균보다 높은 매출액 매장 출력
if (arrIncome[i][j] > avg) {
printf("%s %s\n", arBranchName[i], arAgeName[j]);
//하나의 매장이라도 있다면 check를 '1'로 변경
check = '1';
}
}
}
//문자를 정수로 변경(-48)하면 0 또는 1이 나온다.
if (!(check - 48)) {
//위의 for문에서 if문에 한 번도 들어가지 않았다면(check가 '0'이면)
//"없습니다." 출력
printf("없습니다.\n");
}
}
2) cafe.c
** 아직 완성된 코드 아님, 다음 시간에 완성할 예정 **
#include<stdio.h>
#include<string.h>
#define CNT 100
void main() {
//추가, 수정, 삭제, 검색, 목록
//상품명-가격
//twosome place
char title[20] = "♨Twosome place♨";
char menu[100] = "①추가하기\n②수정하기\n③삭제하기\n④검색하기\n⑤목록보기\n⑥나가기\n";
char errMsg[20] = "다시 시도해주세요.";
//사용자가 입력한 상품명을 임시로 저장할 공간
char temp[100] = { "", };
//상품명을 저장할 문자열 배열
char arName[CNT][100] = { "", };
//상품 가격을 저장할 정수 배열
int arPrice[CNT] = { 0, };
int choice = 0;
//추가한 상품의 총 개수
int insertCnt = 0;
//for문 밖에서도 i를 사용해야하므로 여기에 i를 선언
int i = 0;
while (1) {
printf("%s\n%s", title, menu);
scanf_s("%d", &choice);
if (choice == 6) { break; }
switch (choice) {
//추가
case 1:
printf("상품명 : ");
scanf_s("%s", temp, sizeof(temp));
//만약 상품이 한 개도 없다면 중복검사를 할 필요가 없다.
if (insertCnt != 0) {
//상품이 하나라도 있다면 들어옴
//추가된 상품개수만큼 반복
for (i = 0; i < insertCnt; i++) {
//사용자가 추가할 상품명과 일치하는 상품명이 존재하면 break
if (!strcmp(arName[i], temp)) {
break;
}
}
}
//위에서 break를 만났다는 것은 중복된 상품이 있다는 뜻!
//따라서 i가 insertCnt까지 증가하기 위해서는 중복이 없어야 한다.
if (i == insertCnt) {
//중복이 없으면 들어옴
printf("가격 : ");
scanf_s("%d", arPrice + insertCnt);
strcpy_s(arName[insertCnt], sizeof(arName[insertCnt]), temp);
//추가 완료시 총 상품개수 1증가
insertCnt++;
}
else {
printf("중복된 상품명입니다.\n");
}
break;
//수정
case 2:
break;
//삭제
case 3:
printf("삭제할 상품명 : ");
scanf_s("%s", temp, sizeof(temp));
//총 상품개수만큼 반복
for (i = 0; i < insertCnt; i++) {
//삭제할 상품이 있는지 검사
if (!strcmp(temp, arName[i])) {
//삭제할 상품이 있다면 그 상품행에 다음 행을 덮어씌운다.
//insertCnt번째방까지 반복한다.
for (int j = i ; j < insertCnt ; j++) {
//상품명 삭제
strcpy_s(arName[i], sizeof(arName[i]), arName[i + 1]);
//가격 삭제
arPrice[i] = arPrice[i + 1];
}
//삭제 완료 후 총 상품 개수 1감소
insertCnt--;
break;
}
}
//삭제할 상품이 없다면 오류 메세지 출력
if (i == insertCnt) {
printf("삭제하실 상품이 존재하지 않습니다.\n");
}
break;
//검색
case 4:
break;
//목록
case 5:
//만약 총 상품개수가 0개라면 "목록 없음"이 출력되고
//1개라도 있다면 "상품명(가격)"이 출력된다.
strcpy_s(temp, sizeof(temp), insertCnt == 0 ? "목록 없음" : "상품명(가격)");
printf("%s\n", temp);
for (i = 0; i < insertCnt; i++) {
//총 상품 개수만큼 순서대로 출력
printf("%s(%d원)\n", arName[i], arPrice[i]);
}
break;
//그 외
default:
printf("%s", errMsg);
}
}
}
'웹_프론트_백엔드 > 단과' 카테고리의 다른 글
[단과_C] 2020.03.13 (0) | 2020.03.15 |
---|---|
[단과_C] 2020.03.12 (0) | 2020.03.13 |
[단과_C] 2020.02.26 (0) | 2020.02.27 |
[단과_C] 2020.02.25 (0) | 2020.02.26 |
[단과_JAVA] 2020.02.25 (0) | 2020.02.26 |