真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

c語(yǔ)言函數(shù)程序設(shè)計(jì)報(bào)告,C語(yǔ)言函數(shù)程序設(shè)計(jì)

C語(yǔ)言函數(shù)調(diào)用程序設(shè)計(jì)實(shí)驗(yàn)報(bào)告求解。

#include?cstdio

創(chuàng)新互聯(lián)公司主要從事成都網(wǎng)站建設(shè)、成都網(wǎng)站制作、網(wǎng)頁(yè)設(shè)計(jì)、企業(yè)做網(wǎng)站、公司建網(wǎng)站等業(yè)務(wù)。立足成都服務(wù)朗縣,十多年網(wǎng)站建設(shè)經(jīng)驗(yàn),價(jià)格優(yōu)惠、服務(wù)專業(yè),歡迎來(lái)電咨詢建站服務(wù):18980820575

void?menu(){

printf("1.求兩個(gè)數(shù)的和\n");

printf("2.求兩個(gè)數(shù)的差\n");

printf("3.求兩個(gè)數(shù)的積\n");

printf("4.求兩個(gè)數(shù)的商\n");

printf("5.求兩個(gè)數(shù)的余\n");

}

int?add(int?x,int?y){return?x+y;}

int?sub(int?x,int?y){return?x-y;}

int?mul(int?x,int?y){return?x*y;}

int?drv(int?x,int?y){return?x/y;}

int?mod(int?x,int?y){return?x%y;}

int?main(){

int?a,b,n;

printf("Please?input?2?numbers:");

scanf("%d%d",a,b);

menu();

printf("Please?input?the?number:");

scanf("%d",n);

switch(n){

case?1:printf("%d\n",add(a,b));break;

case?2:printf("%d\n",sub(a,b));break;

case?3:printf("%d\n",mul(a,b));break;

case?4:printf("%d\n",drv(a,b));break;

case?5:printf("%d\n",mod(a,b));break;

default:printf("Wrong?number!");

}

}

望采納

學(xué)生成績(jī)記錄薄 c語(yǔ)言 課程設(shè)計(jì)報(bào)告

C語(yǔ)言程序設(shè)計(jì)報(bào)告

課題名稱:學(xué)生成績(jī)管理

1 系統(tǒng)概述:

本程序?yàn)橐粋€(gè)學(xué)生成績(jī)管理系統(tǒng),對(duì)學(xué)生的成績(jī)進(jìn)行管理,學(xué)生的信息包括學(xué)號(hào),姓名,學(xué)期,三門(mén)課程的成績(jī),輸入這些信息,本程序可以自動(dòng)計(jì)算總成績(jī),可以按高分到低分進(jìn)行排名,并對(duì)輸入信息的人數(shù)進(jìn)行匯總.

2 數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì):

(1)結(jié)構(gòu)體;

(2)數(shù)組的設(shè)計(jì):運(yùn)用指針代替數(shù)組,使用指針來(lái)建立線性表,使程序更加簡(jiǎn)潔,可讀性更強(qiáng).

3 各函數(shù)的設(shè)計(jì):

函數(shù)原型:void InitList(SqLinkList L);

功能: 創(chuàng)建一個(gè)空的線性鏈表;

入口參數(shù):L為要?jiǎng)?chuàng)建的線性鏈表;

出口參數(shù):創(chuàng)建鏈表的L.head為空,L.length為0;

返回值: 無(wú);

函數(shù)原型:void EmptyLinkList(SqLinkList L);

功能: 清空整個(gè)線性鏈表;

入口參數(shù):L為要清空的鏈表名稱;

出口參數(shù):若清空成功則鏈表長(zhǎng)度L.length為0;

返回值: 無(wú);

函數(shù)原型:int ScanE(ElemType e);

功能: 輸入學(xué)生信息;

入口參數(shù):e為要輸入信息的學(xué)生名稱;

出口參數(shù):e.num保存學(xué)號(hào),e.name保存姓名,e.team保存所在學(xué)期,e.s1,e.s2,e.s3分別保存三門(mén)課程的成績(jī);

返回值: 輸入合法返回1,否則返回0;

錯(cuò)誤處理:若學(xué)號(hào)、姓名等輸入不合法會(huì)有提示及重輸;

函數(shù)原型:Status SqLinkListAppend(SqLinkList L,ElemType e);

功能: 追加一個(gè)結(jié)點(diǎn)到線性鏈表中;

入口參數(shù):e為所追加的結(jié)點(diǎn)名稱,L為e所追加到的線性鏈表的名稱;

出口參數(shù):若追加成功,則e為頭結(jié)點(diǎn),鏈表長(zhǎng)度L.length增1;

返回值: 若追加成功返回1;

函數(shù)原型:Link SearchNode(SqLinkList L,int NUM);

功能: 查找學(xué)號(hào)為NUM的學(xué)生;

入口參數(shù):查找的鏈表名稱L,學(xué)號(hào)NUM;

出口參數(shù):若找到結(jié)點(diǎn)指針p指向該結(jié)點(diǎn),否則指向空結(jié)點(diǎn);

返回值: 結(jié)點(diǎn)指針p;

函數(shù)原型:void SearchTeam(SqLinkList L,int team);

功能: 查找學(xué)期為team的所有記錄并輸出其信息;

入口參數(shù):查找的鏈表名稱L,要查找的學(xué)期team;

出口參數(shù):無(wú);

返回值: 無(wú);

函數(shù)原型:void SearchUnpass(SqLinkList L,float s1,float s2,float s3);

功能: 查找所有有掛科記錄的學(xué)生并輸出其信息;

入口參數(shù):查找的鏈表名稱L,要查找的各門(mén)學(xué)科成績(jī)s1,s2,s3;

出口參數(shù):無(wú);

返回值: 無(wú);

函數(shù)原型:void SqLinkListSearch(SqLinkList L);

功能: 對(duì)鏈表進(jìn)行分類查找;

入口參數(shù):要查找的鏈表名稱L;

出口參數(shù):無(wú);

返回值: 無(wú);

函數(shù)原型: void inputData(SqLinkList L);

功能: 輸入數(shù)據(jù),并追加一個(gè)結(jié)點(diǎn);

入口參數(shù): L為要追加結(jié)點(diǎn)的鏈表名稱;

出口參數(shù): 無(wú);

返回值: 無(wú);

函數(shù)原型:void SqLinkListTraverse(SqLinkList L);

功能: 輸出鏈表中所有學(xué)生成績(jī)列表;

入口參數(shù):L為要輸出信息的鏈表名稱;

出口參數(shù):無(wú);

返回值: 無(wú);

函數(shù)原型:void PrintE(ElemType e);

功能: 輸出一個(gè)結(jié)點(diǎn)的所有信息;

入口參數(shù):要輸出的結(jié)點(diǎn)名稱e;

出口參數(shù):無(wú);

返回值: 無(wú);

4 使用程序的說(shuō)明:

本程序?yàn)橐粋€(gè)學(xué)生成績(jī)管理系統(tǒng)。對(duì)學(xué)生的成績(jī)信息進(jìn)行管理,學(xué)生的信息包括學(xué)號(hào)、姓名、學(xué)期、三門(mén)課程的成績(jī)、平均成績(jī)、名次。本管理系統(tǒng)實(shí)現(xiàn)學(xué)生的學(xué)號(hào)、姓名、學(xué)期、每門(mén)課程的成績(jī)的錄入,并自動(dòng)按平均分排名,使用時(shí)按屏幕上的提示,輸入使用代碼.如下圖所示:

例如:輸入代碼數(shù)字”1”,程序執(zhí)行”輸入學(xué)生成績(jī)或已存在的學(xué)生成績(jī)進(jìn)行修改”這條小程序.輸入學(xué)生個(gè)人信息后,如下圖所示:

如此分別輸入相應(yīng)的程序代碼,就執(zhí)行相應(yīng)的程序段.

如下的程序是按學(xué)號(hào)進(jìn)行成績(jī)排名:

當(dāng)輸入”6”時(shí),執(zhí)行相應(yīng)的程序,即匯總一共輸入學(xué)生的人數(shù):

5 總結(jié)和體會(huì):

通過(guò)對(duì)C語(yǔ)言學(xué)習(xí),尤其是這學(xué)期本班開(kāi)展C語(yǔ)言雙語(yǔ)教學(xué),體會(huì)到學(xué)習(xí)難的同時(shí),也真正了解到C語(yǔ)言作為一門(mén)高級(jí)的計(jì)算機(jī)語(yǔ)言的強(qiáng)大功能,特別是在當(dāng)今實(shí)際生活,生產(chǎn),辦公,信息管理等方面的強(qiáng)大作用. 這次合作我們遇到了許多的困難。時(shí)間的緊迫,知識(shí)的不足,給我很大的壓力。最終我還是還是完成了任務(wù)。團(tuán)結(jié)就是力量是我這次最真切的感受。

6 程序代碼:

void InitList(SqLinkList L) {

// 構(gòu)造一個(gè)空的線性表L;

L.head = 0; //頭指針為空;

L.length = 0; //長(zhǎng)度初始為0;

}

void EmptyLinkList(SqLinkList L){

//入口參數(shù)為整個(gè)線性表的數(shù)據(jù),功能為清空線性表;

Node *p;

if(!L.head)printf("系統(tǒng)中不存在記錄。\n");

//頭指針為空時(shí)沒(méi)有學(xué)生錄入;

else {

while (L.head){

//每個(gè)循環(huán)將下一結(jié)點(diǎn)賦值給頭指針,并釋放本結(jié)點(diǎn)空間,直至線性表清空;

p=L.head;

L.head=p-next;

free(p);

} //end while;

L.length=0; //長(zhǎng)度為0;

printf("該管理系統(tǒng)學(xué)生信息已清空。\n");

}//end else;

}

int ScanE(ElemType e){

//輸入一個(gè)學(xué)生的成績(jī)數(shù)據(jù)結(jié)點(diǎn)。返回0為無(wú)效結(jié)點(diǎn)數(shù)據(jù),1為有效結(jié)點(diǎn)數(shù)據(jù);

printf("\n學(xué)號(hào):");

scanf("%d",e.num);

if(e.num==0){

//學(xué)號(hào)為0輸入不合法,重新輸入;

printf("學(xué)號(hào)輸入不合法.\n");

return 0;

}

printf("\n姓名:");

scanf("%s",e.name);

printf("\n學(xué)期:");

scanf("%d",e.team);

while(e.team12){

//系統(tǒng)只記錄小于12的學(xué)期數(shù);

printf("輸入的學(xué)期不能大于12,請(qǐng)重新輸入:");

scanf("%d",e.team);

}

printf("\n成績(jī)A:");

scanf("%f",e.s1);

printf("\n成績(jī)B:");

scanf("%f",e.s2);

printf("\n成績(jī)C:");

scanf("%f",e.s3);

return OK;

}

Status SqLinkListAppend(SqLinkList L,ElemType e){

//追加一個(gè)結(jié)點(diǎn)到線性表中;

Node *p;

p=SearchNode(L,e.num);

//查找學(xué)號(hào)為e.num的記錄并將其地址賦給指針p;

if (p==0){

//若不存在添加學(xué)號(hào)相同的結(jié)點(diǎn),追加一個(gè)結(jié)點(diǎn);

p=(Node *)malloc(sizeof(Node));

if (!p) return ERROR;

memcpy((p-data),e,sizeof(ElemType));

p-next=L.head ;

L.head=p;

//追加的一個(gè)結(jié)點(diǎn)為首結(jié)點(diǎn);

L.length++; //表長(zhǎng)度加1;

}

else { //如果該學(xué)號(hào)記錄已存在,則進(jìn)行修改操作;

memcpy((p-data),e,sizeof(ElemType));

printf("該學(xué)生記錄已經(jīng)存在,已完成修改操作。\n");

}

return OK;

}

Link SearchNode(SqLinkList L,int NUM){

//查找學(xué)生記錄,該學(xué)生的學(xué)號(hào)為NUM;

Node *p;

p=L.head; //p先指在頭結(jié)點(diǎn);

while (p p-data.num !=NUM ) p=p-next;

//如果該學(xué)生的學(xué)號(hào)不為NUM則查找下一個(gè)結(jié)點(diǎn);

return p;

}

void SearchTeam(SqLinkList L,int team){

//按學(xué)期查找并輸出所有該學(xué)期存在的記錄;

Node *p;

p=L.head;

int n,sum=0;

//sum記錄該學(xué)期的學(xué)生總?cè)藬?shù);

printf("請(qǐng)輸入您要查詢的學(xué)生的學(xué)期:");

scanf("%d",n);

printf("\n學(xué)號(hào) 姓名 學(xué)期 成績(jī)A 成績(jī)B 成績(jī)C 平均成績(jī)\n");

while(pp-next){

//如果p結(jié)點(diǎn)和它的下一結(jié)點(diǎn)不為空,且該結(jié)點(diǎn)的學(xué)期等于要查找學(xué)期,則格式輸出所有該學(xué)期學(xué)生信息;

if(p-data.team==n){

PrintE(p-data);

sum++;

//查找到一個(gè)該學(xué)期的學(xué)生記錄計(jì)數(shù)加1;

}

p=p-next;

//轉(zhuǎn)向下一結(jié)點(diǎn);

} //end while;

if(p-data.team==n){

//如果p的下一結(jié)點(diǎn)為空,且本結(jié)點(diǎn)學(xué)期為n,則格式輸出該結(jié)點(diǎn)信息;

sum++;

PrintE(p-data);

}

if(sum==0)printf("沒(méi)有這學(xué)期的記錄。\n");

if(sum)printf("該學(xué)期共有%d人的記錄.\n",sum);

}

void SearchUnpass(SqLinkList L,float s1,float s2,float s3){

//查找并輸出有掛科的學(xué)生信息;

Node *p;

p=L.head;

int sum=0;

//sum計(jì)數(shù)掛科總?cè)藬?shù),初始為0;

printf("以下是有一門(mén)以上不及格科目的學(xué)生的成績(jī):\n");

printf("\n學(xué)號(hào) 姓名 學(xué)期 成績(jī)A 成績(jī)B 成績(jī)C 平均成績(jī)\n");

while(pp-next){

//如果p及其下一結(jié)點(diǎn)為真,且該結(jié)點(diǎn)有一門(mén)以上科目分?jǐn)?shù)低于60則輸出該結(jié)點(diǎn)成績(jī)并使sum計(jì)數(shù)加1;

if((p-data.s160)||(p-data.s260)||(p-data.s360))

{

PrintE(p-data);

sum++;

} //end if;

p=p-next;

//轉(zhuǎn)到下一結(jié)點(diǎn);

} //end while;

if((p-data.s160)||(p-data.s260)||(p-data.s360)){

//查看最后一個(gè)結(jié)點(diǎn),若有掛科,sum加1并格式輸出結(jié)點(diǎn)信息;

sum++;

PrintE(p-data);

}

if(sum==0)printf("沒(méi)有不及格的記錄。\n");

if(sum)printf("共有%d人的掛科記錄.\n",sum);

}

void SqLinkListSearch(SqLinkList L){

//分類查找學(xué)生記錄;

Node *p;

p=L.head;

int n,reg; //reg為查詢方式的指令;

printf("1--按學(xué)號(hào)查詢\n2--按學(xué)期查詢\n3--掛科學(xué)生信息列表\n");

printf("請(qǐng)您輸入查詢方式:");

scanf("%d",reg);

if(L.length){

if(reg3)printf("對(duì)不起沒(méi)有您要求的選項(xiàng)。\n");

//若reg3則輸入不合法;

else if(reg==1){

//reg==1按學(xué)號(hào)查詢;

printf("請(qǐng)輸入您要查詢的學(xué)生的學(xué)號(hào):");

scanf("%d",n);

while(pp-next p-data.num !=n) p=p-next;

//當(dāng)p和他下一結(jié)點(diǎn)為真時(shí)且結(jié)點(diǎn)數(shù)據(jù)不為要查找數(shù)據(jù)時(shí)轉(zhuǎn)向下一結(jié)點(diǎn);

if(p-data.num==n){

//找到所要查詢結(jié)點(diǎn),格式輸出;

printf("\n學(xué)號(hào) 姓名 學(xué)期 成績(jī)A 成績(jī)B 成績(jī)C 平均成績(jī)\n");

PrintE(p-data);

}

else printf("沒(méi)有您要查找的學(xué)號(hào)。\n");

} //end reg==1 if ;

else if(reg==2)SearchTeam(L,p-data.team);

//reg==2,調(diào)用SearchTeam函數(shù)按學(xué)期查詢并輸出;

else if(reg==3)SearchUnpass(L,p-data.s1,p-data.s2,p-data.s3);

//reg==3,調(diào)用SearchUnpass函數(shù),輸出全部有掛科記錄的學(xué)生信息;

}//end if;

else printf("系統(tǒng)中無(wú)記錄.\n");

}

void inputData(SqLinkList L){

//請(qǐng)求輸入學(xué)生成績(jī),則追加一個(gè)結(jié)點(diǎn)并輸入;

ElemType e;

if (ScanE(e)) SqLinkListAppend(L,e); //輸入數(shù)據(jù),追加一個(gè)結(jié)點(diǎn);

}

void SqLinkListTraverse(SqLinkList L){

//所有學(xué)生信息列表輸出;

Node *p;

char c;

p=L.head;

if(p) //非空表;

{

printf("\n學(xué)號(hào) 姓名 學(xué)期 成績(jī)A 成績(jī)B 成績(jī)C 平均成績(jī)\n");

for (p=L.head ;p;p=p-next )PrintE(p-data);

//從第一個(gè)結(jié)點(diǎn)開(kāi)始輸出所有信息直到結(jié)點(diǎn)為空;

}

else printf("系統(tǒng)中無(wú)記錄。\n");

//空表;

c=getchar();

}

void PrintE(ElemType e){

//輸出各科成績(jī)和平均成績(jī);

printf("%d\t%s\t%d\t%f\t%f\t%f\t%f\n",e.num,e.name,e.team,e.s1,e.s2,e.s3,(e.s1+e.s2+e.s3)/3);

//格式輸出學(xué)生的學(xué)號(hào)、姓名、學(xué)期、A、B、C三門(mén)成績(jī)以及平均成績(jī);

}

C語(yǔ)言程序設(shè)計(jì)實(shí)驗(yàn)報(bào)告怎么寫(xiě)啊

只是個(gè)例子,不可照抄。

實(shí)驗(yàn)內(nèi)容與要求:

[實(shí)驗(yàn)內(nèi)容]

1、 通過(guò)本試驗(yàn)初步培養(yǎng)計(jì)算機(jī)邏輯解題能力。熟練掌握賦值語(yǔ)句和if語(yǔ)句的應(yīng)用;掌握switch多路分支語(yǔ)句和if嵌套語(yǔ)句的使用

2、 將前期所學(xué)習(xí)到的基本數(shù)據(jù)類型、運(yùn)算符和表達(dá)式等程序設(shè)計(jì)基礎(chǔ)知識(shí)運(yùn)用于具體的程序設(shè)計(jì)。

3、 進(jìn)一步熟練掌握輸入輸出函數(shù)scanf, printf和getchar的使用,熟悉math.h中常用數(shù)學(xué)函數(shù)的使用方法

4、 掌握循環(huán)語(yǔ)句的應(yīng)用方法。

5、 了解隨機(jī)數(shù)生成函數(shù)。

[實(shí)驗(yàn)要求]

在規(guī)定期限獨(dú)立完成實(shí)驗(yàn)內(nèi)容

1、 提交實(shí)驗(yàn)報(bào)告(電子版)

2、 提交相應(yīng)源程序文件(文件名 EX6_x姓名.c, 如EX6_1彭健.c)

3、 要求從簡(jiǎn)單到復(fù)雜,后面的要求均在前面的基礎(chǔ)上進(jìn)行修改,前六題,每題均需要保留各自的程序,六題以后,每題均在前一題基礎(chǔ)上修改,保留最后一個(gè)程序即可(如做到第九題,則保留EX6_9姓名.c,做到第11題,則保留ex6_11姓名.c)

二、實(shí)驗(yàn)原理和設(shè)計(jì)方案:

1、函數(shù)頭的選則,while循環(huán)語(yǔ)句,switch(case)語(yǔ)句,條件表達(dá)式,if else條件語(yǔ)句,自增運(yùn)算符,設(shè)置復(fù)雜變量,輸出隨機(jī)操作數(shù)。

2、 變量要有分?jǐn)?shù)變量和等級(jí)變量,要有選擇算法題數(shù)的變量和計(jì)算正確與否的變量,要有隨機(jī)輸出的兩個(gè)操作數(shù)變量和自己按運(yùn)算符號(hào)輸入結(jié)果的變量,最后還有判斷是否要進(jìn)行的變量字符。中間結(jié)果有選擇運(yùn)算符的switch()和分?jǐn)?shù)等級(jí)的switch()和錯(cuò)題對(duì)題的自增和選擇運(yùn)算符計(jì)算的自增。

3、 問(wèn)題的分析方法:先考慮設(shè)置整形變量和字符變量,考慮到要不斷循環(huán)計(jì)算,選擇用while語(yǔ)句來(lái)循環(huán)。在循環(huán)體中,將前面的輸出提示運(yùn)算符,和自行選擇運(yùn)算符、答案及輸出隨機(jī)操作數(shù)完成。再用switch語(yǔ)句對(duì)選擇的運(yùn)算符進(jìn)行判斷,并用變量進(jìn)行自增運(yùn)算,計(jì)算出錯(cuò)題于對(duì)題個(gè)數(shù)和選擇了那種運(yùn)算符號(hào)。在循環(huán)體最后用if else語(yǔ)句來(lái)判斷是否繼續(xù)執(zhí)行還是跳出循環(huán)。最后根據(jù)自增計(jì)算的結(jié)果和公式進(jìn)行分?jǐn)?shù)計(jì)算,并用switch語(yǔ)句來(lái)是想等級(jí)的制定。

三、源代碼

#includestdio.h

#includestdlib.h

#includetime.h

void main()

{

..........

}

四、試驗(yàn)結(jié)果和啟發(fā)

因?yàn)檩斎難要繼續(xù)循環(huán),所以選擇用while語(yǔ)句。在while語(yǔ)句中要結(jié)合前面的按提示計(jì)算,并嵌套switch語(yǔ)句并用條件表達(dá)式,來(lái)計(jì)算結(jié)果正確與否,計(jì)算的題型是什么。最后再用switch語(yǔ)句來(lái)完成分?jǐn)?shù)等級(jí)的判斷。

五、實(shí)驗(yàn)體會(huì):

描述自己在編程或程序編譯運(yùn)行中遇到的難點(diǎn)和問(wèn)題及解決的辦法。


網(wǎng)站欄目:c語(yǔ)言函數(shù)程序設(shè)計(jì)報(bào)告,C語(yǔ)言函數(shù)程序設(shè)計(jì)
標(biāo)題路徑:http://weahome.cn/article/phioic.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部