C語言實(shí)現(xiàn)學(xué)生檔案管理系統(tǒng)
本文實(shí)例為大家分享了C語言實(shí)現(xiàn)學(xué)生檔案管理系統(tǒng)的具體代碼,供大家參考,具體內(nèi)容如下
/* ?? ?課程設(shè)計(jì)項(xiàng)目名稱:學(xué)生檔案管理系統(tǒng) ?? ?作者:施瑞文? ?? ?時(shí)間:2018.3.3? */ #include<stdio.h> #include<string.h> #include<stdlib.h> #include<conio.h> #include<windows.h> #define N sizeof(struct Student) #define M sizeof(struct Password) #define MAX 1000 ? ? struct Student { ?? ?char number[10]; ? //學(xué)號 ?? ?char name[10]; ? //姓名 ?? ?char sex[2]; ?//性別 ?? ?struct Birthday ?//出生日期? ?? ?{ ?? ??? ?int year; ? //年 ?? ??? ?int month; ?//月 ?? ??? ?int day; ? ?//日? ?? ?}birtnday; ?? ?struct Score ?//成績 ?? ?{ ?? ??? ?float c_language; ?//c語言 ?? ??? ?float math; ?//高數(shù) ?? ??? ?float Russian;//俄語 ?? ??? ?float Russian_hearing; //俄語聽力 ?? ??? ?float professional; ?//專業(yè)導(dǎo)論 ?? ??? ?float politics; ?//政治? ?? ?}score; ?? ?char remark[100]; ?//備注? ?? ?int num; ?? ?struct Student *next; }; typedef struct Student Stu; typedef Stu *Stup; ? ? typedef struct Password { ?? ?char password[18]; ?? ?struct Password *next; }pass; typedef pass *passw; ? typedef struct TOTAL ? ?//總分? { ?? ?char number[10]; ?? ?char name[10]; ?? ?char sex[2]; ?? ?float c_language; ?//c語言 ?? ?float math; ?//高數(shù) ?? ?float Russian;//俄語 ?? ?float Russian_hearing; //俄語聽力 ?? ?float professional; ?//專業(yè)導(dǎo)論 ?? ?float politics; ?//政治 ?? ?float sum; }Total;? Total total[MAX]; ? ? //好多自定義函數(shù)? void color(short x);//設(shè)置顏色 void HideCursor(); ? ? //隱藏光標(biāo) void toxy(int x, int y); ? ? //將光標(biāo)移動到X,Y坐標(biāo)處 void menu(); ? ?//主菜單? void over(); ? //退出軟件 void signin(); ? //登陸? passw ff(); ? ?//將文件中的內(nèi)容讀入鏈表,返回值為表頭地址? void save_password(passw p);//保存密碼? void amend_password(); ? //修改密碼? void input_information(); ?//信息錄入? void amend_information(); ?//修改信息? void delete_information(); ?//刪除信息? void delete_number(); ?//按學(xué)號查詢刪除 void delete_name(); ? //按姓名查詢刪除? void save_information(Stup p); ? //保存信息? void print_information(); ? ?//信息顯示? Stup ss(); ? //將文件中的內(nèi)容讀入鏈表,返回值為表頭地址 void find_information(); ? ///查找信息? void find_number_information(); ? //按學(xué)號查詢? void find_name_information(); ? //按姓名查詢? void statistics_information(); ?//信息統(tǒng)計(jì)? void average_score(); ? //平均分 void total_score_ranked(); ? //總分排名 void fail_numbers(); ? ? //各科不及格人數(shù)? void assignment(); ? //將信息賦值到一個(gè)結(jié)構(gòu)體中? void grade_table(); ? //各科成績分布? void analyze_c(); ? //c語言? void analyze_math();//高數(shù)? void analyze_Russian();//俄語? void analyze_Russian_hearing();//俄語聽力? void analyze_professional();//專業(yè)導(dǎo)論? void analyze_politics(); ? //政治? int cmp(const void *a,const void *b); int cmp1(const void *a,const void *b); ?//快速排序? int cmp2(const void *a,const void *b); int cmp3(const void *a,const void *b); int cmp4(const void *a,const void *b); int cmp5(const void *a,const void *b); int cmp6(const void *a,const void *b); ? ? ? char _password[18]; passw password_head; int len; ? void color(short x) ? ?//設(shè)置顏色? { ?? ?if(x>=0&&x<=15) ?? ?{ ?? ??? ?SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),x); ?? ?} ?? ?else ?? ?{ ?? ??? ?SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),x); ?? ?} }? ? void HideCursor() ? ? //隱藏光標(biāo) { ?CONSOLE_CURSOR_INFO cursor_info = {1, 0};? ?SetConsoleCursorInfo(GetStdHandle(STD_OUTPUT_HANDLE), &cursor_info); } ? void toxy(int x, int y) ? ? ?//將光標(biāo)移動到X,Y坐標(biāo)處 { COORD pos = { x , y }; HANDLE Out = GetStdHandle(STD_OUTPUT_HANDLE); SetConsoleCursorPosition(Out, pos);? } ? int cmp(const void *a,const void *b) ?//快速排序? { ?? ?return ((*(Total *)b).sum)-((*(Total *)a).sum); } ? int cmp1(const void *a,const void *b) ?//快速排序? { ?? ?return ((*(Total *)b).c_language)-((*(Total *)a).c_language); } ? int cmp2(const void *a,const void *b) ?//快速排序? { ?? ?return ((*(Total *)b).math)-((*(Total *)a).math); } ? int cmp3(const void *a,const void *b) ?//快速排序? { ?? ?return ((*(Total *)b).Russian)-((*(Total *)a).Russian); } ? int cmp4(const void *a,const void *b) ?//快速排序? { ?? ?return ((*(Total *)b).Russian_hearing)-((*(Total *)a).Russian_hearing); } ? int cmp5(const void *a,const void *b) ?//快速排序? { ?? ?return ((*(Total *)b).professional)-((*(Total *)a).professional); } ? int cmp6(const void *a,const void *b) ?//快速排序? { ?? ?return ((*(Total *)b).politics)-((*(Total *)a).politics); } ? void menu() ? //主菜單 { ?? ?do ?? ?{ ?? ??? ?system("cls"); ? ?//清屏? ?? ??? ?fflush(stdin); ? //清空緩存? ?? ??? ?color(14); ?? ??? ?char t; ?? ??? ?toxy(45,6); ?? ??? ?printf("-----學(xué)生檔案管理系統(tǒng)-----");? ?? ??? ?toxy(45,7); ?? ??? ?printf("| ? ? ? ? ? ? ? ? ? ? ? ?|"); ?? ??? ?toxy(45,8); ?? ??? ?printf("| ? ? ? 1.信息錄入 ? ? ? |"); ?? ??? ?toxy(45,9); ?? ??? ?printf("| ? ? ? ? ? ? ? ? ? ? ? ?|"); ?? ??? ?toxy(45,10); ?? ??? ?printf("| ? ? ? 2.信息修改 ? ? ? |"); ?? ??? ?toxy(45,11); ?? ??? ?printf("| ? ? ? ? ? ? ? ? ? ? ? ?|"); ?? ??? ?toxy(45,12); ?? ??? ?printf("| ? ? ? 3.信息刪除 ? ? ? |"); ?? ??? ?toxy(45,13); ?? ??? ?printf("| ? ? ? ? ? ? ? ? ? ? ? ?|"); ?? ??? ?toxy(45,14); ?? ??? ?printf("| ? ? ? 4.信息顯示 ? ? ? |"); ?? ??? ?toxy(45,15); ?? ??? ?printf("| ? ? ? ? ? ? ? ? ? ? ? ?|"); ?? ??? ?toxy(45,16); ?? ??? ?printf("| ? ? ? 5.信息查找 ? ? ? |"); ?? ??? ?toxy(45,17); ?? ??? ?printf("| ? ? ? ? ? ? ? ? ? ? ? ?|"); ?? ??? ?toxy(45,18); ?? ??? ?printf("| ? ? ? 6.信息統(tǒng)計(jì) ? ? ? |"); ?? ??? ?toxy(45,19); ?? ??? ?printf("| ? ? ? ? ? ? ? ? ? ? ? ?|"); ?? ??? ?toxy(45,20); ?? ??? ?printf("| ? ? ? 7.修改密碼 ? ? ? |"); ?? ??? ?toxy(45,21); ?? ??? ?printf("| ? ? ? ? ? ? ? ? ? ? ? ?|"); ?? ??? ?toxy(45,22); ?? ??? ?printf("| ? ? ? 8.退出軟件 ? ? ? |"); ?? ??? ?toxy(45,23); ?? ??? ?printf("--------------------------"); ?? ??? ?t=getch(); ?? ??? ?switch(t) ?? ??? ?{ ?? ??? ??? ?case '1':input_information();break; ?? ??? ??? ?case '2':amend_information();break; ?? ??? ??? ?case '3':delete_information();break; ?? ??? ??? ?case '4':print_information();break; ?? ??? ??? ?case '5':find_information();break; ?? ??? ??? ?case '6':statistics_information();break; ?? ??? ??? ?case '7':amend_password();break; ?? ??? ??? ?case '8':over();break; ?? ??? ??? ?default :break; ?? ??? ?} ?? ?}while(1);//永遠(yuǎn)為真? }? ? passw ff() ? ? //將文件中的內(nèi)容讀入鏈表,返回值為表頭地址? { ?? ?FILE *fp; ?//文件指針? ?? ?passw password_head=NULL; ?? ?fp=fopen("password","a+"); ? //以追加和讀的方式打開名為password的文件? ?? ?if(fp==NULL) ?? ?{ ?? ??? ?printf("cannot open file");? ?? ?} ?? ?//printf("%p\n",password_head); ?? ?password_head=(passw)malloc(M); ? //申請空間? ?? ?strcpy(password_head->password," "); ?//初始化密碼? ?? ?//printf("%s\n",password_head); ?? ?fread(password_head,M,1,fp); ?? ?? ?fclose(fp); ? ?//關(guān)閉文件? ?? ?return password_head; ? //返回值表頭地址? } ? void signin() ? ?//登錄? { ?? ?do ?? ?{ ?? ??? ?system("cls"); ?? ??? ?color(13); ? //好看的顏色? ?? ??? ?passw p,head; ?? ??? ?int i=0; ?? ??? ?char k; ?? ??? ?head=ff(); ? //調(diào)用函數(shù),返回值為表頭地址? ?? ??? ?p=head; ? ?? ?? ??? ?//printf("%s\n",p->password); ?? ??? ?//printf("%p\n",p); ?? ??? ?char str[]="000000"; ? //初始密碼? ?? ??? ?toxy(45,6); ?? ??? ?printf("-----學(xué)生檔案管理系統(tǒng)-----"); ?? ??? ?toxy(45,8); ?? ??? ?printf("請輸入管理者密碼:"); ?? ??? ?for(;;) ? ? ? ? ? ? ?//此處為輸入密碼不回顯操作? ?? ??? ?{ ?? ??? ??? ?k=getch(); ? ? ? //輸入k? ?? ??? ??? ?if(k=='\r') ? ? ?//如果輸入k為回車,則跳出循環(huán)? ?? ??? ??? ?{ ?? ??? ??? ??? ?break; ?? ??? ??? ?} ?? ??? ??? ?else if(k=='\b') ?//如果輸入k為刪除鍵? ?? ??? ??? ?{ ?? ??? ??? ??? ?if(i>0) ? ? ? //如若密碼還沒完全刪除? ?? ??? ??? ??? ?{ ?? ??? ??? ??? ??? ?printf("\b"); ?? ??? ??? ??? ??? ?printf(" "); ?? ??? ??? ??? ??? ?printf("\b"); ?? ??? ??? ??? ??? ?i--; ?? ??? ??? ??? ?} ?? ??? ??? ?} ?? ??? ??? ?else ? ? ? ? ? ? ?//如果輸入的k既不是刪除鍵,也不是回車鍵? ?? ??? ??? ?{ ?? ??? ??? ??? ?_password[i]=k; ? //把k的值賦給_password[i];? ?? ??? ??? ??? ?printf("*"); ? ? ?//輸出*號,保護(hù)用戶隱私? ?? ??? ??? ??? ?i++; ? ? ? ? ? ? ?//密碼位數(shù)加1? ?? ??? ??? ?} ?? ??? ?} ?? ??? ?_password[i]='\0'; ?? ??? ?if(strcmp(p->password," ")==0) ? //判斷程序是否是第一次運(yùn)行, ?? ??? ?{ ?? ??? ??? ?strcpy(p->password,str);//如果是,則將初始密碼000000賦值給p->password? ?? ??? ??? ?save_password(p); ? //保存p? ?? ??? ?} ?? ??? ?if(strcmp(head->password,_password)==0) ? //判斷密碼是否輸入正確? ?? ??? ?{ ?? ??? ??? ?system("cls"); ?? ??? ??? ?toxy(45,8); ?? ??? ??? ?printf("正在登陸...."); ?? ??? ??? ?Sleep(500); ?? ??? ??? ?menu(); ?? ??? ?} ?? ??? ?else ?? ??? ?{ ?? ??? ??? ?toxy(45,10); ?? ??? ??? ?printf("密碼錯誤!"); ?? ??? ??? ?Sleep(500); ?? ??? ?} ?? ?}while(1); } ? void amend_password() ? //修改密碼? { ?? ?system("cls"); ? ? ? ? //清屏? ?? ?color(12); ? ?//看著舒服的顏色 ? ?? ?passw p,head; ? ? ? //隱藏光標(biāo),看著更舒服? ?? ?head=ff(); ? ? do ? ? {? ? ? ? ? system("cls"); ? ? ? ? //清屏 ? ? ?? ?p=head; ? ? ?? ?char password[18],newpassword[18],t,k; ? ? ?? ?int i=0; ? ? ?? ?toxy(45,6); ? ? ? ? ?//將光標(biāo)移動到坐標(biāo)為(50,5)的位置? ?? ??? ?printf("學(xué)生檔案管理系統(tǒng)"); ?? ??? ?toxy(48,8); ?? ??? ?printf("修改密碼"); ?? ??? ?toxy(45,10); ?? ??? ?printf("請輸入舊密碼:"); ?? ??? ?for(;;) ? ? ? ? ? ? ?//此處為輸入密碼不回顯操作? ?? ??? ?{ ?? ??? ??? ?k=getch(); ? ? ? //輸入k? ?? ??? ??? ?if(k=='\r') ? ? ?//如果輸入k為回車,則跳出循環(huán)? ?? ??? ??? ?{ ?? ??? ??? ??? ?break; ?? ??? ??? ?} ?? ??? ??? ?else if(k=='\b') ?//如果輸入k為刪除鍵? ?? ??? ??? ?{ ?? ??? ??? ??? ?if(i>0) ? ? ? //如若密碼還沒完全刪除? ?? ??? ??? ??? ?{ ?? ??? ??? ??? ??? ?printf("\b"); ?? ??? ??? ??? ??? ?printf(" "); ?? ??? ??? ??? ??? ?printf("\b"); ?? ??? ??? ??? ??? ?i--; ?? ??? ??? ??? ?} ?? ??? ??? ?} ?? ??? ??? ?else ? ? ? ? ? ? ?//如果輸入的k既不是刪除鍵,也不是回車鍵? ?? ??? ??? ?{ ?? ??? ??? ??? ?password[i]=k; ? //把k的值賦給_password[i];? ?? ??? ??? ??? ?printf("*"); ? ? ?//輸出*號,保護(hù)用戶隱私? ?? ??? ??? ??? ?i++; ? ? ? ? ? ? ?//密碼位數(shù)加1? ?? ??? ??? ?} ?? ??? ?} ?? ??? ?password[i]='\0'; ?? ??? ?i=0; ?? ??? ?toxy(45,12); ?? ??? ?printf("請輸入新密碼:"); ?? ??? ?for(;;) ? ? ? ? ? ? ?//此處為輸入密碼不回顯操作? ?? ??? ?{ ?? ??? ??? ?k=getch(); ? ? ? //輸入k? ?? ??? ??? ?if(k=='\r') ? ? ?//如果輸入k為回車,則跳出循環(huán)? ?? ??? ??? ?{ ?? ??? ??? ??? ?break; ?? ??? ??? ?} ?? ??? ??? ?else if(k=='\b') ?//如果輸入k為刪除鍵? ?? ??? ??? ?{ ?? ??? ??? ??? ?if(i>0) ? ? ? //如若密碼還沒完全刪除? ?? ??? ??? ??? ?{ ?? ??? ??? ??? ??? ?printf("\b"); ?? ??? ??? ??? ??? ?printf(" "); ?? ??? ??? ??? ??? ?printf("\b"); ?? ??? ??? ??? ??? ?i--; ?? ??? ??? ??? ?} ?? ??? ??? ?} ?? ??? ??? ?else ? ? ? ? ? ? ?//如果輸入的k既不是刪除鍵,也不是回車鍵? ?? ??? ??? ?{ ?? ??? ??? ??? ?newpassword[i]=k; ? //把k的值賦給_password[i];? ?? ??? ??? ??? ?printf("*"); ? ? ?//輸出*號,保護(hù)用戶隱私? ?? ??? ??? ??? ?i++; ? ? ? ? ? ? ?//密碼位數(shù)加1? ?? ??? ??? ?} ?? ??? ?} ?? ??? ?newpassword[i]='\0'; ?? ??? ?if(p!=NULL) ? ? ? ? ? ? ? ? ? //如果p不為空? ?? ??? ?{ ?? ??? ??? ?if(strcmp(p->password,password)==0) ? ? ? ? ?//如果舊密碼輸入正確? ?? ??? ??? ?{ ?? ??? ??? ??? ?strcpy(p->password,newpassword); ? ? ? ? //將舊密碼改為新密碼? ?? ??? ??? ??? ?break; ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? //跳出循環(huán)? ?? ??? ??? ?} ?? ??? ??? ?else ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? //如果舊密碼輸入錯誤? ?? ??? ??? ?{ ?? ??? ??? ??? ?system("cls"); ?? ??? ??? ??? ?toxy(46,8); ?? ??? ??? ??? ?printf("--------------------------"); ?? ??? ??? ??? ?toxy(46,9); ?? ??? ??? ??? ?printf("| ? ? ? ? ? ? ? ? ? ? ? ?|"); ?? ??? ??? ??? ?toxy(46,10); ?? ??? ??? ??? ?printf("| ?密碼錯誤!是否繼續(xù)? ?|"); ?? ??? ??? ??? ?toxy(46,11); ?? ??? ??? ??? ?printf("| ? ? ? ? ? ? ? ? ? ? ? ?|"); ?? ??? ??? ??? ?toxy(46,12); ?? ??? ??? ??? ?printf("| ?1.是 ? ? ? ? ? 2.否 ? |"); ?? ??? ??? ??? ?toxy(46,13); ?? ??? ??? ??? ?printf("| ? ? ? ? ? ? ? ? ? ? ? ?|"); ?? ??? ??? ??? ?toxy(46,14); ?? ??? ??? ??? ?printf("--------------------------"); ?? ??? ??? ??? ?while(1) ?? ??? ??? ??? ?{ ?? ??? ??? ??? ??? ?t=getch(); ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?//輸入t? ?? ??? ??? ??? ??? ?if(t=='1') ?? ??? ??? ??? ??? ?{ ?? ??? ??? ??? ??? ??? ?system("cls"); ?? ??? ??? ??? ??? ??? ?break; ?? ??? ??? ??? ??? ?} ?? ??? ??? ??? ??? ?else if(t=='2') ?? ??? ??? ??? ??? ? ?menu(); ?? ??? ??? ??? ?} ?? ??? ??? ?} ?? ??? ?} ?? ?}while(1); ? ? ?? ?? ?save_password(p); ? ? ? ? ? ? ? ? ? ? ? ? //永遠(yuǎn)為真? ?? ?system("cls"); ?? ?toxy(45,10); ?? ?printf("修改成功!即將返回主菜單....");? ?? ?Sleep(500); ?? ?menu(); }? ? void save_password(passw p) ? //將p所指向的內(nèi)容保存到文件中? { ?? ?FILE *fp; ?? ?fp=fopen("password","w"); ? //以只寫的方式打開名為password的文件? ?? ?if(fp==NULL) ?? ?{ ?? ??? ?printf("cannot open file");? ?? ?} ?? ?if(fwrite(p,M,1,fp)!=1) ? //將p所指向的一段大小為M的內(nèi)容寫入fp所指向的文件中? ?? ?{ ?? ??? ?printf("write error!");? ?? ?} ?? ?fclose(fp); ? //關(guān)閉文件? } ? Stup ss() ? ? //將文件中的內(nèi)容讀出到鏈表中? { ?? ?FILE *fp; ? ?//文件指針? ?? ?Stup head=NULL,p,p1,pr=NULL; ?? ?int n=0; ?? ?fp=fopen("student","ab+"); ?? ?if(fp==NULL) ?? ?{ ?? ??? ?printf("cannot open file"); ?? ?} ?? ?while(!feof(fp))// feof函數(shù)可以檢查文件讀寫位置標(biāo)志是否移動到文件末尾,feof(fp)檢查fp所指向的文件是否結(jié)束,如果是 ?? ?{ ? ? ? ? ? ? ? ?//則函數(shù)值為真,否則為假,即“!feof(fp)”為真,在while循環(huán)中檢查 “!feof(fp)”為真,就執(zhí)行循環(huán)體 ?? ??? ?n++; ?? ??? ?p=(Stup)malloc(N); //向內(nèi)存申請一段空間 ?? ??? ?fread(p,N,1,fp); //從fp所指向的文件讀入1個(gè)大小為M的數(shù)據(jù),存儲到p所指向的空間中? ?? ??? ?if(n==1) ?? ??? ?{ ?? ??? ??? ?head=p; ?? ??? ??? ?p1=p; ?? ??? ?} ?? ??? ?else ?? ??? ?{ ?? ??? ??? ?pr=p1; ?? ??? ??? ?p1->next=p; ?? ??? ??? ?p1=p; ?? ??? ?} ?? ?} ?? ?if(pr!=NULL) ?? ? ? pr->next=NULL; ?? ?else if(pr==NULL) ?? ??? ?head=NULL; ?? ?fclose(fp); ?? ?return head; } ? void input_information()//錄入信息? { ?? ?system("cls"); ?? ?color(15); ?? ?int i=0,n; ?? ?Stup p; ?? ?toxy(45,6); ?? ?printf("-----學(xué)生檔案管理系統(tǒng)-----"); ?? ?toxy(50,7); ?? ?printf("信息錄入"); ?? ?toxy(45,8); ?? ?printf("你需要錄入多少個(gè)學(xué)生的信息?請輸入:"); ?? ?scanf("%d",&n);getchar();?? ? ?? ?while(i!=n) ?? ?{ ?? ??? ?system("cls"); ?? ??? ?i++; ?? ??? ?p=(Stup)malloc(N); ?? ??? ?toxy(45,6); ?? ? ? ?printf("-----學(xué)生檔案管理系統(tǒng)-----"); ?? ? ? ?toxy(50,7); ?? ? ? ?printf("信息錄入"); ?? ? ? ?toxy(45,8); ?? ? ? ?printf("請輸入學(xué)生學(xué)號:"); ?? ? ? ?gets(p->number); ?? ? ? ?toxy(45,9); ?? ? ? ?printf("請輸入學(xué)生姓名:"); ?? ??? ?gets(p->name); ?? ??? ?toxy(45,10); ?? ??? ?printf("請輸入學(xué)生性別(男或女):"); ?? ??? ?gets(p->sex); ?? ??? ?toxy(45,11); ?? ??? ?printf("請輸入學(xué)生出生日期(年月日,以空格隔開):"); ?? ??? ?scanf("%d%d%d",&p->birtnday.year,&p->birtnday.month,&p->birtnday.day);getchar(); ?? ??? ?toxy(45,12); ?? ??? ?printf("請輸入c語言成績:"); ?? ??? ?scanf("%f",&p->score.c_language);getchar(); ?? ??? ?toxy(45,13); ?? ??? ?printf("請輸入高數(shù)成績:"); ?? ??? ?scanf("%f",&p->score.math);getchar(); ?? ??? ?toxy(45,14); ?? ??? ?printf("請輸入俄語成績:"); ?? ??? ?scanf("%f",&p->score.Russian);getchar(); ?? ??? ?toxy(45,15); ?? ??? ?printf("請輸入俄語聽力成績:"); ?? ??? ?scanf("%f",&p->score.Russian_hearing);getchar(); ?? ??? ?toxy(45,16); ?? ??? ?printf("請輸入專業(yè)導(dǎo)論成績:"); ?? ??? ?scanf("%f",&p->score.professional);getchar(); ?? ??? ?toxy(45,17); ?? ??? ?printf("請輸入政治成績:"); ?? ??? ?scanf("%f",&p->score.politics);getchar(); ?? ??? ?toxy(45,18); ?? ??? ?printf("請輸入備注:"); ?? ??? ?gets(p->remark); ?? ??? ?save_information(p); ?? ?} ?? ?toxy(48,19); ?? ?printf("錄入完畢!按任意鍵返回主菜單!"); ?? ?getch(); } ? void amend_information() ?//修改信息? { ?? ?system("cls"); ? ? ? ? //清屏? ?? ?color(11); ?? ?Stup p,head; ?? ?FILE *fp; ?? ?int i=15,j=0,c;? ?? ?char number[10]; ? //學(xué)號 ?? ?char name[10],_name[10]; ? //姓名 ?? ?char sex[2]; ?//性別 ?? ?int year; ? //年 ?? ?int month; ?//月 ?? ?int day; ? ?//日 ?? ?float c_language; ?//c語言 ?? ?float math; ?//高數(shù) ?? ?float Russian;//俄語 ?? ?float Russian_hearing; //俄語聽力 ?? ?float professional; ?//專業(yè)導(dǎo)論 ?? ?float politics; ?//政治? ?? ?char remark[100]; ?//備注 ?? ?char ch,t; ?? ?head=ss(); ?? ?p=head; ?? ?do ?? ?{ ?? ??? ?system("cls"); ?? ??? ?toxy(45,6); ?? ??? ?printf("-----學(xué)生檔案管理系統(tǒng)-----"); ?? ??? ?toxy(45,7); ?? ??? ?printf("修改信息"); ?? ??? ?toxy(40,9); ?? ??? ?printf("請輸入您要修改的信息:"); ?? ??? ?gets(_name); ?? ??? ?toxy(20,8); ?? ??? ?printf("----------------------------------------------------------------------------------------------"); ?? ??? ?toxy(20,9); ?? ??? ?printf("學(xué)號 ? 姓名 ? 性別 ? 出生--日期 ? ? c語言 ? 高 數(shù) ? 俄 語 ? 俄語聽力 ? 專業(yè)導(dǎo)論 ? 政 治 ? 備注"); ?? ??? ?toxy(20,10); ?? ??? ?printf("----------------------------------------------------------------------------------------------"); ?? ??? ?i=11;j=0; ?? ??? ?while(p!=NULL) ? //將每個(gè)結(jié)點(diǎn)的p->num都賦為0,以免后面數(shù)據(jù)干擾? ?? ??? ?{ ?? ??? ??? ?p->num=0; ?? ??? ??? ?p=p->next; ?? ??? ?} ?? ??? ?p=head; ? ? ?//重新讓p指向head? ?? ??? ?while(p!=NULL) ?? ??? ?{ ?? ??? ??? ?if(strcmp(p->name,_name)==0) ?? ??? ??? ?{ ?? ??? ??? ??? ?toxy(18,i); ?? ??? ??? ??? ?j++; ?? ??? ??? ??? ?if(p->birtnday.month<10&&p->birtnday.day<10)? ?? ??? ??? ??? ??? ?printf("%d.%s ? ?%s ? ?%s ? ? %d.0%d.0%d ? ? %.2f ? %.2f ? %.2f ? ? %.2f ? ? %.2f ? ? %.2f ? ?%s\n",j,p->number,p->name,p->sex,p->birtnday.year,p->birtnday.month,p->birtnday.day,p->score.c_language,p->score.math,p->score.Russian,p->score.Russian_hearing,p->score.professional,p->score.politics,p->remark); ?? ??? ??? ??? ?else if(p->birtnday.month<10&&p->birtnday.day>=10) ?? ??? ??? ??? ??? ?printf("%d.%s ? ?%s ? ?%s ? ? %d.0%d.%d ? ? %.2f ? %.2f ? %.2f ? ? %.2f ? ? %.2f ? ? %.2f ? ?%s\n",j,p->number,p->name,p->sex,p->birtnday.year,p->birtnday.month,p->birtnday.day,p->score.c_language,p->score.math,p->score.Russian,p->score.Russian_hearing,p->score.professional,p->score.politics,p->remark); ?? ??? ??? ??? ?else if(p->birtnday.month>=10&&p->birtnday.day<10) ?? ??? ??? ??? ??? ?printf("%d.%s ? ?%s ? ?%s ? ? %d.%d.0%d ? ? %.2f ? %.2f ? %.2f ? ? %.2f ? ? %.2f ? ? %.2f ? ?%s\n",j,p->number,p->name,p->sex,p->birtnday.year,p->birtnday.month,p->birtnday.day,p->score.c_language,p->score.math,p->score.Russian,p->score.Russian_hearing,p->score.professional,p->score.politics,p->remark); ?? ??? ??? ??? ?else ?? ??? ??? ??? ??? ?printf("%d.%s ? ?%s ? ?%s ? ? %d.%d.%d ? ? %.2f ? %.2f ? %.2f ? ? %.2f ? ? %.2f ? ? %.2f ? ?%s\n",j,p->number,p->name,p->sex,p->birtnday.year,p->birtnday.month,p->birtnday.day,p->score.c_language,p->score.math,p->score.Russian,p->score.Russian_hearing,p->score.professional,p->score.politics,p->remark); ?? ??? ??? ??? ?i++; ?? ??? ??? ? ? ?p->num=j; ? ? ?//給p->num賦值,即給滿足搜索要求的結(jié)點(diǎn)編號? ?? ??? ??? ?} ?? ??? ??? ?p=p->next; ?? ??? ?} ?? ??? ?if(j==0) ? ? ? ? ? ? ? ? ? //如果j=0,即沒有進(jìn)入前面的搜索循環(huán),也就是沒有找到相應(yīng)的信息? ?? ??? ?{? ?? ??? ??? ?toxy(50,i); ?? ??? ??? ?printf("沒有找到相應(yīng)的信息!(按0返回,按1重新搜索)"); ?? ??? ??? ?while(1) ? ? ? ? ? ? ? //死循環(huán)是為了防止除0和1的其他按鍵干擾? ?? ??? ??? ?{ ?? ??? ??? ??? ?ch=getch(); ? ?? ?? ??? ??? ??? ?if(ch=='0') ?? ??? ??? ??? ?{ ?? ??? ??? ??? ??? ?menu();break; ?? ??? ??? ??? ?} ?? ??? ??? ??? ?else if(ch=='1') ?? ??? ??? ??? ?{ ?? ??? ??? ??? ??? ?break; ?? ??? ??? ??? ?} ?? ??? ??? ?} ?? ??? ??? ?if(ch=='1') ? ? //如果輸入的ch等于1,則結(jié)束本次循環(huán)? ?? ??? ??? ? ? continue; ?? ??? ?} ?? ??? ?while(1) ?? ??? ?{ ?? ??? ??? ?toxy(50,i); ?? ??? ??? ?printf("請輸入您要修改的信息的標(biāo)號:"); ?? ??? ??? ?scanf("%d",&c); ?? ??? ??? ?getchar(); ?? ??? ??? ?i++; ? ?? ??? ??? ?if(c<=j) ? ? ? ? ? ? ?//如果c<=j,即輸入正確? ?? ??? ??? ? ? ?break; ?? ??? ??? ?else if(c>j) ? ? ? ? //否則,輸入錯誤? ?? ??? ??? ?{ ?? ??? ??? ??? ?toxy(50,i); ?? ??? ??? ??? ?printf("沒有找到您所要修改的信息,請重新輸入!"); ?? ??? ??? ??? ?i++; ?? ??? ??? ??? ?Sleep(500); ? ? ?//暫停0.5秒? ?? ??? ??? ?} ?? ??? ?} ?? ??? ?p=head; ? ? ?//讓p重新指向head,即第一個(gè)結(jié)點(diǎn)? ?? ??? ?while(p!=NULL&&p->num!=c) ? ?//遍歷鏈表,尋找滿足要求的結(jié)點(diǎn)? ?? ??? ?{ ?? ??? ??? ?p=p->next; ?? ??? ?} ?? ??? ?if(p!=NULL) ? ? ?//如果尋找成功,進(jìn)入修改部分? ?? ??? ?{ ?? ??? ??? ?system("cls"); ? ?//清屏? ?? ??? ??? ?toxy(45,8); ?? ??? ? ? ?printf("請輸入學(xué)生學(xué)號:"); ?? ??? ? ? ?gets(number); ?? ??? ? ? ?strcpy(p->number,number); ?? ??? ? ? ?toxy(45,9); ?? ??? ? ? ?printf("請輸入學(xué)生姓名:"); ?? ??? ??? ?gets(name); ?? ??? ??? ?strcpy(p->name,name); ?? ??? ??? ?toxy(45,10); ?? ??? ??? ?printf("請輸入學(xué)生性別(男或女):"); ?? ??? ??? ?gets(sex); ?? ??? ??? ?strcpy(p->sex,sex); ?? ??? ??? ?toxy(45,11); ?? ??? ??? ?printf("請輸入學(xué)生出生日期(年月日,以空格隔開):"); ?? ??? ??? ?scanf("%d%d%d",&year,&month,&day);getchar(); ?? ??? ??? ?p->birtnday.year=year; ?? ??? ??? ?p->birtnday.month=month; ?? ??? ??? ?p->birtnday.day=day; ?? ??? ??? ?toxy(45,12); ?? ??? ??? ?printf("請輸入c語言成績:"); ?? ??? ??? ?scanf("%f",&c_language);getchar(); ?? ??? ??? ?p->score.c_language=c_language; ?? ??? ??? ?toxy(45,13); ?? ??? ??? ?printf("請輸入高數(shù)成績:"); ?? ??? ??? ?scanf("%f",&math);getchar(); ?? ??? ??? ?p->score.math=math; ?? ??? ??? ?toxy(45,14); ?? ??? ??? ?printf("請輸入俄語成績:"); ?? ??? ??? ?scanf("%f",&Russian);getchar(); ?? ??? ??? ?p->score.Russian=Russian; ?? ??? ??? ?toxy(45,15); ?? ??? ??? ?printf("請輸入俄語聽力成績:"); ?? ??? ??? ?scanf("%f",&Russian_hearing);getchar(); ?? ??? ??? ?p->score.Russian_hearing=Russian_hearing; ?? ??? ??? ?toxy(45,16); ?? ??? ??? ?printf("請輸入專業(yè)導(dǎo)論成績:"); ?? ??? ??? ?scanf("%f",&professional);getchar(); ?? ??? ??? ?p->score.professional=professional; ?? ??? ??? ?toxy(45,17); ?? ??? ??? ?printf("請輸入政治成績:"); ?? ??? ??? ?scanf("%f",&politics);getchar(); ?? ??? ??? ?p->score.politics=politics; ?? ??? ??? ?toxy(45,18); ?? ??? ??? ?printf("請輸入備注:"); ?? ??? ??? ?gets(remark); ?? ??? ??? ?strcpy(p->remark,remark); ?? ??? ??? ?toxy(46,16); ?? ??? ??? ?printf("-------------------------"); ?? ??? ??? ?toxy(46,17); ?? ??? ??? ?printf("| ? ? ? ? ? ? ? ? ? ? ? |"); ?? ??? ??? ?toxy(46,18); ?? ??? ??? ?printf("| ? ? 是否確認(rèn)修改? ? ?|"); ?? ??? ??? ?toxy(46,19); ?? ??? ??? ?printf("| 1.確認(rèn) ? ? ? ? 2.取消 |"); ?? ??? ??? ?toxy(46,20); ?? ??? ??? ?printf("| ? ? ? ? ? ? ? ? ? ? ? |"); ?? ??? ??? ?toxy(46,21); ?? ??? ??? ?printf("-------------------------"); ?? ??? ??? ?while(1) ? ?//死循環(huán)為防止其他按鍵干擾? ?? ??? ??? ?{ ?? ??? ??? ??? ?t=getch(); ?? ??? ??? ??? ?if(t=='1') ?? ??? ??? ??? ? ? break; ?? ??? ??? ??? ?else if(t=='2') ?? ??? ??? ??? ?{ ?? ??? ??? ??? ??? ?menu(); ?? ??? ??? ??? ?} ?? ??? ??? ? }? ?? ??? ??? ? if(t=='1') ?//如果t等于1,則跳出循環(huán)? ?? ??? ??? ? { ?? ??? ??? ? ?? ?break;? ?? ??? ??? ? } ?? ??? ?} ?? ?}while(1); ?? ?p=head; ? ? //p重新指向頭節(jié)點(diǎn)? ?? ?system("cls"); ?? ?toxy(44,12); ?? ?printf("正在修改...."); ?? ?fp=fopen("student","wb"); ? //打開文件的同時(shí)清除文件內(nèi)的內(nèi)容? ?? ?if(fp==NULL) ?? ?{ ?? ??? ?printf("cannot open file"); ?? ?} ?? ?while(p!=NULL) ?? ?{ ?? ??? ?if(fwrite(p,N,1,fp)!=1) ? ?//將p所指向的內(nèi)容存入fp所指向的文件中? ?? ??? ?{ ?? ??? ??? ?printf("file write error\n"); ?? ??? ?} ?? ??? ?p=p->next; ?? ?} ?? ?fclose(fp); ? ? //關(guān)閉文件? ?? ?Sleep(500); ?? ?system("cls"); ?? ?toxy(44,12); ?? ?printf("修改成功!正在自動跳轉(zhuǎn)到主菜單...."); ?? ?Sleep(500); ?? ?menu(); } ? void delete_information() ?//刪除信息? { ?? ?do ?? ?{ ?? ??? ?system("cls"); ?? ??? ?color(12); ?? ??? ?char t; ?? ??? ?toxy(45,6); ?? ??? ?printf("-----學(xué)生檔案管理系統(tǒng)-----"); ?? ??? ?toxy(48,7); ?? ??? ?printf("信息刪除"); ?? ??? ?toxy(45,9); ?? ??? ?printf("1) ?按學(xué)號查詢刪除"); ?? ??? ?toxy(45,11); ?? ??? ?printf("2) ?按姓名查詢刪除"); ?? ??? ?toxy(48,13); ?? ??? ?printf("按0返回主菜單"); ?? ??? ?t=getch(); ?? ??? ?switch(t) ?? ??? ?{ ?? ??? ??? ?case '0':menu();break; ?? ??? ??? ?case '1':delete_number();break; ?? ??? ??? ?case '2':delete_name();break; ?? ??? ??? ?default :break; ?? ??? ?} ?? ?}while(1); } ? void delete_number() ?//按學(xué)號查詢刪除? { ?? ?do ?? ?{ ?? ??? ?system("cls"); ?? ??? ?color(10); ?? ??? ?char number[10]; ?? ??? ?char t,c; ?? ??? ?int i=11,j=0; ?? ??? ?Stup head,p,pre=NULL ; ?? ??? ?FILE *fp; ?? ??? ?toxy(48,9); ?? ??? ?printf("請輸入你要刪除的學(xué)生的學(xué)號:"); ?? ??? ?gets(number); ?? ??? ?head=ss(); ?? ??? ?p=head; ?? ??? ?toxy(45,6); ?? ??? ?printf("-----學(xué)生檔案管理系統(tǒng)-----");? ?? ??? ?toxy(20,8); ?? ??? ?printf("----------------------------------------------------------------------------------------------"); ?? ??? ?toxy(20,9); ?? ??? ?printf("學(xué)號 ? 姓名 ? 性別 ? 出生--日期 ? ? c語言 ? 高 數(shù) ? 俄 語 ? 俄語聽力 ? 專業(yè)導(dǎo)論 ? 政 治 ? 備注"); ?? ??? ?toxy(20,10); ?? ??? ?printf("----------------------------------------------------------------------------------------------"); ?? ??? ?while(p!=NULL&&strcmp(p->number,number)!=0) ?? ??? ?{ ?? ??? ??? ?pre=p; ?? ??? ??? ?p=p->next; ?? ??? ?} ?? ??? ?if(p!=NULL) ?? ??? ?{ ?? ??? ??? ?toxy(20,i); ?? ??? ??? ?if(p->birtnday.month<10&&p->birtnday.day<10)? ?? ??? ??? ??? ?printf("%s ? ?%s ? ?%s ? ? %d.0%d.0%d ? ? %.2f ? %.2f ? %.2f ? ? %.2f ? ? %.2f ? ? %.2f ? ?%s\n",p->number,p->name,p->sex,p->birtnday.year,p->birtnday.month,p->birtnday.day,p->score.c_language,p->score.math,p->score.Russian,p->score.Russian_hearing,p->score.professional,p->score.politics,p->remark); ?? ??? ??? ?else if(p->birtnday.month<10&&p->birtnday.day>=10) ?? ??? ??? ??? ?printf("%s ? ?%s ? ?%s ? ? %d.0%d.%d ? ? %.2f ? %.2f ? %.2f ? ? %.2f ? ? %.2f ? ? %.2f ? ?%s\n",p->number,p->name,p->sex,p->birtnday.year,p->birtnday.month,p->birtnday.day,p->score.c_language,p->score.math,p->score.Russian,p->score.Russian_hearing,p->score.professional,p->score.politics,p->remark); ?? ??? ??? ?else if(p->birtnday.month>=10&&p->birtnday.day<10) ?? ??? ??? ??? ?printf("%s ? ?%s ? ?%s ? ? %d.%d.0%d ? ? %.2f ? %.2f ? %.2f ? ? %.2f ? ? %.2f ? ? %.2f ? ?%s\n",p->number,p->name,p->sex,p->birtnday.year,p->birtnday.month,p->birtnday.day,p->score.c_language,p->score.math,p->score.Russian,p->score.Russian_hearing,p->score.professional,p->score.politics,p->remark); ?? ??? ??? ?else ?? ??? ??? ??? ?printf("%s ? ?%s ? ?%s ? ? %d.%d.%d ? ? %.2f ? %.2f ? %.2f ? ? %.2f ? ? %.2f ? ? %.2f ? ?%s\n",p->number,p->name,p->sex,p->birtnday.year,p->birtnday.month,p->birtnday.day,p->score.c_language,p->score.math,p->score.Russian,p->score.Russian_hearing,p->score.professional,p->score.politics,p->remark); ?? ??? ??? ?toxy(45,i+1); ?? ??? ??? ?printf("1.刪除 ? ? ? ?2.取消"); ?? ??? ??? ?while(1) ?? ??? ??? ?{ ?? ??? ??? ??? ?c=getch(); ?? ??? ??? ??? ?if(c=='1') ?? ??? ??? ??? ??? ?break; ?? ??? ??? ??? ?else if(c=='2') ?? ??? ??? ??? ??? ?delete_number(); ?? ??? ??? ?} ?? ??? ??? ?if(pre==NULL) ?? ??? ??? ??? ?head=head->next; ?? ??? ??? ?else ?? ??? ??? ??? ?pre->next=p->next; ?? ??? ??? ?system("cls");? ?? ??? ??? ?toxy(45,10); ?? ??? ??? ?printf("正在刪除...."); ?? ??? ??? ?p=head->next; ?? ??? ??? ?fp=fopen("student","wb"); ?? ??? ??? ?if(fp==NULL) ?? ??? ??? ?{ ?? ??? ??? ??? ?printf("cannot open file");? ?? ??? ??? ?} ?? ??? ??? ?if(fwrite(head,N,1,fp)!=1) ?? ??? ??? ?{ ?? ??? ??? ??? ?printf("write error"); ?? ??? ??? ?}? ?? ??? ??? ?fclose(fp); ?? ??? ??? ?fp=fopen("student","ab"); ?? ??? ??? ?if(fp==NULL) ?? ??? ??? ?{ ?? ??? ??? ??? ?printf("cannot open file");? ?? ??? ??? ?} ?? ??? ??? ?while(p!=NULL) ?? ??? ??? ?{ ?? ??? ??? ??? ?if(fwrite(p,N,1,fp)!=1) ?? ??? ??? ??? ?{ ?? ??? ??? ??? ??? ?printf("write error"); ?? ??? ??? ??? ?}? ?? ??? ??? ??? ?p=p->next; ?? ??? ??? ?} ?? ??? ??? ?fclose(fp); ?? ??? ??? ?Sleep(500); ?? ??? ??? ?system("cls"); ?? ??? ??? ?toxy(45,10); ?? ??? ??? ?printf("刪除成功!正在返回...."); ?? ??? ??? ?Sleep(500); ?? ??? ??? ?delete_information();? ?? ??? ?} ?? ? ? ?else if(p==NULL) ?? ? ? ?{ ?? ? ? ??? ?toxy(48,i); ?? ? ? ??? ?printf("您輸入的信息不存在!按0返回主菜單,1返回上一級菜單,2重新查找"); ?? ? ? ??? ?while(1) ?? ? ? ??? ?{ ?? ? ? ??? ??? ?t=getch(); ?? ? ? ??? ??? ?if(t=='0') ?? ? ? ??? ??? ?{ ?? ? ? ??? ??? ??? ?menu(); ?? ??? ??? ??? ?} ?? ??? ??? ??? ?else if(t=='1') ?? ??? ??? ??? ?{ ?? ??? ??? ??? ??? ?delete_information(); ?? ??? ??? ??? ?} ?? ??? ??? ??? ?else if(t=='2') ?? ??? ??? ??? ?{ ?? ??? ??? ??? ??? ?break; ?? ??? ??? ??? ?} ?? ??? ??? ?} ?? ??? ?} ?? ??? ?free(p); ?? ?}while(1); } ? void delete_name() ? //按姓名查詢刪除? { ?? ?do ?? ?{ ?? ??? ?system("cls"); ?? ??? ?color(10); ?? ??? ?char name[10]; ?? ??? ?char t,c; ?? ??? ?int i=11,j=0,key; ?? ??? ?Stup head,p,pre; ?? ??? ?FILE *fp; ?? ??? ?toxy(48,9); ?? ??? ?printf("請輸入你要刪除的學(xué)生的姓名:"); ?? ??? ?gets(name); ?? ??? ?head=ss(); ?? ??? ?p=head; ?? ??? ?while(p!=NULL) ?? ??? ?{ ?? ??? ??? ?p->num=0; ?? ??? ??? ?p=p->next; ?? ??? ?} ?? ??? ?p=head; ?? ??? ?toxy(45,6); ?? ??? ?printf("-----學(xué)生檔案管理系統(tǒng)-----");? ?? ??? ?toxy(20,8); ?? ??? ?printf("----------------------------------------------------------------------------------------------"); ?? ??? ?toxy(20,9); ?? ??? ?printf("學(xué)號 ? 姓名 ? 性別 ? 出生--日期 ? ? c語言 ? 高 數(shù) ? 俄 語 ? 俄語聽力 ? 專業(yè)導(dǎo)論 ? 政 治 ? 備注"); ?? ??? ?toxy(20,10); ?? ??? ?printf("----------------------------------------------------------------------------------------------"); ?? ??? ?while(p!=NULL) ?? ??? ?{ ?? ??? ??? ?if(strcmp(p->name,name)==0) ?? ??? ??? ?{ ?? ??? ??? ??? ?toxy(18,i); ?? ??? ??? ??? ?j++; ?? ??? ??? ??? ?if(p->birtnday.month<10&&p->birtnday.day<10)? ?? ??? ??? ??? ??? ?printf("%d.%s ? ?%s ? ?%s ? ? %d.0%d.0%d ? ? %.2f ? %.2f ? %.2f ? ? %.2f ? ? %.2f ? ? %.2f ? ?%s\n",j,p->number,p->name,p->sex,p->birtnday.year,p->birtnday.month,p->birtnday.day,p->score.c_language,p->score.math,p->score.Russian,p->score.Russian_hearing,p->score.professional,p->score.politics,p->remark); ?? ??? ??? ??? ?else if(p->birtnday.month<10&&p->birtnday.day>=10) ?? ??? ??? ??? ??? ?printf("%d.%s ? ?%s ? ?%s ? ? %d.0%d.%d ? ? %.2f ? %.2f ? %.2f ? ? %.2f ? ? %.2f ? ? %.2f ? ?%s\n",j,p->number,p->name,p->sex,p->birtnday.year,p->birtnday.month,p->birtnday.day,p->score.c_language,p->score.math,p->score.Russian,p->score.Russian_hearing,p->score.professional,p->score.politics,p->remark); ?? ??? ??? ??? ?else if(p->birtnday.month>=10&&p->birtnday.day<10) ?? ??? ??? ??? ??? ?printf("%d.%s ? ?%s ? ?%s ? ? %d.%d.0%d ? ? %.2f ? %.2f ? %.2f ? ? %.2f ? ? %.2f ? ? %.2f ? ?%s\n",j,p->number,p->name,p->sex,p->birtnday.year,p->birtnday.month,p->birtnday.day,p->score.c_language,p->score.math,p->score.Russian,p->score.Russian_hearing,p->score.professional,p->score.politics,p->remark); ?? ??? ??? ??? ?else ?? ??? ??? ??? ??? ?printf("%d.%s ? ?%s ? ?%s ? ? %d.%d.%d ? ? %.2f ? %.2f ? %.2f ? ? %.2f ? ? %.2f ? ? %.2f ? ?%s\n",j,p->number,p->name,p->sex,p->birtnday.year,p->birtnday.month,p->birtnday.day,p->score.c_language,p->score.math,p->score.Russian,p->score.Russian_hearing,p->score.professional,p->score.politics,p->remark); ?? ??? ??? ??? ?i++; ?? ??? ??? ??? ?p->num=j; ?? ??? ??? ?} ?? ??? ??? ?p=p->next; ?? ??? ?} ?? ??? ?if(j==0) ?? ? ? ?{ ?? ? ? ??? ?toxy(48,i); ?? ? ? ??? ?printf("您輸入的信息不存在!按0返回主菜單,1返回上一級菜單,2重新查找"); ?? ? ? ??? ?while(1) ?? ? ? ??? ?{ ?? ? ? ??? ??? ?t=getch(); ?? ? ? ??? ??? ?if(t=='0') ?? ? ? ??? ??? ?{ ?? ? ? ??? ??? ??? ?menu(); ?? ??? ??? ??? ?} ?? ??? ??? ??? ?else if(t=='1') ?? ??? ??? ??? ?{ ?? ??? ??? ??? ??? ?delete_information(); ?? ??? ??? ??? ?} ?? ??? ??? ??? ?else if(t=='2') ?? ??? ??? ??? ?{ ?? ??? ??? ??? ??? ?break; ?? ??? ??? ??? ?} ?? ??? ??? ?} ?? ??? ??? ?if(t=='2') ?? ??? ??? ??? ?continue; ?? ??? ?} ?? ??? ?while(1) ?? ??? ?{ ?? ??? ??? ?toxy(50,i); ?? ??? ??? ?printf("請輸入您要刪除的信息的標(biāo)號:"); ?? ??? ??? ?scanf("%d",&key); ?? ??? ??? ?getchar(); ?? ??? ??? ?i++; ?? ??? ??? ?if(key<=j) ? ? ? ? ? ? ?//如果c<=j,即輸入正確? ?? ??? ??? ? ? ?break; ?? ??? ??? ?else if(key>j) ? ? ? ? //否則,輸入錯誤? ?? ??? ??? ?{ ?? ??? ??? ??? ?toxy(50,i); ?? ??? ??? ??? ?printf("沒有找到您所要刪除的信息,請重新輸入!"); ?? ??? ??? ??? ?i++; ?? ??? ??? ??? ?Sleep(500); ? ? ?//暫停0.5秒? ?? ??? ??? ?} ?? ??? ?} ?? ??? ?toxy(46,16); ?? ??? ?printf("-------------------------"); ?? ??? ?toxy(46,17); ?? ??? ?printf("| ? ? ? ? ? ? ? ? ? ? ? |"); ?? ??? ?toxy(46,18); ?? ??? ?printf("| ? ? ? 確認(rèn)刪除? ? ? ?|"); ?? ??? ?toxy(46,19); ?? ??? ?printf("| 1.確認(rèn) ? ? ? ? 2.取消 |"); ?? ??? ?toxy(46,20); ?? ??? ?printf("| ? ? ? ? ? ? ? ? ? ? ? |"); ?? ??? ?toxy(46,21); ?? ??? ?printf("-------------------------"); ?? ??? ? ?? ??? ?while(1) ?? ??? ?{ ?? ??? ??? ?p=head; ?? ??? ??? ?pre=NULL; ?? ??? ??? ?c=getch(); ?? ??? ??? ?if(c=='1') ?? ??? ??? ?{ ?? ??? ??? ??? ?while(p!=NULL&&p->num!=key) ?? ??? ??? ??? ?{ ?? ??? ??? ??? ??? ?pre=p; ?? ??? ??? ??? ??? ?p=p->next; ?? ??? ??? ??? ?} ?? ??? ??? ??? ?if(p!=NULL) ?? ??? ??? ??? ?{ ?? ??? ??? ??? ??? ?if(pre==NULL) ?? ??? ??? ??? ??? ??? ?head=head->next; ?? ??? ??? ??? ??? ?else ?? ??? ??? ??? ??? ??? ?pre->next=p->next; ?? ??? ??? ??? ?} ?? ??? ??? ??? ?free(p); ?? ??? ??? ??? ?break; ?? ??? ??? ?} ?? ??? ??? ?else if(c=='2') ?? ??? ??? ??? ?delete_number(); ?? ??? ?} ?? ??? ?system("cls");? ?? ??? ?toxy(45,10); ?? ??? ?printf("正在刪除...."); ?? ??? ?fp=fopen("student","wb"); ?? ??? ?if(fp==NULL) ?? ??? ?{ ?? ??? ??? ?printf("cannot open file");? ?? ??? ?} ?? ??? ?if(head!=NULL&&fwrite(head,N,1,fp)!=1) ?? ??? ?{ ?? ??? ??? ?printf("write error"); ?? ??? ?}? ?? ??? ?fclose(fp); ?? ??? ?if(head!=NULL) ?? ??? ?{ ?? ??? ??? ?p=head->next; ?? ??? ??? ?fp=fopen("student","ab"); ?? ??? ??? ?if(fp==NULL) ?? ??? ??? ?{ ?? ??? ??? ??? ?printf("cannot open file");? ?? ??? ??? ?} ?? ??? ??? ?while(p!=NULL) ?? ??? ??? ?{ ?? ??? ??? ??? ?if(fwrite(p,N,1,fp)!=1) ?? ??? ??? ??? ?{ ?? ??? ??? ??? ??? ?printf("write error"); ?? ??? ??? ??? ?}? ?? ??? ??? ??? ?p=p->next; ?? ??? ??? ?} ?? ??? ??? ?fclose(fp); ?? ??? ?} ?? ??? ?Sleep(500); ?? ??? ?system("cls"); ?? ??? ?toxy(45,10); ?? ??? ?printf("刪除成功!正在返回...."); ?? ??? ?Sleep(500); ?? ??? ?delete_information();? ?? ?}while(1); } ? void print_information() ?//輸出信息? { ?? ?system("cls"); ?? ?color(11); ?? ?Stup head,p; ?? ?int i=11; ?? ?head=ss(); ?? ?p=head; ?? ?toxy(45,6); ?? ?printf("-----學(xué)生檔案管理系統(tǒng)-----");? ?? ?toxy(20,8); ?? ?printf("----------------------------------------------------------------------------------------------"); ?? ?toxy(20,9); ?? ?printf("學(xué)號 ? 姓名 ? 性別 ? 出生--日期 ? ? c語言 ? 高 數(shù) ? 俄 語 ? 俄語聽力 ? 專業(yè)導(dǎo)論 ? 政 治 ? 備注"); ?? ?toxy(20,10); ?? ?printf("----------------------------------------------------------------------------------------------"); ?? ?while(p!=NULL) ?? ?{ ?? ??? ?toxy(20,i); ?? ??? ?if(p->birtnday.month<10&&p->birtnday.day<10)? ?? ??? ??? ?printf("%s ? ?%s ? ?%s ? ? %d.0%d.0%d ? ? %.2f ? %.2f ? %.2f ? ? %.2f ? ? %.2f ? ? %.2f ? ?%s\n",p->number,p->name,p->sex,p->birtnday.year,p->birtnday.month,p->birtnday.day,p->score.c_language,p->score.math,p->score.Russian,p->score.Russian_hearing,p->score.professional,p->score.politics,p->remark); ?? ??? ?else if(p->birtnday.month<10&&p->birtnday.day>=10) ?? ??? ??? ?printf("%s ? ?%s ? ?%s ? ? %d.0%d.%d ? ? %.2f ? %.2f ? %.2f ? ? %.2f ? ? %.2f ? ? %.2f ? ?%s\n",p->number,p->name,p->sex,p->birtnday.year,p->birtnday.month,p->birtnday.day,p->score.c_language,p->score.math,p->score.Russian,p->score.Russian_hearing,p->score.professional,p->score.politics,p->remark); ?? ??? ?else if(p->birtnday.month>=10&&p->birtnday.day<10) ?? ??? ??? ?printf("%s ? ?%s ? ?%s ? ? %d.%d.0%d ? ? %.2f ? %.2f ? %.2f ? ? %.2f ? ? %.2f ? ? %.2f ? ?%s\n",p->number,p->name,p->sex,p->birtnday.year,p->birtnday.month,p->birtnday.day,p->score.c_language,p->score.math,p->score.Russian,p->score.Russian_hearing,p->score.professional,p->score.politics,p->remark); ?? ??? ?else ?? ??? ??? ?printf("%s ? ?%s ? ?%s ? ? %d.%d.%d ? ? %.2f ? %.2f ? %.2f ? ? %.2f ? ? %.2f ? ? %.2f ? ?%s\n",p->number,p->name,p->sex,p->birtnday.year,p->birtnday.month,p->birtnday.day,p->score.c_language,p->score.math,p->score.Russian,p->score.Russian_hearing,p->score.professional,p->score.politics,p->remark); ?? ??? ?i++; ?? ??? ?p=p->next; ?? ?} ?? ?toxy(45,i); ?? ?printf("按任意鍵返回主菜單!"); ?? ?getch(); } ? void find_information() ?//查找信息? {? ?? ?do ?? ?{ ?? ??? ?system("cls"); ?? ??? ?char t; ?? ??? ?color(10); ?? ??? ?toxy(45,6); ?? ??? ?printf("-----學(xué)生檔案管理系統(tǒng)-----"); ?? ??? ?toxy(50,7); ?? ??? ?printf("查找信息"); ?? ??? ?toxy(48,9); ?? ??? ?printf("1) ?學(xué)號查詢"); ?? ??? ?toxy(48,11); ?? ??? ?printf("2) ?姓名查詢"); ?? ??? ?toxy(48,13); ?? ??? ?printf("按0返回主菜單"); ?? ??? ?t=getch(); ?? ??? ?switch(t) ?? ??? ?{ ?? ??? ??? ?case '0':menu();break; ?? ??? ??? ?case '1':find_number_information();break; ?? ??? ??? ?case '2':find_name_information();break; ?? ??? ??? ?default :break; ?? ??? ?} ?? ?}while(1); } ? void find_number_information() ?//按學(xué)號查找? { ?? ?do ?? ?{ ?? ??? ?system("cls"); ?? ??? ?color(10); ?? ??? ?char number[10]; ?? ??? ?char t; ?? ??? ?int i=11,j=0; ?? ??? ?Stup head,p; ?? ??? ?toxy(48,9); ?? ??? ?printf("請輸入你要查找的學(xué)生的學(xué)號:"); ?? ??? ?gets(number); ?? ??? ?head=ss(); ?? ??? ?p=head; ?? ??? ?toxy(45,6); ?? ??? ?printf("-----學(xué)生檔案管理系統(tǒng)-----");? ?? ??? ?toxy(20,8); ?? ??? ?printf("----------------------------------------------------------------------------------------------"); ?? ??? ?toxy(20,9); ?? ??? ?printf("學(xué)號 ? 姓名 ? 性別 ? 出生--日期 ? ? c語言 ? 高 數(shù) ? 俄 語 ? 俄語聽力 ? 專業(yè)導(dǎo)論 ? 政 治 ? 備注"); ?? ??? ?toxy(20,10); ?? ??? ?printf("----------------------------------------------------------------------------------------------"); ?? ??? ?while(p!=NULL) ?? ??? ?{ ?? ??? ??? ?if(strcmp(p->number,number)==0) ?? ??? ??? ?{ ?? ??? ??? ??? ?toxy(20,i); ?? ??? ??? ??? ?if(p->birtnday.month<10&&p->birtnday.day<10)? ?? ??? ??? ??? ??? ?printf("%s ? ?%s ? ?%s ? ? %d.0%d.0%d ? ? %.2f ? %.2f ? %.2f ? ? %.2f ? ? %.2f ? ? %.2f ? ?%s\n",p->number,p->name,p->sex,p->birtnday.year,p->birtnday.month,p->birtnday.day,p->score.c_language,p->score.math,p->score.Russian,p->score.Russian_hearing,p->score.professional,p->score.politics,p->remark); ?? ??? ??? ??? ?else if(p->birtnday.month<10&&p->birtnday.day>=10) ?? ??? ??? ??? ??? ?printf("%s ? ?%s ? ?%s ? ? %d.0%d.%d ? ? %.2f ? %.2f ? %.2f ? ? %.2f ? ? %.2f ? ? %.2f ? ?%s\n",p->number,p->name,p->sex,p->birtnday.year,p->birtnday.month,p->birtnday.day,p->score.c_language,p->score.math,p->score.Russian,p->score.Russian_hearing,p->score.professional,p->score.politics,p->remark); ?? ??? ??? ??? ?else if(p->birtnday.month>=10&&p->birtnday.day<10) ?? ??? ??? ??? ??? ?printf("%s ? ?%s ? ?%s ? ? %d.%d.0%d ? ? %.2f ? %.2f ? %.2f ? ? %.2f ? ? %.2f ? ? %.2f ? ?%s\n",p->number,p->name,p->sex,p->birtnday.year,p->birtnday.month,p->birtnday.day,p->score.c_language,p->score.math,p->score.Russian,p->score.Russian_hearing,p->score.professional,p->score.politics,p->remark); ?? ??? ??? ??? ?else ?? ??? ??? ??? ??? ?printf("%s ? ?%s ? ?%s ? ? %d.%d.%d ? ? %.2f ? %.2f ? %.2f ? ? %.2f ? ? %.2f ? ? %.2f ? ?%s\n",p->number,p->name,p->sex,p->birtnday.year,p->birtnday.month,p->birtnday.day,p->score.c_language,p->score.math,p->score.Russian,p->score.Russian_hearing,p->score.professional,p->score.politics,p->remark); ?? ??? ??? ??? ?i++; ?? ??? ??? ??? ?j++; ?? ??? ? ? } ?? ??? ??? ?p=p->next; ?? ? ? ?} ?? ? ? ?if(j==0) ?? ? ? ?{ ?? ? ? ??? ?toxy(48,i); ?? ? ? ??? ?printf("您輸入的信息不存在!"); ?? ??? ?} ?? ? ? ?toxy(48,i+1); ?? ? ? ?printf("按0繼續(xù)查找,按1返回"); ?? ??? ?while(1) ?? ??? ?{ ?? ??? ??? ?t=getch(); ?? ??? ??? ?if(t=='0') ?? ??? ??? ?{ ?? ??? ??? ??? ?break; ?? ??? ??? ?} ?? ??? ??? ?else if(t=='1') ?? ??? ??? ?{ ?? ??? ??? ??? ?find_information(); ?? ??? ??? ?} ?? ??? ? }? ?? ?}while(1); } ? void find_name_information() ? //按姓名查找? { ?? ?do ?? ?{ ?? ??? ?system("cls"); ?? ??? ?color(10); ?? ??? ?char name[10]; ?? ??? ?char t; ?? ??? ?int i=11,j=0; ?? ??? ?Stup head,p; ?? ??? ?toxy(48,9); ?? ??? ?printf("請輸入你要查找的學(xué)生的姓名:"); ?? ??? ?gets(name); ?? ??? ?head=ss(); ?? ??? ?p=head; ?? ??? ?toxy(45,6); ?? ??? ?printf("-----學(xué)生檔案管理系統(tǒng)-----");? ?? ??? ?toxy(20,8); ?? ??? ?printf("----------------------------------------------------------------------------------------------"); ?? ??? ?toxy(20,9); ?? ??? ?printf("學(xué)號 ? 姓名 ? 性別 ? 出生--日期 ? ? c語言 ? 高 數(shù) ? 俄 語 ? 俄語聽力 ? 專業(yè)導(dǎo)論 ? 政 治 ? 備注"); ?? ??? ?toxy(20,10); ?? ??? ?printf("----------------------------------------------------------------------------------------------"); ?? ??? ?while(p!=NULL) ?? ??? ?{ ?? ??? ??? ?if(strcmp(p->name,name)==0) ?? ??? ??? ?{ ?? ??? ??? ??? ?toxy(20,i); ?? ??? ??? ??? ?if(p->birtnday.month<10&&p->birtnday.day<10)? ?? ??? ??? ??? ??? ?printf("%s ? ?%s ? ?%s ? ? %d.0%d.0%d ? ? %.2f ? %.2f ? %.2f ? ? %.2f ? ? %.2f ? ? %.2f ? ?%s\n",p->number,p->name,p->sex,p->birtnday.year,p->birtnday.month,p->birtnday.day,p->score.c_language,p->score.math,p->score.Russian,p->score.Russian_hearing,p->score.professional,p->score.politics,p->remark); ?? ??? ??? ??? ?else if(p->birtnday.month<10&&p->birtnday.day>=10) ?? ??? ??? ??? ??? ?printf("%s ? ?%s ? ?%s ? ? %d.0%d.%d ? ? %.2f ? %.2f ? %.2f ? ? %.2f ? ? %.2f ? ? %.2f ? ?%s\n",p->number,p->name,p->sex,p->birtnday.year,p->birtnday.month,p->birtnday.day,p->score.c_language,p->score.math,p->score.Russian,p->score.Russian_hearing,p->score.professional,p->score.politics,p->remark); ?? ??? ??? ??? ?else if(p->birtnday.month>=10&&p->birtnday.day<10) ?? ??? ??? ??? ??? ?printf("%s ? ?%s ? ?%s ? ? %d.%d.0%d ? ? %.2f ? %.2f ? %.2f ? ? %.2f ? ? %.2f ? ? %.2f ? ?%s\n",p->number,p->name,p->sex,p->birtnday.year,p->birtnday.month,p->birtnday.day,p->score.c_language,p->score.math,p->score.Russian,p->score.Russian_hearing,p->score.professional,p->score.politics,p->remark); ?? ??? ??? ??? ?else ?? ??? ??? ??? ??? ?printf("%s ? ?%s ? ?%s ? ? %d.%d.%d ? ? %.2f ? %.2f ? %.2f ? ? %.2f ? ? %.2f ? ? %.2f ? ?%s\n",p->number,p->name,p->sex,p->birtnday.year,p->birtnday.month,p->birtnday.day,p->score.c_language,p->score.math,p->score.Russian,p->score.Russian_hearing,p->score.professional,p->score.politics,p->remark); ?? ??? ??? ??? ?i++; ?? ??? ??? ??? ?j++; ?? ??? ? ? } ?? ??? ??? ?p=p->next; ?? ? ? ?} ?? ? ? ?if(j==0) ?? ? ? ?{ ?? ? ? ??? ?toxy(48,i); ?? ? ? ??? ?printf("您輸入的信息不存在!"); ?? ??? ?} ?? ? ? ?toxy(48,i+1); ?? ? ? ?printf("按0繼續(xù)查找,按1返回"); ?? ??? ?while(1) ?? ??? ?{ ?? ??? ??? ?t=getch(); ?? ??? ??? ?if(t=='0') ?? ??? ??? ?{ ?? ??? ??? ??? ?break; ?? ??? ??? ?} ?? ??? ??? ?else if(t=='1') ?? ??? ??? ?{ ?? ??? ??? ??? ?find_information(); ?? ??? ??? ?} ?? ??? ? }? ?? ?}while(1); } ? void assignment() ? //將鏈表的內(nèi)容賦值給一個(gè)結(jié)構(gòu)體數(shù)組? { ?? ?Stup head,p; ?? ?head=ss(); ?? ?p=head; ?? ?int i=0; ?? ?while(p!=NULL) ?? ?{ ?? ??? ?strcpy(total[i].number,p->number); ?? ??? ?strcpy(total[i].name,p->name); ?? ??? ?strcpy(total[i].sex,p->sex); ?? ??? ?total[i].c_language=p->score.c_language; ?? ??? ?total[i].math=p->score.math; ?? ??? ?total[i].Russian=p->score.Russian; ?? ??? ?total[i].Russian_hearing=p->score.Russian_hearing; ?? ??? ?total[i].professional=p->score.professional; ?? ??? ?total[i].politics=p->score.politics; ?? ??? ?total[i].sum=total[i].c_language+total[i].math+total[i].Russian+total[i].Russian_hearing+total[i].professional+total[i].politics; ?? ??? ?i++; ?? ??? ?p=p->next; ?? ?} ?? ?len=i; } ? void statistics_information() ? //數(shù)據(jù)統(tǒng)計(jì)? { ?? ?do ?? ?{ ?? ??? ?system("cls"); ?? ??? ?color(6); ?? ??? ?char t; ?? ??? ?toxy(45,6); ?? ??? ?printf("-----學(xué)生檔案管理系統(tǒng)-----"); ?? ??? ?toxy(50,7); ?? ??? ?printf("數(shù)據(jù)統(tǒng)計(jì)"); ?? ??? ?toxy(48,9); ?? ??? ?printf("1) ?平均分"); ?? ??? ?toxy(48,11); ?? ??? ?printf("2) ?總分排名"); ?? ??? ?toxy(48,13); ?? ??? ?printf("3) ?各學(xué)科不及格人數(shù)"); ?? ??? ?toxy(48,15); ?? ??? ?printf("4) ?各科成績分布分析");? ?? ??? ?toxy(45,17); ?? ??? ?printf("按0返回主菜單"); ?? ??? ?t=getch(); ?? ??? ?switch(t) ?? ??? ?{ ?? ??? ??? ?case '0':menu();break; ?? ??? ??? ?case '1':average_score();break; ?? ??? ??? ?case '2':total_score_ranked();break; ?? ??? ??? ?case '3':fail_numbers();break; ?? ??? ??? ?case '4':grade_table();break; ?? ??? ??? ?default :break; ?? ??? ?} ?? ?}while(1); } ? void average_score() ? //平均分? { ?? ?system("cls"); ?? ?color(10); ?? ?float sum_c=0,sum_math=0,sum_Russian=0,sum_Russian_hearing=0,sum_professional=0,sum_politics=0; ?? ?float average_c,average_math,average_Russian,average_Russian_hearing,average_professional,average_politics; ?? ?int i=0; ?? ?Stup head,p; ?? ?head=ss(); ?? ?p=head; ?? ?while(p!=NULL) ?? ?{ ?? ??? ?sum_c+=p->score.c_language; ?? ??? ?sum_math+=p->score.math; ?? ??? ?sum_Russian+=p->score.Russian; ?? ??? ?sum_Russian_hearing+=p->score.Russian_hearing; ?? ??? ?sum_professional+=p->score.professional; ?? ??? ?sum_politics+=p->score.politics; ?? ??? ?p=p->next; ?? ??? ?i++; ?? ?} ?? ?average_c=sum_c*1.0/i; ?? ?average_math=sum_math*1.0/i; ?? ?average_Russian=sum_Russian*1.0/i; ?? ?average_Russian_hearing=sum_Russian_hearing*1.0/i; ?? ?average_professional=sum_professional*1.0/i; ?? ?average_politics=sum_politics*1.0/i; ?? ?toxy(45,6); ?? ?printf("-----學(xué)生檔案管理系統(tǒng)-----"); ?? ?toxy(48,7); ?? ?printf("各學(xué)科平均分"); ?? ?toxy(30,8); ?? ?printf("----------------------------------------------------"); ?? ?toxy(30,9); ?? ?printf(" ?c語言 ? 高數(shù) ? 俄語 ? 俄語聽力 ? 專業(yè)導(dǎo)論 ? 政治"); ?? ?toxy(30,10); ?? ?printf("----------------------------------------------------"); ?? ?toxy(30,11); ?? ?printf(" ?%.2f ? %.2f ?%.2f ? ?%.2f ? ? %.2f ? ?%.2f",average_c,average_math,average_Russian,average_Russian_hearing,average_professional,average_politics); ?? ?toxy(45,12); ?? ?printf("總?cè)藬?shù)為:%d",i); ?? ?toxy(50,13); ?? ?printf("按任意鍵返回主菜單"); ?? ?getch();? ?? ? } ? void total_score_ranked() ?//總分排名? { ?? ?system("cls"); ?? ?color(10); ?? ?assignment(); ?? ?int j,k=11; ?? ?qsort(total,len,sizeof(Total),cmp); ? //快速排序? ?? ?toxy(45,6); ?? ?printf("-----學(xué)生檔案管理系統(tǒng)-----"); ?? ?toxy(48,7); ?? ?printf("總分排名"); ?? ?toxy(20,8); ?? ?printf("--------------------------------------------------------------------------------------------"); ?? ?toxy(20,9); ?? ?printf("學(xué)號 ? 姓名 ? 性別 ? ? c語言 ? ?高 數(shù) ? ?俄 語 ? 俄語聽力 ? 專業(yè)導(dǎo)論 ? 政 治 ? ? 總分 ? 名次"); ?? ?toxy(20,10); ?? ?printf("--------------------------------------------------------------------------------------------"); ?? ?for(j=0;j<len;j++) ?? ?{ ?? ??? ?toxy(20,k); ?? ??? ?printf("%s ? ? %s ? ?%s ? ? ?%.2f ? ?%.2f ? ?%.2f ? ?%.2f ? ? ?%.2f ? ? %.2f ? ?%.2f ? ?%d\n",total[j].number,total[j].name,total[j].sex,total[j].c_language,total[j].math,total[j].Russian,total[j].Russian_hearing,total[j].professional,total[j].politics,total[j].sum,j+1); ?? ??? ?k++; ?? ?} ?? ?toxy(45,k); ?? ?printf("按任意鍵返回主菜單"); ?? ?getch(); } ? void fail_numbers() ? //各科不及格人數(shù)? { ?? ?system("cls"); ?? ?color(10); ?? ?int fail_c=0,fail_math=0,fail_Russian=0,fail_Russian_hearing=0,fail_professional=0,fail_politics=0;? ?? ?int i; ?? ?assignment(); ?? ?for(i=0;i<len;i++) ?? ?{ ?? ??? ?if(total[i].c_language<60) ?? ??? ??? ?fail_c++; ?? ??? ?if(total[i].math<60) ?? ??? ??? ?fail_math++; ?? ??? ?if(total[i].Russian<60) ?? ??? ??? ?fail_Russian++; ?? ??? ?if(total[i].Russian_hearing<60) ?? ??? ??? ?fail_Russian_hearing++; ?? ??? ?if(total[i].professional<60) ?? ??? ??? ?fail_professional++; ?? ??? ?if(total[i].politics<60) ?? ??? ??? ?fail_politics++; ?? ?} ?? ?toxy(45,6); ?? ?printf("-----學(xué)生檔案管理系統(tǒng)-----"); ?? ?toxy(48,7); ?? ?printf("各科不及格人數(shù)"); ?? ?toxy(30,8); ?? ?printf("-----------------------------------------------------"); ?? ?toxy(30,9); ?? ?printf("c語言 ? ?高 數(shù) ? ?俄 語 ? 俄語聽力 ? 專業(yè)導(dǎo)論 ? 政 治"); ?? ?toxy(30,10); ?? ?printf("-----------------------------------------------------"); ?? ?toxy(30,11); ?? ?printf("%-10d%-10d%-10d%-10d%-10d%-10d",fail_c,fail_math,fail_Russian,fail_Russian_hearing,fail_professional,fail_politics); ?? ?toxy(45,12); ?? ?printf("請按任意鍵返回"); ?? ?getch(); } ? void grade_table() ? ?//各科各分?jǐn)?shù)段人數(shù)信息統(tǒng)計(jì)? { ?? ?do ?? ?{ ?? ??? ?system("cls"); ?? ??? ?color(10); ?? ??? ?char t; ?? ??? ?toxy(45,6); ?? ??? ?printf("-----學(xué)生檔案管理系統(tǒng)-----"); ?? ??? ?toxy(50,7); ?? ??? ?printf("各分?jǐn)?shù)段統(tǒng)計(jì)"); ?? ??? ?toxy(48,9); ?? ??? ?printf("(1) ?c語言"); ?? ??? ?toxy(48,11); ?? ??? ?printf("(2) ?高等數(shù)學(xué)"); ?? ??? ?toxy(48,13); ?? ??? ?printf("(3) ?俄語"); ?? ??? ?toxy(48,15); ?? ??? ?printf("(4) ?俄語聽力"); ?? ??? ?toxy(48,17); ?? ??? ?printf("(5) ?專業(yè)導(dǎo)論"); ?? ??? ?toxy(48,19); ?? ??? ?printf("(6) ?政治"); ?? ??? ?toxy(48,21); ?? ??? ?printf("按0返回上一級"); ?? ??? ?t=getch(); ?? ??? ?switch(t) ?? ??? ?{ ?? ??? ??? ?case '0':statistics_information();break; ?? ??? ??? ?case '1':analyze_c();break; ?? ??? ??? ?case '2':analyze_math();break; ?? ??? ??? ?case '3':analyze_Russian();break; ?? ??? ??? ?case '4':analyze_Russian_hearing();break; ?? ??? ??? ?case '5':analyze_professional();break; ?? ??? ??? ?case '6':analyze_politics();break; ?? ??? ??? ?default :break; ?? ??? ?} ?? ?}while(1); } ? void analyze_c() ?//c語言? { ?? ?system("cls"); ?? ?color(11); ?? ?assignment(); ?? ?qsort(total,len,sizeof(Total),cmp1); ? //快速排序? ?? ?int numbers_A=0,numbers_B=0,numbers_C=0,numbers_D=0,numbers_E=0; ?? ?int i,j,k=12; ?? ?for(i=0;i<len;i++) ?? ?{ ?? ??? ?switch((int)(total[i].c_language/10)) ?? ??? ?{ ?? ??? ??? ?case 10: ?? ??? ??? ?case 9:numbers_A++;break; ?? ??? ??? ?case 8:numbers_B++;break; ?? ??? ??? ?case 7:numbers_C++;break; ?? ??? ??? ?case 6:numbers_D++;break; ?? ??? ??? ?default:numbers_E++;break; ?? ??? ?} ?? ?} ?? ?toxy(45,6); ?? ?printf("-----學(xué)生檔案管理系統(tǒng)-----"); ?? ?toxy(50,7); ?? ?printf("c語言--各分?jǐn)?shù)段統(tǒng)計(jì)"); ?? ?toxy(36,9); ?? ?printf("-------------------------------------------------"); ?? ?toxy(36,10); ?? ?printf("學(xué)號 ? ? ? ? ? 姓名 ? ? ? ? ? 性別 ? ? ? ? ? 分?jǐn)?shù)"); ?? ?toxy(36,11); ?? ?printf("-------------------------------------------------"); ?? ?toxy(18,12); ?? ?printf("90~100人數(shù)為:%d",numbers_A); ?? ?for(j=0;j<numbers_A;j++) ?? ?{ ?? ??? ?toxy(36,k); ?? ??? ?printf("%s ? ? ? ? ? ? %s ? ? ? ? ? %s ? ? ? ? ? ? %.2f",total[j].number,total[j].name,total[j].sex,total[j].c_language); ?? ??? ?k++; ?? ?} ?? ?k++; ?? ?toxy(18,k); ?? ?printf("80~90人數(shù)為:%d",numbers_B); ?? ?for(j=numbers_A;j<numbers_A+numbers_B;j++) ?? ?{ ?? ??? ?toxy(36,k); ?? ??? ?printf("%s ? ? ? ? ? ? %s ? ? ? ? ? %s ? ? ? ? ? ? %.2f",total[j].number,total[j].name,total[j].sex,total[j].c_language); ?? ??? ?k++; ?? ?} ?? ?k++; ?? ?toxy(18,k); ?? ?printf("70~80人數(shù)為:%d",numbers_C); ?? ?for(j=numbers_A+numbers_B;j<numbers_A+numbers_B+numbers_C;j++) ?? ?{ ?? ??? ?toxy(36,k); ?? ??? ?printf("%s ? ? ? ? ? ? %s ? ? ? ? ? %s ? ? ? ? ? ? %.2f",total[j].number,total[j].name,total[j].sex,total[j].c_language); ?? ??? ?k++; ?? ?} ?? ?k++; ?? ?toxy(18,k); ?? ?printf("60~70人數(shù)為:%d",numbers_D); ?? ?for(j=numbers_A+numbers_B+numbers_C;j<numbers_A+numbers_B+numbers_C+numbers_D;j++) ?? ?{ ?? ??? ?toxy(36,k); ?? ??? ?printf("%s ? ? ? ? ? ? %s ? ? ? ? ? %s ? ? ? ? ? ? %.2f",total[j].number,total[j].name,total[j].sex,total[j].c_language); ?? ??? ?k++; ?? ?} ?? ?k++; ?? ?toxy(18,k); ?? ?printf("0~60人數(shù)為:%d",numbers_E); ?? ?for(j=numbers_A+numbers_B+numbers_C+numbers_D;j<len;j++) ?? ?{ ?? ??? ?toxy(36,k); ?? ??? ?printf("%s ? ? ? ? ? ? %s ? ? ? ? ? %s ? ? ? ? ? ? %.2f",total[j].number,total[j].name,total[j].sex,total[j].c_language); ?? ??? ?k++; ?? ?} ?? ?toxy(48,k); ?? ?printf("按任意鍵返回上一級"); ?? ?getch(); }? ? void analyze_math() ?//高數(shù)? { ?? ?system("cls"); ?? ?color(11); ?? ?assignment(); ?? ?qsort(total,len,sizeof(Total),cmp2); ? //快速排序? ?? ?int numbers_A=0,numbers_B=0,numbers_C=0,numbers_D=0,numbers_E=0; ?? ?int i,j,k=12; ?? ?for(i=0;i<len;i++) ?? ?{ ?? ??? ?switch((int)(total[i].math/10)) ?? ??? ?{ ?? ??? ??? ?case 10: ?? ??? ??? ?case 9:numbers_A++;break; ?? ??? ??? ?case 8:numbers_B++;break; ?? ??? ??? ?case 7:numbers_C++;break; ?? ??? ??? ?case 6:numbers_D++;break; ?? ??? ??? ?default:numbers_E++;break; ?? ??? ?} ?? ?} ?? ?toxy(45,6); ?? ?printf("-----學(xué)生檔案管理系統(tǒng)-----"); ?? ?toxy(50,7); ?? ?printf("高數(shù)--各分?jǐn)?shù)段統(tǒng)計(jì)"); ?? ?toxy(36,9); ?? ?printf("-------------------------------------------------"); ?? ?toxy(36,10); ?? ?printf("學(xué)號 ? ? ? ? ? 姓名 ? ? ? ? ? 性別 ? ? ? ? ? 分?jǐn)?shù)"); ?? ?toxy(36,11); ?? ?printf("-------------------------------------------------"); ?? ?toxy(18,12); ?? ?printf("90~100人數(shù)為:%d",numbers_A); ?? ?for(j=0;j<numbers_A;j++) ?? ?{ ?? ??? ?toxy(36,k); ?? ??? ?printf("%s ? ? ? ? ? ? %s ? ? ? ? ? %s ? ? ? ? ? ? %.2f",total[j].number,total[j].name,total[j].sex,total[j].math); ?? ??? ?k++; ?? ?} ?? ?k++; ?? ?toxy(18,k); ?? ?printf("80~90人數(shù)為:%d",numbers_B); ?? ?for(j=numbers_A;j<numbers_A+numbers_B;j++) ?? ?{ ?? ??? ?toxy(36,k); ?? ??? ?printf("%s ? ? ? ? ? ? %s ? ? ? ? ? %s ? ? ? ? ? ? %.2f",total[j].number,total[j].name,total[j].sex,total[j].math); ?? ??? ?k++; ?? ?} ?? ?k++; ?? ?toxy(18,k); ?? ?printf("70~80人數(shù)為:%d",numbers_C); ?? ?for(j=numbers_A+numbers_B;j<numbers_A+numbers_B+numbers_C;j++) ?? ?{ ?? ??? ?toxy(36,k); ?? ??? ?printf("%s ? ? ? ? ? ? %s ? ? ? ? ? %s ? ? ? ? ? ? %.2f",total[j].number,total[j].name,total[j].sex,total[j].math); ?? ??? ?k++; ?? ?} ?? ?k++; ?? ?toxy(18,k); ?? ?printf("60~70人數(shù)為:%d",numbers_D); ?? ?for(j=numbers_A+numbers_B+numbers_C;j<numbers_A+numbers_B+numbers_C+numbers_D;j++) ?? ?{ ?? ??? ?toxy(36,k); ?? ??? ?printf("%s ? ? ? ? ? ? %s ? ? ? ? ? %s ? ? ? ? ? ? %.2f",total[j].number,total[j].name,total[j].sex,total[j].math); ?? ??? ?k++; ?? ?} ?? ?k++; ?? ?toxy(18,k); ?? ?printf("0~60人數(shù)為:%d",numbers_E); ?? ?for(j=numbers_A+numbers_B+numbers_C+numbers_D;j<len;j++) ?? ?{ ?? ??? ?toxy(36,k); ?? ??? ?printf("%s ? ? ? ? ? ? %s ? ? ? ? ? %s ? ? ? ? ? ? %.2f",total[j].number,total[j].name,total[j].sex,total[j].math); ?? ??? ?k++; ?? ?} ?? ?toxy(48,k); ?? ?printf("按任意鍵返回上一級"); ?? ?getch(); } ? void analyze_Russian() ? //俄語? { ?? ?system("cls"); ?? ?color(11); ?? ?assignment(); ?? ?qsort(total,len,sizeof(Total),cmp3); ? //快速排序? ?? ?int numbers_A=0,numbers_B=0,numbers_C=0,numbers_D=0,numbers_E=0; ?? ?int i,j,k=12; ?? ?for(i=0;i<len;i++) ?? ?{ ?? ??? ?switch((int)(total[i].Russian/10)) ?? ??? ?{ ?? ??? ??? ?case 10: ?? ??? ??? ?case 9:numbers_A++;break; ?? ??? ??? ?case 8:numbers_B++;break; ?? ??? ??? ?case 7:numbers_C++;break; ?? ??? ??? ?case 6:numbers_D++;break; ?? ??? ??? ?default:numbers_E++;break; ?? ??? ?} ?? ?} ?? ?toxy(45,6); ?? ?printf("-----學(xué)生檔案管理系統(tǒng)-----"); ?? ?toxy(50,7); ?? ?printf("俄語--各分?jǐn)?shù)段統(tǒng)計(jì)"); ?? ?toxy(36,9); ?? ?printf("-------------------------------------------------"); ?? ?toxy(36,10); ?? ?printf("學(xué)號 ? ? ? ? ? 姓名 ? ? ? ? ? 性別 ? ? ? ? ? 分?jǐn)?shù)"); ?? ?toxy(36,11); ?? ?printf("-------------------------------------------------"); ?? ?toxy(18,12); ?? ?printf("90~100人數(shù)為:%d",numbers_A); ?? ?for(j=0;j<numbers_A;j++) ?? ?{ ?? ??? ?toxy(36,k); ?? ??? ?printf("%s ? ? ? ? ? ? %s ? ? ? ? ? %s ? ? ? ? ? ? %.2f",total[j].number,total[j].name,total[j].sex,total[j].Russian); ?? ??? ?k++; ?? ?} ?? ?k++; ?? ?toxy(18,k); ?? ?printf("80~90人數(shù)為:%d",numbers_B); ?? ?for(j=numbers_A;j<numbers_A+numbers_B;j++) ?? ?{ ?? ??? ?toxy(36,k); ?? ??? ?printf("%s ? ? ? ? ? ? %s ? ? ? ? ? %s ? ? ? ? ? ? %.2f",total[j].number,total[j].name,total[j].sex,total[j].Russian); ?? ??? ?k++; ?? ?} ?? ?k++; ?? ?toxy(18,k); ?? ?printf("70~80人數(shù)為:%d",numbers_C); ?? ?for(j=numbers_A+numbers_B;j<numbers_A+numbers_B+numbers_C;j++) ?? ?{ ?? ??? ?toxy(36,k); ?? ??? ?printf("%s ? ? ? ? ? ? %s ? ? ? ? ? %s ? ? ? ? ? ? %.2f",total[j].number,total[j].name,total[j].sex,total[j].Russian); ?? ??? ?k++; ?? ?} ?? ?k++; ?? ?toxy(18,k); ?? ?printf("60~70人數(shù)為:%d",numbers_D); ?? ?for(j=numbers_A+numbers_B+numbers_C;j<numbers_A+numbers_B+numbers_C+numbers_D;j++) ?? ?{ ?? ??? ?toxy(36,k); ?? ??? ?printf("%s ? ? ? ? ? ? %s ? ? ? ? ? %s ? ? ? ? ? ? %.2f",total[j].number,total[j].name,total[j].sex,total[j].Russian); ?? ??? ?k++; ?? ?} ?? ?k++; ?? ?toxy(18,k); ?? ?printf("0~60人數(shù)為:%d",numbers_E); ?? ?for(j=numbers_A+numbers_B+numbers_C+numbers_D;j<len;j++) ?? ?{ ?? ??? ?toxy(36,k); ?? ??? ?printf("%s ? ? ? ? ? ? %s ? ? ? ? ? %s ? ? ? ? ? ? %.2f",total[j].number,total[j].name,total[j].sex,total[j].Russian); ?? ??? ?k++; ?? ?} ?? ?toxy(48,k); ?? ?printf("按任意鍵返回上一級"); ?? ?getch(); } ? void analyze_Russian_hearing() ?//俄語聽力? { ?? ?system("cls"); ?? ?color(11); ?? ?assignment(); ?? ?qsort(total,len,sizeof(Total),cmp4); ? //快速排序? ?? ?int numbers_A=0,numbers_B=0,numbers_C=0,numbers_D=0,numbers_E=0; ?? ?int i,j,k=12; ?? ?for(i=0;i<len;i++) ?? ?{ ?? ??? ?switch((int)(total[i].Russian_hearing/10)) ?? ??? ?{ ?? ??? ??? ?case 10: ?? ??? ??? ?case 9:numbers_A++;break; ?? ??? ??? ?case 8:numbers_B++;break; ?? ??? ??? ?case 7:numbers_C++;break; ?? ??? ??? ?case 6:numbers_D++;break; ?? ??? ??? ?default:numbers_E++;break; ?? ??? ?} ?? ?} ?? ?toxy(45,6); ?? ?printf("-----學(xué)生檔案管理系統(tǒng)-----"); ?? ?toxy(50,7); ?? ?printf("俄語聽力--各分?jǐn)?shù)段統(tǒng)計(jì)"); ?? ?toxy(36,9); ?? ?printf("-------------------------------------------------"); ?? ?toxy(36,10); ?? ?printf("學(xué)號 ? ? ? ? ? 姓名 ? ? ? ? ? 性別 ? ? ? ? ? 分?jǐn)?shù)"); ?? ?toxy(36,11); ?? ?printf("-------------------------------------------------"); ?? ?toxy(18,12); ?? ?printf("90~100人數(shù)為:%d",numbers_A); ?? ?for(j=0;j<numbers_A;j++) ?? ?{ ?? ??? ?toxy(36,k); ?? ??? ?printf("%s ? ? ? ? ? ? %s ? ? ? ? ? %s ? ? ? ? ? ? %.2f",total[j].number,total[j].name,total[j].sex,total[j].Russian_hearing); ?? ??? ?k++; ?? ?} ?? ?k++; ?? ?toxy(18,k); ?? ?printf("80~90人數(shù)為:%d",numbers_B); ?? ?for(j=numbers_A;j<numbers_A+numbers_B;j++) ?? ?{ ?? ??? ?toxy(36,k); ?? ??? ?printf("%s ? ? ? ? ? ? %s ? ? ? ? ? %s ? ? ? ? ? ? %.2f",total[j].number,total[j].name,total[j].sex,total[j].Russian_hearing); ?? ??? ?k++; ?? ?} ?? ?k++; ?? ?toxy(18,k); ?? ?printf("70~80人數(shù)為:%d",numbers_C); ?? ?for(j=numbers_A+numbers_B;j<numbers_A+numbers_B+numbers_C;j++) ?? ?{ ?? ??? ?toxy(36,k); ?? ??? ?printf("%s ? ? ? ? ? ? %s ? ? ? ? ? %s ? ? ? ? ? ? %.2f",total[j].number,total[j].name,total[j].sex,total[j].Russian_hearing); ?? ??? ?k++; ?? ?} ?? ?k++; ?? ?toxy(18,k); ?? ?printf("60~70人數(shù)為:%d",numbers_D); ?? ?for(j=numbers_A+numbers_B+numbers_C;j<numbers_A+numbers_B+numbers_C+numbers_D;j++) ?? ?{ ?? ??? ?toxy(36,k); ?? ??? ?printf("%s ? ? ? ? ? ? %s ? ? ? ? ? %s ? ? ? ? ? ? %.2f",total[j].number,total[j].name,total[j].sex,total[j].Russian_hearing); ?? ??? ?k++; ?? ?} ?? ?k++; ?? ?toxy(18,k); ?? ?printf("0~60人數(shù)為:%d",numbers_E); ?? ?for(j=numbers_A+numbers_B+numbers_C+numbers_D;j<len;j++) ?? ?{ ?? ??? ?toxy(36,k); ?? ??? ?printf("%s ? ? ? ? ? ? %s ? ? ? ? ? %s ? ? ? ? ? ? %.2f",total[j].number,total[j].name,total[j].sex,total[j].Russian_hearing); ?? ??? ?k++; ?? ?} ?? ?toxy(48,k); ?? ?printf("按任意鍵返回上一級"); ?? ?getch(); } ? void analyze_professional() ?//專業(yè)導(dǎo)論? { ?? ?system("cls"); ?? ?color(11); ?? ?assignment(); ?? ?qsort(total,len,sizeof(Total),cmp5); ? //快速排序? ?? ?int numbers_A=0,numbers_B=0,numbers_C=0,numbers_D=0,numbers_E=0; ?? ?int i,j,k=12; ?? ?for(i=0;i<len;i++) ?? ?{ ?? ??? ?switch((int)(total[i].professional/10)) ?? ??? ?{ ?? ??? ??? ?case 10: ?? ??? ??? ?case 9:numbers_A++;break; ?? ??? ??? ?case 8:numbers_B++;break; ?? ??? ??? ?case 7:numbers_C++;break; ?? ??? ??? ?case 6:numbers_D++;break; ?? ??? ??? ?default:numbers_E++;break; ?? ??? ?} ?? ?} ?? ?toxy(45,6); ?? ?printf("-----學(xué)生檔案管理系統(tǒng)-----"); ?? ?toxy(50,7); ?? ?printf("專業(yè)導(dǎo)論--各分?jǐn)?shù)段統(tǒng)計(jì)"); ?? ?toxy(36,9); ?? ?printf("-------------------------------------------------"); ?? ?toxy(36,10); ?? ?printf("學(xué)號 ? ? ? ? ? 姓名 ? ? ? ? ? 性別 ? ? ? ? ? 分?jǐn)?shù)"); ?? ?toxy(36,11); ?? ?printf("-------------------------------------------------"); ?? ?toxy(18,12); ?? ?printf("90~100人數(shù)為:%d",numbers_A); ?? ?for(j=0;j<numbers_A;j++) ?? ?{ ?? ??? ?toxy(36,k); ?? ??? ?printf("%s ? ? ? ? ? ? %s ? ? ? ? ? %s ? ? ? ? ? ? %.2f",total[j].number,total[j].name,total[j].sex,total[j].professional); ?? ??? ?k++; ?? ?} ?? ?k++; ?? ?toxy(18,k); ?? ?printf("80~90人數(shù)為:%d",numbers_B); ?? ?for(j=numbers_A;j<numbers_A+numbers_B;j++) ?? ?{ ?? ??? ?toxy(36,k); ?? ??? ?printf("%s ? ? ? ? ? ? %s ? ? ? ? ? %s ? ? ? ? ? ? %.2f",total[j].number,total[j].name,total[j].sex,total[j].professional); ?? ??? ?k++; ?? ?} ?? ?k++; ?? ?toxy(18,k); ?? ?printf("70~80人數(shù)為:%d",numbers_C); ?? ?for(j=numbers_A+numbers_B;j<numbers_A+numbers_B+numbers_C;j++) ?? ?{ ?? ??? ?toxy(36,k); ?? ??? ?printf("%s ? ? ? ? ? ? %s ? ? ? ? ? %s ? ? ? ? ? ? %.2f",total[j].number,total[j].name,total[j].sex,total[j].professional); ?? ??? ?k++; ?? ?} ?? ?k++; ?? ?toxy(18,k); ?? ?printf("60~70人數(shù)為:%d",numbers_D); ?? ?for(j=numbers_A+numbers_B+numbers_C;j<numbers_A+numbers_B+numbers_C+numbers_D;j++) ?? ?{ ?? ??? ?toxy(36,k); ?? ??? ?printf("%s ? ? ? ? ? ? %s ? ? ? ? ? %s ? ? ? ? ? ? %.2f",total[j].number,total[j].name,total[j].sex,total[j].professional); ?? ??? ?k++; ?? ?} ?? ?k++; ?? ?toxy(18,k); ?? ?printf("0~60人數(shù)為:%d",numbers_E); ?? ?for(j=numbers_A+numbers_B+numbers_C+numbers_D;j<len;j++) ?? ?{ ?? ??? ?toxy(36,k); ?? ??? ?printf("%s ? ? ? ? ? ? %s ? ? ? ? ? %s ? ? ? ? ? ? %.2f",total[j].number,total[j].name,total[j].sex,total[j].professional); ?? ??? ?k++; ?? ?} ?? ?toxy(48,k); ?? ?printf("按任意鍵返回上一級"); ?? ?getch(); } ? void analyze_politics() ?//政治? { ?? ?system("cls"); ?? ?color(11); ?? ?assignment(); ?? ?qsort(total,len,sizeof(Total),cmp6); ? //快速排序? ?? ?int numbers_A=0,numbers_B=0,numbers_C=0,numbers_D=0,numbers_E=0; ?? ?int i,j,k=12; ?? ?for(i=0;i<len;i++) ?? ?{ ?? ??? ?switch((int)(total[i].politics/10)) ?? ??? ?{ ?? ??? ??? ?case 10: ?? ??? ??? ?case 9:numbers_A++;break; ?? ??? ??? ?case 8:numbers_B++;break; ?? ??? ??? ?case 7:numbers_C++;break; ?? ??? ??? ?case 6:numbers_D++;break; ?? ??? ??? ?default:numbers_E++;break; ?? ??? ?} ?? ?} ?? ?toxy(45,6); ?? ?printf("-----學(xué)生檔案管理系統(tǒng)-----"); ?? ?toxy(50,7); ?? ?printf("政治--各分?jǐn)?shù)段統(tǒng)計(jì)"); ?? ?toxy(36,9); ?? ?printf("-------------------------------------------------"); ?? ?toxy(36,10); ?? ?printf("學(xué)號 ? ? ? ? ? 姓名 ? ? ? ? ? 性別 ? ? ? ? ? 分?jǐn)?shù)"); ?? ?toxy(36,11); ?? ?printf("-------------------------------------------------"); ?? ?toxy(18,12); ?? ?printf("90~100人數(shù)為:%d",numbers_A); ?? ?for(j=0;j<numbers_A;j++) ?? ?{ ?? ??? ?toxy(36,k); ?? ??? ?printf("%s ? ? ? ? ? ? %s ? ? ? ? ? %s ? ? ? ? ? ? %.2f",total[j].number,total[j].name,total[j].sex,total[j].politics); ?? ??? ?k++; ?? ?} ?? ?k++; ?? ?toxy(18,k); ?? ?printf("80~90人數(shù)為:%d",numbers_B); ?? ?for(j=numbers_A;j<numbers_A+numbers_B;j++) ?? ?{ ?? ??? ?toxy(36,k); ?? ??? ?printf("%s ? ? ? ? ? ? %s ? ? ? ? ? %s ? ? ? ? ? ? %.2f",total[j].number,total[j].name,total[j].sex,total[j].politics); ?? ??? ?k++; ?? ?} ?? ?k++; ?? ?toxy(18,k); ?? ?printf("70~80人數(shù)為:%d",numbers_C); ?? ?for(j=numbers_A+numbers_B;j<numbers_A+numbers_B+numbers_C;j++) ?? ?{ ?? ??? ?toxy(36,k); ?? ??? ?printf("%s ? ? ? ? ? ? %s ? ? ? ? ? %s ? ? ? ? ? ? %.2f",total[j].number,total[j].name,total[j].sex,total[j].politics); ?? ??? ?k++; ?? ?} ?? ?k++; ?? ?toxy(18,k); ?? ?printf("60~70人數(shù)為:%d",numbers_D); ?? ?for(j=numbers_A+numbers_B+numbers_C;j<numbers_A+numbers_B+numbers_C+numbers_D;j++) ?? ?{ ?? ??? ?toxy(36,k); ?? ??? ?printf("%s ? ? ? ? ? ? %s ? ? ? ? ? %s ? ? ? ? ? ? %.2f",total[j].number,total[j].name,total[j].sex,total[j].politics); ?? ??? ?k++; ?? ?} ?? ?k++; ?? ?toxy(18,k); ?? ?printf("0~60人數(shù)為:%d",numbers_E); ?? ?for(j=numbers_A+numbers_B+numbers_C+numbers_D;j<len;j++) ?? ?{ ?? ??? ?toxy(36,k); ?? ??? ?printf("%s ? ? ? ? ? ? %s ? ? ? ? ? %s ? ? ? ? ? ? %.2f",total[j].number,total[j].name,total[j].sex,total[j].politics); ?? ??? ?k++; ?? ?} ?? ?toxy(48,k); ?? ?printf("按任意鍵返回上一級"); ?? ?getch(); } ? void save_information(Stup p) ? //將p所指向的內(nèi)容寫入文件中? { ?? ?FILE *fp; ?? ?fp=fopen("student","ab+"); ?? ?if(fp==NULL) ?? ?{ ?? ??? ?printf("cannot open file");? ?? ?} ?? ?if(fwrite(p,N,1,fp)!=1) ?? ?{ ?? ??? ?printf("write error"); ?? ?}? ?? ?fclose(fp); } ? void over() ? ? ? //退出軟件? { ?? ?char t; ?? ?toxy(45,11); ?? ?printf("--------------------------"); ?? ?toxy(45,12); ?? ?printf("| ? ?您確定要退出嗎? ? ?|"); ?? ?toxy(45,14); ?? ?printf("| ?1.確定 ? ? ?2.取消 ? ?|"); ?? ?toxy(45,15); ?? ?printf("--------------------------"); ?? ?while(1) ?? ?{ ?? ??? ?t=getch(); ? ? ? ? //輸入t ?? ??? ?switch(t) ?? ??? ?{ ?? ??? ??? ?case '1': ?? ??? ??? ?system("cls"); ?? ??? ? ? ?color(6); ?? ??? ??? ?toxy(48,10); ?? ??? ??? ?printf("正在安全退出...."); ?? ??? ??? ?Sleep(1000); ? ? //暫停1秒? ?? ??? ??? ?system("cls"); ?? ??? ??? ?color(8); ?? ??? ??? ?toxy(48,10); ?? ??? ??? ?printf("已安全退出軟件"); ?? ??? ??? ?toxy(48,12); ?? ??? ??? ?printf("謝謝使用!"); ?? ??? ??? ?toxy(48,14); ?? ??? ??? ?printf("by-by^_^"); ?? ??? ??? ?free(password_head); ?? ??? ??? ?exit(0); ?break; //終止程序? ?? ??? ??? ?case '2': ?? ??? ??? ?menu(); break; ? //調(diào)用函數(shù),進(jìn)入菜單? ?? ??? ??? ?default :break; ?? ??? ?} ?? ?} } ? main() ?//簡單明了的主函數(shù)^_^? { ?? ?HideCursor(); ?? ?signin(); ?//登錄界面? }
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
C++中綴表達(dá)式轉(zhuǎn)后綴表達(dá)式的方法
這篇文章主要介紹了C++中綴表達(dá)式轉(zhuǎn)后綴表達(dá)式的方法,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2020-04-04解析C++編程中的選擇結(jié)構(gòu)和switch語句的用法
這篇文章主要介紹了解析C++編程中的選擇結(jié)構(gòu)和switch語句的用法,是C++入門學(xué)習(xí)中的基礎(chǔ)知識,需要的朋友可以參考下2015-09-09C++ namespace相關(guān)語法實(shí)例分析
這篇文章主要介紹了C++ namespace相關(guān)語法實(shí)例分析,對C++初學(xué)者有很好的參考借鑒價(jià)值,需要的朋友可以參考下2014-08-08C++學(xué)習(xí)之智能指針中的unique_ptr與shared_ptr
吃獨(dú)食的unique_ptr與樂于分享的shared_ptr是C++中常見的兩個(gè)智能指針,本文主要為大家介紹了這兩個(gè)指針的使用以及智能指針使用的原因,希望對大家有所幫助2023-05-05讓應(yīng)用程序只運(yùn)行一個(gè)實(shí)例的實(shí)現(xiàn)方法
我們在使用《360軟件管家》時(shí)發(fā)現(xiàn),在《360軟件管家》已經(jīng)運(yùn)行了的情況下,再次點(diǎn)擊《360軟件管家》的圖標(biāo),那么它不會再運(yùn)行另外一個(gè)《360軟件管家》,而是將已有的《360軟件管家》給激活,始終只能運(yùn)行一個(gè)《360軟件管家》的實(shí)例2013-05-05