16
팀 팀팀팀팀 2 팀팀 : CJ 팀팀 : 팀팀팀 , 팀팀팀

팀 프로젝트 2

  • Upload
    coye

  • View
    39

  • Download
    0

Embed Size (px)

DESCRIPTION

팀 프로젝트 2. 팀명 : CJ 팀 원 : 김주호 , 이창오. 0. 목차. 1. 요구사항 2. 설계. 1. 요구사항. 1. 데이터 추가. 구조체 포인터를 만들어 malloc 으로 31 개의 구조체가 들어갈 메모리를 할당한다 .( 최대 30 명이니 30 명이 들어갔을 때 마지막 주소 값이 NULL 인 부분을 찾기 위해 크기를 31 로 잡는다 .) 인원수 이외의 메모리에는 NULL 값으로 초기화 한다 . 총 학생수를 불러와서 그 뒤 NULL 값인 곳을 알아낸다 . - PowerPoint PPT Presentation

Citation preview

Page 1: 팀 프로젝트  2

팀 프로젝트 2

팀명 : CJ팀원 : 김주호 , 이창오

Page 2: 팀 프로젝트  2

0. 목차

• 1. 요구사항

• 2. 설계

Page 3: 팀 프로젝트  2

1. 요구사항

Page 4: 팀 프로젝트  2

1. 데이터 추가• 구조체 포인터를 만들어 malloc 으로 31 개의

구조체가 들어갈 메모리를 할당한다 .( 최대 30명이니 30 명이 들어갔을 때 마지막 주소 값이 NULL 인 부분을 찾기 위해 크기를 31 로 잡는다 .)

• 인원수 이외의 메모리에는 NULL 값으로 초기화 한다 .

• 총 학생수를 불러와서 그 뒤 NULL 값인 곳을 알아낸다 .

• 받아올 매개변수는 학생수 , 구조체 포인터이다 .

Page 5: 팀 프로젝트  2

2. 데이터 삭제• 총 학생수를 불러와서 변수에 저장한다 .• 삭제할 데이터의 학번을 받아와서 그 학번에

해당하는 index 를 찾는다 .• 그 index 를 NULL 값으로 만들고 총

학생수에 해당하는 index 에 있는 데이터의 주소를 삭제한 곳으로 옮긴후 옮기기 전의 주소 값은 NULL 로 초기화 한다 .

• 받아올 매개변수는 학번 , 구조체 포인터이다 .

Page 6: 팀 프로젝트  2

3. 데이터 수정• 학번 , 바꾸고자 하는 항목에 해당하는 번호 ,

바꾸고 난 후의 점수를 매개변수로 받아온다 .• 그 학번에 해당하는 index 를 찾고 switch

문으로 case 를 나눈다 . 그 case 에 해당하는 번호를 위에 받아온 매개변수중 바꾸고자 하는 항목에 해당하는 번호와 일치시켜 데이터를 바꿔준다 .

• 1 을 받아왔으면 중간고사 점수 , 2 를 받아왔으면 기말고사 점수를 바꾸면 된다 .

Page 7: 팀 프로젝트  2

4. 데이터 정렬• 내림차순 , 오름차순 함수를 따로 만든다 .• 내림차순 함수에서 받아올 매개변수는 정렬할

항목에 대한 번호와 구조체 포인터이다 .• 위와 같이 항목별로 switch 문을 돌려서 각

case 에 해당하는 항목에 대해 정렬할 것이다 .• 선택정렬 또는 버블정렬• 오름차순 함수도 마찬가지이다 .

Page 8: 팀 프로젝트  2

5. 성적산출• 출석 : 지각 한번 0.5 점 감점 , 지각 두번 결석

결석 5 회 이상인 경우 F• 순위 : 총점으로 정렬한 뒤 그 순서대로 순위에

해당하는 변수에 차례대로 번호를 넣는다 .• 학점 : 순위로 정렬한 뒤 , 총 학생수를

불러온다 . 총 학생수의 각각 비율대로 나누어A,B,C,D 를 매긴 후 결석 횟수 5 회 이상 인 데이터에는 F 를 매긴다 .

Page 9: 팀 프로젝트  2

설계 part 1

Page 10: 팀 프로젝트  2

1. 메인

Struct{ int identity_num, char name[20] etc }Void gotoxy(int x, int y);Void attend(double n, int m);Void grade();Void add(Student *s, int n ,int m);Void modify(Student *s, int n, int a,int m);Void delete(Student*s,, int n);Void all_student(Student*s);Void ranking();Void array(int I, Student*s);Void show_graph(Student*s);Void addscore(Student*s);Void avgscore(Student*s)

Main.c

Page 11: 팀 프로젝트  2

2. 데이터 추가 / 삭제 / 수정delete(int n,student *s)

Int n;// 학번Int I;// 학번으로 찾아 삭제할 학생 indexInt m;M=all_student(student*s);S[i] = s[n-1];S[n-1] =0;

add(Student*s, int n, int m)

Int n;// 총 학생수Int m;// 추가할 학생수

modify(int n, int m, int a, student *s)Int n;// 총 학생수Int m;// 추가할 학생수Int a;// 바꾸고 난 점수

All_student(Student*s)

Int I;For(;;)

Page 12: 팀 프로젝트  2

3. 정렬

Array_up(int I, Stu-dent*s)

Boublearray 오름 차순

Array_down(int I, Student*s)

Boublearray 내림 차순

Ranking()

Array(int I,Student*s);// 오름 차순Int n;For(;;)

Page 13: 팀 프로젝트  2

4. 점수Attend(double n, int m)

doube n// 지각 횟수Int m// 결석 횟수Int l// 출석 점수double o// 총 결석 횟수O=m+n/2L=10-m

Grade()

Void ranking();Void all_student(Student*s)Int a= 총학생수 *0.2Int b= 총학생수 *0.5 //etcFor(;;) if( 결석 >=5){f 학점 };

addscore(Student*s)

Int I;For(;;)

avgscore(Student*s)

Int I;For(;;)

Page 14: 팀 프로젝트  2

5. 출력

Gotoxy(int x, int y)COORD Cur;

     Cur.X=x;     Cur.Y=y;     SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_H ANDLE),Cur);

Show_graph(Student*s)Gotoxy(int x, int y);Printf(“”);…..etc

Page 15: 팀 프로젝트  2

전체 개요

Page 16: 팀 프로젝트  2

Main.c

Addscore(student*s)

delete(int n,student *s)

modify(int n, int m, int a, student *s)

All_student(Student*s)

Array_up(int I, Stu-dent*s)

Array_down(int I, Student*s)

Ranking()

Attend(double n, int m)

Grade()

add(Student*s)avgscore(Student*s)

Gotoxy(int x, int y)

Show_graph(Student*s)