/ * CopyRight (C) 2004 Aprin * * /
#include
TypedEf strunt student {int No; char name [max_name]; int english; int math; int code; int mark_ave; int mark_tot;} student
/ * ----------- Input sub program --------- * /
Void INPUT (Student * Data, INT * LEN) {INT NO; char ch [MAX_NAME]; int mark
Putchar ('/ n'); Printf ("% s / n", "Enter the new records.and if you want); printf ("% s / n "," format: number " ); Printf ("% S / N", "Name English Math ComputerAverge Total); Putchar ('/ n'); Printf (" Such as: / N "); Printf (" 1 / n "); printf ("Gates 100 100 100,400 / N");
Scanf ("% D", & no); while (no! = -1) {data [* len] .no = no; scanf ("% s% D% D% D% D% D" DATA [* LEN ] .Name, & Data [* LEN] .MATH, & DATA [* LEN] .Computer, & data [* len] .mark_ave, & data; * len] .mark_tot; (* LEN) ; Scanf ("% d", & no);}}
/ * --------------- Output sub program --------------- * /
Void Output (student * data, int LEN) {INT i;
CLRSCR (); Printf ("% 8S", "Number"); Printf ("% 8s", "name"); Printf ("% 8s", "English"); Printf ("% 8s", "Math" ); Printf ("% 10s", "computer"); Printf ("% 12s", "average"); Printf ("% 10s", "total"); PUTCHAR ('/ n');
For (i = 0; i <80; i ) PUTCHAR ('='); PUTCHAR ('/ n');
For (i = 0; i / * -------------- Sort sub program ------------ * / Void Sort (Student * Data, INT LEN) {INT I, J, K; Student Temp; For (i = 0; i IF (k! = i) {temp = data [i]; data [i] = data [k]; data [k] = TEMP;}}} / * -------------------- Find Sub Program ----------------------- * / Void Find (Student * Data, INT LEN) {INT FIND_NO, RESULT; INT i Lab: Result = 0; Printf ("% s / n", "Enter the number which you want to find. if you want exit, enter -1."); scanf ("% d", & find_no); if (Find_no == -1) Return; / * exit the Fine Sub proGram * / while (data [result] .no! = Find_no && result For (i = 0; i <80; i ) PUTCHAR ('='); PUTCHAR ('/ n'); Printf ("% 8s", "Number"); Printf ("% 8s", "name"); Printf ("% 8s", "English"); Printf ("% 8s", "Math"); Printf "% 10s", "computer"); Printf ("% 12s", "average"); Printf ("% 10s", "total"); putchar ('/ n'); Printf ("% 8D", DATA [Result] .no); Printf ("% 8S", DATA [Result] .Name); Printf ("% 8D", DATA [Result] .english); Printf ("% 8D", DATA [Result] .MATH PRINTF ("% 10D", Data [Result] .Computer; Printf ("% 12d", DATA [Result] .mark_ave); Printf ("% 10D", DATA [Result] .MARK_TOT); PUTCHAR (' / n '); For (i = 0; i <80; i ) PUTCHAR ('='); PUTCHAR ('/ n'); Goto lab;}}} / * ----------------- Insert Sub ProGram ------------- * / Void Insert (Studient * Data, Int * LEN) {Int No, POS, English, Math, Computer, Mark_ave, Mark_tot, I; Char Name [MAX_NAME]; Lab: Printf ("% S / N", "Enter the new records. if you want exit, enter -1."); Printf ("% s / n", "format: number"); Printf ("% s / N "," Name English Math Computer Average Total "; Scanf ("% d", & no; if (no == -1) Return; Data [* LEN] .no = NO; scanf ("% s% D% D% D% D% D", Name, & ENGLISH , & Math, & Computer, & Mark_ave, & Mark_tot; POS = 0; WHILE ((Data [POS] .mark_ave Void delete (student * data, int * LEN) {Int no, i, pos Lab: POS = 0; Printf ("% S / N", "Enter the number which you want to delete. if you want exit, enter -1."); Scanf ("% D", & no); if (no == -1) Return; While ((Data [POS] .no! = no) && (POS <* LEN)) POS = POS 1; IF (POS > = * LEN) {Printf ("% s / n", "there is no the record which you want."); goto lab;} else {for (i = POS 1; i <* len; i ) DATA [i-1] = DATA [I]; * len = * len -1; if (* len == 0) {Printf ("% s / n", "The number of records is zero, Press Enter to return. "); Getchar (); getchar (); Return;} goto lab;} } / * --------------- Stat Sub Program ------------ * / Void Stat (Student * Data, INT LEN) {INT NO_59 = 0, NO_69 = 0, NO_79 = 0, NO_89 = 0, NO_100 = 0; INT I; For (i = 0; i CLRSCR (); for (i = 0; I <80; i ) Putchar ('='); PUTCHAR ('/ n'); Printf ("% 10s", "score"); Printf ("% 10s", "0--59"); Printf ("% 10s", "60-69"); Printf ("% 10s", "70--79"); Printf ("% 10s", "80-89 "); Printf ("% 10s "," 90--100 "); putchar ('/ n'); Putchar ('/ n'); Printf ("% 10s "," student "); printf ("% 10D ", NO_59); Printf ("% 10d ", NO_69); Printf ("% 10d ", NO_79); Printf ("% 10d ", NO_89); Printf ("% 10d ", NO_100); PUTCHAR ('/ n'); For (i = 0; i <80; i ) Putchar ('='); PUTCHAR ('/ n'); Printf ("press enter to return."); getchar (); getchar () / * --------------- MANU ------------ * / Void Paint () {INT i; CLRSCR (); Printf ("% 43S / N", "manu"); For (i = 0; i <80; i ) PUTCHAR ('='); PUTCHAR ('/ n'); Printf ("1 INPUT 2 OUTPUT / N"); Printf ("3 Sort (Average) 4 Find (Number) / N"); Printf ("5 INSERT 6 Delete (Number) / N"); Printf ("7 Stat (average) 0 quit / n "); for (i = 0; i <= 79; i ) PUTCHAR ('='); PUTCHAR ('/ n'); Printf ("% s / n", "please enter the command:"); } / * ------------ Main Program --------------- * / Main () {student Data [MAXN]; int LEN = 0; char ctrl_ch;