CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
山寨机中的战斗机! 程序优化工程师到底对IT界有没有贡献
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  C/C++ >  非技术区

学了顺序表后自己编的一个学生管理系统,请各位大哥都来给点意见。

楼主gun44(gun)2006-08-01 19:34:04 在 C/C++ / 非技术区 提问

学了顺序表后自己编的一个学生管理系统,请各位大哥都来给点意见。  
  有不足的请大家都指出来,小弟不胜感激!  
  #include"stdio.h"  
  #include"string.h"  
  #include   "stdlib.h"  
  #define   listsize   100  
  #define   listup   10  
  struct   student  
  {  
  int   num;  
  char   name[5];  
  int   mark;  
  int   length;  
  }stu[listsize];  
  void   print()  
  {  
  printf("======要新输入学生数据请按N======\n");  
  printf("======要插入学生数据请按I========\n");  
  printf("======要删除学生数据请按D========\n");  
  printf("======要查询学生数据请按S========\n");  
  printf("======要退出学生管理系统请按x========\n");  
  }  
  void   Init()  
  {  
  void   list();  
  struct   student   *p;  
  p=stu;  
  int   i,j;  
  printf("要输入多少个学生的数据?:");  
  scanf("%d",&i);  
   
  for(j=0;j<i;j++)  
  {  
  printf("学号       姓名     成绩\n");  
  scanf("%d   ",&stu[j].num);  
  scanf("%s",&stu[j].name);  
  scanf("%d",&stu[j].mark);  
  p->length=j;  
  }  
  list();  
  }  
  void   Insert()  
  {  
  struct   student   *p;  
  p=stu;  
  void   list();  
  int   i,j;  
  printf("请问要在第几个学生前插入数据?:");  
  scanf("%d",&i);  
  p->length++;  
  for(j=p->length;j>=i-1;j--)  
  {  
  stu[j+1].num=stu[j].num;  
  strcpy(stu[j+1].name,stu[j].name);  
  stu[j+1].mark=stu[j].mark;  
  }  
  printf("学号       姓名     成绩\n");  
  scanf("%d   ",&stu[i-1].num);  
  scanf("%s",&stu[i-1].name);  
  scanf("%d",&stu[i-1].mark);  
  list();  
  }  
  void   Delete()  
  {  
  struct   student   *p;  
  p=stu;  
  void   list();  
  int   i,j;  
  printf("请问要删除第几个学生的资料?:");  
  scanf("%d",&i);  
  for(j=i-1;j<=p->length;j++)  
  {  
  stu[j].num=stu[j+1].num;  
  strcpy(stu[j].name,stu[j+1].name);  
  stu[j].mark=stu[j+1].mark;  
  }  
  p->length--;  
  list();  
  }  
  void   Serch()  
  {  
  struct   student   *p;  
  p=stu;  
  void   list();  
  char   xingming[5];  
  int   xuehao,chengji,i,flag,shuru;  
  printf("=====要按学号查询请按'1'=====\n");  
  printf("=====要按姓名查询请按'2'=====\n");  
  printf("=====要按成绩查询请按'3'=====\n");  
  scanf("%d",&shuru);  
  switch(shuru)  
  {  
  case   1:  
  printf("请输入学生学号:");  
  scanf("%d",&xuehao);  
  flag=0;  
  for(i=0;i<=p->length;i++)  
  {  
  if   (stu[i].num==xuehao)  
  {  
  printf("==学生清单==\n");  
  printf("学号       姓名     成绩\n");  
  printf("%d           %s           %d\n",stu[i].num,stu[i].name,stu[i].mark);  
  flag++;  
  }  
  else  
  flag=flag+0;  
  }  
  if(flag==0)  
  printf("找不到相关学生资料!");  
  break;  
  case   2:  
  printf("请输入学生姓名:");  
  scanf("%s",&xingming);  
  flag=0;  
  for(i=0;i<=p->length;i++)  
  {  
  if   (strcmp(stu[i].name,xingming)==0)  
  {  
  printf("==学生清单==\n");  
  printf("学号       姓名     成绩\n");  
  printf("%d           %s           %d\n",stu[i].num,stu[i].name,stu[i].mark);  
  flag++;  
  }  
  else  
  flag=flag+0;  
  }  
  if(flag==0)  
  printf("找不到相关学生资料!");  
  break;  
  case   3:  
  printf("请输入学生成绩:");  
  scanf("%d",&chengji);  
  flag=0;  
  for(i=0;i<=p->length;i++)  
  {  
  if   (stu[i].mark==chengji)  
  {  
  printf("==学生清单==\n");  
  printf("学号       姓名     成绩\n");  
  printf("%d           %s           %d\n",stu[i].num,stu[i].name,stu[i].mark);  
  flag++;  
  }  
  else    
  flag=flag+0;  
  }  
  if(flag==0)  
  printf("找不到相关学生资料!");  
  break;  
  default:break;  
  }  
  }  
  void   Exit()  
  {  
  exit(-1);  
  }  
  void   list()  
  {  
  int   i;  
  struct   student   *p;  
  p=stu;  
  printf("==学生清单==\n");  
  printf("学号       姓名     成绩\n");  
  for(i=0;i<=p->length;i++)  
  {  
  printf("%d           %s           %d\n",stu[i].num,stu[i].name,stu[i].mark);  
  }  
  }  
  void   main()  
  {  
  char   ch;  
  print();  
  while((ch=getchar())!='X'||(ch=getchar())!='x')  
  {  
  switch   (ch=getchar())  
  {  
  case   'N':Init();break;  
  case   'n':Init();break;  
  case   'I':Insert();break;  
  case   'i':Insert();break;  
  case   'D':Delete();break;  
  case   'd':Delete();break;  
  case   'S':Serch();break;  
  case   's':Serch();break;  
  case   'X':Exit();break;  
  case   'x':Exit();break;  
  default:break;  
  }  
  }  
  } 问题点数:0、回复次数:2Top

1 楼teacher1998(英语+asp.net+MsSQL)回复于 2006-08-01 21:59:14 得分 0

好样的Top

2 楼cxjddd(又是花开时)回复于 2006-08-02 10:43:17 得分 0

把数据的操作与输入输出分离开。。。Top

相关问题

关键词

得分解答快速导航

  • 帖主:gun44

相关链接

  • C/C++ Blog
  • C/C++类图书
  • C/C++类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo