杨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();
}
}
}
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *