我是个刚学程序新手.
在看一些程序时会有很多看不懂,比如下面这个程序,是个成绩管理的程序.
哥哥姐姐们能帮我加点解释的注释吗?
希望详细点,方便我能看的懂,可能有点笨,不好意思麻烦各位了
# include <stdio.h>
# include <stdlib.h>
# include <conio.h>
# include <math.h>
# include <string.h>
struct student
{
int no;
char name[20];
float score[2];
float avg;
};
struct student input( );
void display(struct student[],int);
void sort(struct student[],int );
int find(struct student[],int ,int );
void query(struct student[],int );
void update(struct student[],int);
void remove1(struct student[],int *);
void main()
{
struct student stu[20];
int count =0;
char sel=’1′,flag;
while(sel!=’7′)
{
system(“cls”);
printf(“\t_________________学员信息管理系统______________________\n\n”);
printf(“\t1.录入\t2.显示\t3.排序\t4.查询\t5.修改\t6.删除\t7.退除\t\n”);
printf(“\t_______________________________________________________\n\n”);
printf(“\t\t\t欢迎你使用学员信息管理系统\n”);
printf(“\n请选择你要的操作 “);
sel=getchar();
switch(sel)
{
case ’1′:
system(“cls”);
do
{
stu[count]=input();
count++;
printf(“‘是否继续输入(y/n):”);
fflush(stdin);
flag=getchar();
}while(flag==’y'||flag==’Y');
break;
case ’2′:
display(stu,count);
break;
case ’3′:
sort(stu,count);
break;
case ’4′:
query(stu,count);
break;
case ’5′:
update(stu,count);
break;
case ’6′:
remove1(stu,&count);
break;
}
}
getch();
}
/*单个学员信息录入*/
struct student input()
{
struct student stu;
float sum;
char k=0;
int j;
char ch[20];
do{
printf(“\n请输入学号:”);
scanf(“%s”,ch);
k=0;
stu.no=0;
for(j = strlen(ch)-1;j>=0;j–)
{
if(ch[j]<’0′||ch[j]>’9′)
{
k=1; break;
}
stu.no+=(ch[j]-48)*pow(10,j);
}
/*printf(“请输入数字\n”); */
}while(k==1);
printf(“\n请输入姓名:”);
scanf(“%s”,&stu.name);
printf(“\n请输入两门成绩:\n”);
sum=0;
for(j=0;j<2;j++)
{
printf(“成绩%d:”,j+1);
scanf(“%f”,&stu.score[j]);
sum=sum+stu.score[j];
}
stu.avg=sum/2.0;
return stu;
}
/*显示所有学员信息*/
void display (struct student stud[],int count)
{
int i;
system(“cls”);
printf(“\t\n%-8s %-12s %-12s %-12s %-12s\n”,”学 号”,”姓 名”,”成绩一”,”成 绩二”,”平均成绩”);
printf(“\t\n%-8s %-12s %-12s %-12s %-12s\n”,”______”,”_______”,”_______”,”______”,”_________”);
for(i=0;i<count;i++)
{
printf(“%-12d”,stud[i].no);
printf(“%-12s”,stud[i].name);
printf(“%-12.2f”,stud[i].score[0]);
printf(“%-12.2f”,stud[i].score[1]);
printf(“%-.2f\n”,stud[i].avg);
printf(“\n”);
}
printf(“\n按任意键返回主菜单:”);
getch();
}
/*排序*/
void sort(struct student stud[],int count)
{
struct student t;
int i,j;
for(i=0;i<count-1;i++)
{
for(j=count-1;j>i;j–)
{
if(stud[j].avg>stud[j-1].avg)
{
t=stud[j];
stud[j]=stud[j-1];
stud[j-1]=t;
}
}
}
system(“cls”);
printf(“\n排序已经完成,按任意键返返回主菜单:”);
getch();
}
/*根据学号查找学员信息函数,找到返回该学员在数组中的上标,没找到返回*/
int find (struct student stud[],int count ,int no)
{
int i;
for(i=0;i<count;i++)
{
if(stud[i].no==no)
{
return i;
}
}
return -1;
}
/*根据学号查询并显示学员信息*/
void query(struct student stud[],int count)
{
int dno,i;
system(“cls”);
printf(“\n主输入要查询的学员的学号:”);
scanf(“%d”,&dno);
i=find(stud,count,dno);
if(i==-1)
{
printf(“\n你所要查询的学员不存在!按任意键返回主菜单:”);
getch();
return;
}
printf(“\n%-8s%-12s%-12s%-12s%s\n”,”学号”,”姓 名”,”成绩一”,”成绩二”,”平均成绩”);
printf(“\n%-8s%-12s%-12s%-12s%s\n”,”____”,”______”,”_______”,”______”,”_______”,”___________”,”_____________”);
printf(“%-8d”,stud[i].no);
printf(“%-12s”,stud[i].name);
printf(“%-12.2f”,stud[i].score[0]);
printf(“%-12.2f”,stud[i].score[1]);
printf(“%-.2f”,stud[i].avg);
printf(“\n”);
printf(“\n按任意键返回主菜单:”);
getch();
}
/*修改学员信息*/
void update(struct student stud[],int count)
{
int dno,i;
system(“cls”);
printf(“\n请输入要修改的学员的学号:”);
scanf(“%d”,&dno);
i=find(stud,count,dno);
if(i==-1)
{
printf(“\n你所要查询的学员不存在!按任意键返回主菜单:”);
getch();
return;
}
stud[i]=input();
printf(“\n修改成功!按任意键返回主菜单:”);
getch();
}
/*删除学员信息 */
void remove1(struct student stud[],int *count)
{
int dno,i,j;
system(“cls”);
printf(“\n请输入要删除的学员的学号:”);
scanf(“%d”,&dno);
i=find(stud,*count,dno);
if(i==-1)
{
printf(“\n你所要查询的学员不存在!按任意键返回主菜单:”);
getch();
return;
}
for(j=i;j<*count-1;j++)
{
stud[j]=stud[j+1];
}
(*count)–;
printf(“/n删除成功!按任意我键返回主菜单:”);
}
>> 本文固定链接: http://www.vcgood.com/archives/2339
自己慢慢就看懂了!!不用急!!
你是初学者,我晕!~~~!
/*
*程序说明:马克思
*程序文件:马克思.cpp
*程序日期:2006-04-18
*版 本:1.0 Best
*作 者:马晓萌
*联系方式:windlanmail@163.com
*/
/*马克思手稿中有一道趣味数学问题:有30个人,其中有男人,女人和小孩,在一家饭馆吃饭共花了
50先令;每个男人花3先令,每个女人花2先令,每个小孩花1先令;问男人,女人和小孩各有几人?
*/
#include <iostream.h>
void main(void)
{
for(int n=1;n<=10;n++)
{
for(int v=1;v<=15;v++)
{
for(int x=1;x<=30;x++)
{
if(n+v+x==30 && n*3+v*2+x*1==50)
{
cout<<”n”<<n;
cout<<” v”<<v;
cout<<” x”<<x;
cout<<endl;
}
}
}
}
}
请问为什么n只能取到10啊?还有v也不明白!这是在C/C++练习–趣味题中发现的
这个不是很难啊,自己看看就明白了,好多看函数名就知道有什么用了