學(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>#include<dos.h>#define N sizeof(struct STH)#define GESHI  "%-10ld%-10s%-5s%-4d/%-2d/%-4d%-12s%-12s%sn"#define PRINTF  "學(xué)號(hào)      姓名     性別   生   日    系別  &#

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

3、 int month;    int day;struct STH    long num;                    /*學(xué)號(hào)不能以0開頭*/    char name9;    char sex5;    struct dt birth;

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

5、(&head)!=0)            n+;               /*計(jì)數(shù)*/        else            printf(&qu

6、ot;n有相同的的學(xué)號(hào)!");        printf("n是否連續(xù)?(y/n)");        getchar();        scanf("%c",&ch);        if(ch='y'|ch='Y')

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

8、160;              else            flag=0;    while(flag=1);    save_message();    printf("按任意鍵連續(xù).");    getch();/*i

9、nsert()模塊*/               /*被輸入和插入模塊所調(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&qu

10、ot;,&p->num);    printf("n請(qǐng)輸入姓名:");    scanf("%s",p->name);    printf("n請(qǐng)輸入性別:");    getchar();      /*取走上一個(gè)留下來(lái)得n*/    scanf("%s",p->sex); 

11、60;  printf("n請(qǐng)輸入生日(年月日,用回車隔開):n");    scanf("%d%d%d",&p->birth.year,&p->birth.month,&p->birth.day);    printf("n請(qǐng)輸入系別:");    scanf("%s",p->xi);    printf("n請(qǐng)輸入班級(jí):&qu

12、ot;);    scanf("%s",p->ban);    printf("n請(qǐng)輸入家庭住址:");    scanf("%s",p->add);    p->next=NULL;    if(*h=NULL)            *h=p;  

13、      return 1;        p0=*h;    if(p0->num>p->num)            p->next=p0;        *h=p;        ret

14、urn 1;        while(p0->next!=NULL&&p0->next->num<p->num)        p0=p0->next;    if(p0->next=NULL)            p0->next=p;   

15、;     return 1;        else if(p0->next->num=p->num)            free(p);            /*有相同數(shù)據(jù)輸入失敗*/      

16、60; return 0;        else            p->next=p0->next;        p0->next=p;        return 1;    /*讀文件模塊*/    

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

18、; char ch;    int i;    if(fp=fopen("STH.txt","r")=NULL)            printf("n不能讀取文件!n");        return NULL;        

19、0;                                           /*留意要該*/    head=p=p0=(struct

20、STH *)malloc(N);    fscanf(fp,"%d",&n);    fscanf(fp,"%c",&ch);  /*為了使學(xué)號(hào)和信息個(gè)數(shù)分開加入一個(gè)/*/    fscanf(fp,"%ld%s%s%d%d%d%s%s%s",           &p->num,p->name,p-&

21、gt;sex,&p->birth.year,&p->birth.month,&p->birth.day,p->xi,p->ban,p->add);    p->next=NULL;    i=1;               /*假如只有一個(gè)數(shù)時(shí)跳出*/    if(n!=1)  &

22、#160;         do                    p=(struct STH *)malloc(N);            fscanf(fp,"%ld%s%s%d%d%d%s%s%s",

23、0;               &p->num,p->name,p->sex,&p->birth.year,&p->birth.month,&p->birth.day,p->xi,p->ban,p->add);            p0->next=p;

24、            p0=p;            i+;        while(i<n);        p0->next=NULL;        fcl

25、ose(fp);    return head;/*插入模塊*/insert_message()    struct STH *p;    int flag=1;    char ch;    head=readfile();    do            if(insert(&head)!=0) 

26、;                   n+;            save_message();            printf("");   

27、0;                      /*計(jì)數(shù)*/        else                    printf("

28、n添加失敗!n有相同的的學(xué)號(hào)!");            save_message();            getch();                printf("n是否連續(xù)?(y/n)");&#

29、160;       getchar();        ch=getchar();        if(ch='y'|ch='Y')                    printf(

30、"n連續(xù)!");            flag=1;/*標(biāo)志程序不結(jié)束*/                else            flag=0;    while(flag=1);

31、    printf("n按任意鍵連續(xù).");    getch();/*修改模塊*/renew_message()    struct STH *p;    int i,flag=1;    long num;    p=head=readfile();    if(head=NULL)       

32、60;    printf("讀文件有誤!");        getch();        else            printf("n請(qǐng)按輸入要修改的同學(xué)的學(xué)號(hào):");        scanf("%ld&q

33、uot;,&num);        for(i=0;i<n;i+)                    if(p->num=num)                 

34、           p->num=num;                printf("n已找到要%ld號(hào)同學(xué)的信息!n",num);                pr

35、intf("原姓名為%s  要修改為:n",p->name);                scanf("%s",p->name);                printf("原性別為%s  要修改為:n&quo

36、t;,p->sex);                scanf("%s",p->sex);                printf("原生日為%d/%d/%d  要修改為:n",p->birth.year,p->birt

37、h.month,p->birth.day);                scanf("%d%d%d",&p->birth.year,&p->birth.month,&p->birth.day);                p

38、rintf("原系別為%s  要修改為:n",p->xi);                scanf("%s",p->xi);                printf("原班級(jí)為%s  要修改為:n",

39、p->ban);                scanf("%s",p->ban);                printf("原家庭住址為%s  要修改為:n",p->add);    

40、;            scanf("%s",p->add);                printf("你所更改后的信息為:n");             

41、;   printf(PRINTF);                printf(GESHI,                        p->num,p->name,p->s

42、ex,p->birth.year,p->birth.month,p->birth.day,p->xi,p->ban,p->add);                printf("n按任意鍵退出!n");                getc

43、h();                flag=1;                break;                 

44、0;      else                p=p->next;                if(flag!=1)          &#

45、160; printf("無(wú)此人信息!n");        else            save_message();        getch();    /*刪除模塊*/delete_message()    int flag;  

46、0; long num;    char ch;    struct STH*p,*p0;    p0=p=head=readfile();    if(head=NULL)            printf("文件讀取出錯(cuò)!");        getch();  

47、      else            printf("請(qǐng)輸入要?jiǎng)h除同學(xué)的學(xué)號(hào):n");        scanf("%ld",&num);        if(p0->num=num)      &#

48、160;             head=p0->next;            free(p0);            flag=1;          &

49、#160; n-;     /*同學(xué)數(shù)減一*/                p=p0->next;        while(p!=NULL)                 

50、60;  if(p->num=num)                            p0->next=p->next;                f

51、ree(p);                flag=1;                n-;                 

52、0;      else                            p0=p;                p=p->n

53、ext;                            if(p->next=NULL)            flag=0;        if(flag

54、=1)                    printf("n永久刪除%ld號(hào)同學(xué)的信息?(y/n)",num);            getchar();           

55、; ch=getchar();            if(ch='y'|ch='Y')                save_message();            else &#

56、160;                          printf("n撤消刪除!");                getch();    

57、                        else            printf("n刪除失?。?quot;);        getch();    /*查

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

59、160;   getch();        else            printf("請(qǐng)輸入要查詢同學(xué)的學(xué)號(hào):n");        scanf("%ld",&num);        for(i=0;i<n;i+)&

60、#160;                   if(p->num=num)                            printf("n信息

61、已找到:n");                getch();                clrscr();              

62、0; printf("*FOUND*n");                printf("-nn");                printf(PRINTF);        

63、;        printf(GESHI,                        p->num,p->name,p->sex,p->birth.year,p->birth.month,p->birth.day,p->xi,p->ban,p-&

64、gt;add);                printf("n-n");                printf("*END*n");          

65、;      flag=1;break;                        else                p=p->next;  &

66、#160;             if(flag=0)            printf("n無(wú)此人信息!");        else            printf(&

67、quot;n顯示完畢!按任意鍵返回主菜單.");        getch();    /*顯示模塊*/output_message()    int i=0;    struct STH*p;    p=head=readfile();    if(head=NULL)         

68、   printf("文件讀取出錯(cuò)!");        getch();        else            clrscr();        printf("n*STUDENT*n");   &#

69、160;    printf("-n");        printf(PRINTF);        while(i<n)                    printf(GESHI,   

70、;                 p->num,p->name,p->sex,p->birth.year,p->birth.month,p->birth.day,p->xi,p->ban,p->add);            p=p->next; 

71、0;          i+;                printf("-n");         printf("*END*n");        printf("

72、;n顯示完畢!n共%d條信息.n按任意鍵返回主菜單.",n);        getch();    /*存檔模塊*/save_message()    FILE *fp;    int i;    struct STH*p;    p=head;    if(fp=fopen("STH.txt","w&qu

73、ot;)=NULL)            printf("讀文件錯(cuò)誤!");        exit(0);        fprintf(fp,"%d",n);    fprintf(fp,"%c",'/');    &

74、#160;                                                 &

75、#160;       /*留意要該*/    for(i=0;i<n;i+)            fprintf(fp,"%ld %s %s %d %d %d %s %s %s ",                p->nu

76、m,p->name,p->sex,p->birth.year,p->birth.month,p->birth.day,p->xi,p->ban,p->add);        p=p->next;        fclose(fp);    printf("n信息已經(jīng)保存在STH.txt文件中!");    getch(); 

77、;  /*主函數(shù)*/void main(void)    int choice;    char ch;    FILE *fp;    struct date d;    getdate(&d);     if(fp=fopen("STH.txt","r")=NULL)        &#

78、160;   fp=fopen("STH.txt","w");        fprintf(fp,"%d",0);        fclose(fp);        else            fscanf(fp

79、,"%d",&n);        fclose(fp);        clrscr();    printf("制作人:通工0501 李藝凡");    printf("nnn");    printf("       

80、0;     *      n");    printf("                             歡迎進(jìn)入同學(xué)戶籍系統(tǒng)   

81、60;               nn");    printf("                    1 創(chuàng)建記錄n");    printf(" &#

82、160;                  2 添加記錄n");    printf("                    3 查找記錄n");  

83、0; printf("                    4 刪除記錄n");    printf("                    5 修改記錄n

84、");    printf("                    6 顯示全部信息n");    printf("                

85、    0 退出程序n");    printf("             *      n");    printf("              

86、0;                %d年%d月%d日",d.da_year,d.da_mon,d.da_day);    printf("                   n   &#

87、160;   請(qǐng)選擇(0-6):");    scanf("%d",&choice);    if(n=0)       /*記錄為空時(shí)不讓其進(jìn)行其他操作*/            while(choice<0|choice>1)      

88、0;             printf("記錄為空,無(wú)法操作此項(xiàng)!");            printf("請(qǐng)重新輸入:(0或1)n");            scanf("%d",&choi

89、ce);                else            while(choice<0|choice>6)                    printf(&q

90、uot;輸入有誤!n 請(qǐng)重新輸入:n");            scanf("%d",&choice);                 do            switch(choice) &#

91、160;                  case 1:input_message();break;            case 2:insert_message();break;            case

92、3:inquire_message();break;            case 4:delete_message();break;            case 5:renew_message();break;            case 6:output_

93、message();break;            case 0:break;                printf("n按任意鍵返回主菜單!");        getchar();        ch='y'        if(ch='Y'|ch='y')                    clrscr();            print

溫馨提示

  • 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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 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)論