欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

C語言實(shí)現(xiàn)學(xué)生檔案管理系統(tǒng)

 更新時(shí)間:2022年05月30日 13:23:34   作者:Sriven  
這篇文章主要為大家詳細(xì)介紹了C語言實(shí)現(xiàn)學(xué)生檔案管理系統(tǒng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下

本文實(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)文章

  • windows下vscode使用cmake的方法

    windows下vscode使用cmake的方法

    這篇文章主要介紹了windows下vscode使用cmake的方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-03-03
  • C++中綴表達(dá)式轉(zhuǎn)后綴表達(dá)式的方法

    C++中綴表達(dá)式轉(zhuǎn)后綴表達(dá)式的方法

    這篇文章主要介紹了C++中綴表達(dá)式轉(zhuǎn)后綴表達(dá)式的方法,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2020-04-04
  • QT5實(shí)現(xiàn)電子時(shí)鐘

    QT5實(shí)現(xiàn)電子時(shí)鐘

    這篇文章主要為大家詳細(xì)介紹了QT5實(shí)現(xiàn)電子時(shí)鐘,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-06-06
  • C語言超詳細(xì)講解排序算法下篇

    C語言超詳細(xì)講解排序算法下篇

    今天我們主要難點(diǎn)有快速排序和歸并排序,會簡單涉及到二叉樹相關(guān)知識,相對來說比較抽象!所以如果有看不懂或者不明白的地方可以看看我之前的詳解二叉樹
    2022-04-04
  • 解析C++編程中的選擇結(jié)構(gòu)和switch語句的用法

    解析C++編程中的選擇結(jié)構(gòu)和switch語句的用法

    這篇文章主要介紹了解析C++編程中的選擇結(jié)構(gòu)和switch語句的用法,是C++入門學(xué)習(xí)中的基礎(chǔ)知識,需要的朋友可以參考下
    2015-09-09
  • ?C++模板template原理解析

    ?C++模板template原理解析

    這篇文章主要介紹了C++模板template原理,函數(shù)模板代表了一個(gè)函數(shù)家族,該函數(shù)模板與類型無關(guān),在使用時(shí)被參數(shù)化,根據(jù)實(shí)參類型產(chǎn)生函數(shù)的特定類型版本
    2022-07-07
  • C++ namespace相關(guān)語法實(shí)例分析

    C++ namespace相關(guān)語法實(shí)例分析

    這篇文章主要介紹了C++ namespace相關(guān)語法實(shí)例分析,對C++初學(xué)者有很好的參考借鑒價(jià)值,需要的朋友可以參考下
    2014-08-08
  • c++矩陣計(jì)算性能對比:Eigen和GPU解讀

    c++矩陣計(jì)算性能對比:Eigen和GPU解讀

    這篇文章主要介紹了c++矩陣計(jì)算性能對比:Eigen和GPU解讀,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-12-12
  • C++學(xué)習(xí)之智能指針中的unique_ptr與shared_ptr

    C++學(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)方法

    讓應(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

最新評論