亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? 源代碼.txt

?? 主要是學(xué)生成績管理系統(tǒng),內(nèi)有詳細的源程序代碼以及完成的設(shè)計報告,基本上改完名字就可以交了.我以此報告得的優(yōu)秀.
?? TXT
字號:
#include <stdio.h>      /*頭文件說明*/
#include<dos.h>
#include<stdlib.h>   
#include<string.h>    /*字符串函數(shù)*/
#include<mem.h>       /*內(nèi)存操作函數(shù)*/
#include<ctype.h>     /*字符操作函數(shù)*/
#include<alloc.h>     /*動態(tài)地址分配函數(shù)*/
#define L sizeof(S)
typedef struct stu    /*定義結(jié)構(gòu)體數(shù)組用于緩存數(shù)據(jù)*/
{char num[6];
char name[5];
int score[3];
int sum;
float average;
int order;
struct stu *next;
}S;

/*各函數(shù)聲明*/
S   *initiate();     /*初始化函數(shù)*/
int menu_select();    /*菜單函數(shù)*/
S *create();    /*創(chuàng)建鏈表*/
void print(S *head);    /* 顯示全部記錄*/
void search(S *head);     /*查找記錄*/
S *delete(S *head);    /*刪除記錄*/
S *sort(S *head);     /*排序*/
S *insert(S *head,S *new);    /*插入記錄*/
void save(S *head);      /*保存文件*/
S *load();         /*讀文件*/

/*主函數(shù)界面*/
main()
{S *head,new;
head=initiate();        /*鏈表初始化,使head的值為NULL*/
for(;;)             /*循環(huán)無限次*/
    {switch(menu_select())    
       {                     
      case 1:head=create();break;
      case 2:print(head);break;
      case 3:search(head);break;
      case 4:head=delete(head);break;
      case 5:head=sort(head);break;
      case 6:head=insert(head,&new);break;   /*&new表示返回地址*/
      case 7:save(head);break;
      case 8:head=load(); break;
      case 9:exit(0);        /*如菜單返回值為9則程序結(jié)束*/
       }
    }
}

/*初始化函數(shù)*/
S *initiate()
{
return NULL;   /*返回空指針*/
}

/*菜單選擇函數(shù)*/
menu_select()
{int n;
struct date d;      /*定義時間結(jié)構(gòu)體*/
getdate(&d);       /*讀取系統(tǒng)日期并把它放到結(jié)構(gòu)體d中*/
printf("press any key to enter the menu......");    /*按任一鍵進入主菜單*/
getch();     /*從鍵盤讀取一個字符,但不顯示于屏幕*/
clrscr();    /*清屏*/
printf("********************************************************************************\n");
printf("\t\t                 Welcome to\n");
printf("\nThe student information management system of Information and Technology School of CSU\n");
printf("*************************************MENU***************************************\n");
printf("\t\t\t1. Enter the record\n");             /*輸入學(xué)生成績記錄*/
printf("\t\t\t2. Print the record\n");             /*顯示*/
printf("\t\t\t3. Search record on name\n");        /*尋找*/
printf("\t\t\t4. Delete a record\n");              /*刪除*/
printf("\t\t\t5. Sort to make new a file\n");      /*排序*/
printf("\t\t\t6. Insert record to list\n");        /*插入*/
printf("\t\t\t7. Save the file\n");                /*保存*/
printf("\t\t\t8. Load the file\n");                /*讀取*/
printf("\t\t\t9. Quit\n");                        /*退出*/
printf("\n\t\t              Made by Mao Jinyong\n");
printf("********************************************************************************\n");
printf("\t\t\t\t%d\\%d\\%d\n",d.da_year,d.da_mon,d.da_day);    /*顯示當前系統(tǒng)日期*/
do{
     printf("\n\t\t\tEnter your choice(1~9):");  
     scanf("%d",&n);
    }while(n<1||n>9);     /*如果選擇項不在1~9之間則重輸*/
    return(n);            /*返回選擇項,主函數(shù)根據(jù)該數(shù)調(diào)用相應(yīng)的函數(shù)*/
}

/*輸入函數(shù)*/
S *create()
{int i,s;
S *head=NULL,*p;   /* 定義函數(shù).此函數(shù)帶回一個指向鏈表頭的指針*/
clrscr();
for(;;)
    {p=(S *)malloc(L);   /*開辟一個新的單元*/
     if(!p)    /*如果指針p為空*/
       {printf("\nOut of memory.");    /*輸出內(nèi)存溢出*/
        return (head);   /*返回頭指針,下同*/
       }
     printf("Enter the num(0:list end):"); 
     scanf("%s",p->num);
     if(p->num[0]=='0') break;     /*如果學(xué)號首字符為0則結(jié)束輸入*/
     printf("Enter the name:");
     scanf("%s",p->name);
     printf("Please enter the %d scores\n",3);   /*提示開始輸入成績*/
     s=0;                 /*計算每個學(xué)生的總分,初值為0*/
     for(i=0;i<3;i++)     /*3門課程循環(huán)3次*/
       {
        do{
       printf("score%d:",i+1);
       scanf("%d",&p->score[i]);
       if(p->score[i]<0 || p->score[i]>100)    /*確保成績在0~100之間*/
       printf("Data error,please enter again.\n");
      }while(p->score[i]<0 || p->score[i]>100);
      s=s+p->score[i];    /*累加各門成績*/
       }
       p->sum=s;      /*將總分保存*/
       p->average=(float)s/3;   /*先用強制類型轉(zhuǎn)換將s轉(zhuǎn)換成float型,再求平均值*/
       p->order=0;              /*未排序前此值為0*/
       p->next=head;            /*將頭結(jié)點做為新輸入結(jié)點的后繼結(jié)點*/
       head=p;                  /*新輸入結(jié)點為新的頭結(jié)點*/
    }
    return(head);  
}

/* 顯示全部記錄函數(shù)*/
void print(S *head)
{int i=0;      /* 統(tǒng)計記錄條數(shù)*/
S *p;   /*移動指針*/
clrscr();
p=head;       /*初值為頭指針*/
printf("\n************************************S************************************\n");
printf("-------------------------------------------------------------------------------\n");
printf("    |    Num    |    Name    |   Sc1      |   Sc2   |   Sc3   |   Sum   |    Ave    | Order    |\n");
printf("-------------------------------------------------------------------------------\n");
while(p!=NULL)
    {
     i++;
     printf("| %3d      |   %4s      |    %-4s    |   %3d   |   %3d   |   %3d   |   %3d     |   %4.2f   |   %-5d|\n",
     i, p->num,p->name,p->score[0],p->score[1],p->score[2],p->sum,p->average,p->order);
     p=p->next;
    }
printf("-------------------------------------------------------------------------------\n");
printf("**************************************END**************************************\n");
}

/*查找記錄函數(shù)*/
void search(S *head)
{S *p;     /*   移動指針*/
char s[5];      /*存放姓名用的字符數(shù)組*/
clrscr();
printf("Please enter name for searching.\n");
scanf("%s",s);
p=head;     /*將頭指針賦給p*/
while(strcmp(p->name,s) && p != NULL)   /*當記錄的姓名不是要找的,或指針不為空時*/
    p=p->next;      /*移動指針,指向下一結(jié)點*/
    if(p!=NULL)          /*如果指針不為空*/
    {printf("\n*************************************FOUND************************************\n");
     printf("-------------------------------------------------------------------------------\n");
     printf("|      Num     |     Name     |   sc1   |   sc2   |   sc3   |   Sum   |    Ave    | Order |\n");
     printf("-------------------------------------------------------------------------------\n");
     printf("|      %4s     |     %4s      |   %3d   |   %3d   |   %3d   |   %3d   |   %4.2f   |   %-5d|\n",
     p->num,p->name,p->score[0],p->score[1],p->score[2],p->sum,p->average,p->order);
     printf("-------------------------------------------------------------------------------\n");
     printf("***************************************END**************************************\n");
     }
    else
      printf("\nThere is no num %s S on the list.\n",s);    /*顯示沒有該學(xué)生*/
}

/*刪除記錄函數(shù)*/
S *delete(S *head)
{int n;
S *p1,*p2;   /*p1為查找到要刪除的結(jié)點指針,p2為其前驅(qū)指針*/
char c,s[6];      /*s[6]用來存放學(xué)號,c用來輸入字母*/
clrscr();
printf("Please enter the deleted num: ");
scanf("%s",s);
p1=p2=head;     /*給p1和p2賦初值頭指針*/
while(strcmp(p1->num,s) && p1 != NULL)    /*當記錄的學(xué)號不是要找的,或指針不為空時*/
    {p2=p1;             /*將p1指針值賦給p2作為p1的前驅(qū)指針*/
     p1=p1->next;       /*將p1指針指向下一條記錄*/
    }
if(strcmp(p1->num,s)==0)   /*學(xué)號找到了*/
    {printf("**************************************FOUND************************************\n");
     printf("-------------------------------------------------------------------------------\n");
     printf("|      Num     |     Name     |   sc1   |   sc2   |   sc3   |   Sum   |    Ave    | Order |\n");
     printf("-------------------------------------------------------------------------------\n");
     printf("|      %4s     |     %4s      |   %3d   |   %3d   |   %3d   |   %3d   |   %4.2f   |   %-5d|\n",
     p1->num,p1->name,p1->score[0],p1->score[1],p1->score[2],p1->sum,p1->average,p1->order);
     printf("-------------------------------------------------------------------------------\n");
     printf("***************************************END**************************************\n");
     printf("Are you sure to delete the S Y/N ?"); /*提示是否要刪除,輸入Y刪除,N則退出*/
     for(;;)
       {scanf("%c",&c);
        if(c=='n'||c=='N') break;   /*如果不刪除,則跳出本循環(huán)*/
        if(c=='y'||c=='Y')
          {
           if(p1==head)        /*若p1==head,說明被刪結(jié)點是首結(jié)點*/
           head=p1->next;      /*把第二個結(jié)點地址賦予head*/
         else
           p2->next=p1->next;   /*否則將一下結(jié)點地址賦給前一結(jié)點地址*/
           n=n-1;
           printf("\nNum %s S have been deleted.\n",s);
           printf("Don't forget to save.\n");break;   /*刪除后就跳出循環(huán)*/
          }
       }
     }
   else
     printf("\nThere is no num %s S on the list.\n",s);   /*找不到該結(jié)點*/
return(head);
}

/*排序函數(shù)*/
S *sort(S *head)
{int i=0;                        /*保存名次*/
S *p1,*p2,*t,*temp;       /*定義臨時指針*/
temp=head->next;                /*將原表的頭指針所指的下一個結(jié)點作頭指針*/
head->next=NULL;                /*第一個結(jié)點為新表的頭結(jié)點*/
while(temp!=NULL)               /*當原表不為空時,進行排序*/
    {
     t=temp;              /*取原表的頭結(jié)點*/
     temp=temp->next;     /*原表頭結(jié)點指針后移*/
     p1=head;              /*設(shè)定移動指針p1,從頭指針開始*/
     p2=head;              /*設(shè)定移動指針p2做為p1的前驅(qū),初值為頭指針*/
     while(t->average<p1->average&&p1!=NULL)   /*作成績平均分比較*/
       {
        p2=p1;             /*待排序點值小,則新表指針后移*/
        p1=p1->next;
       }
     if(p1==p2)       /*p1==p2,說明待排序點值大,應(yīng)排在首位*/
       {
        t->next=p1;      /*待排序點的后繼為p*/
        head=t;          /*新頭結(jié)點為待排序點*/
       }
      else     /*待排序點應(yīng)插入在中間某個位置p2和p1之間,如p為空則是尾部*/
        {
         t->next=p1;    /*t的后繼是p1*/
         p2->next=t;    /*p2的后繼是t*/
        }
      }
p1=head;          /*已排好序的頭指針賦給p1,準備填寫名次*/
while(p1!=NULL)   /*當p1不為空時,進行下列操作*/
    {
     i++;            /*結(jié)點序號*/
     p1->order=i;    /*將結(jié)點序號賦值給名次*/
     p1=p1->next;    /*指針后移*/
    }
printf("Sorting is sucessful.\n");    /*排序成功*/
return (head);
}

/*插入記錄函數(shù)*/
S   *insert(S *head,S *new)
{S *p0,*p1,*p2;
int n,sum1,i;
p1=head;   /*使p1指向第一個結(jié)點*/
p0=new;    /*p0指向要插入的結(jié)點*/
printf("\nPlease enter a new record.\n");       /*提示輸入記錄信息*/
printf("Enter the num:");
scanf("%s",new->num);
printf("Enter the name:");
scanf("%s",new->name);
printf("Please enter the %d scores.\n",3);
sum1=0;     /*保存新記錄的總分,初值為0*/
for(i=0;i<3;i++)
    {
     do{
        printf("score%d:",i+1);
        scanf("%d",&new->score[i]);
        if(new->score[i]>100||new->score[i]<0)
        printf("Data error,please enter again.\n");
       }while(new->score[i]>100||new->score[i]<0);
     sum1=sum1+new->score[i];     /*累加各門成績*/
    }
new->sum=sum1;     /*將總分存入新記錄中*/
new->average=(float)sum1/3;
new->order=0;
if(head==NULL)   /*原來的鏈表是空表*/
    {head=p0;p0->next=NULL;}   /*使p0指向的結(jié)點作為頭結(jié)點*/
else
    {while((p0->average<p1->average)&&(p1->next!=NULL))
       {p2=p1;    /*使p2指向剛才p1指向的結(jié)點*/
        p1=p1->next;    /*p1后移一個結(jié)點*/
       }
     if(p0->average>=p1->average)
       {if(head==p1)head=p0;    /*插到原來第一個結(jié)點之前*/
        else p2->next=p0;       /*插到p2指向的結(jié)點之后*/
        p0->next=p1;}
     else
       {p1->next=p0;p0->next=NULL;} /*插到最后的結(jié)點之后*/
    }
n=n+1; /*結(jié)點數(shù)加1*/
head=sort(head);   /*調(diào)用排序的函數(shù),將學(xué)生成績重新排序*/
printf("\nS   %s have been inserted.\n",new->name);    
printf("Don't forget to save the new file.\n");
return(head);
}

/*保存數(shù)據(jù)到文件函數(shù)*/
void save(S *head)
{FILE *fp;         /*定義指向文件的指針*/
S *p;       /* 定義移動指針*/
char outfile[10];
printf("Enter outfile name,for example c:\\score\n");
scanf("%s",outfile);
if((fp=fopen(outfile,"wb"))==NULL)    /*為輸出打開一個二進制文件,為只寫方式*/
    {
     printf("Cannot open the file\n");
     return;     /*若打不開則返回菜單*/
    }
printf("\nSaving the file......\n");
p=head;                     /*移動指針從頭指針開始*/
while(p!=NULL)         /*如p不為空*/
    {
     fwrite(p,L,1,fp);      /*寫入一條記錄*/
     p=p->next;         /*指針后移*/
    }
fclose(fp);       /*關(guān)閉文件*/
printf("Save the file successfully!\n");
}

/* 從文件讀數(shù)據(jù)函數(shù)*/
S *load()
{S *p1,*p2,*head=NULL;     /*定義記錄指針變量*/
FILE *fp;             /* 定義指向文件的指針*/
char infile[10];
printf("Enter infile name,for example c:\\score\n");
scanf("%s",infile);
if((fp=fopen(infile,"rb"))==NULL)    /*打開一個二進制文件,為只讀方式*/
    {
     printf("Can not open the file.\n");
     return(head);
    }
printf("\nLoading the file!\n");
p1=(S *)malloc(L);    /*開辟一個新單元*/
if(!p1)
    {
     printf("Out of memory!\n");
     return(head);
    }
head=p1;          /*申請到空間,將其作為頭指針*/
while(!feof(fp))   /*循環(huán)讀數(shù)據(jù)直到文件尾結(jié)束*/
    {
     if(fread(p1,L,1,fp)!=1) break;   /*如果沒讀到數(shù)據(jù),跳出循環(huán)*/
     p1->next=(S *)malloc(L);   /*為下一個結(jié)點開辟空間*/
     if(!p1->next)
       {
        printf("Out of memory!\n");
        return (head);
       }
p2=p1;          /*使p2指向剛才p1指向的結(jié)點*/
p1=p1->next;    /*指針后移,新讀入數(shù)據(jù)鏈到當前表尾*/
    }
p2->next=NULL;    /*最后一個結(jié)點的后繼指針為空*/
fclose(fp);
printf("You have success to read data from the file!\n");
return (head);
}

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
色综合久久久久综合99| 免费成人在线观看视频| 成人免费视频免费观看| 国产午夜一区二区三区| 成人在线视频一区二区| 国产精品久久久久久久久免费桃花| 99久久国产综合色|国产精品| 亚洲精品福利视频网站| 91精品麻豆日日躁夜夜躁| 久久精品国产第一区二区三区| 久久精品一级爱片| 色先锋资源久久综合| 三级不卡在线观看| 日本一区二区免费在线观看视频| 91免费精品国自产拍在线不卡| 亚洲最大成人综合| 欧美日韩1区2区| 麻豆成人91精品二区三区| 日本一区二区三级电影在线观看 | 高清久久久久久| 国产精品不卡在线| 欧美久久久久久蜜桃| 九色|91porny| 一区二区三区四区在线播放| 精品福利二区三区| 色综合网色综合| 久久激情五月婷婷| 有坂深雪av一区二区精品| 日韩欧美国产高清| 色欲综合视频天天天| 精品亚洲国内自在自线福利| 亚洲日本va在线观看| 日韩美女天天操| 色综合久久久久综合体桃花网| 久久99热这里只有精品| 亚洲激情中文1区| 精品人在线二区三区| 欧美性猛片xxxx免费看久爱| 国产精品1024久久| 五月天网站亚洲| 中文字幕成人在线观看| 日韩一区国产二区欧美三区| 99久久婷婷国产综合精品电影| 日韩精品欧美成人高清一区二区| 亚洲人成小说网站色在线 | 欧美精品久久99久久在免费线| 国产原创一区二区| 五月综合激情婷婷六月色窝| 国产精品不卡在线观看| 久久综合色婷婷| 欧美日韩国产一区二区三区地区| 91在线视频网址| 国产乱人伦偷精品视频不卡| 久久综合综合久久综合| 亚州成人在线电影| 亚洲最新视频在线播放| 中文字幕日本乱码精品影院| 日韩成人av影视| 久久女同精品一区二区| 91精品国产91热久久久做人人| 99riav久久精品riav| 九九热在线视频观看这里只有精品| 精品99久久久久久| 色哟哟日韩精品| 福利电影一区二区| 国产成人精品免费在线| 精品一区二区三区在线播放视频| 青娱乐精品视频| 香蕉加勒比综合久久| 夜夜精品浪潮av一区二区三区| 亚洲女同一区二区| 亚洲三级免费电影| 亚洲免费在线视频一区 二区| 国产精品欧美精品| 国产精品三级久久久久三级| 欧美国产精品一区| 国产精品国产精品国产专区不片| 欧美激情一区二区三区在线| 国产精品家庭影院| 中文字幕亚洲视频| 亚洲欧美另类图片小说| 亚洲综合一区在线| 午夜视频在线观看一区| 日本欧美一区二区在线观看| 91精品国产欧美一区二区18| 91年精品国产| 色婷婷av一区二区三区大白胸| 欧洲精品在线观看| 欧美日韩精品一区二区天天拍小说 | 中文字幕在线一区二区三区| 国产欧美精品一区二区色综合| 国产精品动漫网站| 亚洲久草在线视频| 性做久久久久久久久| 日本在线不卡一区| 国产98色在线|日韩| av午夜一区麻豆| 欧美日韩免费视频| 欧美成人一级视频| 中文字幕精品综合| 尤物av一区二区| 麻豆精品一区二区综合av| 国产99一区视频免费| 色噜噜狠狠成人中文综合| 欧美日韩mp4| 欧美国产欧美亚州国产日韩mv天天看完整| 亚洲少妇最新在线视频| 天天综合色天天综合| 国产成人精品影视| 国产精品护士白丝一区av| 国产精品欧美极品| 日韩中文字幕一区二区三区| 国产在线麻豆精品观看| 91麻豆精东视频| 日韩三级伦理片妻子的秘密按摩| 国产精品久久综合| 亚洲1区2区3区视频| 高清国产一区二区| 在线91免费看| 亚洲国产成人午夜在线一区| 亚洲va在线va天堂| 成人av电影观看| 欧美日韩国产精选| 综合激情网...| 老司机免费视频一区二区| 91在线看国产| 欧美精品一区视频| 午夜精品国产更新| 99久久伊人精品| 欧美电影免费提供在线观看| 一区二区三区四区国产精品| 国产不卡视频一区| 日韩精品中文字幕在线一区| 亚洲一区在线视频观看| 成人永久看片免费视频天堂| 青娱乐精品视频| 色综合天天综合网天天看片| 久久新电视剧免费观看| 日韩电影一区二区三区| 在线视频你懂得一区| 国产精品色哟哟网站| 黄页视频在线91| 欧美一区二区福利视频| 亚洲一区二区在线播放相泽| 成人激情综合网站| 国产欧美一区二区精品仙草咪| 蜜桃91丨九色丨蝌蚪91桃色| 欧美午夜精品久久久久久孕妇| 亚洲色图清纯唯美| 成人午夜av在线| 国产欧美日韩不卡| 国产精品一区二区你懂的| 精品女同一区二区| 美女视频黄频大全不卡视频在线播放| 在线亚洲精品福利网址导航| 亚洲精品老司机| 日本乱人伦一区| 伊人一区二区三区| 欧美午夜视频网站| 亚洲国产精品久久久久婷婷884| 一本色道久久综合狠狠躁的推荐 | av不卡免费在线观看| 中文天堂在线一区| 成人福利视频网站| 中文乱码免费一区二区| 成人国产免费视频| 一色屋精品亚洲香蕉网站| youjizz久久| 综合久久国产九一剧情麻豆| 91免费版pro下载短视频| 亚洲久本草在线中文字幕| 色狠狠色噜噜噜综合网| 性做久久久久久免费观看| 7777精品伊人久久久大香线蕉完整版 | 欧美一二区视频| 另类中文字幕网| 国产无一区二区| eeuss鲁片一区二区三区在线看| 亚洲三级在线免费| 欧美日韩午夜影院| 六月丁香婷婷久久| 国产精品美日韩| 91视视频在线直接观看在线看网页在线看 | 亚洲午夜电影网| 欧美妇女性影城| 韩日欧美一区二区三区| 欧美激情一区三区| 91福利资源站| 久久国产福利国产秒拍| 国产女同互慰高潮91漫画| 在线一区二区三区四区五区| 日韩av电影天堂| 久久亚洲一区二区三区明星换脸| 成年人网站91| 五月婷婷色综合| 日本一区二区免费在线观看视频| 色婷婷久久综合| 黄网站免费久久| 亚洲伊人色欲综合网| 久久久91精品国产一区二区三区|