링크드 리스트로 가게부 작성중인데요
소희
질문 제목 및 요약:
안녕하세요 C언어공부 시작한지 얼마안된 초본데요.
링크드 리스트로 가게부 작성중이에요 그런데 추가하고 싶은 기능이있는데 링크드리스트를 처음 접해 보는거라
도무지 잘 모르겠네요 도움주시면 정말감사하겠습니다.
질문 내용 :
#include stdlib.h
#include stdio.h
#include string.h
struct Expense{
char list[10];
int cash;
struct Expense* ptr;
};
typedef struct Expense Expense;
Expense* Append(Expense*);
Expense* Insert(Expense*);
Expense* Delete(Expense*);
void Search(Expense*);
void Display(Expense*);
int Menu()
{
int num;
system(cls);
puts( \t\t ****** MENU ****** );
puts( \t\t 1. (내역 추가) );
puts( \t\t 2. (출 력) );
puts( \t\t 3. (삭 제) );
puts( \t\t 4. (찾 기) );
puts( \t\t 5. (종 료) );
puts( \t\t ****************** );
printf( \t\t(항목 선택)[ ]\b\b\b);
scanf(%d, &num);
return num;
}
int main()
{
Expense *head,*tail;
head = (Expense*)malloc(sizeof(Expense));
tail = head;
head-ptr = NULL;
while(1)
{
switch(Menu())
{
case 1: tail = Append(tail); break;
case 2: Display(head); getchar(); break;
case 3: head = Delete(head); break;
case 4: Search(head); break;
case 5: puts( \n\t\t Good-Bye! \n);
return 0;
default : puts( \t NO MENU \a\a\a\a);
}
}
return 0;
}
Expense* Append(Expense* p)
{
printf( \n\t 지출내역을 입력하세요 : );
fflush(stdin);
gets(p-list);
printf( \n\t 지출금액을 입력하세요 : );
scanf(%d, &p-cash);
p-ptr = (Expense*)malloc(sizeof(Expense));
p = p-ptr;
p-ptr = NULL;
return p;
}
Expense* Delete(Expense* p)
{
int pos;
Expense* start = p;
Display(p);
printf( \n\t 삭제할 item의 번호는 : );
scanf(%d, &pos);
if(pos == 1)
{
start = p-ptr;
free(p);
}
else
{
int i;
Expense* tmp;
for(i=1; ipos-1; i++)
p = p-ptr;
tmp = p-ptr;
p-ptr = p-ptr-ptr;
free(tmp);
}
return start;
}
void Search(Expense* p)
{
char flist[10];
int sw = 0;
printf( \n\t 찾을 지출내역은? : );
fflush(stdin);
gets(flist);
while(p-ptr != NULL)
{
if(stricmp(flist, p-list)==0)
{
printf( \n\t 지출내역 : %s가격 : %d원 \n, p-list, p-cash);
sw = 1;
}
p = p-ptr;
}
if(!sw)
puts( \n\t ** Not found!! ** \n);
getchar();
}
void Display(Expense* p)
{
int i=1;
puts( \t\t\t\t ************************* );
puts( \t\t\t\t no 지출내역 가 격 );
puts( \t\t\t\t ************************* );
while(p-ptr != NULL)
{
printf( \t\t\t\t %d %8s %8d원 \n, i++, p-list, p-cash);
p = p-ptr;
}
puts( \t\t\t\t ******* ************************* );
puts( \t\t\t\t *** 아무키나 누르세요 *** );
getchar();
}
링크드 리스트를 다른 소스들을 봐가면서작성한건데요 이 소스에서
총 금액이 없는데 총 금액을 추가시키고 내역 추가를 수입으로 바꾸고 지출을 추가시켜서
입력시킬때마다 총 금액에서 추가되고 뺄수있는 소스를 추가시키고 싶어용..
2일동안 이부분으로 고생하네용.. 머리깨질것같아용.. 저한테 구원의 빛을 내려주세용 ㅜ,.ㅜ
열공할께여~
-
얀
소스를 이것저것 봐가면서 짠거라 컴파일이 되긴한데 무지 헷갈리거든영~
전역변수로 sum이란 변수 선언해도 Append 부분에서 수정해줘야 될것같은데 case나 if가 들어가고 이것저것 추가시켜줘야될것같은데 잘 모르겠어서요 ㅠ.ㅠ -
글고운
총금액 변수를 전역으로던 main함수 내에든 선언하세요. main함수 내에 선언하실려면 수입, 지출할때 인자로 전달해 주고 수입이면 총금액변수에 더하고, 지출이면 총금액변수에서 빼면되겟네요
이정도 하셨으면 이런것쯤 금방 하실거에요 ㅋ
번호 | 제 목 | 글쓴이 | 날짜 |
---|---|---|---|
2698120 | -연산자 가 먼지 좀 알려주세요 (1) | 낮선검객 | 2025-06-14 |
2698091 | 길찾기문제 질문이요! | 노을빛 | 2025-06-13 |
2698060 | while 문에 대한 질문입니다. (9) | 물고기자리 | 2025-06-13 |
2698012 | 2~9가아닌수 | 아놀드 | 2025-06-13 |
2697980 | for에 gets함수를 넣으니까 왜 반복이 안되죠 ㅜ (2) | 펴라 | 2025-06-12 |
2697952 | 2차배열과 함수문의^^; | VanilLa | 2025-06-12 |
2697924 | 다차원 배열 질문있습니다 | 두동 | 2025-06-12 |
2697893 | 정올 :: 기초다지기 a9007 배열7 (문제가 이상함 -_-) | 흰두루 | 2025-06-12 |
2697862 | Unable......... 지정된 파일을 찾을 수 없습니다!! (1) | Creator | 2025-06-11 |
2697761 | 그러니까여제말은... (2) | 새론 | 2025-06-10 |
2697737 | 정올 문제좀 풀어보신분~ | 레오 | 2025-06-10 |
2697709 | rand함수 질문좀요! (6) | 가막새 | 2025-06-10 |
2697683 | C언어 변수뒤 표시가 이해안되는게 있습니다. | 소미 | 2025-06-10 |
2697660 | 껍데기딜 만들고 난후 어느핫키 누르면 코드검색이라도 뜨고 그다음 무반응 해결좀 (2) | 움찬 | 2025-06-09 |
2697634 | c언어로 감성사전 만들기! (1) | 도란도란 | 2025-06-09 |
2697605 | 이 함수좀... | agine | 2025-06-09 |
2697574 | 배열 기본적인질문 (3) | 민트향 | 2025-06-09 |
2697549 | 배열 초기화 (4) | 나리 | 2025-06-08 |
2697465 | 수다님...^^ (2) | 가론 | 2025-06-08 |
2697432 | 서버 만드는 함수에서 궁금한게있어요~ | 파랑 | 2025-06-07 |