注册 登录
编程论坛 数据结构与算法

[原创] C语言完成一个学生成绩管理程序

ㄣ黑銫禮ゞ菔 发布于 2007-06-08 23:23, 8790 次点击

上学期的一个C程序,我和另外3个人一起做的,请指教:


#include "stdio.h"
#include "string.h"
#define N 2
struct student
{
long num;
char name[20];
char sex;
int chinese;
int math;
int english;
};
struct student stu[N];
int n;
int choose;
void fun1();
void fun2();
void fun3();
void fun4();


void fun1()
{
int i;
for(i=0;i<N;i++)
{
printf("请输入学号:\n");
scanf("%ld",&stu[i].num);
printf("请输入名字:\n");
scanf("%s",stu[i].name);
getchar();
printf("请输入性别:\n");
scanf("%c",&stu[i].sex);
printf("请输入语文成绩:\n");
scanf("%d",&stu[i].chinese);
printf("请输入数学成绩:\n");
scanf("%d",&stu[i].math);
printf("请输入英语成绩:\n");
scanf("%d",&stu[i].english);
}

}

void fun2()
{ int i;
for(i=0;i<N;i++)
{
printf("%ld\t%s\t%c\n",stu[i].num,stu[i].name,stu[i].sex);
printf("%d\t%d\t%d\n",stu[i].chinese,stu[i].math,stu[i].english);
}
}

void fun3()
{ char name[20];
int k,f=0;
printf("请输入您所要查找的姓名: ");
gets(name);
for(k=0;k<2;k++)
if(strcmp(name,stu[k].name)==0)
{ printf("%ld,%s,%c,%d,%d,%d",stu[k].num,stu[k].name,stu[k].sex,stu[k].chinese,stu[k].math,stu[k].english);
f=1;
}
if(f=0)
printf("木有这个人~~~TOT");

}

void fun4()
{ int k;
char newname[20];
printf("请输入该学生的名字!\n");
gets(newname);
printf("所有学生记录为:\n");
fun2();
for(k=0;k<2;k++)
if(strcmp(newname,stu[k].name)==0)
{
printf("你选择的学生为:\n");
printf("%ld,%s,%c,%d,%d,%d",stu[k].num,stu[k].name,stu[k].sex,stu[k].chinese,stu[k].math,stu[k].english);

stu[k].num=stu[k+1].num;
strcpy(stu[k].name,stu[k+1].name);
stu[k].sex=stu[k+1].sex;
stu[k].chinese=stu[k+1].chinese;
stu[k].math=stu[k+1].math;
stu[k].english=stu[k+1].english;

}


printf("学生记录删除完毕!");


}

void main()
{
printf("*********************************************\n");
printf("*************学生成绩管理程序****************\n");
printf("*********************************************\n");
printf("***********************************欢迎使用!\n");
printf("*******************************制作者:******\n");
printf("*********************邢翔云,张健,生剑,龚伟\n");
printf("1..............................添加\n");
printf("2..............................显示\n");
printf("3..............................查询\n");
printf("4..............................删除\n");

printf("请输入您要进行的操作:\n");
scanf("%d",&choose);
while(choose!=1&&choose!=2&&choose!=3&&choose!=4)
{ printf("数字多也表按错吖~~~~再按遍吧 ~ 看清楚咯 ^_^");
scanf("%d",&choose);
}
while(choose==1||choose==2||choose==3||choose==4)
{switch(choose)
{
case 1:fun1(); break;
case 2:fun2(); break;
case 3:fun3(); break;
case 4:fun4(); break;
}
printf("请输入您要进行的操作:\n");
scanf("%d",&choose);
}

}

[此贴子已经被作者于2007-6-9 0:04:16编辑过]

28 回复
#2
wxj120bw2007-06-09 09:25
挺不错的,你可以用链表来做这题,void fun1();
void fun2();
void fun3();
void fun4();可以省去吧
#3
ㄣ黑銫禮ゞ菔2007-06-10 14:06

我试过了,还是有点问题…以后再调试吧...

#4
killer_l2007-06-11 09:14
支持一帖 ......
#5
ㄣ黑銫禮ゞ菔2007-06-11 13:47
#6
li4217730922007-06-11 22:43

支持 都是高手

#7
雨中沉思2007-06-12 12:32
佩服


[此贴子已经被作者于2007-6-12 12:33:51编辑过]

#8
ㄣ黑銫禮ゞ菔2007-06-13 17:27
#9
xiongxueming2007-06-13 18:43
#10
anne0613h2007-06-13 20:07
#11
crys_chyf2007-07-29 13:18
看上去fun1好像不对啊,输入下一个时会把前一个覆盖掉啊,每次进函数i都被赋予0了
#12
sailin2007-07-30 17:30
顶一个先
#13
jxnuwy042007-08-03 13:46
不是吧,这样的代码也加精了,不解?
#14
福尔摩斯2007-08-03 14:26


这程序也要3人合写?
#15
卧龙孔明2007-08-06 09:32
支持一下,继续努力
#16
dyjazw2007-08-06 09:53
程序比较简单哦
#17
a84517272007-08-06 10:02

小菜鸟问一下:fun4()删除的原理是什么?

后面那个覆盖前面的?那原来的stu[k+1]还在吗?

#18
缘吇弹2007-08-07 21:08

不错啊,要是功能再加强点就更好了

#19
鬼手刀客2008-10-19 22:27
顶你一下!
#20
welove10122008-10-24 12:42
不错!!
#21
fzzjr_542008-10-24 19:03
学习下,
#22
xiaoyong122008-10-27 16:23
支持一下
#23
theft1102011-07-16 19:54
#24
lj22602011-11-23 15:17
#25
青春舞台2012-07-04 10:47
不错
#26
lidonghaha2012-10-23 15:43
新手观摩
1