标题:[求助]VC++6.0 学员信息管理!
取消只看楼主
liuming2008
Rank: 1
等 级:新手上路
帖 子:48
专家分:0
注 册:2007-10-6
 问题点数:0 回复次数:1 
[求助]VC++6.0 学员信息管理!

哪位大哥帮我改一下啊,我做了1天了不知道哪里错了,先谢谢了
要求就是只要不输入0,程序可以一直选择执行。等待回答

#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#define getch()
#define clrscr()
#define N 100
int i; //i表示共录入多少位学生,j表示课程数目

struct student
{
int num;
char name[20];
float cj1;
float cj2;
float cj3;
float pcj;
}stu[N];
void print(); //定义各函数:显示,输入,插入,删除,排序
void input();
void insert();
void del();
void sort();
void input() //输入信息
{
char k;
do
{
printf("请输入学号:");
scanf("%d",&stu[i].num);
printf("请输入姓名:");
fflush(stdin);
scanf("%s",&stu[i].name);
printf("C语言:");
scanf("%f",&stu[i].cj1);
printf("Java :");
scanf("%f",&stu[i].cj2);
printf("SQL :");
scanf("%f",&stu[i].cj3);
stu[i].pcj=(stu[i].cj1+stu[i].cj2+stu[i].cj3)/3;

printf("\n");
i++;
printf("\n是否继续?(Y/N)-->"); //判断是否继续录入
fflush(stdin);
k=getchar();
}while(1);

}

void print()
{
int p; //显示信息
printf("学号\t姓名\tC语言\tJava\tSQL\t平均成绩\n");
for(p=0;p<i;p++) //p为变量从0到i-1,j表示共有几门课程
{
printf("----------------------------------------------------\n"); //i表示共录入多少位学生
printf("%-8d%-8s%-8.1f%-8.1f%-8.1f%-8.1f",stu[p].num,stu[p].name,stu[p].cj1,stu[p].cj2,stu[p].cj3,stu[p].pcj);
printf("\n");
}
}

void insert() //插入学生信息
{
printf("\n\n输入插入学生信息==>\n");
input(stu);
}

void del() //删除学生信息
{
int stunum;
int t,q;
printf("\n请输入您要删除的学生学号:");
scanf("%d",&stunum);
for(q=0;q<i-1;q++)
{
if(stunum==stu[q].num)
{
break;
}
}
printf("\n\n您要删除的学生信息为:\n");
printf("----------------------------------------------------\n");
printf("\n学号\t姓名\tC语言\tJava\tSQL库\t平均成绩\n");
printf("----------------------------------------------------\n");
printf("%-8d%-8s%-8.1f%-8.1f%-8.1f%-8.1f",stu[q].num,stu[q].name,stu[q].cj1,stu[q].cj2,stu[q].cj3,stu[q].pcj); //此处q表示找到了相同学号的那行数组信息

for(t=q;t<i-1;t++)
{
stu[t]=stu[t+1];
}
i--;

getchar();

printf("\n\n是否继续删除?(Y/N)-->");
if(getchar()=='y'||getchar()=='Y')
del(stu);
}

void sort() //信息按平均成绩进行从小到大排序
{
int x,y,temp;
for(x=0;x<i;x++)
{
for(y=0;y<i;y++)
{
if(stu[x].pcj<stu[y].pcj)
{
temp=stu[x].pcj;
stu[x].pcj=stu[y].pcj;
stu[y].pcj=temp;
}
}
}
}

void main()
{
int a;
printf("\t\t学员信息管理\n");
printf("0:退出\n 1:请输入学生信息\n 2:按平均成绩排序\n 3:插入新生\n");
printf("4:删除学生记录\n ");
printf("请选择(0~4):");
scanf("%d",&a);
switch(a)
{
case 0:
exit(0);
case 1:
printf("请输入学生信息\n");
input(stu);
break;

case 2:
printf("按平均成绩排序如下:\n");
sort();
print();
break;
case 3:
printf("插入新学员\n");
insert();
printf("插入后学生信息如下:\n\n");
sort(stu);
print(stu);
break;
case 4:
printf("\n是否删除某个学生记录?(Y/N)-->");
fflush(stdin);
if(getchar()=='y'||getchar()=='Y')
{
del(stu);
}
printf("\n\n删除后学生信息如下:\n\n");
sort(stu);
print(stu);
}

搜索更多相关主题的帖子: 信息管理 学员 float define include 
2007-10-21 15:15
liuming2008
Rank: 1
等 级:新手上路
帖 子:48
专家分:0
注 册:2007-10-6
得分:0 

怎么没一个人帮我一下啊,


2007-10-21 19:13



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-179547-1-1.html




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

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