{ int ID //学号
char name[10] //姓名
float c
float java
float sql //成绩
float sum //总和
float avg //平均值 }
实现:输入 输出 修改 添加 查询 删除
用函数实现每个块
请一定多带点注释 本人刚学没多久 做这个太吃亏拉////
做这个会吃亏??
做只会赚而已啊!
用数组或链表模拟一下就可以了...
我这种菜鸟都会,你应该比我牛点...
自己做应该没问题...
/* 标准文档模板 */
#include "Stdio.h"
#include "Conio.h"
#define N 100
struct stud
{char name[10];
int c;
int java;
int sql;
int sum;
int avg;
};
main()
{ int i=0,*n=0;
char c;
struct stud st[N];
void input(struct stud st[N],int i,int *n);
void insert(struct stud st[N],int i,int *n);
void increase(struct stud st[N],int i,int *n);
printf("'p':输入 's':插入 'c':删除\n");
do{c=getch();
switch(c)
{
case 'p' :input(st,i,n);i++;break;
case 's' :printf("插入的位置:");scanf("%d",&i);insert(st,i,n);break;
case 'c' :printf("要删除的是:");scanf("%d",&i);increase(st,i,n);break;
default :break;
};
}while(c!='\r');
for(i=0;i<*n;i++)
printf("\n姓名:%s\nc语言成绩:%d\njava语言成绩:%d\nsql成绩:%d\n总成绩:%d\n平均分:%d\n",
st[i].name,st[i].c,st[i].java,st[i].sql,st[i].sum,st[i].avg);
getch();
return 0;
}
void input(struct stud st[N],int i,int *n)
{
printf("请输入第%d个人的姓名:",i+1);
scanf("%s",st[i].name);
printf("请输入第%d个人的c语言成绩:",i+1);
scanf("%d",&st[i].c);
printf("请输入第%d个人的java语言成绩:",i+1);
scanf("%d",&st[i].java);
printf("请输入第%d个人的sql语言成绩:",i+1);
scanf("%d",&st[i].sql);
st[i].sum=st[i].c+st[i].java+st[i].sql;
st[i].avg=(st[i].c+st[i].java+st[i].sql)/3;
*n+=1;
}
void insert(struct stud st[N],int i,int *n)
{ int j,a;
for(j=*n;j>i;j--)
{
for(a=0;a<=9;a++)
{st[j].name[a]=st[j-1].name[a]; }
st[j].c=st[j-1].c;
st[j].java=st[j-1].java;
st[j].sql=st[j-1].sql;
st[j].sum=st[j-1].sum;
st[j].avg=st[j-1].avg;
};
input(st,i,n);
}
void increase(struct stud st[N],int i,int *n)
{
int j,a;
for(j=i;j<*n-1;j++)
{
for(a=0;a<=9;a++)
{st[j].name[a]=st[j+1].name[a]; }
st[j].c=st[j+1].c;
st[j].java=st[j+1].java;
st[j].sql=st[j+1].sql;
st[j].sum=st[j+1].sum;
st[j].avg=st[j+1].avg;
};
*n-=1;
}