版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
安徽工業(yè)大學(xué)C語言實(shí)習(xí)報(bào)告專業(yè):軟件工程班級(jí):軟141姓名:吳臣學(xué)號(hào):149074166指導(dǎo)老師:陳學(xué)進(jìn)課題一1.熟悉變量、數(shù)組定義、使用、輸入、輸出等基本操作2.進(jìn)行選擇、循環(huán)結(jié)構(gòu)程序設(shè)計(jì)練習(xí)3.掌握冒泡法排序的算法4.掌握函數(shù)的定義、調(diào)用、聲明,以及參數(shù)的兩種傳遞方式課題二1.熟悉變量的指針和指向變量的的指針變量的概念和使用.2.熟悉數(shù)組的指針和指向數(shù)組的的指針變量的概念和使用.課題三1.掌握結(jié)構(gòu)體變量及數(shù)組的定義、賦值、初始化、輸入、輸出2.結(jié)構(gòu)體數(shù)組的操作。課題四1.掌握文件指針的概念和運(yùn)用2.掌握文件的相關(guān)操作:打開、讀、寫、關(guān)閉3.掌握文件的定位操作課題五目標(biāo):學(xué)會(huì)使用鏈表與指針對(duì)結(jié)構(gòu)體進(jìn)行插入,刪除,輸出。代碼:#include<stdio.h>#include<stdlib.h>#include<process.h>#include<string.h>#include<conio.h>#defineN10typedefstructstudent{charname[8];unsignedNo;floatmath,Chinese,English;floatave;structstudent*next;/*保存下一個(gè)stu的地址*/}NODE,*linklist;voidzhu();voidscan(inta[],intn){inti;printf("\n請(qǐng)輸入%d個(gè)人成績(jī)\n",n);for(i=0;i<n;i++)scanf("%d",&a[i]);}/*****************************************************************************/voidsort(inta[],intn,charstyle){inti,j,t;if(style=='a'){for(i=0;i<n-1;i++)for(j=0;j<n-1-i;j++){if(a[j]>a[j+1]){t=a[j];a[j]=a[j+1];a[j+1]=t;}}printf("按照升序排列的結(jié)果:\n");for(i=0;i<n;i++)printf("%d\t",a[i]);printf("\n");}if(style=='d'){for(i=0;i<n-1;i++)for(j=0;j<n-1-i;j++){if(a[j+1]>a[j]){t=a[j];a[j]=a[j+1];a[j+1]=t;}}printf("按照降序排列的結(jié)果:\n");for(i=0;i<n;i++)printf("%d\t",a[i]);printf("\n");}}/*****************************************************************************/voidscan_1(inta[],intn){inti; printf("定義一個(gè)數(shù)組stu[10]存放10個(gè)學(xué)生的成績(jī),從鍵盤輸入數(shù)據(jù)\n");for(i=0;i<n;i++)scanf("%d",&a[i]);}/*****************************************************************************/voidsort_stu(inta[],intn){inti,j,t; printf("\n將成績(jī)數(shù)組按照從高到低進(jìn)行排序\n");for(i=0;i<n-1;i++)for(j=0;j<n-1-i;j++)if(a[j+1]>a[j]){t=a[j+1];a[j+1]=a[j];a[j]=t;}}/*****************************************************************************/voidprint_stu(inta[],intn){inti; printf("\n將數(shù)組stu[10]的內(nèi)容輸出到屏幕上\n");for(i=0;i<n;i++)printf("%d\t",a[i]);printf("\n");}/*****************************************************************************/voidscan_str(charstr[]){inti=0;printf("輸入字符串“studentscore”,復(fù)制該字符串并輸出\n");fflush(stdin);gets(str);printf("輸出該字符串\n");printf("%s",str);printf("\n");}/*****************************************************************************/voidscan_con(structstudent*p,intn){inti;printf("格式:姓名,學(xué)號(hào),成績(jī)(數(shù)學(xué),語文,英語)\n\n");for(i=0;i<n;i++,p++){printf("請(qǐng)輸入第%d個(gè)學(xué)生數(shù)據(jù)\n",i+1);scanf("%s%d%f%f%f",(*p).name,&(*p).No,&(*p).math,&(*p).Chinese,&(*p).English);}}/*****************************************************************************/intMax1(structstudent*p){ inti,a; floatmax1=p->math;for(i=0;i<10;i++){if((p+i)->math>max1){max1=(p+i)->math;a=i;}}returna;}intMax2(structstudent*p){ inti,b; floatmax2=p->Chinese;for(i=0;i<10;i++){if((p+i)->Chinese>max2){max2=(p+i)->Chinese;b=i;}}returnb;}intMax3(structstudent*p){ inti,c; floatmax3=p->English; for(i=0;i<10;i++){if((p+i)->English>max3){max3=(p+i)->English;c=i;}}returnc;}/*****************************************************************************/voidprint_con(structstudent*p){intm=0,c=0,e=0;m=Max1(p);c=Max2(p);e=Max3(p);printf("\n\n輸出單門課成績(jī)最高的學(xué)生的學(xué)號(hào)、姓名、以及該門課程的成績(jī)\n");printf("maxmath:");printf("%s\t%d\t%.2f\n",(p+m)->name,(p+m)->No,(p+m)->math);printf("maxChinese:");printf("%s\t%d\t%.2f\n",(p+c)->name,(p+c)->No,(p+c)->Chinese);printf("maxEnglish:");printf("%s\t%d\t%.2f\n",(p+e)->name,(p+e)->No,(p+e)->English);}/******************************************************************************/voidprint_aver(structstudent*p,intn){inti,e=0;floatmax;for(i=0;i<n;i++){p[i].ave=(p+i)->math+(p+i)->Chinese+(p+i)->English; }for(i=0;i<n;i++){p[i].ave=(1.0/3.0)*p[i].ave;}max=p[0].ave;for(i=0;i<n;i++){ if(p[i].ave>max){max=p[i].ave;e=i;}} printf("\n輸出三門課程的平均分?jǐn)?shù)最高的學(xué)生的學(xué)號(hào)、姓名及其平均分\n");printf("%d\t%s\t%.2f\t%.2f\t%.2f\t%.2f\n",(p+e)->No,(p+e)->name,(p+e)->math,(p+e)->Chinese,(p+e)->English,(p+e)->ave);}/*****************************************************************************/voidsort_aver(structstudent*p,intn){inti,j;structstudentt;for(i=0;i<n-1;i++)for(j=0;j<n-1-i;j++){if(p[j+1].ave>p[j].ave){t=*(p+j);*(p+j)=*(p+j+1);*(p+j+1)=t; }}printf("\n將10個(gè)學(xué)生按照平均分?jǐn)?shù)從高到低進(jìn)行排序\n");printf("number\t\tname\tmath\tChinese\tEnglish\tave\n");for(i=0;i<n;i++)printf("%d\t%s\t%.2f\t%.2f\t%.2f\t%.2f\n",(p+i)->No,(p+i)->name,(p+i)->math,(p+i)->Chinese,(p+i)->English,(p+i)->ave);}/*****************************************************************************/voidscan_con_1(FILE*fp,structstudent*p,intn){inti;for(i=0;i<n;i++,p++){fprintf(stdout,"請(qǐng)輸入第%d個(gè)學(xué)生數(shù)據(jù)(姓名,學(xué)號(hào),成績(jī)(數(shù)學(xué),語文,英語))\n",i+1);fscanf(stdin,"%s%d%f%f%f",(*p).name,&(*p).No,&(*p).math,&(*p).Chinese,&(*p).English);}}/*****************************************************************************/voidprint_con_1(FILE*fp,structstudent*p){intm=0,c=0,e=0;m=Max1(p);c=Max2(p);e=Max3(p);fprintf(stdout,"\n\n輸出單門課成績(jī)最高的學(xué)生的學(xué)號(hào)、姓名、以及該門課程的成績(jī)\n");fprintf(stdout,"maxmath:");fprintf(stdout,"%s\t%d\t%.2f\n",(p+m)->name,(p+m)->No,(p+m)->math);fprintf(stdout,"maxChinese:");fprintf(stdout,"%s\t%d\t%.2f\n",(p+c)->name,(p+c)->No,(p+c)->Chinese);fprintf(stdout,"maxEnglish:");fprintf(stdout,"%s\t%d\t%.2f\n",(p+e)->name,(p+e)->No,(p+e)->English);}/*****************************************************************************/voidprint_aver1(FILE*fp,structstudent*p,intn){inti,e=0;for(i=0;i<n;i++){p[i].ave=(p+i)->math+(p+i)->Chinese+(p+i)->English; }for(i=0;i<n;i++){p[i].ave=(1.0/3.0)*p[i].ave;}for(i=0;i<n;i++){ if(p[i].ave>p[0].ave)e=i;}fprintf(stdout,"\n輸出三門課程的平均分?jǐn)?shù)最高的學(xué)生的學(xué)號(hào)、姓名及其平均分\n");fprintf(stdout,"%d\t%s\t%.2f\t%.2f\t%.2f\t%.2f\n",(p+e)->No,(p+e)->name,(p+e)->math,(p+e)->Chinese,(p+e)->English,(p+e)->ave);}/*****************************************************************************/voidprint_aver_con(FILE*fp,structstudent*p,intn){inti,j,e=0;floatt=0;for(i=0;i<n;i++){p[i].ave=(p+i)->math+(p+i)->Chinese+(p+i)->English; }for(i=0;i<n;i++){p[i].ave=(1.0/3.0)*p[i].ave;}for(i=0;i<n-1;i++)for(j=0;j<n-1-i;j++){if(p[j+1].ave>p[j].ave){t=p[j].ave;p[j].ave=p[j+1].ave;p[j+1].ave=t; }}fprintf(stdout,"\n將10個(gè)學(xué)生按照平均分?jǐn)?shù)從高到低進(jìn)行排序\n");fprintf(stdout,"number\t\tname\tmath\tChinese\tEnglish\tave\n");for(i=0;i<n;i++)fprintf(stdout,"%d\t%s\t%.2f\t%.2f\t%.2f\t%.2f\n",(p+i)->No,(p+i)->name,(p+i)->math,(p+i)->Chinese,(p+i)->English,(p+i)->ave);}/*****************************************************************************/voidprint_aver_con2(FILE*fp,structstudent*p){inti;fprintf(stdout,"\n從studsort.dat文件中讀取第2,4,6,8,10個(gè)學(xué)生的數(shù)據(jù)。\n");for(i=2;i<=10;i=i+2){fprintf(stdout,"%d\t%s\t%.2f\t%.2f\t%.2f",(p+i-1)->No,(p+i-1)->name,(p+i-1)->math,(p+i-1)->Chinese,(p+i-1)->English);fprintf(stdout,"\n");}}/******************************************************************************//*structstu*h;===>NoDE*horlinklisth;等價(jià);定義一個(gè)單鏈表*/linklistcreate(intn){linklisth,f,p;inti;h=(linklist)malloc(sizeof(NODE));/*申請(qǐng)空間*/f=p=h;printf("請(qǐng)輸入姓名,學(xué)號(hào)以及三門課成績(jī)\n");scanf("%s%d%f%f%f",(*p).name,&(*p).No,&(*p).math,&(*p).Chinese,&(*p).English);for(i=1;i<n;i++){f=p;p=(linklist)malloc(sizeof(NODE));/*申請(qǐng)空間*/scanf("%s%d%f%f%f",(*p).name,&(*p).No,&(*p).math,&(*p).Chinese,&(*p).English);f->next=p;}p->next=NULL;return(h);}/*****************************************************************************/voidpt(linklisth){linklistp=h;printf("\n輸出的結(jié)果是:\n");while(p!=NULL){printf("%s\t%d\t%.2f\t%.2f\t%.2f\n",p->name,p->No,p->math,p->Chinese,p->English);p=p->next;}}/*****************************************************************************/linklistdel_xh(linklisth,intnum){ linklistcurrent_node=h;linklistprevious=0; while(current_node!=0&&(current_node->No!=num)){ previous=current_node; current_node=current_node->next;}if(current_node!=0&&previous==0){ h=current_node->next; deletecurrent_node; printf("學(xué)號(hào):%d成功刪除\n",num);}elseif(current_node!=0&&previous!=0){ previous->next=current_node->next; deletecurrent_node; printf("學(xué)號(hào):%d成功刪除\n",num);}elseprintf("對(duì)不起,鏈表中沒有這個(gè)人員的信息\n");return(h);}/*****************************************************************************/linklistdel_xm(linklisth,charstr[]){linklistcurrent_node=h;linklistprevious=0; while(current_node!=0&&strcmp(current_node->name,str)!=0){ previous=current_node; current_node=current_node->next;}if(current_node!=0&&previous==0){ h=current_node->next; deletecurrent_node; printf("姓名:%s成功刪除\n",str);}elseif(current_node!=0&&previous!=0){ previous->next=current_node->next; deletecurrent_node; printf("姓名:%s成功刪除\n",str);}elseprintf("對(duì)不起,鏈表中沒有這個(gè)人員的信息\n");return(h);}/*************************鏈表的插入*****************************************/linklistinsert(linklisthead,linkliststud){linklistp1,p2,p3;p1=head;p2=stud;while((p2->No>p1->No)&&(p1->next!=NULL)){ p3=p1; p1=p1->next;}if(p2->No<=p1->No){if(head==p1)head=p2; elsep3->next=p2; p2->next=p1; }else{p1->next=p2;p2->next=NULL;}return(head);}/*****************************************************************************/voidcase1(){charstyle;intstu[N]={0};/*n個(gè)學(xué)生成績(jī)從高到低排名*/printf("pleaseinputa(升序)ord(降序)\t");scanf("%c",&style);scan(stu,N);sort(stu,N,style);printf("按任意鍵返回主菜單:\n");getch();system("cls");zhu();}/*****************************************************************************/voidcase2(){ charstu_score[20]={0}; intstu[N];/*定義一個(gè)數(shù)組stu[10]存放10個(gè)學(xué)生的成績(jī),從鍵盤輸入數(shù)據(jù)*/scan_1(stu,N);/*將數(shù)組stu[10]的內(nèi)容輸出到屏幕上*/print_stu(stu,N);/*將成績(jī)數(shù)組按照從高到低進(jìn)行排序*/sort_stu(stu,N);/*將數(shù)組stu[10]的內(nèi)容輸出到屏幕上(排序后)*/print_stu(stu,N);/*輸入字符串“studentscore”,復(fù)制該字符串并輸出*/scan_str(stu_score);printf("\n");printf("按任意鍵返回主菜單:\n");getch();system("cls");zhu();}/*****************************************************************************/voidcase3(){ structstudents[N];floata[N]={0};/*從鍵盤輸入10個(gè)學(xué)生的以上內(nèi)容*/scan_con(s,N);/*輸出單門課成績(jī)最高的學(xué)生的學(xué)號(hào)、姓名、以及該門課程的成績(jī)*/print_con(s);/*輸出三門課程的平均分?jǐn)?shù)最高的學(xué)生的學(xué)號(hào)、姓名及其平均分*/print_aver(s,N);/*將10個(gè)學(xué)生按照平均分?jǐn)?shù)從高到低進(jìn)行排序*/sort_aver(s,N);printf("\n");printf("按任意鍵返回主菜單:\n");getch();system("cls");zhu();}/*****************************************************************************/voidcase4(){ structstudents[N]; FILE*fp;/*從鍵盤輸入10個(gè)學(xué)生的以上內(nèi)容,存入文件stud.dat,關(guān)閉文件*/if((fp=fopen("stud.dat","w"))==NULL){printf("FILEOPENERROR!\n");exit(0);}scan_con_1(fp,s,N);/*打開stud.dat文件,將數(shù)據(jù)讀出,查看是否正確寫入,關(guān)閉文件。*/print_con_1(fp,s);fclose(fp);/*打開文件stud.dat文件,讀出數(shù)據(jù),將10個(gè)學(xué)生按照平均分?jǐn)?shù)從高到低進(jìn)行排序,分別將結(jié)果輸出到屏幕上和另一文件studsort.dat中。*/if((fp=fopen("stud.dat","r"))==NULL){printf("FILEOPENERROR!\n");exit(0);}print_aver_con(fp,s,N);fclose(fp);print_aver_con2(fp,s);printf("\n");printf("按任意鍵返回主菜單:\n");getch();system("cls");zhu();}/*****************************************************************************/voidcase5(){ints,m,j,i=0;chark[8];linklistl,h,p;NODEstu;printf("請(qǐng)輸入學(xué)生人數(shù)\n");scanf("%d",&m);l=create(m);pt(l);printf("請(qǐng)根據(jù)學(xué)號(hào)或姓名修改數(shù)據(jù):\n1.學(xué)號(hào)\t2.姓名\n");printf("你的選擇:\t");scanf("%d",&j);if(j>=1&&j<=2){switch(j){case1:{printf("\n請(qǐng)輸入要?jiǎng)h除的學(xué)號(hào)\t");scanf("%d",&s);printf("\n");h=del_xh(l,s);pt(h);printf("\n");}break;case2:{printf("\n請(qǐng)輸入要?jiǎng)h除的姓名\t");scanf("%s",k);printf("\n");h=del_xm(l,k);pt(h);printf("\n");}break;}}p=h;while(p!=NULL){ i++; p=p->next;}if(i<m){printf("請(qǐng)輸入新的數(shù)據(jù):\t\n");printf("格式:姓名,學(xué)號(hào),成績(jī)\n");scanf("%s%d%f%f%f",&,&stu.No,&stu.math,&stu.Chinese,&stu.English);h=insert(h,&stu);pt(h);}printf("按任意鍵返回主菜單:\n");getch();system("cls");zhu();}/*****************************************************************************/voidcase6(){printf("\n\n\n\t****************************************************************\n"); printf("\t\tcopyrightfrom蘇昶東\n");printf("\t\t學(xué)號(hào):139074091班級(jí):計(jì)133\n");printf("\t****************************************************************\n");printf("按任意鍵返回主菜單:\n");getch();system("cls");zhu();}/*****************************************************************************/intmain(){intj;printf("\n\n\n\t=======================================================\n");printf("\t=======================================================\n");printf("\t**************歡迎進(jìn)入學(xué)生管理系統(tǒng)*********************\n");printf("\t=======================================================\n");printf("\t=======================================================\n\n\n");char f[]="888888"; printf("請(qǐng)輸入密碼并以回車鍵結(jié)束:");scanf("%s",f); if(strcmp(f,"888888")==0) { system("cls"); zhu();//密碼正確時(shí)進(jìn)入系統(tǒng) } else j=1; printf("密碼錯(cuò)誤!請(qǐng)重新選擇按鍵!\n"); printf("請(qǐng)輸入第2次\t"); scanf("%s",f); while(strcmp(f,"888888")!=0&&j<=4){ printf("密碼錯(cuò)誤!請(qǐng)重新選擇按鍵!\n"); printf("請(qǐng)輸入第%d次\t",j+2); scanf("%s",f);j++; } if(j>4){printf("輸錯(cuò)次數(shù)大于6次\n");getch();exit(0);} system("cls"); zhu();//密碼正確時(shí)進(jìn)入系統(tǒng) return0;}/*****************************************************************************/voidzhu(){inti; while(1){printf("\t****************************************************************\n"); printf("\t\t1:根據(jù)條件進(jìn)行學(xué)生成績(jī)排名\n\t\t2:用指針優(yōu)化學(xué)生成績(jī)排名\n\t\t3:學(xué)生成績(jī)單制作\n\t\t"); printf("4:學(xué)生成績(jī)文件管理\n\t\t5:修改學(xué)生信息(鏈表)\n\t\t6:查看版本信息\n\t\t7:離開\n"); printf("\t****************************************************************\n\n"); printf("\t\t請(qǐng)選擇:\t"); scanf("%d",&i); switch(i) { case1:system("cls");case1();break; case2:system("cls");case2();break;case3:system("cls");case3();break; case4:system("cls");case4();break; case5:system("cls");case5();break; case6:system("cls");case6();break; case7:exit(0);break; default: {system("cls"); printf("\n輸入錯(cuò)誤,請(qǐng)重新輸入\n"); printf("按任意鍵返回主菜單:\n");getch();system("cls");zhu(); } } }}/*****************************************************************************/截圖:
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 電網(wǎng)工程設(shè)備材料信息參考價(jià)(2024年第四季度)
- 高級(jí)餐飲食品安全管理員技能鑒定理論考試題庫500題(含答案)
- 2025年河南農(nóng)業(yè)職業(yè)學(xué)院高職單招職業(yè)技能測(cè)試近5年??及鎱⒖碱}庫含答案解析
- 2025年池州職業(yè)技術(shù)學(xué)院高職單招職業(yè)技能測(cè)試近5年??及鎱⒖碱}庫含答案解析
- 2025年江蘇農(nóng)牧科技職業(yè)學(xué)院高職單招職業(yè)技能測(cè)試近5年??及鎱⒖碱}庫含答案解析
- 《醫(yī)療機(jī)構(gòu)管理培訓(xùn)》課件
- 2025民用航空運(yùn)輸行業(yè)未來發(fā)展與市場(chǎng)展望
- 10kV配電站房工程設(shè)計(jì)與施工流程優(yōu)化
- 壓路機(jī)租賃合同
- 場(chǎng)地租賃經(jīng)營合同
- 2025江蘇連云港市贛榆城市建設(shè)發(fā)展集團(tuán)限公司招聘工作人員15人高頻重點(diǎn)提升(共500題)附帶答案詳解
- 江蘇省揚(yáng)州市蔣王小學(xué)2023~2024年五年級(jí)上學(xué)期英語期末試卷(含答案無聽力原文無音頻)
- 數(shù)學(xué)-湖南省新高考教學(xué)教研聯(lián)盟(長(zhǎng)郡二十校聯(lián)盟)2024-2025學(xué)年2025屆高三上學(xué)期第一次預(yù)熱演練試題和答案
- 決勝中層:中層管理者的九項(xiàng)修煉-記錄
- 2024年海南公務(wù)員考試申論試題(A卷)
- 中醫(yī)培訓(xùn)課件:《經(jīng)穴推拿術(shù)》
- 中小學(xué)教師師德師風(fēng)法律法規(guī)培訓(xùn)
- 醫(yī)療器械質(zhì)量管理體系文件模板
- 在馬克思墓前的講話說課稿公開課一等獎(jiǎng)市賽課獲獎(jiǎng)?wù)n件
- 送養(yǎng)收養(yǎng)合同協(xié)議書
- 漢語拼音發(fā)音口型及配圖
評(píng)論
0/150
提交評(píng)論