후.. 계속 고쳐봤는데 오류 뜨네요 ㄷㄷ12시까지는 해야하는데...
살랑살랑
저는 mainm에서 버스 목록을 정의 한적 없는데 자꾸 정의했다고 뜨네요 ㄷㄷ오류 뜬 것 입니다.
compiling...
printout.c
linking...
menu.obj : error lnk2005: _bus1143 already defined in mainm.obj
menu.obj : error lnk2005: _bus1142 already defined in mainm.obj
menu.obj : error lnk2005: _bus1224 already defined in mainm.obj
menu.obj : error lnk2005: _bus1131 already defined in mainm.obj
menu.obj : error lnk2005: _bus1141 already defined in mainm.obj
present_spot.obj : error lnk2005: _bus1143 already defined in mainm.obj
present_spot.obj : error lnk2005: _bus1142 already defined in mainm.obj
present_spot.obj : error lnk2005: _bus1224 already defined in mainm.obj
present_spot.obj : error lnk2005: _bus1131 already defined in mainm.obj
present_spot.obj : error lnk2005: _bus1141 already defined in mainm.obj
printout.obj : error lnk2005: _bus1143 already defined in mainm.obj
printout.obj : error lnk2005: _bus1142 already defined in mainm.obj
printout.obj : error lnk2005: _bus1224 already defined in mainm.obj
printout.obj : error lnk2005: _bus1131 already defined in mainm.obj
printout.obj : error lnk2005: _bus1141 already defined in mainm.obj
search.obj : error lnk2005: _bus1143 already defined in mainm.obj
search.obj : error lnk2005: _bus1142 already defined in mainm.obj
search.obj : error lnk2005: _bus1224 already defined in mainm.obj
search.obj : error lnk2005: _bus1131 already defined in mainm.obj
search.obj : error lnk2005: _bus1141 already defined in mainm.obj
debug/honeyworks2.exe : fatal error lnk1169: one or more multiply defined symbols found
error executing link.exe.질문 내용 :
=======================================buslist.h=================================
#includestdio.h
#includestring.h
#include stdlib.h
#ifndef _buslist_
#define _buslist_
void menu();
void present_spot();
void printout();
void search();
/////////1141///////////
char *bus1141[][40] = {
신한은행중계본동지점,
불암초등학교,
불암고등학교,
노원우체국,
중계본동종점,
노원우체국,
중계본동주민센타,
영신여자고등학교입구,
노원문화예술회관,
기업은행중계동지점,
은행사거리,
양지근린공원,
중계주공9단지후문,
한신동성아파트,
골마을근린공원,
하계역,
유원아파트앞,
하계2동주민센타,
해병전우회 ,
청솔7단지아파트앞,
한천중학교,
산업대앞,
원자력병원입구,
안마을,
두산힐스빌아파트,
태릉사거리,
농협앞,
태릉입구역,
한진한화그랑빌아파트,
석계역2번출구,
석계역1번출구,
석계역굴다리앞,
석계역,
태릉입구역,
태릉입구역7번출구북부지청앞,
태릉사거리,
두산힐스빌아파트,
안마을,
원자력병원공릉동삼익2차아파트,
동부아파트,
산업대앞,
경기기계공업고등학교,
청솔7단지아파트,
하계2동주민센타,
하계장미아파트,
하계미성아파트,
한성여객종점,
삼익선경아파트후문,
중계주공9단지후문,
대림벽산아파트,
은행사거리,
};//null 문자////////1131///////////
char *bus1131[][40]={
신한은행중계본동지점,
불암초등학교,
불암고등학교,
노원우체국貶貳선?,
중계본동종점,
노원우체국,
중계본동주민센타,
영신여자고등학교입구,
노원문화예술회관,
기업은행중계동지점,
은행사거리,
중계주공10단지,
노원구민체육센터,
중계시영3단지상가,
중계시영4단지,
용동초등학교,
2001아울렛중계점,
노원구민회관,
하계역,
하계우성아파트,
하계극동아파트,
월계4동주민센타,
월계사슴아파트2단지,
월계역,
녹천초등학교월계이마트,
월계삼호4차아파트,
월계삼호아파트,
월계미륭아파트,
월계미성아파,
한천초등학교,
한진한화그랑빌아파트,
한진한화그랑빌아파트,
석계역2번출구,
석계역1번출구,
석계역굴다리앞,
석계역,
한천초등학교,
월계미성아파트,
월계미륭아파트,
월계삼호아파트,
월계삼호4차아파트,
녹천초등학교월계이마트,
월계역,
월계사슴아파트3단지,
월계4동주민센타,
하계시영아파트,
하계장미아파트,
하계역,
등나무근린공원,
2001아울렛중계점,
용동초등학교,
하계현대아파트,
노원구민체육센터,
롯데마트,
롯데우성아파트,
은행사거리,
}; //null 문자 //////////////1224/////////////
char *bus1224[][40]={
중계1동주민센터,
중계주공4단지,
중계주공2단지,
상계역,
상계역,
불암대림아파트,
상계시장,
동아불암아파트,
흥안운수종점,
불암현대아파트,
동아불암아파트,
불암대림아파트,
영신약국,
상계벽산아파트,
상계역,
중계주공3단지,
중계주공4단지,
중계1동주민센터,
은행사거리,
중계주공10단지,
노원구민체육센터,
중계시영3단지상가,
중계시영4단지,
노원경찰서,
하계1동주민센터,
골마을근린공원,
하계역,
하계장미아파트,
해병전우회,
청솔7단지아파트앞,
한천중학교,
산업대앞,
원자력병원입구,
안마을,
두산힐스빌아파트,
태릉사거리,
묵동구길,
묵1동주민센터입구먹골역,
먹골역,
중랑경찰서,
지하철7호선중화역,
국민은행중화동지점,
중랑역동부시장,
중랑교,
삼육서울병원,
시조사삼거리,
떡전교사거리동대문노인복지관,
청량리미주상가앞,
청량리역환승센타,
제기1동마을금고,
경동시장앞,
청량리역환승센타,
청량리 성심병원,
휘경동입구,
삼육서울병원,
중랑교,
중랑역동부시장,
중화동한신아파트,
지하철7호선중화역,
한국전력동부지점중랑경찰서,
먹골역,
묵1동주민센터입구먹골역,
묵동구길,
태릉사거리,
두산힐스빌아파트,
안마을,
원자력병원공릉동삼익2차아파트,
동부아파트,
산업대앞,
경기기계공업고등학교,
청솔7단지아파트,
하계미성아파트,
하계미성아파트,
한성여객종점,
세이브존스포츠센터,
노원경찰서,
하계현대아파트,
노원구민체육센터,
롯데마트,
롯데우성아파트,
은행사거리,
};//null 문자
///////////1142/////////////////
char *bus1142[][40]={
대림벽산아파트,
중계주공7단지,
노원우체국,
중계본동종점,
노원우체국,
중계본동주민센타,
중계주공6단지,
중계주공6단지,
은행사거리(11414),
중계1동주민센터,
중계주공4단지,
중계주공2단지,
상계역,
상계중앙시장입구,
노원역9번출구,
노원구청,
창동농협물류센터,
창동역동측,
창동농협물류센터,
노원구청,
노원역1번출구,
상계중앙시장입구,
상계역,
중계주공3단지,
중계주공4단지,
중계1동주민센터,
은행사거리,
}; //null 문자
///////////1143//////////////
char *bus1143[][40]={
신한은행중계본동지점,
불암초등학교,
불암고등학교,
노원우체국,
중계본동종점,
노원우체국,
중계본동주민센타,
영신여자고등학교입구,
노원문화예술회관,
기업은행중계동지점,
은행사거리(11349),
중계주공10단지,
노원구민체육센터,
상명고등학교,
양지대림아파트,
상계소방파출소,
상계동주유소,
벽산아파트103동,
상신교회,
상계5동주민센터,
상계한신2차아파트,
보람아파트2단지,
청원고등학교,
상계주공12단지1202동,
상계주공12단지,
상계주공14단지,
노원초등학교,
수락산역3번출구,
홍파복지원미주아파트,
수락중고등학교,
수락리버시티3,4단지앞,
수락중고등학교,
은빛아파트2단지,
수락산역,
노일초등학교,
상계주공15단지,
상계주공9단지,
청원고등학교,
보람아파트1단지,
상계한신2차아파트,
상계초등학교,
상신교회,
상계역,
상계동주유소,
상계소방파출소,
상계중학교,
상명고등학교,
롯데마트,
롯데우성아파트,
은행사거리,
};//null 문자
#endif
////////////////////////////////////////////////////////////////
=============================================mainm.c=======================================================
#include buslist.h
int main()
{
printf(각 노선의 현재 위치로부터 가장 가까운 버스의 위치를 알려주세요.\n);
present_spot();//먼저 버스 위치를 입력 받은 후
menu();//메뉴 호출
return 0 ;
}
/////////////////////////////////////////////////////////////////
=============================================menu.c================================================
#include buslist.h
void menu ()
{
int m;
while(1) //사용자가 종료할때까지 무한 루프
{
printf(==================================================);
printf(menu\n);
printf(1.버스 노선 출력\n);
printf(2.목적지 입력\n);
printf(3.현재 버스 위치 수정\n);
printf(4.프로그램 종료\n);
scanf(%d,&m);
switch(m)
{
case 1:
printout();
break;
case 2:
search();
break;
case 3:
present_spot();
break;
case 4:
exit(1);
break;
default:
printf(1~4의 숫자를 입력해주세요\n);
break;
}
}
}
///////////////////////////////////////////////////////////////
=========================================present_spot.c===========================================
#include buslist.h
int a=0;
int b=0;
int c=0;
int d=0;
int e=0;
void present_spot()
{
char word[40];
char **p;
puts([1141] 현재 정거장으로 부터 가장 가까운 버스의 위치 : );
gets(word); //정거장 이름을 읽어들인다.
p = (char**)bus1141; //2차원 포인터 배汰壙?배열을 더블 포인터 p로 가리킨다.
do{//strcmp를 통해서 같은 단어가 나올때까지 비교
if(!strcmp(*(p+a),word))
{
break;//1141버스정거장 리스트에 일치하는 정거장이있으면 break
}
a= a+1; //a는 bus1141[a]에 있는 문자열을 가리킨다.
}while(*p); //버스 정거장 목록이 끝날때까지 비교
puts([1131] 현재 정거장으로 부터 가장 가까운 버스의 위치 : );
gets(word);
p = (char**)bus1131;
do{
if(!strcmp(*(p+b),word))
{
break;
}
b=b+1;
}while(*p);
puts([1224] 현재 정거장으로 부터 가장 가까운 버스의 위치 : );
gets(word);
p = (char**)bus1224;
do{
if(!strcmp(*(p+c),word))
{
break;
}
c=c+1;
}while(*p);
puts([1142] 현재 정거장으로 부터 가장 가까운 버스의 위치 : );
gets(word);
p = (char**)bus1142;
do{
if(!strcmp(*(p+d),word))
{
break;
}
d=d+1;
}while(*p);
puts([1143] 현재 정거장으로 부터 가장 가까운 버스의 위치 : );
gets(word);
p = (char**)bus1143;
do{
if(!strcmp(*(p+e),word))
{
break;
}
e=e+1;
}while(*p);
}
////////////////////////////////////////////////////////////////
===========================================printout.c=====================================================
#include buslist.h
void printout()
{
while(1){
int busn,i;
char **p;
printf(어느 노선의 노선도를 보고 싶으신가요? : );
printf(1. 1141 \n);
printf(2. 1131 \n);
printf(3. 1224 \n);
printf(4. 1142 \n);
printf(5. 1143 \n);
printf(6. 노선도를 그만 본다.\n);
scanf(%d, &busn);
switch(busn)
{
case 1:
p = (char**)bus1141;
puts(===================================\n);
printf(1141버스 노선도\n);
i=0;
do
{
puts(*(p+i));
i++;
}while(*p);
break;
case 2:
p = (char**)bus1131;
puts(===================================\n);
printf(1131버스 노선도\n);
i=0;
do
{
puts(*(p+i));
i++;
}while(*p);
break;
case 3:
p = (char**)bus1224;
puts(===================================\n);
printf(1224버스 노선도\n);
i=0;
do
{
puts(*(p+i));
i++;
}while(*p);
break;
case 4:
p = (char**)bus1142;
puts(===================================\n);
printf(1142버스 노선도\n);
i=0;
do
{
puts(*(p+i));
i++;
}while(*p);
break;
case 5:
p = (char**)bus1143;
puts(===================================\n);
printf(1143버스 노선도\n);
i=0;
do
{
puts(*(p+i));
i++;
}while(*p);
break;
case 6:
menu();
break;
default:
printf(잘못 된 입력 입니다.\n);
break;
}
}
}
////////////////////////////////////////////////////////////////////////////////
=============================================search.c=====================================================
#include buslist.h
extern int a,b,c,d,e;
void search()
{int at=0,bt=0,ct=0,dt=0,et=0; //각 노선 [버스 기다리는 시간 + 버스 타고 가는 시간]
char word[40];
char **p;
int i;
int aa=0, bb=0, cc=0, dd=0, ee=0; //각 노선에서 목적지와 일치하는 정거장의 배열 번째수
int aaa, bbb, ccc, ddd, eee;
printf(목적지를 입력하세요);
gets(word);
p=(char**)bus1141;
do
{
if(!strcmp(*(p+aa),word))
break;
aa = aa+1;
}while(*p);
p=(char**)bus1131;
do
{
if(!strcmp(*(p+bb),word))
break;
bb = bb +1;
}while(*p);
p = (char**) bus1224;
do
{
if(!strcmp(*(p+cc),word))
break;
cc = cc +1;
}while(*p);
p=(char**)bus1142;
do
{
if(!strcmp(*(p+dd),word))
break;
dd = dd +1;
}while(*p);
p=(char**)bus1143;
do
{
if(!strcmp(*(p+ee),word))
break;
ee = ee +1;
}while(*p);
aaa=aa-a+1; //현재 버스 위치에서 부터 목적지까지 정거장 수 = aaa
bbb=bb-b+1;
ccc=cc-c+1;
ddd=dd-d+1;
eee=ee-e+1;
at = aaa * 2; //버스가 한 정거장 지나치는데 평균적으로 2분 걸린다고 생각
bt = bbb * 2;
ct = ccc * 2;
dt = ddd * 2;
et = eee * 2;
p=(char**)bus1141;
if(*(p+aa)) //*(p+aa)가 null문자까지 가지 않은 경우
{
printf([1141]의 현재 위치로 부터 목적지까지 정거장 목록\n);
for(i=a; i=aa; i++)
{
puts(*(p+i));
}
printf(버스 기다리는 시간 + 목적지까지 가는데 걸리는 시간 : %d \n, at);
}
p=(char**)bus1131;
if(*(p+bb)) //*(p+bb)가 null문자까지 가지 않은 경우
{
printf([1131]의 현재 위치로 부터 목적지까지 정거장 목록\n);
for(i=b; i=bb; i++)
{
puts(*(p+i));
}
printf(버스 기다리는 시간 + 목적지까지 가는데 걸리는 시간 : %d \n, bt);
}
p = (char**) bus1224;
if(*(p+cc)) //*(p+cc)가 null문자까지 가지 않은 경우
{
printf([1224]의 현재 위치로 부터 목적지까지 정거장 목록\n);
for(i=c; i=cc; i++)
{
puts(*(p+i));
}
printf(버스 기다리는 시간 + 목적지까지 가는데 걸리는 시간 : %d \n, ct);
}
p=(char**)bus1142;
if(*(p+dd)) //*(p+dd)가 null문자까지 가지 않은 경우
{
printf([1142]의 현재 위치로 부터 목적지까지 정거장 목록\n);
for(i=c; i=cc; i++)
{
puts(*(p+i));
}
printf(버스 기다리는 시간 + 목적지까지 가는데 걸리는 시간 : %d \n, ct);
}
p=(char**)bus1143;
if(*(p+ee)) //*(p+ee)가 null문자까지 가지 않은 경우
{
printf([1143]의 현재 위치로 부터 목적지까지 정거장 목록\n);
for(i=e; i=ee; i++)
{
puts(*(p+i));
}
printf(버스 기다리는 시간 + 목적지까지 가는데 걸리는 시간 : %d \n, et);
}
}
/////////////////////////////////////////////////
현재현재 버스 위치를 버스 목록에서 찾고
목적지를 입력 받아서
현재 버스 위치 - 사용자 정거장 위치 가는 시간
+
사용자 정거장 위치 - 목적지 가는시간
=
목적지까지 가는데 걸리는 시간
이렇게 해서 한 정거장당 2분 걸린다고 해서 시간 출력하고
현재 위치에서 목적지까지 버스 정거장 목록을 출력하려는데 안되네요 ㄷㄷ
(각 버스 노선 마다.)
-
설아
저 동네 사시는분이면 도움 많이되겠는데요...
-
블레이
링크에러군요;;
-
달
... 변수명이...
-
돋가이
배열 선언에서
char *temp[][40];
이런 식으로 되어 있는데
char *temp[40];
이런 식으로 바꿔보세요. -
놓아줄게요
위에글 말씀하신대로 다시 수정했는데 여전히 안돼요 ㅜ(수정한거 위에글에 그대로 수정해놨어요)
똑같은 오류가..
파일도 첨부해놨습니다. -
널위해
buslist.h를 다음과 같이 구성을 하면 중복 컴파일을 막을 수 있습니다.
#ifndef _BUSLIST_
#define _BUSLIST_
...
여기에 원래의 코드를 넣으면 됩니다.
...
#endif -
살랑살랑
분석해보려다가 변수명이
a, b, c, d, e, ...
aa, bb, cc, dd, ee,....
aaa, bbb, ccc, ddd, eee,...
이런 식으로 되어 있어서 포기했습니다. -
콘라드
a는 현재 버스 위치이고
aa는 목적지 버스 위치 (배열 번쨰수)
aaa는 현재 버스 위치로부터 목적지 까지 정거장 수에요;
b,c,d,e는 다른 노선의 변수이고요;
a-1141
b-1131
c-1224
d-1142
e -1143
번호 | 제 목 | 글쓴이 | 날짜 |
---|---|---|---|
2676182 | 숫자 순서대로 배열하는법 | 권뉴 | 2024-11-24 |
2676152 | 기본적인거 하나 질문드립니다. | 개미 | 2024-11-24 |
2676124 | 함수선언관련 질문이에요~...털썩..수정완료 (2) | 가지 | 2024-11-24 |
2676092 | C언어 책 (2) | 아서 | 2024-11-24 |
2676065 | 웹사이트 또는 메신저 등에서 원하는 텍스트를 검사하는방법?? (1) | 모든 | 2024-11-23 |
2676033 | 배열 기초연습중 발생하는 에러 ㅠㅜ... | Creative | 2024-11-23 |
2676005 | keybd_event 게임 제어 | 영글 | 2024-11-23 |
2675900 | 진짜기본적인질문 | 글길 | 2024-11-22 |
2675845 | 수정좀해주세요ㅠㅠㅠ | 해골 | 2024-11-21 |
2675797 | 병합 정렬 소스 코드 질문입니다. (2) | 도래솔 | 2024-11-21 |
2675771 | 큐의 활용이 정확히 어떻게 되죠?? | 해긴 | 2024-11-21 |
2675745 | 도서관리 프로그램 질문이요 | 도리도리 | 2024-11-20 |
2675717 | 2진수로 변환하는것! (3) | 동생몬 | 2024-11-20 |
2675599 | for문 짝수 출력하는 법 (5) | 널위해 | 2024-11-19 |
2675575 | Linux 게시판이 없어서.. | 첫삥 | 2024-11-19 |
2675545 | 구조체 이용할 때 함수에 자료 넘겨주는 것은 어떻게 해야 하나요? | 아연 | 2024-11-19 |
2675518 | 사각형 가로로 어떻게 반복해서 만드는지좀.. 내용 | 신당 | 2024-11-18 |
2675491 | !느낌표를 입력하는것은 어떻게합니까~~?ㅠㅠ (5) | 사지타리우스 | 2024-11-18 |
2675411 | 파일입출력으로 받아온 파일의 중복문자열을 제거한 뒤 파일출력 | 앨버트 | 2024-11-17 |
2675385 | 링크드리스트 주소록 질문드립니다. (1) | 겨루 | 2024-11-17 |