杨c语言论文

#

包括

包括

整数N = 2;//全局变量。输入的学生人数会自行改变其值。

结构学生

{

字符数[10];

角色名[10];

浮动分数[3]

}学生【200】;

/ ******************************* ************************************************** ************* /

无效输入(结构学生t[])//输入数据

{

INT I,J,K,;

系统(“CLS”);

Printf的("输入由输入数据的数量决定\ n您已经确定了一些\ n ");

Printf("请输入1继续\ n不输入0退出程序,并更改全局变量的值\ n ");

Scanf函数(" %d ",& a);

(答!= 1 )

退出(0);

(I = 0;& ltn;+ +)

{

系统(“CLS”);//清除屏幕BR/& gt;Printf("请输入% d学生人数:\ n ",I+1);

Scanf函数(" %s ",T [i]的个数);

Is (j = 0j

If (STRCMP(T [I])。数,T [J]。NUM)= = 0)//避免学生人数相同。

{/& gt;-

printf("学生人数已经存在,请重新输入:");

睡眠(3000);

突破;

}

}

是(I = 0;& ltn;+ +)

{

系统(“CLS”);

Printf的("请输入学号% s:(用空格隔开)\ n第二门第一成绩和第二门第三成绩\ n ",T[I]NUM);

//T [i]。Score [0] = 0,T [i]。Score [1] = 0,T [i]。score[2]= 0;

Scanf函数(" %s% f% f% f,T [I])。名称,&t [i]。分数[0],分数为&t [I] [1],分数为& t[I][2]);

AVG .score[0]+T[I]score[1]+[I]。得分[2])/3.0;

}

}

/ ************************************************* ********************************************* /

注释列表(student t[])//显示所有信息。

{

我;

系统(“CLS”);

printf ("%d学生信息如下:\ n \ n ",n);

Printf的(“学生证名字第一门成就第二门,第三门成绩一般\ n”);

(I = 0;I++)

{

(T[I]strlen的编号)!= 0)//判断是否结束。

printf(" % % S \ t where % S \ t % 5.2f \ t % 5.2f \ t % 5.2f \ t % 5.2f \ t \ t ",

T [I].数,T[我的名字,T [i]分数[0],T [I]。Score [1],T [i] score [2],T [i]。平均);

其他的

突破;

}

putchar(10);

}

/ ************* ************************************************** ******** /

无效的研究(学生t[])//学生id查找信息。

{

INT I,Y;

字符[10];

(1)

{系统(“CLS”);

Printf的("请输入你的学号:");

Scanf函数(" %s ",& s);

是(I = 0;i + +)

{

系统(“CLS”);

((STRCMP( S,T [i]))。num))//如果找到学生人数,输出。

{

Printf's("学号%的学生成绩如下:\ n \ n ",T[]NUM);

printf的名称(“第二成绩第一成绩平均人数\ n”为第三成绩);

printf(" % \ t where % s \ t % 5.2f \ t % 5.2f \ t % 5.2f \ t % 5.2f \ t ",

T [me]号,T [I]。姓名,T[我]。得分[0],T [i]得分[1],T [I] [2分],T [I]。平均);

putchar(10);

休息;

}

否则,if ((STRCMP(S,T [I])。NUM))!= 0 & amp& ampStrlen(T [I]。NUM)= = 0)//搜索完成后不是最终结果

{

printf(" \ n无计数信息:\ n \ n ");

突破;

}

}

printf(" please * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * \ n ";}输出(继续查询并输入回车\ n ");

(“of printf返回主菜单,输入2,回车\ n”);

Output(退出程序并输入任何回车\ n ");

printf(" please * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * \ n ");

(%d个scanf,& a;

(== 1)

研究(学生,n);

否则,如果(== 2)

突破;

其他的

{

系统(“CLS”);

Printf的(" Exit and enter a carriage return以退出并保存数据");

Scanf函数(&y,共' % d ');BR/>;If (== 1)

退出(0);

否则,如果(Y == 2)

保存(STU);

其他的

Lord();

}

}

();

}

/ ******************* ************************************************** ************************* /

invalid Del(student t[])//删除一条学生信息。

{

INT I,J,A,Z,Y;

字符B[10];

系统(“CLS”);

Printf("请输入您要删除的学校数量:);

Scanf函数(" %s ",b);

(I = 0;i + +)

(STRCMP(B,T [.人)== 0)

突破;

否则,if ((STRCMP(B,T [I])。NUM))!= 0 & amp& ampStrlen(T [I]。NUM)== 0)

{

printf("编号信息:\ n \ n ");

睡眠(3000);

突破;

}

(strlen(T [NUM)!= 0)

{

系统(“CLS”);

Printf("请确认删除?输入回车\ n ");/& gt;(" %d ",&z)的scanf

(Z == 1)

Is (J = I,J++)

{

(strlen(T [J])。NUM)== 0)

打破;

其他的

{

T[J]= T[J+1];

= N-1;

}

}

}

系统(“CLS”);

Printf的(" * * * * * * * * * * * * * * * * * * * * * * * * * * * \ n ");

(' of printf继续删除并输入回车\ n ');...../output("返回主菜单并输入\ n ");

Printf("请退出程序并输入任何回车\ n ");

printf(" please * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * \ n ");

(" %d ",&a)的scanf

(== 1)

斯图;

否则,如果(== 2)

();

其他BR />{

系统(“CLS”);

Printf("请直接退出,输入回车,保存输入和退出的数据,进入主菜单22次\ n建议退出之前保存的金额,否则数据会丢失");

Scanf函数(" %d ",& y);

(== 1)

退出(0);

否则,如果(Y == 2)

保存(STU);

其他的

();

}

} & lt//* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *

INT I,J,M,A,Y;

系统(* * *

CLS”);

Of printf("请输入添加的记录数:\ nm = ");

(" %d ",&m)的scanf

For (i = n,我是N+M;+ +)

{

系统(“CLS”);

Printf的("请输入学生ID #% d的新同学:+1);

Scanf的(" " T [I]。NUM);

is(J = 0;;J + +)

(STRCMP(T [] min,T[J]min)= = 0)//避免重复的学号。

{

-

Printf的("该生的学生已经存在,请重新输入:)。

睡眠(3000);

突破;

}

}

当(i = n,I

{

(《CLS》);

Printf的("请输入% s的学生人数增加学校:(用空格隔开)\第三门名称,第一门成绩,第二门成绩\ n ",T[]NUM);

//T [i][0]= 0,T[I]的分数。With [1] = 0,T [i]。score[2]= 0;

Scanf函数(" %s% f% f% f,T [I])。名称,&t [i]。分数[0],分数为&t [I] [1],分数为& t[I][2]);

AVG .score[0]+T[I]score[1]+[I][2分])/3.0;

}

N = N+m//学生数等于已经出生的学生数,加上新增加的。

Printf的(" * * * * * * * * * * * * * * * * * * * * * * * * * * * \ n ");& lt/Output ("Add ",输入一个回车,\ n ");

printf("返回主菜单,输入2,回车\ N ");

(" of printf退出程序并输入任何回车\ n ");

Printf的(" * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * \ n ");

(%d个scanf,& a;

(= = 1)/& gt;add(STU);

否则,如果(== 2)

();

其他的

{

系统(“CLS”);....../& gt;Printf("您想退出吗?进入后,进入2号出口进入车内,保存数据,进入主菜单22次\ nI建议您在退出前保存一些,否则数据会丢失”);

If scanf's ("%d ",&y) (y = = 1)

退出(0);

否则,如果(Y == 2)

保存(STU);

其他的

主要是();

}

}

/ ************ ************************************************** ******************************** /

integer save(student t[])//文件来保存数据。

{

FILE * FP

CHar [20],ch;

我是一,y;

系统(“CLS”);

Printf("请保存到新文件并输入回车,\ n保存现有文件并输入2 \ n ");

(" %d ",&a)的scanf关于

CH = getchar function()//接收回车,否则得到()函数空间被分配到的错误。

如果(a == 1)

{

Output("请输入新文件名:\ n(包括扩展名,长度不超过20个字符)\ n ");

获取;

((FP的FOPEN(S =(S," w+")= = null)//FP指向的文件。

{

printf(" this file \ n ");

退出(0);

}

}

否则,如果(== 2)

{

printf("请输入现有文件名:\ N(包括扩展名,不超过20个字符)\ N ");

获取;

((FP = FOPEN(" w+")= = NULL)

{

系统(CLS”);

printf(" Please \ n ";};

退出(0);

}

}

用fprintf(FP)而不是文件“%%d \ N”,N)//编写的文件

是(I = 0;I++)

(strlen的T [I]。NUM)!= 0)//如果学生人数不为空,则将数据写入指定文件。

{

fprintf(FP," % S \ T % S \ T %-5.2f \ T % 5.2f \ T % 5.2f \ T % 5.2f ",

T [I].编号,T []。,T [] [0],T [i]得分[1],T [i]得分[2],T [i]平均);

fprintf(FP," \ n ");

}

其他的

FCLOSE(FP);

系统(“CLS”;);

Printf("请\ n保存它,就大功告成了!\ n ");

}

/ * ************************************************** ******************************************* /

无效读取(student t[])//读取文件数据

{

FILE * FP

解释y,m,I,x;

CHar [20],ch;

CH = getchar function()//接收输入字符,否则()函数空间分配给S. Error。

系统(“CLS”);

Printf("请输入读取数据的文件名:\ n(包括扩展名,20个字符以内)\ n ");

获取;

((FP = FOPEN ("R"))== NULL)

{

系统(“CLS”);

printf(" Please this file \ n ");

睡眠(3000)

系统(“CLS”);

Printf("请退出?退出并输入一个回车保存退出2中输入的数据,输入22返回主菜单\ nI建议您在退出前保存数字,否则数据会丢失”);

(" %d ",scanf的& y;

(Y == 1)

退出(0);

否则,如果(Y == 2)

保存(

其他的

();

}

Fscanf(FP," %d ",& x);//注册的学生人数

(斯图);I = 0;I x,i++)//读取所有数据。

Fscanf(FP," % f % f % f % f of % s % s,T [I] min,T [I]的名称,&t [i]。得分[0],

得分为&t [I] [1],&t [I]。分数[2],&t [I]。平均);

FCLOSE(FP);

系统(“CLS”);

N-= N//n将被设置为0。

n = X;

printf(" \ n读取完成!\ n ");

}

/ ******** ************************************************** ************************************ /

Menu()//选择菜单BR/& gt;{

解读x;

printf("请选择相应的菜单:\ n ");

Printf的(" * * * * * * * * * * * * * * * * * * * * * * * * * * * \ n ");

printf的(“请输入新记录,输入0并输入\ n”);

& gtPrintf("所有学生,请输入回车\ n ");

Printf("请查询对应记录,输入2,输入\ n ");

Printf("请删除相应记录,输入3,然后输入\ n ");

(“of printf增加一条新记录,输入4 input \ n”);

Printf的("从文件中读取的记录,输入5,输入\ n ");

Printf("请平均从最高到最低排序输出,input 6 input \ n ");

Printf("学号从低到高,并输出,输入7输入\ n ");

& gt输出(每门课分数最高的一门,输入一个回车\ n”);

(" printf的分数被保存到文本输入9 input \ n ");

(“of printf退出程序,输入11,输入\ n”);

printf(" please * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * \ n ");

Scanf的(" %d "和x);

返回x;

}

/ ***** ************************************************** *************************************** /

无效的to_exit()//exit。

{

解读;

系统(“CLS”);

Printf("请直接退出,输入回车并保存数据,退出输入2并进入主菜单22次\ nI建议您在退出前保存数字,否则会丢失数据");

(" %d ",scanf的& y;

(Y == 1)

退出(0);

其他(Y == 2)

保存(STU);

其他的

();....../& gt;}

/ ****************************************** ************************************************** * /

avg _ arrange(student t[])//平均高到低排序无效。

{

I,J;

结构学生温度[1];BR/>;(I = 0;我& ltn-1;i + +)

(J = I +1,J & ltn,J + +)

(T [I].AVG <T [J].平均)

{

TEMP[0]= T[];

T[]= T[J];

吨[J]。= TEMP[0];

}

列表(STU);

}

/ ******************** ************************************************** ************************ /

无效num _ arrange(student t[])//学生人数从小到大的顺序。

& gt{

解读IJ;

结构学生温度[1];

是(I = 0;我& ltn;I++)

(J = 0,J & ltN-1,J + +)

(STRCMP(T [J]).编号,T [j +1]。NUM)>0)

{

温度[0] = T [J]。

T[J]= T[J+1];

= T[j+1]中的TEMP[0];

}

列表(t);

}

/ **************************************** ************************************************** **** /

无效高(学生t[])//搜索科目最高分。

{

INT I,J,K,

结构生最大【1】;

最大值[0]= T[0];

系统(“CLS”);

printf的("请输入你要找的主题:1或2或3 \ n ");

Scanf函数(&k,共' % d ');

(I = 1;我

最大值[0] = [0]。分数[K-1]& gt;T [i] [k-1]的分数最大[0]: [I]

系统(“CLS”);

输出("将% d的科目分为:% %5.2f的学生数为\ n ",k [0]的最高分为[k-1],最高分为[0]NUM);

}

/ ********************************************* ************************************************* /

()

{

已解释;

(1)

{

一个菜单();

switch(A)//根据相应的动作选择菜单。

{

本例中为0:input(STU);突破;

案例1:列表(STU);突破;

案例、研究(STU);突破;

案例三:德尔(斯图);突破;

情况四:添加(STU);突破;

万一,5:读书(STU);休息;

场景6:avg _ arrange(stu);突破;

案例7:num _ arrange(stu);突破;

案例八:斯图;突破;

情况:保存(STU);突破;

默认值:to _ exit();

}

}

}

* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *