| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1774 人关注过本帖
标题:学了顺序表自己编了一个简单的学生管理系统,各位给点意见。
取消只看楼主 加入收藏
gun44
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2006-8-1
收藏
 问题点数:0 回复次数:0 
学了顺序表自己编了一个简单的学生管理系统,各位给点意见。

学了顺序表自己编了一个简单的学生管理系统,各位给点意见。
有什么不足还请各位指正。
#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;
}
}
}

搜索更多相关主题的帖子: 顺序 系统 学生 意见 管理 
2006-08-01 19:50
快速回复:学了顺序表自己编了一个简单的学生管理系统,各位给点意见。
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.025460 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved