简单的学生管理系统
大家帮帮看下```本人还是菜鸟级的```#include "stdio.h"
#include "stdlib.h"
typedef struct{
char name[20];
int age;
int cj[5];
}elem;
typedef struct{
elem *e;
int len;
int listsize;
}list;
int main()
{
list l;
int k;
void inset(list *l);
void looklist(list *l);
void updata(list *l);
void dellist(list *l);
void savelist(list *l);
l.len=0;
l.listsize=0;
while(k)
{
system("cls");
printf("\t\t\t学 生 管 理 系 统\n\n\n");
printf("\t.............1. 增 加 学 生 记 录.............\n");
printf("\t.............2. 修 改 学 生 记 录.............\n");
printf("\t.............3. 删 除 学 生 记 录.............\n");
printf("\t.............4. 查 看 学 生 记 录.............\n");
printf("\t.............5. 保 存 学 生 记 录.............\n");
printf("\t.............0. 退 出 .............\n\n\n");
printf("\t请输入你须要的功能:");
scanf("%d",&k);
while(k<0 || k>5)
{
printf("无效按键,,,按任意键重新输入");getch();
system("cls");
printf("\t\t\t学 生 管 理 系 统\n\n\n");
printf("\t.............1. 增 加 学 生 记 录.............\n");
printf("\t.............2. 修 改 学 生 记 录.............\n");
printf("\t.............3. 删 除 学 生 记 录.............\n");
printf("\t.............4. 查 看 学 生 记 录.............\n");
printf("\t.............5. 保 存 学 生 记 录.............\n");
printf("\t.............0. 退 出 .............\n\n\n");
printf("\t请输入你须要的功能:");
scanf("%d",&k);
}
switch(k){
case 1:inset(&l);break;
case 2:updata(&l);break;
case 3:dellist(&l);break;
case 4:looklist(&l);break;
case 5:savelist(&l);break;
case 0:return 0;
}
}
}
void inset(list *l)
{
elem el,*p;
char c;
int i=1;
system("cls");
l->e=(elem *)malloc(100*sizeof(elem));
l->len=0;
l->listsize=0;
p=l->e;
while(c!=27)
{
system("cls");
printf("\t\t\t\t增加学生记录\n\n");
printf("姓名:");scanf("%s",el.name);printf("\n");
printf("年龄:");scanf("%d",&el.age);printf("\n");
printf("成绩_语文:");scanf("%d",&el.cj[1]);printf("\n");
printf("成绩_数学:");scanf("%d",&el.cj[2]);printf("\n");
printf("成绩_英语:");scanf("%d",&el.cj[3]);printf("\n");
*p=el;
l->listsize+=1;
p++;
printf("按任意键继续````ESC返回主程序\n");
c=getch();
}
}
void looklist(list *l)
{
elem *p;
int i;
system("cls");
printf("\t\t\t\t查看学生成绩表\n\n\n");
p=l->e;
printf("姓名\t年龄\t成绩_语文\t成绩_数学\t成绩_英语\n\n");
for(i=1;i<=l->listsize;p++,i++)
printf("%d:%s\t%d\t %d\t\t %d\t\t %d\n",i,p->name,p->age,p->cj[1],p->cj[2],p->cj[3]);
printf("\n\n");
system("pause");
}
void updata(list *l)
{
elem el,*p;
int i;
char c;
while(c!=27){
system("cls");
printf("请输入要修改的序号:");
scanf("%d",&i);
p=l->e;
p=p+i-1;
printf("姓名\t年龄\t成绩_语文\t成绩_数学\t成绩_英语\n\n");
printf("\n%d:%s\t%d\t %d\t\t %d\t\t %d\n",i,p->name,p->age,p->cj[1],p->cj[2],p->cj[3]);
printf("输入新的信息\n");
printf("姓名:");scanf("%s",el.name);printf("\n");
printf("年龄:");scanf("%d",&el.age);printf("\n");
printf("成绩_语文:");scanf("%d",&el.cj[1]);printf("\n");
printf("成绩_数学:");scanf("%d",&el.cj[2]);printf("\n");
printf("成绩_英语:");scanf("%d",&el.cj[3]);printf("\n");
*p=el;
printf("修改成功```按任意键继续,ESC返回");
c=getch();
}
}
void dellist(list *l)
{
elem *p,*q;
int i,d;
char c;
char ch;
while(c!=27)
{
system("cls");
printf("请输入要删除的序号:");
scanf("%d",&i);
p=l->e;
p=p+i-1;
printf("姓名\t年龄\t成绩_语文\t成绩_数学\t成绩_英语\n\n");
printf("\n%d:%s\t%d\t %d\t\t %d\t\t %d\n",i,p->name,p->age,p->cj[1],p->cj[2],p->cj[3]);
for(;i-1<l->listsize;p++,i++)
*p=*(p+1);
l->listsize-=1;
printf("删除成功 按任意键继续,ESC返回");
c=getch();
}
}
void savelist(list *l)
{
FILE *fp;
elem *p;
int i;
if((fp=fopen("stat.txt","wt+"))==NULL)
{
exit(0);
printf("error");
}
p=l->e;
for(i=l->len;i<l->listsize;i++,p++)
fprintf(fp,"%d:%s\t%d\t%d\t%d\t%d\n",i+1,p->name,p->age,p->cj[1],p->cj[2],p->cj[3]);
printf("保存成功");
fclose(fp);
}
[[it] 本帖最后由 startuser 于 2008-9-29 10:35 编辑 [/it]]