학생 관리 시스템 (간이) (소스 코드)
/*·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("
");
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
C 언어 구현 천둥 제거 게임 상세 정보먼저 작은 메뉴를 표시하고 게임을 할지 여부를 선택하십시오.사용자가 종료를 선택하면 프로그램 실행이 끝나고, 사용자가 게임을 선택하면 지뢰 제거 위치 좌표를 입력하라는 메시지가 표시됩니다.사용자가 입력한 좌표가 바둑...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.