求助关于C语言程序学生管理系统的一些小问题

lszgn 2005-06-23 09:32:41
一个用C语言做的学生信息管理系统..为求简便数据直接保存在内存中..程序做完在编译的时候有错误....求达人帮忙看看错在哪..小弟实在看不出错的地方...谢谢了...源码见楼下..
...全文
191 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
lszgn 2005-06-24
  • 打赏
  • 举报
回复
谢谢楼上各位了~我是初学者~所以很多时候不能注意到一些问题~以后我会注意我的代码风格的~
zjxiaoyu 2005-06-23
  • 打赏
  • 举报
回复
#define N 50;
去掉分号。
s_topman 2005-06-23
  • 打赏
  • 举报
回复
程序中没有srchByxh这个函数,还有你的错误都是编译错误,都是很简单的,自己
应该能查出来吧?
lszgn 2005-06-23
  • 打赏
  • 举报
回复
#include <stdio.h>
#define N 50;
typedef struct stu
{
int xh;
char name[10];
char sex[3];
int age;
int grade;
}STUDENT;
int N;
STUDENT st[N];
STUDENT InputAstudent()
{STUDENT a;
printf("Xuh:");scanf("%d",&a.xh);
printf("Name:");gets(a.name);
printf("Sex:");gets(a.sex);
printf("Age:");scanf("%d",a.age);
printf("Grade:");scanf("%d",a.grade);
return a;
}
void InputStudents(STUDENT *p,int n)
{int i;
for(i=0;i<n;i++)
{printf("Please %d student info:\n",i);
p[i]=InputAstudent();
}
}
outAstudent(STUDENT *p)
{
printf("%4d ",p->xh);
printf("%12s ",p->name);
printf("%5s ",p->name);
printf("%4d ",p->age);
printf("%4d ",p->grade);
printf("\n");
}
deleteAstudent(STUDENT *p,int *n, int k)
{int i;
for(i=k;i<*n;i++) p[i]=p[i+1];
(*n)--;
}
int srchByname(STUDENT *p, int n,char *name)
{ int found,i=0;
while(strcmp(p[i].name,name)&&i<n) i++;
if(i<n) return i; else return -1;
}
sortBygrade(STUDENT *p,int n)
{STUDENT t;int i,j,k;
for(i=0;i<n-1;i++)
{k=i;
for(j=i+1;j<n;j++)
if(p[j].grade>p[k].grade) k=j;
if(k!=i) {t=p[i];p[i]=p[k];p[k]=t;}
}
}
changebyxh(STUDENT *p,int n,int xh,int grade)
{int k;
k=srchByxh(p,n,xh);
if(k==-1) return -1;
p[k].grade=grade;
}
float getaverage(STUDENT *p,int n)
{float sum=0.0,ave;
int i;
for(i=0;i<n;i++) sum+=p[i].grade;
ave=sum/n;
return ave;
}
int countBygrade(STUDENT *p,int n,int low,int high)
{int i,s=0;
for(i=0;i<n;i++)
if(p[i].grade>=low&&p[i].grade<high)s++;
return s;
}
void srchname( )
{ int k;
char name[10];
clrscr();
printf(" Name:\n");gets(name);
k=srchByname(st,n,name);
if(k>=0) outAstudent(st+k);
}
void srchxh( )
{int k,xh;
printf("XuHao:\n");
scanf("%d",&xh);
k=srchByxh(st,n,xh);
if(k>=0) outAstudent(st+k);
}
char displaymenu()
{
clrscr( );
printf("1.InputAll\n");printf("2.OutputAll\n");
printf("3.DeleteRecord\n");
printf("4.InsertRecord\n");
printf("5.SearchByName\n");
printf("6.SearchByxh\n");
printf("7.DisplayBefore3rd\n");
printf("8.ChangeGradeByname\n");
printf("9.ChangeGradeByxh\n");
printf("A.DisplayAverageMaxMin\n");
printf("B.DisplayGradeRange\n");
printf("Q.End\n");
return getchar( );
}
void Dofun(char f )
{switch(f)
{
case 1:InputStudents(st,n);break;
case 2:outputStudents(st,n);break;
case 3:delete();break;
case 4:insert();break;
case 5:srchname( );break;
case 6: srchxh( );break;
case 7: display3line(); break;
case 8: changename();break;
case 9: changexh();break;
case 'A':case 'a':
case 'B':case 'b':break;
}
}
main()
{
char ch;
int n;
while((ch=displaymenu())!='Q')
{
clrscr();
Dofun(ch);
}
}
AIGPTchina 2005-06-23
  • 打赏
  • 举报
回复
你的代码风格问题要注意一下
你要想别人看你的代码~~
看看梁的那本《高手箴言》

bingbox_1984 2005-06-23
  • 打赏
  • 举报
回复
有错误:scanf("%d",a.age);
该为scanf("%d",&a.age);
还有:scanf("%d",a.grade);
该为:scanf("%d",&a.grade);
还有:printf("%5s ",p->name);
改为:printf("%5s ",p->sex);
k=srchByxh(st,n,xh);这个是什么东东?好象没有出现srchByxh函数哦
case 'A':case 'a':
case 'B':case 'b':break;
直接用default:break;
你的函数有好多错误啊
有些根本不能调用!自己在去看看。

69,382

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧