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
팀 프로젝트 2
팀명 : CJ팀원 : 김주호 , 이창오
0. 목차
• 1. 요구사항
• 2. 설계
1. 요구사항
1. 데이터 추가• 구조체 포인터를 만들어 malloc 으로 31 개의
구조체가 들어갈 메모리를 할당한다 .( 최대 30명이니 30 명이 들어갔을 때 마지막 주소 값이 NULL 인 부분을 찾기 위해 크기를 31 로 잡는다 .)
• 인원수 이외의 메모리에는 NULL 값으로 초기화 한다 .
• 총 학생수를 불러와서 그 뒤 NULL 값인 곳을 알아낸다 .
• 받아올 매개변수는 학생수 , 구조체 포인터이다 .
2. 데이터 삭제• 총 학생수를 불러와서 변수에 저장한다 .• 삭제할 데이터의 학번을 받아와서 그 학번에
해당하는 index 를 찾는다 .• 그 index 를 NULL 값으로 만들고 총
학생수에 해당하는 index 에 있는 데이터의 주소를 삭제한 곳으로 옮긴후 옮기기 전의 주소 값은 NULL 로 초기화 한다 .
• 받아올 매개변수는 학번 , 구조체 포인터이다 .
3. 데이터 수정• 학번 , 바꾸고자 하는 항목에 해당하는 번호 ,
바꾸고 난 후의 점수를 매개변수로 받아온다 .• 그 학번에 해당하는 index 를 찾고 switch
문으로 case 를 나눈다 . 그 case 에 해당하는 번호를 위에 받아온 매개변수중 바꾸고자 하는 항목에 해당하는 번호와 일치시켜 데이터를 바꿔준다 .
• 1 을 받아왔으면 중간고사 점수 , 2 를 받아왔으면 기말고사 점수를 바꾸면 된다 .
4. 데이터 정렬• 내림차순 , 오름차순 함수를 따로 만든다 .• 내림차순 함수에서 받아올 매개변수는 정렬할
항목에 대한 번호와 구조체 포인터이다 .• 위와 같이 항목별로 switch 문을 돌려서 각
case 에 해당하는 항목에 대해 정렬할 것이다 .• 선택정렬 또는 버블정렬• 오름차순 함수도 마찬가지이다 .
5. 성적산출• 출석 : 지각 한번 0.5 점 감점 , 지각 두번 결석
결석 5 회 이상인 경우 F• 순위 : 총점으로 정렬한 뒤 그 순서대로 순위에
해당하는 변수에 차례대로 번호를 넣는다 .• 학점 : 순위로 정렬한 뒤 , 총 학생수를
불러온다 . 총 학생수의 각각 비율대로 나누어A,B,C,D 를 매긴 후 결석 횟수 5 회 이상 인 데이터에는 F 를 매긴다 .
설계 part 1
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
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(;;)
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(;;)
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(;;)
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
전체 개요
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)