C語(yǔ)言課程設(shè)計(jì)報(bào)告--學(xué)生成績(jī)管理系統(tǒng)_第1頁(yè)
C語(yǔ)言課程設(shè)計(jì)報(bào)告--學(xué)生成績(jī)管理系統(tǒng)_第2頁(yè)
C語(yǔ)言課程設(shè)計(jì)報(bào)告--學(xué)生成績(jī)管理系統(tǒng)_第3頁(yè)
C語(yǔ)言課程設(shè)計(jì)報(bào)告--學(xué)生成績(jī)管理系統(tǒng)_第4頁(yè)
C語(yǔ)言課程設(shè)計(jì)報(bào)告--學(xué)生成績(jī)管理系統(tǒng)_第5頁(yè)
已閱讀5頁(yè),還剩26頁(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、學(xué)生成績(jī)管理系統(tǒng)課程設(shè)計(jì)報(bào)告2010-7-9一、程序整體規(guī)劃:1.系統(tǒng)的基本功能數(shù)據(jù)的錄入:如錄入學(xué)生的基本信息,以及該學(xué)生選修課程的基本信息;數(shù)據(jù)的修改:如修改指定學(xué)號(hào)、或者指定姓名的學(xué)生信息,或者修改其選修課程信息;數(shù)據(jù)的插入:插入某個(gè)學(xué)生信息;數(shù)據(jù)的查詢:如按學(xué)號(hào)查詢、按姓名查詢等;數(shù)據(jù)的刪除:如刪除指定學(xué)號(hào)、或者指定姓名的學(xué)生及其選修課程信息;平均成績(jī)的計(jì)算:計(jì)算每個(gè)學(xué)生各門功課的平均成績(jī),并按平均成績(jī)從高到低的次序輸出學(xué)生信息;考慮用文件把數(shù)據(jù)保存起來(lái)2、首先是結(jié)構(gòu)體的定義:typedef struct message_studentchar number6;char name20;

2、char sex4;float subjectnumsubs;float score;float average;int index;student;int numstus;student *pointer; int lens;定義學(xué)生數(shù)目指向結(jié)構(gòu)體數(shù)組次遲到時(shí)候分配內(nèi)存3 、部分重要函數(shù)聲明 :intmenu_select();決定主界面的函數(shù)intopenfile(student stu);打開文件的函數(shù)intfindrecord(student stud);查找信息的函數(shù)intwritetotext(student stud);保存文件的函數(shù)void sort(student stu);

3、查找信息的函數(shù)void deleterecord(student stu, int i);刪除信息的函數(shù)voidaddrecord(student stud);增加學(xué)生信息的函數(shù)void display(student stud, int n1, int n2); 數(shù)據(jù)的顯示函數(shù)voidsortnum(student stud);以下幾個(gè)均為排序函數(shù)voidsortnum2(student stud);voidsortname(student stud);voidsortname2(student stud);voidsortcount(student stud);voidsortcount2

4、(student stud);4、設(shè)計(jì)思路1、主函數(shù)以switch和case語(yǔ)句引出其他子函數(shù)。然后進(jìn)行其他子函數(shù)的調(diào)用。2、定義結(jié)構(gòu)體 student ,讓其包含如姓名性別等基本信息。同時(shí)定義結(jié)構(gòu)體指針,以便后面子函數(shù)對(duì)某一項(xiàng)排序后輸出該學(xué)生的全部信息。LENS合結(jié)構(gòu)體數(shù)組分配內(nèi)存。3、各個(gè)函數(shù)運(yùn)行并相互調(diào)用其他子函數(shù),例如幾個(gè)排序函數(shù)全部被其它函數(shù)調(diào)用并輸出結(jié)果。具體各子函數(shù)之間的關(guān)系見(jiàn)源代碼。4、student stui表示的是一個(gè)結(jié)構(gòu)體,口內(nèi)填大于等于0的數(shù),這可以解釋各個(gè)子函數(shù)中出現(xiàn)此類情況:例如strcmp(str,)=0是該結(jié)構(gòu)體內(nèi)的第i+1個(gè)學(xué)生滿足上述條件

5、。由Studi.變量來(lái)引用各結(jié)構(gòu)體中的變量,然后用輸出函數(shù)相應(yīng)輸出該結(jié)構(gòu)體內(nèi)的信息一 程序模板細(xì)致分析:1 .程序涉及的模板:主程序模板.查詢模塊.刪除模板.將所有記錄寫入文件.輸出模板.修改信息模板.錄入 信息*II板.和排序模板.排序模板可按如下進(jìn)行分類:按學(xué)號(hào):按學(xué)號(hào)降序排序模塊.按學(xué)號(hào)升序排序模塊.按姓名:按姓名降序排序模塊.按姓名升序排序模塊.按名次:按名次降序排序模塊.按名次升序排序模塊.2 .功能結(jié)構(gòu)聯(lián)系圖如下圖所示現(xiàn)對(duì)各個(gè)功能的實(shí)現(xiàn)及個(gè)人認(rèn)為每個(gè)功能中所用到的程序的閃光點(diǎn)和難點(diǎn):1 .增加學(xué)生記錄增加學(xué)生記錄已有記錄是否覆蓋當(dāng)輸入數(shù)據(jù)過(guò)多時(shí)內(nèi) 存的擴(kuò)展輸入數(shù)字為,但是 結(jié)果輸出

6、為男.女 )2 .已有記錄是否覆蓋:if (numstus!=0) printf("已有記錄存在是否覆蓋(y/n)n");fflush(stdin);gets(str);if (str0='Y'|str0=V) i=0;當(dāng)輸入數(shù)據(jù)過(guò)多時(shí)內(nèi)存的擴(kuò)展:(通過(guò)定義LENSF辟增加內(nèi)存)if (numstus>lens)lens+=50;pointer=(student *)realloc(pointer,lens*LEN);輸入數(shù)字為,但是結(jié)果車出為男.女:printf("請(qǐng)輸入性別(男/女1/0):");gets(studi.sex);

7、if (studi.sex0='0') strcpy(studi.sex,"女");else strcpy(studi.sex," 男");2.查詢學(xué)生記錄亮點(diǎn):清除數(shù)據(jù)緩沖區(qū)間例: ifprintf(" 請(qǐng)輸入學(xué)號(hào):");fflush(stdin);gets(str);for (i=0;i<=numstus;i+)if (strcmp(str,studi.number)=0)亮點(diǎn):利用該函數(shù)將結(jié)構(gòu)體數(shù)組中相應(yīng)相同項(xiàng)聯(lián)系在一起,確定其相 應(yīng)位置,便于輸出。子函數(shù)又調(diào)用了其他子函數(shù)display(stud,i,i)

8、;break ;else continue ;3 .修改學(xué)生記錄例:int i=-1,j;if (numstus=0) /*沒(méi)有記錄返回*/ printf("沒(méi)有可供修改的記錄!");while (i<0)i=findrecord(stud);if (i>=0)printf("要?jiǎng)h除這個(gè)學(xué)生的信息嗎(y/n )");此處有一個(gè)難點(diǎn)就是while 函數(shù)和調(diào)用其他子函數(shù)findrecord ,以及解釋為什么一開始要定義i 為-14 . 學(xué)生紀(jì)錄排序. 按學(xué)號(hào)升序排序模塊. 按姓名升序排序模塊. 按名次升序排序模塊按學(xué)號(hào):按學(xué)號(hào)降序排序模塊按姓名:

9、按姓名降序排序模塊按名次:按名次降序排序模塊在排序過(guò)程中比較名次,成績(jī)大小是不難的事情,名字通過(guò)STRCMPY數(shù)來(lái)解決排序問(wèn)題,但排序中的難點(diǎn)在于指針,結(jié)構(gòu)體變量,結(jié)構(gòu)體數(shù)組的綜合應(yīng)用,通過(guò)比較你的一組數(shù)據(jù)要輸出所有該成員相應(yīng)的信息,幾個(gè)排序中指針既指明了變量的地址,也指明了結(jié)構(gòu)體數(shù)組的地址。此處感覺(jué)很棘手詳細(xì)如下一條典型的例子: (其余的大致相同)student temp;student *p;p=stud;for (i=0;i<numstus;i+)for (j=0;j<numstus-i-1;j+)if (strcmp(,studj+1.name)>

10、0)temp=*(p+j);*(p+j)=*(p+j+1);*(p+j+1)=temp;5打開文件和保存文件fgetc(fp);while (i<numstus)fscanf(fp,"%s",stui.number); fscanf(fp,"%s",);fscanf(fp,"%s",stui.sex);for (j=0;j<numsubs;j+) fscanf(fp,"%f",&stui.subjectj); fscanf(fp,"%f",&stui

11、.score);fscanf(fp,"%f",&stui.average);fscanf(fp,"%d",&stui.index);i+;打開文件用函數(shù)fopen,fclose實(shí)現(xiàn)文件的打開,文件的關(guān)閉。其中按格式將內(nèi)存中的數(shù)據(jù)轉(zhuǎn)換成對(duì)應(yīng)的ASCII字符,并以碼形式輸出到文本文件中保存文件先給所要保存的文件一個(gè)內(nèi)存地址fp ,然后將數(shù)據(jù)輸入,數(shù)據(jù)存儲(chǔ)過(guò)程中所用到的fscanf 將數(shù)據(jù)通過(guò)一個(gè)文件指針指向一個(gè)已打開的文本文件。此處的難點(diǎn)見(jiàn)函數(shù)的整體規(guī)劃的詳細(xì)說(shuō)明。三、部分運(yùn)行的圖像 主界面:紀(jì)錄排序:信息查找和修改g L: .DouLimE

12、nts and S史比ing八:student、莫如、翻彈文件夾、螞光 貫科xugucn醛.we方式查找T2.姓名3 名次請(qǐng)輸入學(xué)號(hào)二1憚號(hào) 姓名 性別 A B C D 總分 平均分名次1.001.004.001.00311 男 1.001.00y>nn ?叱馬ux- D -?<白心自心四信信息制的信聿的?生個(gè)人出手輸:11 89女方皋退個(gè)改哲萬(wàn)名別輸 肄這修重半姑性序 語(yǔ)暴大人人哌 回刪定畫按要常請(qǐng)請(qǐng)請(qǐng)請(qǐng)97-wi學(xué)號(hào) 姓名 性別 A D C D 總分 平均分名次14男98.0097.0095 .00109.00 393.0097.5022男2 .602.062.002-B08.

13、002.B033女3.003.0S3.003-0012.3.00限回車鍵退出文件保存和顯示數(shù)據(jù)統(tǒng)計(jì)四.程序主要代碼include ""#include ""#include ""#define H_STUDENT_HH#define LEN sizeof ( struct message_student) /* 一個(gè)結(jié)構(gòu)體數(shù)組元素的長(zhǎng)度*/#define numsubs 4/* 學(xué)科數(shù)目 */typedef struct message_student/* 結(jié)構(gòu)體定義*/ char number6; char name20; char

14、 sex4; float subjectnumsubs; float score; float average; int index;student;int numstus;/* 學(xué)生數(shù)目 */student *pointer;/* 指向結(jié)構(gòu)體數(shù)組 */int lens;int menu_select();/* 函數(shù)聲明 */int openfile(student stu);int findrecord(student stud);int writetotext(student stud);void display1();void showtable();void sort(student

15、stu);void deleterecord(student stu, int i);void addrecord(student stud);void display(student stud, int n1, int n2);void amendrecord(student stud);void count(student stud);void sortnum(student stud);void sortnum2(student stud);void sortname(student stud);void sortname2(student stud);void sortcount(st

16、udent stud);void sortcount2(student stud);void statistic(student stud);void display1();int menu_select() char c;int num;printf(" nnprintf("nn");printf(" *制作人 : 陳光堯printf("nn");中南大學(xué)電氣信息類學(xué)生信息管理系統(tǒng)0916班學(xué)號(hào) 01 n n");");printf("*系統(tǒng)功能菜單*nn");printf( printf(

17、printf( printf( printf( printf( printf( printf( printf( printf( printf( printf(printf(" n");n"); n"); 1.增加學(xué)生記錄5.統(tǒng)計(jì)信息n"); *n"); 2.查詢學(xué)生記錄6.打開文件n"); *n"); 3.修改學(xué)生記錄7.保存文件n"); *n"); 4. 學(xué)生紀(jì)錄排序 n"); n"); * n");n");printf(" 請(qǐng)選擇 1-8:&

18、quot;);fflush(stdin);c=getchar();return (c);/* 查詢模塊 */int findrecord(student stud)/* 查找信息 */system("cls");char str20; int i,num;if (numstus=0)printf(" 沒(méi)有可被查找的記錄 n");printf(" 按回車鍵退出 ");fflush(stdin);getchar();return -1;elseprintf(" 以何種方式查找n1. 學(xué)號(hào) t2. 姓名 t3. 名次 n"

19、;);fflush(stdin);gets(str);if (str0='1')/* 按學(xué)號(hào)查找*/printf(" 請(qǐng)輸入學(xué)號(hào) :");fflush(stdin);gets(str);for (i=0;i<=numstus;i+)if (strcmp(str,studi.number)=0)display(stud,i,i);break ;else continue ;else if (str0='2')/* 按姓名查找*/printf(" 請(qǐng)輸入姓名 :");gets(str);for (i=0;i<=nu

20、mstus;i+)if (strcmp(str,)=0)display(stud,i,i);break ;else continueelse if (str0='3')/* 按名次查找*/printf(" 請(qǐng)輸入名次:");fflush(stdin);scanf("%d",&num);for (i=0;i<=numstus;i+)if (num=studi.index)display(stud,i,i); break ; else continue ;if (i>numstus)printf(&qu

21、ot; 沒(méi)有查找所要的信息。 n");printf(" 按回車鍵退出 ");fflush(stdin);getchar();return -1; return i;int openfile(student stu)int i=0,j;FILE *fp;char filename20,str2;if (numstus!=0)printf(" 已經(jīng)有記錄存在,是否保存(y/n)");fflush(stdin);gets(str);if (str0='y'|str0='Y') writetotext(stu);prin

22、tf(" 請(qǐng)輸入文件名 :");fflush(stdin);gets(filename);numstus=0;if (fp=fopen(filename,"rb+")=NULL)printf(" 無(wú)法打開該文件n");return (-1);fscanf(fp,"%d",&numstus);fgetc(fp);while (i<numstus)fscanf(fp,"%s",stui.number);fscanf(fp,"%s",);fscanf

23、(fp,"%s",stui.sex);for (j=0;j<numsubs;j+)fscanf(fp,"%f",&stui.subjectj);fscanf(fp,"%f",&stui.score);fscanf(fp,"%f",&stui.average);fscanf(fp,"%d",&stui.index);i+;fclose(fp);printf("文件讀取成功n");printf("是否顯示紀(jì)錄(y/n)")

24、;fflush(stdin);gets(str);if (str0='y'|str0='Y')display(stu,0,numstus-1);if (str0!='y'&str0!='Y'&str0!='n'&str0!='N')printf("請(qǐng)輸入n或者y!");gets(str);if (str0='y'|str0='Y')display(stu,0,numstus-1);return (0);/* 排序模塊 */v

25、oid sort(student stud)int i,j=0;char str5;student *p;p=stud;if (numstus=0)printf(" 沒(méi)有可供查詢的記錄!");while (1)for (i=0;i+)printf(" 請(qǐng)輸入查詢方式:");printf(" (直接輸入回車則結(jié)束查詢操作) n");printf("1.按照學(xué)號(hào)t");printf("2.按照姓名t");printf("3.按照名次n");fflush(stdin);gets(s

26、tr);if (strlen(str)=0) break ;if (str0='1')printf(" 請(qǐng)輸入排序次序: n");printf("1.升序排列t");printf("2.降序排列n");gets(str);if (str0='1')sortnum2(p);elsesortnum(p);display(stud,0,numstus-1);else if (str0='2')printf(" 請(qǐng)輸入排序次序: n");printf("1.升序排列

27、t");printf("2.降序排列n");gets(str);if (str0='1')sortname2(p);elsesortname(p);display(stud,0,numstus-1);else if (str0='3')printf(" 請(qǐng)輸入排序次序: n");printf("1.升序排列t");printf("2.降序排列n");gets(str);if (str0='1')sortcount2(p); elsesortcount(p);

28、display(stud,0,numstus-1);else printf(" 請(qǐng)輸入 13");printf(" 是否退出排序(y/n)");gets(str);if (str0='y'|str0='Y')break ; return ;/* 按學(xué)號(hào)降序排序模塊 */void sortnum(student stud)int i,j;student temp;student *p;p=stud;for (i=0;i<numstus;i+)for (j=0;j<numstus-i-1;j+)if (strcmp

29、(studj+1.number,studj.number)>0)temp=*(p+j);*(p+j)=*(p+j+1);*(p+j+1)=temp;/* 按學(xué)號(hào)升序排序模塊 */void sortnum2(student stud)int i,j;student temp;student *p;p=stud;for (i=0;i<numstus;i+)for (j=0;j<numstus-i-1;j+)if (strcmp(studj.number,studj+1.number)>0)temp=*(p+j);*(p+j)=*(p+j+1);*(p+j+1)=temp;/

30、* 按姓名降序排序模塊 */void sortname(student stud)int i,j;student temp;student *p;p=stud;for (i=0;i<numstus;i+)for (j=0;j<numstus-i-1;j+)if (strcmp(studj+1.name,)>0)temp=*(p+j);*(p+j)=*(p+j+1);*(p+j+1)=temp;/* 按姓名升序排序模塊*/void sortname2(student stud)int i,j;student temp;student *p;p=stud;fo

31、r (i=0;i<numstus;i+)for (j=0;j<numstus-i-1;j+)if (strcmp(,studj+1.name)>0)temp=*(p+j);*(p+j)=*(p+j+1);*(p+j+1)=temp;/* 按名次降序排序模塊*/void sortcount(student stud)int i,j;student temp;student *p;p=stud;for (i=0;i<numstus;i+)for (j=0;j<numstus-i-1;j+)if (studj+1.index>studj.ind

32、ex)temp=*(p+j);*(p+j)=*(p+j+1);*(p+j+1)=temp;*/* 按名次升序排序void sortcount2(student stud)int i,j;student temp;student *p;p=stud;for (i=0;i<numstus;i+)for (j=0;j<numstus-i-1;j+)if (studj.index>studj+1.index)temp=*(p+j);*(p+j)=*(p+j+1);*(p+j+1)=temp;void statistic(student stud)/* 新增功能,輸出統(tǒng)計(jì)信息 */ i

33、nt i,j=0,k=0;char c1,str2;float averagenumsubs,sum=0; if (numstus=0)printf(" 沒(méi)有可被查找的記錄n");elsewhile (1)printf(" 下面將統(tǒng)計(jì)考試成績(jī)n");printf(" 請(qǐng)選擇你要統(tǒng)計(jì)哪科的成績(jī)tn");fflush(stdin);c1=getchar();printf("t一共有個(gè) %(dE錄 n",numstus);/* 總共記錄數(shù) */switch (c1)case '1':for (i=0;i&

34、lt;numstus;i+)/* 循環(huán)輸入判斷*/sum+=studi.subject0;if (studk.subject0>studi.subject0) k=i;if (studj.subject0<studi.subject0) j=i;average0=sum/numstus;printf("t科目A勺最高分:n");/*最高分*/printf("tt學(xué)號(hào) :%s 姓名 :%s 分?jǐn)?shù) :%.2fn",studj.number,,studj.subject0);printf("t科目A勺最低分是:n&qu

35、ot;);/*最低分*/printf("tt學(xué)號(hào) :%s 姓名 :%s 分?jǐn)?shù) :%.2fn",studk.number,,studk.subject0);printf("t科目 A勺平均分是 5.2fn",average0);/* 平均分 */break ;case '2':for (i=0;i<numstus;i+)/* 循環(huán)輸入判斷*/sum+=studi.subject1;if (studk.subject1>studi.subject1) k=i;if (studj.subject1<stud

36、i.subject1) j=i;average1=sum/numstus;printf("t科目由勺最高分:n");/*最高分*/printf("tt學(xué)號(hào):%s姓名:%s分printf("t科目由勺最低分是:n");/*最低分*/printf("tt學(xué)號(hào):%s姓名:%s分?jǐn)?shù) :%.2fn",studk.number,,studk.subject1);printf("t科目由勺平均分是 5.2fn",average1);分*/break ;case '3':for (i=

37、0;i<numstus;i+)/* 循環(huán)輸入判斷*/sum+=studi.subject2;if (studk.subject2>studi.subject2) k=i;if (studj.subject2<studi.subject2) j=i;average2=sum/numstus;printf("t科目C勺最高分:n");/*最高分*/printf("tt學(xué)號(hào) :%s 姓名 :%s 分?jǐn)?shù) :%.2fn",studj.number,,studj.subject2);printf("t科目C勺最低分是:

38、n");/*最低分*/printf("tt學(xué)號(hào) :%s 姓名 :%s 分?jǐn)?shù) :%.2fn",studk.number,,studk.subject2);printf("t科目 C勺平均分是 5.2fn",average2);break ;case '4':for (i=0;i<numstus;i+)/* 循環(huán)輸入判斷*/sum+=studi.subject3;if (studk.subject3>studi.subject3) k=i;if (studj.subject3<studi.sub

39、ject3) j=i;/* 平均/* 平均分 */average3=sum/numstus;printf("t科目D勺最高分:n");/*最高分*/printf("tt學(xué)號(hào) :%s 姓名 :%s 分?jǐn)?shù) :%.2fn",studj.number,,studj.subject3);printf("t科目D勺最低分是:n");/*最低分*/printf("tt學(xué)號(hào) :%s 姓名 :%s 分?jǐn)?shù) :%.2fn",studk.number,,studk.subject3);printf(

40、"t科目 D勺平均分是 5.2fn",average3);/* 平均分*/break ; default :printf(" 輸入錯(cuò)誤!請(qǐng)輸入14之間的數(shù)n"); sum=0; getchar(); printf(" 是否繼續(xù)進(jìn)行統(tǒng)計(jì)(y/n)");gets(str); if (str0='y'|str0='Y') ; else break ; /* 將所有記錄寫入文件*/int writetotext(student stud)/* 將所有記錄寫入文件*/int i=0,j;FILE *fp;char

41、 filename20;printf(" 輸入文件名稱:");gets(filename);fp=fopen(filename,"w");fprintf(fp,"%dn",numstus);while (i<numstus) fprintf(fp,"%s %s %s ",studi.number,,studi.sex);for (j=0;j<numsubs;j+)fprintf(fp,"%f ",studi.subjectj);fprintf(fp,"%

42、f %f %d ",studi.score,studi.average,studi.index);i+;fclose(fp);printf(" 已成功存儲(chǔ) !n");display(stud,0,numstus-1);numstus=0;return 0;void showtable() printf("n");printf(" 學(xué)號(hào) t 姓名 t 性別 tAtBtCtDt 總分 t 平均分 t 名次 n");printf("n");/* 輸出模塊 */ void display(student stud

43、, int n1, int n2)int i;showtable();/* 顯示表頭 */for (i=n1;i<=n2;i+)printf("%st%st%st%.2ft%.2ft%.2ft%.2ft%.2ft%.2ft%dtn",studi.number, ,studi.sex,studi.subject0,studi.subject1,studi.subject 2,studi.subject3,studi.score,studi.average,studi.index);/* 通過(guò)循環(huán)輸出數(shù)據(jù) */printf(" 按回車鍵退出

44、");getchar();/* 修改信息模塊*/void amendrecord(student stud)char str5;/* 供用戶輸入 */int i=-1,j;if (numstus=0) /* 沒(méi)有記錄返回 */printf(" 沒(méi)有可供修改的記錄! ");while (i<0)i=findrecord(stud);if (i>=0)printf(" 要?jiǎng)h除這個(gè)學(xué)生的信息嗎(y/n)");gets(str);if (str0='y'|str0='Y')deleterecord(stud,

45、i);count(stud);elseprintf(" 確定要修改這個(gè)學(xué)生的信息嗎 (y/n)");gets(str);if (str0='y'|str0='Y')printf(" 下面請(qǐng)重新輸入學(xué)生的信息:n");printf("請(qǐng)輸入學(xué)號(hào):");gets(studi.number);printf("請(qǐng)輸入姓名:");gets();printf("請(qǐng)輸入性別( 男/ 女1/0):");gets(str);if (str0='0'

46、;)strcpy(studi.sex,"女");elsestrcpy(studi.sex,"男 ");studi.score=0;printf(" 請(qǐng)按順序輸入成績(jī):");for (j=0;j<numsubs;j+)scanf("%f",&studi.subjectj);studi.score+=studi.subjectj;getchar();studi.average=studi.score/numsubs;count(stud);display(stud,0,numstus-1);printf(

47、" 是否繼續(xù)進(jìn)行其他修改(y/n)n");gets(str);if (str0='y'|str0='Y')i=-1;else i=1;/* 刪除模塊 */void deleterecord(student stu, int i)/* 刪除信息 */int j;while (i>=0)for (j=i;j<numstus;j+)stuj=stuj+1;numstus-;printf(" 刪除成功 !n");/* 排序模塊 */void count(student stud)int i,j;for (i=0;i&l

48、t;numstus;i+)studi.index=1;for (j=0;j<numstus;j+)if (studj.score>studi.score) studi.index+;/* 錄入信息模塊*/void addrecord(student stud)system("cls");int i=0,j,num;char str5;if (numstus!=0)printf(" 已有記錄存在是否覆蓋(y/n)n");fflush(stdin);gets(str);if (str0='Y'|str0='y')i

49、=0;else i=numstus;printf(" 請(qǐng)輸入增加的學(xué)生信息條目數(shù):");scanf("%d",&num);if (i=0)numstus=num;else numstus+=num;if (numstus>lens)lens+=50;pointer=(student *)realloc(pointer,lens*LEN);printf(" 請(qǐng)輸入學(xué)生信息 :n");for (;i<numstus;i+)printf(" 請(qǐng)輸入學(xué)號(hào) :");fflush(stdin);gets(studi.number);printf("請(qǐng)輸入姓名:");gets();printf("請(qǐng)輸入性別( 男/女 1/0):");gets(studi.sex);if (studi.sex0='0') strcpy(studi.sex,"女");else strcpy(studi.sex," 男 ");prin

溫馨提示

  • 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)論