학생 관리 시스템 (간이) (소스 코드)

main. c 파일
/*·1.   
	2.        
			//               
	3.   				*/

#include "Mylist.h" 

void menu();/*     ----->        ,    */

struct Node *list;	

void keyDown();/*     :       ,    */

int main(int argc, char *argv[]) {
	list = createList();
	readInfoFromFile(list, "1.txt");
	while(1){
		menu(); 
		keyDown();
		system("pause");
		system("cls");
	}

//	      
//	struct Node*list = creatList();
//	insertNodeByHead(list, 1); 
//	insertNodeByHead(list, 3); 
//	insertNodeByHead(list, 2); 
//	insertNodeByHead(list, 4);
//	printList(list);
//	printf("      :
");
// deleteAppoinNode(list, 3); // printList(list); // printf(" :
");
// printf("%d
", searchInfoByData(list, 2)->data);
system("pause"); return 0; } void menu() { /* */ printf("--------------【 】-----------------
"
); printf("\t\t0.
"
); printf("\t\t1.
"
); printf("\t\t2.
"
); printf("\t\t3.
"
); printf("\t\t4.
"
); printf("\t\t5.
"
); printf("-----------------------------------------------
"
); } void keyDown() { int choice = 0; struct student data; struct Node *pMove = NULL; scanf("%d", &choice); switch(choice){ case 0: printf("
"
); system("pause"); exit(0); break; case 1: printf("----------------【 】----------------
"
); /* */ printf(" , , , :"); fflush(stdin);/* */ scanf("%s%d%s%s",data.name, &data.age, data.sex, data.tel ) ; insertNodeByHead(list, data); break; case 2: printf("----------------【 】-------------------
"
); printList(list);/* */ break; case 3: printf("----------------【 】-------------------
"
); printf(" :"); scanf("%s", data.name); modification(list, data.name); break; case 4: printf("----------------【 】-------------------
"
); printf(" :"); scanf("%s", data.name); deleteAppoinNode(list, data.name); break; case 5: printf("----------------【 】-------------------
"
); printf(" :"); scanf("%s", data.name); pMove = searchInfoByData(list, data.name); if((pMove) == NULL){ printf(" !
"
); system("pause"); } else{ printf(" \t \t \t
"
); printf("%s\t%d\t%s\t%s
"
, pMove->data.name, pMove->data.age, pMove->data.sex, pMove->data.tel ); } break; default: printf(" ,
"
); system("pause");/* */ break; } writeInfoToFile(list, "1.txt"); }

Mylist. h 파일
#include 
#include 		/*    */
#include 

struct student{
	char name[50];
	int age;
	char sex[5];
	char tel[20];
};

//       
//                 ,           
//         

struct Node{
	/*int data*/
	struct student data;
	struct Node*next;
};


/*   */ 
struct Node *createList(){
	/*          */ 
	/*  --->          */ 
	struct Node *headNode = (struct Node *)malloc(sizeof(struct Node));
	/*  :           data      */ 
	headNode->next = NULL;

	return headNode;
} 

/*    */ 
struct Node* createNode(struct student data){
	struct Node*newNode = (struct Node*)malloc(sizeof(struct Node));
	newNode->data = data;
	newNode->next = NULL;
	return newNode; 		
} 

/*    */
void insertNodeByHead(struct Node*headNode, struct student data){
	struct Node*newNode = createNode(data);
	/*     */
	newNode->next = headNode->next;
	headNode->next = newNode; 
} 

/*    */
void deleteAppoinNode(struct Node*headNode,  char*name){
	//struct student 
	struct Node*posNode = headNode->next;
	struct Node*posFrontNode = headNode;
	if(posNode == NULL){
		printf("    ,    !
"
); return; } /* , :strcmp */ while(strcmp(posNode->data.name, name)){ posFrontNode = posNode; posNode = posFrontNode->next; if(posNode ==NULL){ printf(" !
"
); return ; } } /* */ posFrontNode->next = posNode->next; free(posNode); } /* : */ void readInfoFromFile(struct Node*headNode, char *fileName){ /* 1. */ FILE *fp; struct student data;/* data , */ fp = fopen(fileName, "r");/* */ if(fp == NULL){ fp = fopen(fileName, "w+");/* */ } /*2. */ /* data , */ /* */ while(fscanf(fp, "%s\t%d\t%s\t%s
"
, data.name, &data.age, data.sex, data.tel) != EOF){ /* \t*/ /* */ insertNodeByHead(headNode, data); } /* 3. */ fclose(fp); } /* : */ void writeInfoToFile(struct Node*headNode, char*fileName){ FILE *fp; fp = fopen(fileName, "w");/* */ /*w+ */ if(fp == NULL){ printf(" !"); return ; } struct Node *pMove = headNode->next; while(pMove){ fprintf(fp, "%s\t%d\t%s\t%s
"
, pMove->data.name, pMove->data.age, pMove->data.sex, pMove->data.tel); pMove = pMove->next; } fclose(fp); } /* */ /* */ struct Node *modification (struct Node* headNode, char* name){ struct student data; deleteAppoinNode(headNode, name); printf(" , , , :"); fflush(stdin);/* */ scanf("%s%d%s%s",data.name, &data.age, data.sex, data.tel ) ; insertNodeByHead(headNode, data); } /* */ struct Node *searchInfoByData(struct Node* headNode, char *name){ struct Node *pMove = headNode->next; while(strcmp(pMove->data.name, name)){ pMove = pMove->next; if(pMove == NULL){ return NULL; } } return pMove; } /* */ void printList(struct Node*headNode){ struct Node*pMove = headNode->next; /* */ printf(" \t\t \t \t
"
); while(pMove){ printf("%s\t\t%d\t%s\t%s
"
, pMove->data.name, pMove->data.age, pMove->data.sex, pMove->data.tel ); pMove = pMove->next; } printf("
"
); }

좋은 웹페이지 즐겨찾기