久久99精品久久久久久琪琪,久久人人爽人人爽人人片亞洲,熟妇人妻无码中文字幕,亚洲精品无码久久久久久久

杭電C語言課程設計實驗六答案(本站推薦)

時間:2019-05-12 02:02:47下載本文作者:會員上傳
簡介:寫寫幫文庫小編為你整理了多篇相關的《杭電C語言課程設計實驗六答案(本站推薦)》,但愿對你工作學習有幫助,當然你在寫寫幫文庫還可以找到更多《杭電C語言課程設計實驗六答案(本站推薦)》。

第一篇:杭電C語言課程設計實驗六答案(本站推薦)

版權:ydz 題:

1.使用函數指針編寫用梯形公式計算定積分?1sinxdx和?102xdx1?x2的值,取??10?5。

b?axi提示:將積分區(qū)間[a,b]作n等分:,h?n?a?i*h,i?0,1,2,?,n,在每一分段[xi?1,xi]上取點?i(1)近似代替曲邊梯形得:

bn?xi?1,?i(2)?xi,每一小段上用梯形來?af(x)dx??i?1f(?i(1))?f(?i(2))?xi2記上式右邊為Tn,則:

b?an1Tn??[f(xi?1)?f(xi)]ni?12b?an11?[f(x)?f(x)?f(x)???f(x)?f(xn)] ?012n?1ni?1222.使用數組指針處理方陣,方陣的階數定義為常量N。用數組指針作函數參數完成下列功能,每個功能編一個函數。

實現方陣的初始化; 實現方陣的輸出;

實現兩個方陣相加,并輸出相加結果; 實現兩個方陣相減,并輸出相減結果; 實現兩個方陣相乘,并輸出相乘結果;

主函數定義兩個整型二維數組,分別調用上述函數去實現功能。

程序一

#include #include double(*f)(double x);double t1,t2;double jifen(double a,double b,double(*f)(double x)){ double t=0,h,x;int i,n=100000;h=(b-a)/n;x=a;for(i=1;i<=n;i++){

t=t+0.5*h*f(x);

x=a+i*h;}

版權:ydz return t;} double g(double x){ return sin(x)/x;} double p(double x){ return 1/(1+x*x);} void main(){ t1=jifen(1,2,g);t2=jifen(0,1,p);printf(“%lfn%lfn”,t1,t2);}

程序二

#include #define N 5 void chushihua(int(*p)[N]){ int i,j;for(i=0;i

for(j=0;j

scanf(“%d”,p[i]+j);

} } } void shuchu(int(*p)[N]){ int i,j;for(i=0;i

for(j=0;j

printf(“%d ”,*(p[i]+j));

}

printf(“n”);} } void xiangjia(int(*p)[N],int(*q)[N],int(*r)[N]){ int i,j;for(i=0;i

版權:ydz

for(j=0;j

*(r[i]+j)=*(p[i]+j)+*(q[i]+j);

printf(“%d ”,*(r[i]+j));

}

printf(“n”);} } void xiangjian(int(*p)[N],int(*q)[N],int(*r)[N]){ int i,j;for(i=0;i

for(j=0;j

*(r[i]+j)=*(p[i]+j)-*(q[i]+j);

printf(“%d ”,*(r[i]+j));

}

printf(“n”);} } void xiangcheng(int(*p)[N],int(*q)[N],int(*r)[N]){ int i,j,k;for(i=0;i

for(j=0;j

*(r[i]+j)=0;

for(k=0;k

第二篇:C語言實驗六 數組

實驗六 數組

實驗目的:

1、通過實驗掌握數組在內存中的存放形式;

2、掌握一維數組和二維數組的定義和數組元素的引用;

3、掌握各種字符串庫函數的用法。

實驗內容:

1、教材P138頁第4題。

2、教材P138頁第10題。

3、輸入10個整數,將這10個整數按升序排列輸出,并且奇數在前,偶數在后。

實驗原理、步驟與分析:

【要求】每個實驗內容都要先寫出其實現的基本原理,再寫出實驗步驟,最后根據每個實驗內容的實驗結果進行分析說明。

第三篇:C語言課程設計

C語言課程設計

飛機空戰(zhàn)小游戲

一、實驗環(huán)境

運行系統(tǒng) WINDOWSXP 編程工具C++6.0 地點 程序設計與仿真實驗室

桌號19電腦IP地址221.12.10.218

二、實驗目的和要求 實驗目的:

(1)使學生進一步理解和掌握課堂上所學各種基本抽象數據類型的邏輯結構、存儲結構和操作算法。

(2)使學生進一步掌握程序設計、編寫、調試能力。(3)使學生了解軟件開發(fā)的基本步驟和內容。

實驗要求::飛機空戰(zhàn)小游戲。功能要求:

1)有主菜單界面,能讓用戶選擇開始、退出、難度等級、查看用戶積分功能;

2)飛機能通過A、S、D、W或上下左右鍵控制移動方向,使用空格鍵發(fā)射子彈;

3)屏幕隨機出現從上到下的敵方子彈; 4)當打中敵方子彈時,積分加1;

5)當敵方子彈打正飛機時,游戲結束,并提示用戶是否保存記錄(記錄包括用戶名及積分值),保存后退回到主菜單;

6)當選擇主菜單中的“查看用戶積分”選項時,進入第二級菜單,用戶可查看全部用戶積分記錄,也可僅查看積分最高者,也可根據用戶輸入的用戶名查看;(此處要求使用到鏈表,用于臨時存儲用戶積分數據);(對鏈表的查找操作)

7)所有用戶積分信息使用文件進行永久性保存; 8)用戶選擇“難度等級”,可設定游戲不同難度,難度越高,出現敵方子彈數目及間隔將增加。

三、實驗內容和結果

系統(tǒng)總體設計:編寫出c語言代碼,運行程序,并調試程序,最終實現游戲的功能。本程序主要包含游戲控制函數、設置是否繼續(xù)游戲函數、輸出函數、子彈移動函數、敵機移動函數、設置函數、菜單函數等7個主要函數,包含了不同的功能,對原來的程序作出了很大的改進,用到的主要語句有if語句,for語句、while語句、printf語句、switch語句等等,添加了顏色函數。

系統(tǒng)模塊設計:包含游戲控制函數、設置是否繼續(xù)游戲函數、輸出函數、子彈移動函數、敵機移動函數、設置函數、菜單函數等7個主要函數,其中是否繼續(xù)游戲函數,菜單函數主要運用了SWITCH語句和If語句,子彈移動函數,敵機移動函數通過數組內各數值的變化來完成,設置函數主要用PRINTF和SCANF語句進行各項數值的設置,游戲控制函數使用if函數,kbhit()函數,switch函數組合控制數組中飛機進行的移動和圖案的變換。最后用打印數組的方式打印出數組變換。最后運用SWITCH函數進行各項菜單內容的操作。

實驗的測試和結果:

四、實驗中的問題及心得

通過本次試驗,使我對c語言有了更深一層次的了解,對for語句、while語句、printf語句、switch語句、顏色函數等等的了解及使用更加詳細了一些,明白了這些語句的用法,明確了c語言的使用環(huán)境,功能。同時我了解到了一些方法來實現一些C語言作為一個基礎性編程語言是我們在以后編程中不可或缺的語言,使用率肯定會進一步增高。掌握了c語言就相當于掌握了一門技術,同時c語言相對而言簡單一些,更容易理解。自己雖然對這個小游戲進行一部分的改造,但是我也感覺這只是其中的很很小的一部分,肯定會有更加強大的功能等待著我們去改善。

同時,我也發(fā)現了自己很多的不足,需要進一步加強這一方面的學習,在數據結構鏈表的使用上還很欠缺,無法使用鏈表進行數據的讀取和輸入,還有在兩個程序的連接上還有困難,對于頭文件的理解不到位,鏈表的結構,定義,使用指針的方式??這些都需要提高。這些技能的欠缺導致了在 這個小游戲中無法順利完成有關用戶名和記錄的一些要求。??

附錄:程序清單

#include #include #include #include #define N 50 void run();//游戲控制函數 void continuegame();//設置是否繼續(xù)游戲函數 void print(int [][N]);//輸出函數

void movebul(int [][N]);//子彈移動函數 void movepla(int [][N]);//敵機移動函數 void setting(void);//設置函數 void menu();//菜單 int scr[50][N]={0},pl=9,width=15,speed=16,density=40,score=0,death=0,length=18,y=0,x=5,z=15,life=1,max=0;//全局變量:界面、我機初始位、界面寬度、敵機速度、敵機密度、得分、死亡,子彈,飛機,敵機初始圖案,生命

char name[N];char first[N];void main(){ menu();getch();}

void print(int a[][N])//輸出函數 { int i,j;system(“cls”);for(i=0;i

a[i][width-1]=4;

for(j=0;j

{

if(a[i][j]==0)printf(“ ”);

if((a[i][j]==1)&&(x<15))printf(“%c”,x);//輸出我機的符號

if((a[i][j]==2)&&(z<35))printf(“%c”,z);//子彈

if((a[i][j]==3)&&(y<4))printf(“%c”,y+1);//輸出敵機符號

if(i==1&&j==width-1)printf(“總積分:%d”,score);//顯示得分

if(i==2&&j==width-1)printf(“已經死亡了%d 次,剩余 %d 條命”,death,life-death);//右上角顯示死亡次數

if(i==3&&j==width-1)printf(“普通按鍵:AD控制左右飛行”);

if(i==4&&j==width-1)printf(“ W 發(fā)射子彈”);if(i==5&&j==width-1)printf(“特殊按鍵:+-號加減敵機速度”);if(i==6&&j==width-1)printf(“ /*號單列敵機密度減小增大(均有限制)”);

if(i==7&&j==width-1)printf(“VIP按鍵:X鍵變化飛機圖案,Y鍵變化敵機圖案”);

if(i==8&&j==width-1)printf(“tZ鍵變化子彈圖案,P鍵增加生命(均有限制)”);

if(i==9&&j==width-1)printf(“注意:向下移動后按其他方向鍵飛機顯現”);

} printf(“n”);} }

void movebul(int a[][N]){

int i,j;for(i=0;i

{

if(i==0&&a[i][j]==2)

a[i][j]=0;

if(a[i][j]==2)

{

if(a[i-1][j]==3)//加分

{

score+=1;

printf(“7”);

}

a[i][j]=0,a[i-1][j]=2;

}

} } void movepla(int a[][N]){ int i,j;for(i=length-1;i>=0;i--)//從最后一行往上是為了避免把敵機直接沖出數組。

for(j=0;j

if(i==length-1&&a[i][j]==3)

a[i][j]=0;//消除敵機,在最低層

if(a[i][j]==3)a[i][j]=0,a[i+1][j]=3;//敵機移動

}

if(a[length-2][pl]==3&&a[length-1][pl]==1)death++;//死亡 }

void continuegame()//繼續(xù)游戲

{ printf(“用戶%s”,name);printf(“你的得分是%dn”,score);if(score==0)printf(“tttt 恭喜你刷新了最低記錄na”,score);if((score>0)&&(score<20))

printf(“tttt 回家再練 練吧na”,score);if(score>19)

printf(“tttt 你真厲害 na”,score);printf(“游戲結束n”);printf(“按y鍵繼續(xù)游戲,空格鍵退出游戲(y/n)?n”);printf(“ttt”);switch(getch())//是否要繼續(xù)游戲

{ case 'y': case 'Y':system(“cls”),death=0,score=0,life=1,x=5,y=0,z=15;menu();break;} }

void setting(void)//設置函數 { system(“cls”);//清屏

printf(“n 輸入游戲界面的大小(默認3):1-10 ”);scanf(“%d”,&width);width=(width+1)*5;printf(“n 請輸入敵機密度大小(默認3):1-5 ”);scanf(“%d”,&density);density=(7-density)*10;printf(“n 輸入敵機的飛行速度大小(默認3):1-10 ”);scanf(“%d”,&speed);speed=(11-speed)*2;printf(“n 輸入我機的生命(默認1):1-100 ”);scanf(“%d”,&life);printf(“n 輸入飛機的圖案(默認1):1-2 ”);scanf(“%d”,&x);x=x+4;printf(“n 輸入子彈的圖案(默認1):1-10 ”);scanf(“%d”,&z);z=z+14;printf(“n 輸入敵機的圖案(默認1):1-3 ”);scanf(“%d”,&y);y=y-1;} void run(){ int i=0,j=0,k=0,b=0;printf(“請輸入用戶名:”);scanf(“%s”,name);printf(“您的用戶名是:%s”,name);if(getch()==27)setting();printf(“游戲說明:按AWSD控制我機左右飛行,空格鍵發(fā)射子彈n特殊按鍵:-號敵機減速,+號敵機加速n特殊按鍵:/號單列敵機密度減小,*號單列敵機密度增大n”);printf(“VIP按鍵:X鍵變化飛機圖案,Y鍵變化敵機圖案ntZ鍵變化子彈圖案,P鍵增加生命n”);printf(“任意鍵開始游戲,esc鍵進入游戲設置n”);printf(“游戲時也可更改游戲設置任意鍵開始nn”);system(“color a”);//設置背景顏色

if(getch()==27)setting();scr[length-1][pl]=1;//我方飛機初始位置

scr[0][5]=3;while(death

{ if(kbhit())

switch(getch())//控制設置按鍵 {

case 'a':

case 'A':if(pl>0)

scr[length-1][pl]=0,scr[length-1][--pl]=1;break;

case 'd':

case 'D':if(pl

scr[length-1][pl]=0,scr[length-1][++pl]=1;break;case 'W':

case 'w':if(length>10)

{

scr[length-1][pl]=0,scr[length-2][pl]=1;

length=length-1;

};break;

case '+':if(speed>2)

{

speed=speed-2;

};break;

case '-':speed=speed+1;break;case '*':if(density>5)

{

density=density-5;

};break;

case '/':density=density+10;break;

case 'l':if(width<40)

{

width=width+2;

};break;

case 's':if(length<30)

{

scr[length-1][pl]=0;

length=length+1;

scr[length-1][pl]='5';

};break;

case ' ':scr[length-2][pl]=2;break;

case 'y':y=(y+1)%4;break;

case 'x':x=(x)%2+5;break;

case 'z':if(z<25)

{

z=z+1;

}

else z=15;break;

case 'p':life=life+1;break;} if(++j%density==0)//控制生產敵機的速度

{

j=0;

srand(time(NULL));//產生隨機數

scr[0][rand()%width]=3;

scr[rand()%3][rand()%(width+2)]=3;

scr[rand()%2][rand()%(width+1)]=3;

scr[rand()%4][rand()%(width+4)]=3;//生成隨機敵方飛機

} if(++i%speed==0)//控制敵機移動速度,相對于子彈移動速度

movepla(scr);//飛機移動

movebul(scr);//子彈移動

print(scr);//繪制游戲畫面

} if(score>=max){

max=score;

for(i=0;i

{

name[i]=first[i];

} } if(score

score=score;} continuegame();getch();}

void menu(){ printf(“n1:游戲設置n2:游戲說明n3:開始游戲n4:查看用戶信息n5:退出游戲n”);

switch(getch()){

case '1': setting();menu();break;

case '2':printf(“游戲說明:按AWSD控制我機左右飛行,空格鍵發(fā)射子彈n特殊按鍵:-號敵機減速,+號敵機加速n特殊按鍵:/號單列敵機密度減小,*號單列敵機密度增大n”);printf(“VIP按鍵:X鍵變化飛機圖案,Y鍵變化敵機圖案ntZ鍵變化子彈圖案,P鍵增加生命n”);printf(“ 任意鍵開始游戲,esc鍵進入游戲設置n”);printf(“ 游戲時也可更改游戲設置”);menu();break;

case '3':run();menu();break;

case '4':seerecord();menu();break;

case '5':exit(0);break;default:menu();break;}

} seerecord(){ printf(“最高紀錄為%s,%d”,first[N],max);}

第四篇:C語言課程設計范文

C語言程序設計課程設計

設計題目:專業(yè):計算機科學與技術班級:2010級計算機二班組長姓名:馬得才【P101712944】成員姓名:孫麗欣【P101712927】

趙廣峰【P101712926】

遲成凱【P101712928】

冶成意【P101712930】

2010年5月20日

題目:

指導教師:普措才仁

一、案例需求

二、案例分析

三、案例設計

四、案例實現

五、參考文獻

第五篇:C語言課程設計

#include #include int N1,N2,kk1,kk2,kk3;struct couse * head1,*head2,*emp1;struct student * head3,*head4,*emp2;struct couse//課程信息結構體 {

int num1;

char name1[20];

int score;

int nelepeo;//課程已選人數

int Melepeo;//課程人數上限

struct couse * next;};

int student();

//學生登陸 int teacher();

//教師登陸 struct student//學生信息結構體 {

int num2;

char name2[20];

int nelenum[50];//已選課程編號

int nelen;//已選課程數量

struct student * next;};

void Ms(){

for(kk1=0;kk1<1100;kk1++)

for(kk2=0;kk2<1200;kk2++)

for(kk3=0;kk3<1200;kk3++);} void keyboardc()//錄入課程子函數(從鍵盤錄入){ void intoc();struct couse *p1,*p2;N1=0;p1=p2=(struct couse*)malloc(sizeof(struct couse));printf(“n課程編號:”);fflush(stdin);scanf(“%d”,&p1->num1);printf(“n課程名稱:”);scanf(“%s”,p1->name1);printf(“n學分:”);scanf(“%d”,&p1->score);printf(“n課程人數上限:”);scanf(“%d” ,&p1->Melepeo);printf(“ntttt輸入成功!”);p1->nelepeo=0;head1=NULL;while(p1->num1!=0){

N1=N1+1;

if(N1==1)head1=p1;

else p2->next=p1;

p2=p1;

p1=(struct couse *)malloc(sizeof(struct couse));

printf(“n-----------------------------”);

printf(“n課程編號:(輸入0結束)”);scanf(“%d”,&p1->num1);printf(“n課程名稱:”);scanf(“%s”,p1->name1);printf(“n學分:”);scanf(“%d”,&p1->score);printf(“n課程人數上限:”);scanf(“%d” ,&p1->Melepeo);

p1->nelepeo=0;

printf(“ntttt輸入成功!”);} p2->next=NULL;intoc();}

void filec()//錄入鍵盤子函數(從文件錄入){ void intoc();

FILE * fp;

char filepath[20];

struct couse *p1,*p2;

N1=0;

printf(“輸入要讀入的文件路徑:”);

getchar();

gets(filepath);

if((fp=fopen(filepath,“r”))==NULL)

{

printf(“找不到%s文件!n”,filepath);

exit(0);

}

p1=p2=(struct couse*)malloc(sizeof(struct couse));

fscanf(fp,“%d%s%d%d%d”,&p1->num1,p1->name1,&p1->score,&p1->nelepeo,&p1->Melepeo);

head1=NULL;

while(!feof(fp))

{

N1=N1+1;

if(N1==1)head1=p1;

else p2->next=p1;

p2=p1;

p1=(struct couse *)malloc(sizeof(struct couse));

fscanf(fp,“%d%s%d%d%d”,&p1->num1,p1->name1,&p1->score,&p1->nelepeo,&p1->Melepeo);

}

p2->next=NULL;

intoc();}

void inputc()//錄入課程主函數 {

int i;

printf(“ttt錄入課程信息n”);

printf(“n1.從鍵盤錄入n”);

printf(“2.從文件錄入n”);

printf(“3.返回主菜單n”);

printf(“請選擇(1~3):n”);

scanf(“%d”,&i);

switch(i)

{

case(1):keyboardc();break;

case(2):filec();break;

case(3):system(“cls”);return;break;

//return

} }

void insertc(struct couse *incouse)//課程管理子函數(增加課程){ void intoc();

struct couse *p0,*p1,*p2;

p1=head1;

p0=incouse;

if(head1==NULL)

{

head1=p0;

p0->next=NULL;

}

else

{

while((p0->num1 > p1->num1)&&(p1->next!=NULL))

{

p2=p1;

p1=p1->next;

}

if(p0->num1 <= p1->num1)

{

if(head1==p1)head1=p0;

else p2->next=p0;

p0->next=p1;

}

else

{

p1->next=p0;

p0->next=NULL;

}

}

N1=N1+1;

intoc();}

void delc(int num1)//課程管理子函數(刪除課程){ void intoc();

struct couse *p1,*p2;

if(head1==NULL)

{

printf(“n沒有課程,無法刪除!n”);

goto end;

}

p1=head1;

while(num1!=p1->num1 && p1->next!=NULL)

{

p2=p1;

p1=p1->next;

}

if(num1==p1->num1)

{

if(p1==head1)head1=p1->next;

else p2->next=p1->next;

printf(“已刪除該編號課程!n”);

N1=N1-1;

}

else printf(“無該編號的課程!n”);

end:;

intoc();}

void managementc()//課程管理主函數 {

struct couse * incouse;

struct couse *p1;

int i,num1;

printf(“ttt課程管理n”);

printf(“1.新增課程n”);

printf(“2.刪除課程n”);

printf(“3.返回主菜單n”);

printf(“請選擇(1~3):n”);

scanf(“%d”,&i);

switch(i)

{

case(1):

{

incouse=(struct couse *)malloc(sizeof(struct couse));

printf(“n課程編號:”);

fflush(stdin);

scanf(“%d”,&p1->num1);

printf(“n課程名稱:”);

scanf(“%s”,p1->name1);

printf(“n學分:”);

scanf(“%d”,&p1->score);

printf(“n課程人數上限:”);

scanf(“%d” ,&p1->Melepeo);

printf(“ntttt輸入成功!”);

incouse->nelepeo=0;

insertc(incouse);

break;

}

case(2):

{

printf(“請輸入要刪除課程的編號:n”);

scanf(“%d”,&num1);

delc(num1);

break;

}

case(3):system(“cls”);return;break;

} }

void keyboards()//錄入學生信息子函數(從鍵盤錄入){

void intos();

int i;

struct student *p1,*p2;

N2=0;

p1=p2=(struct student *)malloc(sizeof(struct student));

printf(“n學生學號:”);

scanf(“%d”,&p1->num2);

printf(“n學生姓名:”);

scanf(“%s”,p1->name2);

p1->nelen=0;

for(i=0;i<50;i++)p1->nelenum[i]=0;

head3=NULL;

while(p1->num2!=0)

{

N2=N2+1;

if(N2==1)head3=p1;

else p2->next=p1;

p2=p1;

p1=(struct student *)malloc(sizeof(struct student));

//return

printf(“n學生學號:(輸入0結束!)”);

scanf(“%d”,&p1->num2);

printf(“n學生姓名:”);

scanf(“%s”,p1->name2);

p1->nelen=0;

for(i=0;i<50;i++)p1->nelenum[i]=0;

}

p2->next=NULL;

intos();return;} void files()//錄入學生信息子函數(從文件錄入){

int i=0;

FILE * fp;

char filepath[20];

struct student *p1,*p2;

N2=0;

printf(“輸入要讀入的文件路徑:”);

getchar();

gets(filepath);

if((fp=fopen(filepath,“r”))==NULL)

{

printf(“找不到%s文件!n”,filepath);

exit(0);

}

p1=p2=(struct student*)malloc(sizeof(struct student));

fread(p1,sizeof(struct student),1,fp);

head3=NULL;

while(!feof(fp))

{

i=0;

N2=N2+1;

if(N2==1)head3=p1;

else p2->next=p1;

p2=p1;

p1=(struct student *)malloc(sizeof(struct student));

fread(p1,sizeof(struct student),1,fp);

}

p2->next=NULL;}

void inputs()//錄入學生信息主函數 {

int i;

printf(“nttt錄入學生信息n”);

printf(“n1.從鍵盤錄入n”);

printf(“2.從文件錄入n”);

printf(“3.返回主菜單n”);

printf(“請選擇(1~3):n”);

scanf(“%d”,&i);

switch(i)

{

case(1):keyboards();break;

case(2):files();break;

case(3):system(“cls”);return;break;

}

return 0;}

void inserts(struct student * incouse)//學生信息管理子函數(填加學生信息){ void intos();

struct student *p0,*p1,*p2;

p1=head3;

p0=incouse;

if(head3==NULL)

{

head3=p0;

p0->next=NULL;

}

else

{

while((p0->num2 > p1->num2)&&(p1->next!=NULL))

{

p2=p1;

p1=p1->next;

}

if(p0->num2 <= p1->num2)

{

if(head3==p1)head3=p0;

else p2->next=p0;

p0->next=p1;

}

else

{

//return

p1->next=p0;

p0->next=NULL;

}

}

N2=N2+1;

intos();}

void dels(int num2)//學生信息管理子函數(刪除學生信息){ void intos();

struct student *p1,*p2;

if(head3==NULL)

{

printf(“n沒有該學生信息,無法刪除!n”);

goto end;

}

p1=head3;

while(num2!=p1->num2 && p1->next!=NULL)

{

p2=p1;

p1=p1->next;

}

if(num2==p1->num2)

{

if(p1==head3)head3=p1->next;

else p2->next=p1->next;

printf(“已刪除該學生信息!n”);

N2=N2-1;

}

else printf(“無該學號的學生!n”);

intos();

end:;}

void managements()//學生信息管理主函數 {

struct student * incouse;

int i,num2;

printf(“ttt學生信息管理n”);

printf(“1.新增學生信息n”);

printf(“2.刪除學生信息n”);

printf(“3.返回主菜單n”);

printf(“請選擇(1~3):n”);

scanf(“%d”,&i);

switch(i)

{

case(1):

{

incouse=(struct student *)malloc(sizeof(struct student));

incouse->nelen=0;

incouse->nelenum[0]=0;

printf(“學生學號t學生姓名n”);

scanf(“%d%s”,&incouse->num2,incouse->name2);

inserts(incouse);

break;

}

case(2):

{

printf(“請輸入要刪除學生的學號:n”);

scanf(“%d”,&num2);

dels(num2);

break;

}

case(3):system(“cls”);return;break;

//return

} }

void elect(struct student * s)//選課 {

void intos();

struct couse * p;

int num1,i;

printf(“請輸入要選課的編號:n”);

scanf(“%d”,&num1);

for(i=0;s->nelenum[i]!=0;i++);

s->nelenum[i]=num1;

(s->nelen)++;

p=head1;

while(p->num1!=num1)p=p->next;

(p->nelepeo)++;

intos();} void cheak()//學生選課子函數(查詢可選課程){

char e;

struct couse * c;

struct student * s;

int num2,i,j=0,t=0;

printf(“請輸入你的學號:”);

scanf(“%d”,&num2);

s=head3;

while((s->num2!=num2)&&(s->next!=NULL))s=s->next;

if(s->num2!=num2)

{

printf(“不存在你的信息,請進入主菜單錄入你的信息!n”);

goto end;

}

c=head1;

printf(“你的可選課程編號:n”);

while(c!=NULL)

{

for(t=0,i=0;s->nelenum[i]!=0;i++)

{

if(c->num1==s->nelenum[i])t=1;

}

if(t==0 &&(c->nelepeo!=c->Melepeo))

{

printf(“%dn”,c->num1);

j++;

}

c=c->next;

}

if(j==0)

{

printf(“你已選完所有課程,無法再多選!n”);

goto end;

}

printf(“選課(y/n)?:n”);

getchar();

e=getchar();

i=0;

while((e=='y')||(e=='Y'))

{

elect(s);

printf(“繼續(xù)選課(y/n)?:n”);

getchar();

e=getchar();

}

end:;} void back(struct student * p)//退課 {

void intos();

struct couse * p1;

int num1,i,j;

printf(“請輸入你要退掉的課程編號:n”);

scanf(“%d”,&num1);

p1=head1;

while(p1->num1!=num1)p1=p1->next;

for(i=0;p->nelenum[i]!=num1;i++);

for(j=i;p->nelenum[j]!=0;j++)p->nelenum[j]=p->nelenum[j+1];

p->nelenum[--j]=0;

(p1->nelepeo)--;

printf(“退課成功!n”);

intos();} void hcheak()//學生選課子函數(查詢已選課程){

char c;

struct couse * p0;

struct student * p;

int num2,i,f=0;

printf(“請輸入學號:n”);

scanf(“%d”,&num2);

p=head3;

while(p->num2!=num2 && p!=NULL)p=p->next;

if(p==NULL)

{

printf(“不存在你的信息,請回主菜單錄入信息:n”);

goto end;

}

printf(“已選課程編號:n”);

if(p->nelenum[0]==0)

{

printf(“你還沒選課!n”);

goto end;

}

for(i=0;p->nelenum[i]!=0;i++)

{

printf(“%dn”,p->nelenum[i]);

p0=head1;

while(p0->num1!=p->nelenum[i])p0=p0->next;

f=f+p0->score;

}

printf(“總學分:%dn”,f);

printf(“是否進行退課(y/n)?”);

getchar();

c=getchar();

while((c=='y')||(c=='Y'))

{

back(p);

printf(“繼續(xù)退課(y/n)?”);

getchar();

c=getchar();

(p->nelen)--;

}

end:;} void elective()//學生選課主函數 {

int i;

printf(“ttt學生選課n”);

printf(“1.查詢可選課程n”);

printf(“2.查詢已選課程n”);

printf(“3.返回主菜單n”);

printf(“請輸入(1~3):n”);

scanf(“%d”,&i);

switch(i)

{

case(1):cheak();break;

case(2):hcheak();break;

case(3): system(“cls”);return;break;

// return

} } void listc()//輸出課程信息 {

struct couse * p;

p=head1;

printf(“課程編號

課程名稱

學分

課程已選人數

課程人數上限n”);

while(p!=NULL)

{

printf(“%-8d%10s%6d%8d%12dn”,p->num1,p->name1,p->score,p->nelepeo,p->Melepeo);

p=p->next;

} }

void lists()//輸出學生信息 {

struct student * p;

p=head3;

printf(“學生學號

學生姓名

已選課程數量n”);

while(p!=NULL)

{

printf(“%-4d %10s %6dn”,p->num2,p->name2,p->nelen);

p=p->next;

} } void intoc()//存儲課程信息 {

FILE * fp;

struct couse * p;

char filepath[30];

if((fp=fopen(“課程信息.dat”,“a+”))==NULL)

{

printf(“n保存失敗!”);

exit(0);

}

p=head1;

while(p!=NULL)

{

fprintf(fp,“%d %s %d %d %dn”,p->num1,p->name1,p->score,p->nelepeo,p->Melepeo);

p=p->next;

}

fclose(fp);

printf(“課程信息已保存成功!n”);} void intos()//存儲學生信息 { int i;

FILE * fp;

struct student * p;

char filepath[30];

if((fp=fopen(“學生信息.dat”,“a+”))==NULL)

{

printf(“n保存失敗!”);

exit(0);

}

p=head3;

while(p!=NULL)

{

fwrite(p,sizeof(struct student),1,fp);

p=p->next;

}

fclose(fp);

printf(“學生信息已保存成功!n”);

printf(“ntttt選擇菜單:”);

printf(“ntttt1.繼續(xù)添加ntttt2.返回主菜單:”);

printf(“請選擇:”);

scanf(“%d”,&i);

switch(i)

{

case 1:inputs();break;

case 2:teacher();break;

default:printf(“n輸入有誤!n”);} }

void store()//信息主函數 {

int i;

printf(“tt系統(tǒng)信息查看及存儲n”);

printf(“1.查看課程信息n”);

printf(“2.查看學生信息n”);

printf(“3.返回主菜單n”);

printf(“請輸入(1~3):n”);

scanf(“%d”,&i);

switch(i)

{

case(1):listc();break;

case(2):lists();break;

case(3):system(“cls”);return;break;

} }

int main()//主函數

//retuen

{

int i;

FILE *fp;

printf(“nttt歡迎使用學生選課系統(tǒng)!n”);

printf(“n請選擇菜單:”);

printf(“ntttt1.教師登陸ntttt2.學生登陸n”);

printf(“請選擇:”);

scanf(“%d”,&i);

switch(i)

{

case 1:teacher();break;

case 2:student();break;

default:printf(“輸入有誤!”);

} }

int student()

{

int i;

printf(“ntttt1.學生選課n”);

printf(“ntttt2.系統(tǒng)信息查看及存儲n”);

printf(“ntttt3.退出系統(tǒng)n”);

printf(“請選擇:”);

scanf(“%d”,&i);

switch(i)

{

case 1:

{

system(“cls”);

elective();

break;

}

case 2:

{

system(“cls”);

store();

break;

}

default:printf(“輸入有誤!”);

}

}

int teacher()

{

FILE *fp;

int i;

printf(“菜單:n”);

printf(“1.錄入課程信息n”);

printf(“2.課程管理n”);

printf(“3.錄入學生信息n”);

printf(“4.學生信息管理n”);

printf(“5.系統(tǒng)信息查看n”);

printf(“6.退出系統(tǒng)n”);

if((fp=fopen(“課程信息.dat”,“rb”))==NULL)

{

printf(“n打開系統(tǒng)文件失敗!

n”);

//fp=fopen(“信息.dat”,“rb”));

// }

// if(feof(fp))

// {

printf(“n還未添加課程信息,請?zhí)砑诱n程信息!n”);

inputc();

}

while(!feof(fp))

{

emp1=(struct couse*)malloc(sizeof(struct couse));

if(emp1==NULL)

{

printf(“n分配內存失敗!n”);

return;

}

fread(emp1,sizeof(struct couse),1,fp);

if(feof(fp))break;

if(head1==NULL)

{

head1=emp1;

head2=emp1;

}

else{

head2->next=emp1;

head2=emp1;

}

head2->next=NULL;

}

fclose(fp);

fp==NULL;

if((fp=fopen(“學生信息.dat”,“rb”))==NULL)

printf(“n打開系統(tǒng)文件失敗!n”);

//

//if(feof(fp)==1)

// {

printf(“還未添加學生信息,請?zhí)砑訉W生信息!”);

inputs();

while(!feof(fp))

{

emp1=(struct student*)malloc(sizeof(struct student));

if(emp2==NULL)

{

printf(“n分配內存失敗!n”);

return;

}

fread(emp2,sizeof(struct student),1,fp);

if(feof(fp))break;

if(head3==NULL)

{

head3=emp2;

head4=emp2;

}

else{

head4->next=emp2;

head4=emp2;

}

head4->next=NULL;

}

fclose(fp);

fp==NULL;

printf(“n請輸入菜單選項(1~6):n”);

scanf(“%d”,&i);

switch(i)

{

case(1):

{

system(“cls”);

inputc();

break;

}

case(2):

{

system(“cls”);

managementc();

break;

}

case(3):

{

system(“cls”);

inputs();

break;

}

case(4):

{

system(“cls”);

managements();

break;

}

case(5):

{

system(“cls”);

store();

break;

}

case(6):

{

system(“cls”);

printf(“感謝使用本系統(tǒng)!nn再見!n”);

}

}

return 1;

}

下載杭電C語言課程設計實驗六答案(本站推薦)word格式文檔
下載杭電C語言課程設計實驗六答案(本站推薦).doc
將本文檔下載到自己電腦,方便修改和收藏,請勿使用迅雷等下載。
點此處下載文檔

文檔為doc格式


聲明:本文內容由互聯(lián)網用戶自發(fā)貢獻自行上傳,本網站不擁有所有權,未作人工編輯處理,也不承擔相關法律責任。如果您發(fā)現有涉嫌版權的內容,歡迎發(fā)送郵件至:645879355@qq.com 進行舉報,并提供相關證據,工作人員會在5個工作日內聯(lián)系你,一經查實,本站將立刻刪除涉嫌侵權內容。

相關范文推薦

    C語言課程設計

    - 1 1 前言 讓自己所學的知識應用于實際生活中,理論聯(lián)系生活,學以致用,我們將更好服務于民。我們是新一代的年輕人,要想將來在社會上更好的立足,就必須讓自己強大起來,努力的學習......

    C語言課后實驗答案

    #include using namespace std; int main() { cout......

    C語言實驗

    C語言實驗 實驗一:C語言程序調試基礎 一、實驗目的 1.掌握C語言源程序的編寫方法和調試方法 2.學會使用VC6開發(fā)工具及調試過程的查錯糾錯能力。 二、任務 調試課本例子:例2.19......

    C語言課程設計報告

    C語言課程設計報告 班級: 10電子本1 學號: 10303033122 姓名: 指導老師: 方文森完成日期: 溫州大學城市學院課程設計 目 錄 1、課程設計目的和要求 ............................

    c語言課程設計總結

    c語言課程設計總結5篇c語言課程設計總結(一):c語言課程設計總結心得經過一個學期的學習,我對C語言有了必須的了解。C語言是學習計算機科學的基礎,作為一名計算機專業(yè)學生,掌握C語......

    《C語言》課程設計教學大綱

    荊楚理工學院 《C語言程序設計》課程設計教學大綱 一、 課程名稱: C語言程序設計 二、 課程代碼: Z04013 三、 課程管理: 計算機工程學院(部)計算機應用教研室 四、 教學對象:......

    C語言課程設計任務書

    《C語言程序設計》課程設計 任務書及指導書 自動化學院 2011年 C語言課程設計任務書及指導書1 題目:學院教學信息管理系統(tǒng) 功能:學院教學信息管理系統(tǒng),每一條記錄包括教師的......

    C語言課程設計選題

    C語言課程設計選題 題一、《學生成績管理系統(tǒng)》 1、 寫一個“學生成績管理”程序,要求程序如下功能: (1) 成績錄入,(2)成績修改(按學號修改),(3)成績查詢(至少提供按學號、按姓名、按班......

主站蜘蛛池模板: 在线亚洲+欧美+日本专区| 美女内射毛片在线看免费人动物| 久久精品av一区二区免费| 亚洲深深色噜噜狠狠爱网站| 青青草国产精品一区二区| 黑人巨大精品欧美一区二区免费| 国产边摸边吃奶边做爽视频| 国产免费内射又粗又爽密桃视频| 精品久久久久久无码人妻热| 无码少妇一区二区三区免费| 久久精品66免费99精品| 两性色午夜视频免费老司机| 国产精品99精品久久免费| 国产粉嫩小泬在线观看泬| 日韩一区二区三区精品| 国产精品_国产精品_k频道| 日韩人妻无码一区二区三区| 色与欲影视天天看综合网| 亚洲国产精品久久久久秋霞影院| 99久久免费国产精品| 午夜福利无码不卡在线观看| 亚洲日韩av无码中文字幕美国| 国产精品一区二区亚瑟不卡| 国产一区二区三区在线观看免费| 国产又色又爽又黄刺激视频| 麻豆精品秘?一区二区三区| 亚洲中文字幕久久精品无码va| 国产av一二三无码影片| 日韩精品区一区二区三vr| 国产老熟女伦老熟妇视频| 中文日产幕无线码6区收藏| 亚洲日韩精品一区二区三区| 人妻无码专区一区二区三区| 国产最新进精品视频| 亚洲精品综合网在线8050影院| 欧美丰满老熟妇xxxxx性| 小13箩利洗澡无码视频免费网站| 国产乱人伦无无码视频试看| 国产怡春院无码一区二区| 亚洲国产成人av在线电影播放| 国产亚洲精品久久久久久久|