學(xué)生成績(jī)管理系統(tǒng)c語(yǔ)言代碼_第1頁(yè)
學(xué)生成績(jī)管理系統(tǒng)c語(yǔ)言代碼_第2頁(yè)
學(xué)生成績(jī)管理系統(tǒng)c語(yǔ)言代碼_第3頁(yè)
學(xué)生成績(jī)管理系統(tǒng)c語(yǔ)言代碼_第4頁(yè)
學(xué)生成績(jī)管理系統(tǒng)c語(yǔ)言代碼_第5頁(yè)
已閱讀5頁(yè),還剩8頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、include<stdio。h>includedos.h#define N sizeof(struct STH)#define GESHI  "%10ld%10s-5s-4d/2d/-4d%-12s12s%sn”#define PRINTF  ”學(xué)號(hào)      姓名     性別   生   日    系別        班級(jí)

2、        家庭住址n"struct STH* readfile();/*聲明/int insert(struct STH*);int n=0;struct dt    int year;                /全局變量*/    int month;    int

3、 day;struct STH    long num;                    /*學(xué)號(hào)不能以0開(kāi)頭/    char name9;    char sex5;    struct dt birth;    char xi20; &#

4、160;  char ban20;    char add30;    struct STH* next;head;/輸入模塊/input_message()    char ch;    int flag=1;    do            if(insert(head)!=0)    

5、60;       n+;               /*計(jì)數(shù)/        else            printf(”n有相同的的學(xué)號(hào)!”);     

6、60;  printf(”n是否繼續(xù)?(y/n)");        getchar();        scanf(”c”,&ch);        if(ch=y|ch=Y')               &#

7、160;    printf(”n繼續(xù)!”);            getch();            flag=1;/標(biāo)志程序不結(jié)束/                else  &#

8、160;         flag=0;    while(flag=1);    save_message();    printf(”按任意鍵繼續(xù)。.");    getch();/insert()模塊/               /被輸入和插

9、入模塊所調(diào)用*/int insert(struct STH*h)    struct STH p,*p0;    p=(struct STH)malloc(N);    printf(”n請(qǐng)輸入學(xué)號(hào):”);    scanf("ld”,pnum);    printf(”n請(qǐng)輸入姓名:");    scanf("s",pname);    prin

10、tf(”n請(qǐng)輸入性別:”);    getchar();      /*取走上一個(gè)留下來(lái)得n/    scanf(”s",p-sex);    printf("n請(qǐng)輸入生日(年月日,用回車(chē)隔開(kāi)):n”);    scanf(”%dd%d",pbirth。year,pbirth。month,p>birth。day);    printf(”n請(qǐng)輸入系別:"

11、;);    scanf(”%s”,p-xi);    printf(”n請(qǐng)輸入班級(jí):”);    scanf("s”,pban);    printf(”n請(qǐng)輸入家庭住址:");    scanf(”%s",p>add);    pnext=NULL;    if(*h=NULL)      

12、0;     *h=p;        return 1;        p0=h;    if(p0>num>pnum)            p-next=p0;        *h=p;  &

13、#160;     return 1;        while(p0next!=NULL&p0next-nump>num)        p0=p0next;    if(p0next=NULL)            p0-next=p;   

14、0;    return 1;        else if(p0nextnum=pnum)            free(p);            /有相同數(shù)據(jù)輸入失敗*/        return 0; &#

15、160;      else            p-next=p0next;        p0-next=p;        return 1;    /*讀文件模塊/         

16、0;                      /讀文件模塊中創(chuàng)建了一個(gè)新的鏈表,其返回值為新鏈表的頭指針*/struct STH readfile()    FILE *fp;    struct STH *p,*p0;    char ch;    int i;&#

17、160;   if((fp=fopen(”STH。txt”,”r")=NULL)            printf("n不能讀取文件!n");        return NULL;                 &

18、#160;                                  /*注意要該/    head=p=p0=(struct STH *)malloc(N);    fscanf(fp,”d”,n);

19、    fscanf(fp,”%c",ch);  /為了使學(xué)號(hào)和信息個(gè)數(shù)分開(kāi)加入一個(gè)/    fscanf(fp,”%ldssddd%s%ss",           pnum,p>name,p->sex,p-birth.year,pbirth。month,&p-birth.day,p-xi,pban,p->add);    p>next=NUL

20、L;    i=1;               /*如果只有一個(gè)數(shù)時(shí)跳出/    if(n!=1)            do               &

21、#160;    p=(struct STH )malloc(N);            fscanf(fp,”ldssddd%sss”,                pnum,pname,p->sex,pbirth.year,pbirth。month,p>birth。day,p-xi,p-&

22、gt;ban,p>add);            p0->next=p;            p0=p;            i+;        while(in); &

23、#160;      p0next=NULL;        fclose(fp);    return head;/插入模塊/insert_message()    struct STH p;    int flag=1;    char ch;    head=readfile();    do 

24、;           if(insert(&head)!=0)                    n+;            save_message();    

25、        printf(”);                          /計(jì)數(shù)*/        else         

26、           printf(”n添加失敗!n有相同的的學(xué)號(hào)!”);            save_message();            getch();          &

27、#160;     printf("n是否繼續(xù)?(y/n)”);        getchar();        ch=getchar();        if(ch='y'ch='Y)           

28、60;        printf("n繼續(xù)!");            flag=1;/標(biāo)志程序不結(jié)束/                else         &#

29、160;  flag=0;    while(flag=1);    printf(”n按任意鍵繼續(xù)。.");    getch();/*修改模塊/renew_message()    struct STH *p;    int i,flag=1;    long num;    p=head=readfile();    if(head

30、=NULL)            printf(”讀文件有誤!”);        getch();        else            printf(”n請(qǐng)按輸入要修改的學(xué)生的學(xué)號(hào):");     

31、;   scanf("ld",num);        for(i=0;in;i+)                    if(pnum=num)              &#

32、160;             pnum=num;                printf("n已找到要%ld號(hào)學(xué)生的信息!n”,num);              

33、60; printf(”原姓名為s  要修改為:n",pname);                scanf("s",p->name);                printf("原性別為s  要修改為:n”,p-sex);&#

34、160;               scanf(”s”,psex);                printf("原生日為d/d/%d  要修改為:n",pbirth。year,p>birth.month,p-birth.day);   &

35、#160;            scanf("%d%d%d",&p>birth.year,&p>birth。month,p>birth.day);                printf(”原系別為%s  要修改為:n”,pxi);   &

36、#160;            scanf(”%s”,pxi);                printf(”原班級(jí)為%s  要修改為:n”,p>ban);             

37、0;  scanf(”s”,pban);                printf(”原家庭住址為%s  要修改為:n",padd);                scanf("%s”,p-add);    

38、0;           printf(”你所更改后的信息為:n”);                printf(PRINTF);                printf(GESHI, 

39、;                       pnum,p->name,psex,p->birth.year,p>birth。month,pbirth.day,pxi,pban,padd);              &

40、#160; printf("n按任意鍵退出!n”);                getch();                flag=1;            

41、    break;                        else                p=pnext;      &#

42、160;         if(flag!=1)            printf("無(wú)此人信息!n");        else            save_message();   

43、;     getch();    /刪除模塊*/delete_message()    int flag;    long num;    char ch;    struct STH*p,*p0;    p0=p=head=readfile();    if(head=NULL)      &#

44、160;     printf(”文件讀取出錯(cuò)!”);        getch();        else            printf(”請(qǐng)輸入要?jiǎng)h除學(xué)生的學(xué)號(hào):n”);        scanf(”ld”,&num); 

45、0;      if(p0>num=num)                    head=p0-next;            free(p0);        

46、60;   flag=1;            n-;     /*學(xué)生數(shù)減一/                p=p0next;        while(p!=NULL)   

47、0;                if(p>num=num)                            p0>next=p-next;   &#

48、160;            free(p);                flag=1;                n;     

49、                   else                            p0=p;     

50、;           p=pnext;                            if(p>next=NULL)          

51、;  flag=0;        if(flag=1)                    printf("n永久刪除ld號(hào)學(xué)生的信息?(y/n)”,num);            getchar(); 

52、           ch=getchar();            if(ch=y'|ch='Y')                save_message();    &

53、#160;       else                            printf(”n撤消刪除!”);             &

54、#160;  getch();                            else            printf(”n刪除失敗!”);      

55、60; getch();    /查詢模塊*/inquire_message()    int i,flag=0;    long num;    struct STH p;    p=head=readfile();    if(head=NULL)            printf(”文件讀取出錯(cuò)!")

56、;        getch();        else            printf("請(qǐng)輸入要查詢學(xué)生的學(xué)號(hào):n");        scanf("%ld",num);      

57、0; for(i=0;in;i+)                    if(p->num=num)                           

58、; printf(”n信息已找到:n”);                getch();                clrscr();             &#

59、160;  printf(”*FOUND*n");                printf(”-nn”);                printf(PRINTF);         

60、       printf(GESHI,                        pnum,pname,psex,p->birth。year,p-birth.month,p>birth.day,pxi,p-ban,p-add);     &#

61、160;          printf("n-n");                printf("*END*n”);                flag=1;break;

62、                        else                p=p-next;           &

63、#160;    if(flag=0)            printf(”n無(wú)此人信息!”);        else            printf(”n顯示完畢!按任意鍵返回主菜單。.?!保?#160;     &#

64、160; getch();    /顯示模塊/output_message()    int i=0;    struct STHp;    p=head=readfile();    if(head=NULL)            printf(”文件讀取出錯(cuò)!”);      

65、60; getch();        else            clrscr();        printf(”n*STUDENT*n”);        printf(”-n");        printf

66、(PRINTF);        while(in)                    printf(GESHI,                    p

67、num,pname,p->sex,p-birth.year,p>birth。month,p->birth.day,p-xi,pban,padd);            p=pnext;            i+;             

68、   printf(”-n”);         printf(”*END*n”);        printf("n顯示完畢!n共d條信息。n按任意鍵返回主菜單.。.?!?n);        getch();    /存檔模塊/save_message()    FILE fp;

69、60;   int i;    struct STH*p;    p=head;    if(fp=fopen(”STH。txt","w”)=NULL)            printf(”讀文件錯(cuò)誤!!”);        exit(0);     

70、60;  fprintf(fp,”%d",n);    fprintf(fp,"c”,'/);                                    

71、60;                         /注意要該/    for(i=0;in;i+)            fprintf(fp,”ld s s %d d %d s %s s ”,  

72、60;             p->num,pname,p-sex,pbirth。year,p>birth。month,p>birth。day,p>xi,p->ban,padd);        p=pnext;        fclose(fp);    printf("n信

73、息已經(jīng)保存在STH。txt文件中!");    getch();   /主函數(shù)*/void main(void)    int choice;    char ch;    FILE *fp;    struct date d;    getdate(&d);     if((fp=fopen("STH。txt”,"r”)=NUL

74、L)            fp=fopen("STH。txt”,”w”);        fprintf(fp,”d”,0);        fclose(fp);        else         &

75、#160;  fscanf(fp,”d”,n);        fclose(fp);        clrscr();    printf(”制作人:通工0501 李藝凡”);    printf("nnn");    printf("        

76、60;    *      n”);    printf(”                             歡迎進(jìn)入學(xué)生戶籍系統(tǒng)      

77、             nn");    printf(”                    1 創(chuàng)建記錄n");    printf("    

78、0;               2 添加記錄n");    printf(”                    3 查找記錄n”);    printf(”   &

79、#160;                4 刪除記錄n”);    printf("                    5 修改記錄n");    printf(” 

80、;                   6 顯示全部信息n");    printf("                    0 退出程序n”);  

81、0; printf(”             *      n”);    printf(”                         

82、60;     d年%d月%d日”,d.da_year,d.da_mon,d。da_day);    printf("                   n       請(qǐng)選擇(0-6):");    scanf(”%d”,&ch

83、oice);    if(n=0)       /記錄為空時(shí)不讓其進(jìn)行其他操作/            while(choice<0|choice>1)                    printf(”記錄為空,

84、無(wú)法操作此項(xiàng)!");            printf(”請(qǐng)重新輸入:(0或1)n");            scanf(”d",choice);                else  

85、60;         while(choice0|choice6)                    printf(”輸入有誤!n 請(qǐng)重新輸入:n”);            scanf(”d”,choice);  

86、;               do            switch(choice)                    case 1:input_message();break; &

87、#160;          case 2:insert_message();break;            case 3:inquire_message();break;            case 4:delete_message();break;  

88、60;         case 5:renew_message();break;            case 6:output_message();break;            case 0:break;       

89、         printf(”n按任意鍵返回主菜單!");        getchar();        ch=y';        if(ch=Y'|ch='y)                    clrscr();            printf(”制作人:通工0501

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論