| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 610 人关注过本帖
标题:班级学生成绩管理 出现一些错误 帮忙修改下
只看楼主 加入收藏
f2831890
Rank: 3Rank: 3
等 级:论坛游侠
威 望:1
帖 子:115
专家分:107
注 册:2009-11-25
结帖率:96.77%
收藏
已结贴  问题点数:20 回复次数:6 
班级学生成绩管理 出现一些错误 帮忙修改下
1,修改 排序 删除是什么都没有的  这个是指  只有界面没有功能
   修改 排序 删除   的函数都没有   就是个空的
2,添加时出乱码的
3,查询还少了个返回  回不到菜单
4,排序分  按总成绩排序和按平均分排序
5,删除分  按学号删除和按姓名删除
6,修改是可以该已经储存的任何一条信息里的内容
下面是代码。。。。。帮忙修改下,,,,,
程序代码:
#include<stdio.h>
#include<math.h>
struct stu1
{
    char num[10];
    char name[10];
    char sex[2];
    float yuwen;
    float waiyu;
    float huaxue;
    float shuxue;
    float diangong;
    float totle;
    float ave;
}xs[20],*pp;
static int i=0;
int p;
FILE *fp;
void sr();
void bc();
void xg();
void xianshi();
void cx();
void px();
void xm();
void xh();
void add();
main()
{
    int k=1,n;
    while(k)
    {
        menu();
        scanf("%d",&n);
        switch(n)
{
case 1:sr();break;
case 2:xg();break;
case 3:xianshi();break;
case 4:cx();break;
case 5:px();break;
case 6:add();break;
case 7:break;
default:printf("输入错误,请重新选择!\n");
}
if(n==7)break;
    }
}
void menu()
{
printf("\t1输入学生成绩\t\t\t\t\t2修改学生成绩\n");
printf("\t3显示学生成绩\t\t\t\t\t4查询学生成绩\n");
printf("\t5排序学生成绩\t\t\t\t\t6添加学生成绩\n");
printf("\t7退出系统\n");
printf("请选择:");
}
void sr()
{
    printf("输入的人数为:");
    scanf("%d",&p);    
  for(i=0;i<p;i++)
{
    printf("学号:");
    scanf("%s",xs[i].num);
    printf("姓名:");
    scanf("%s",xs[i].name);
    printf("性别:");
    scanf("%s",xs[i].sex);
    printf("语文成绩:");
    scanf("%f",&xs[i].yuwen);
    printf("外语成绩:");
    scanf("%f",&xs[i].waiyu);
    printf("化学成绩:");
    scanf("%f",&xs[i].huaxue);
    printf("数学成绩:");
    scanf("%f",&xs[i].shuxue);
    printf("电工成绩:");
    scanf("%f",&xs[i].diangong);
    xs[i].totle=xs[i].yuwen+xs[i].waiyu+xs[i].huaxue+xs[i].shuxue+xs[i].diangong;
    xs[i].ave=xs[i].totle/5;    
}
bc();
}
void bc()
{
    FILE *fp=fopen("e:\\student.txt","w");
    int j;
    fprintf(fp,"学号 姓名   性别  语文成绩 外语成绩  化学成绩  数学成绩  电工成绩   总成绩   平均成绩\n");
    for(j=0;j<i;j++)
    {
    fprintf(fp,"%s\t%s\t  %s    %3.1f\t%3.1f\t  %3.1f\t   %3.1f\t     %3.1f\t %3.1f\t   %3.1f\t\n",xs[j].num,xs[j].name,xs[j].sex,xs[j].yuwen,xs[j].waiyu,xs[j].shuxue,xs[j].huaxue,xs[j].diangong,xs[j].totle,xs[j].ave);
    }
    fclose(fp);
}
void xg()
{
   
}
void xianshi()
{
FILE *fp;
char ch;
if((fp=fopen("e:\\student.txt","rt"))==NULL)
{
    printf("\ncannot open file strike any key exit!");
    getch();
    exit(1);
}
ch=fgetc(fp);
while(ch!=EOF)
{
    putchar(ch);
    ch=fgetc(fp);
}
fclose(fp);
}
void cx()
{
int n=0;
printf("1、 按姓名查找\n");
printf("2 、按学号查找\n");
scanf("%d",&n);
switch(n)
{
case 1: xm();
break;
case 2: xh();
break;
default: printf("输入错误!\n");
break;
}
}
void xm()//按姓名查找
{
int Number;
char name[10];
int i=0;
printf("请输入要查找学生的姓名:");
scanf("%s",&name);
system("cls");
printf("学号\t姓名\t性别\t语文\t外语\t化学\t数学\t电工\t总成绩\t平均成绩\n");
for (i=0;i<Number;i++)
{
if (strcmp(name,xs[i].name)==0)
{   
printf("\t%s\t%s\t%s\t%.1f\t%.1f\t%.1f\t %.1f\t %.1f\t %.1f\t %.1f\n",xs[i].num,xs[i].name,xs[i].sex,xs[i].yuwen,xs[i].waiyu,xs[i].huaxue,xs[i].shuxue,xs[i].diangong,xs[i].totle,xs[i].ave);
}
}
}
void xh()//按学号查找
{
int Number;
char num[10];
int i=0;
printf("请输入要查找的学生学号:");
scanf("%s",&num);
system("cls");
printf("学号\t姓名\t性别\t语文\t外语\t化学\t数学\t电工\t总成绩\t平均成绩\n");
for (i=0;i<Number;i++)
{   
if (strcmp(num,xs[i].num)==0)
{
printf("\t%s\t%s\t%s\t%.1f\t%.1f\t%.1f\t %.1f\t %.1f\t %.1f\t %.1f\n",xs[i].num,xs[i].name,xs[i].sex,xs[i].yuwen,xs[i].waiyu,xs[i].huaxue,xs[i].shuxue,xs[i].diangong,xs[i].totle,xs[i].ave);
}
}
}
void px()
{
struct stu1 temp;
int y,z;
for(y=1;y<i;y++)
{
for(z=1;z<=i-y;z++)
{
if(xs[z-1].ave<xs[z].ave)
{
temp=xs[z];
xs[z]=xs[z-1];
xs[z-1]=temp;
}
}
}
}
void add()
{
    FILE *fp;
    char ch;
    pp=xs;
    if((fp=fopen("e:\\student.txt","at+"))==NULL)
{
    printf("\ncannot open file strike any key exit!");
    getch();
    exit(1);
}
printf("\n\t\t输入新插入学生成绩\n");
printf("\n输入学生学号:");
scanf("%s",xs[i].num);
printf("\n输入学员姓名:"); 
scanf("%s",xs[i].name);
printf("\n输入学员性别:");
scanf("%s",xs[i].sex);
printf("\n输入语文成绩:");
scanf("%f",&xs[i].yuwen);
printf("\n输入外语成绩:"); 
scanf("%f",&xs[i].waiyu);
printf("\n输入化学成绩:"); 
scanf("%f",&xs[i].huaxue);
printf("\n输入数学成绩:");
scanf("%f",&xs[i].shuxue);
printf("\n输入电工成绩:");
xs[i].totle=xs[i].yuwen+xs[i].waiyu+xs[i].huaxue+xs[i].shuxue+xs[i].diangong;
xs[i].ave=xs[i].totle/5;    
fwrite(pp,sizeof(struct stu1),20,fp);
rewind(fp);
ch=fgetc(fp);
while(ch!=EOF)
{
    putchar(ch);
    ch=fgetc(fp);
}
printf("\n");
fclose(fp);
}
    

 谢谢!!!!!
搜索更多相关主题的帖子: 总成绩 学生 姓名 
2010-12-28 14:22
loveminttea
Rank: 3Rank: 3
来 自:河南科技学院
等 级:论坛游侠
帖 子:95
专家分:146
注 册:2010-10-14
收藏
得分:0 
程序代码:
        #include<stdio.h>
#include<math.h>
struct stu1
{
    char num[10];
    char name[10];
    char sex[2];
    float yuwen;
    float waiyu;
    float huaxue;
    float shuxue;
    float diangong;
    float totle;
    float ave;
}xs[20],*pp;
static int i=0;
int p;
FILE *fp;
void sr();
void bc();
void xg();
void xianshi();
void cx();
void px();
void xm();
void xh();
void add();
main()
{
    int k=1,n;
    while(k)
    {
        menu();
        scanf("%d",&n);
        switch(n)
{
case 1:sr();break;
case 2:xg();break;
case 3:xianshi();break;
case 4:cx();break;
case 5:px();break;
case 6:add();break;
case 7:break;
default:printf("输入错误,请重新选择!\n");
}
if(n==7)break;
    }
}

 menu()
{
printf("\t1输入学生成绩\t\t\t\t\t2修改学生成绩\n");
printf("\t3显示学生成绩\t\t\t\t\t4查询学生成绩\n");
printf("\t5排序学生成绩\t\t\t\t\t6添加学生成绩\n");
printf("\t7退出系统\n");
printf("请选择:");
}
void sr()
{
    printf("输入的人数为:");
    scanf("%d",&p);   
  for(i=0;i<p;i++)
{
    printf("学号:");
    scanf("%s",xs[i].num);
    printf("姓名:");
    scanf("%s",xs[i].name);
    printf("性别:");
    scanf("%s",xs[i].sex);
    printf("语文成绩:");
    scanf("%f",&xs[i].yuwen);
    printf("外语成绩:");
    scanf("%f",&xs[i].waiyu);
    printf("化学成绩:");
    scanf("%f",&xs[i].huaxue);
    printf("数学成绩:");
    scanf("%f",&xs[i].shuxue);
    printf("电工成绩:");
    scanf("%f",&xs[i].diangong);
    xs[i].totle=xs[i].yuwen+xs[i].waiyu+xs[i].huaxue+xs[i].shuxue+xs[i].diangong;
    xs[i].ave=xs[i].totle/5;   
}
bc();
}
void bc()
{
    FILE *fp=fopen("e:\\student.txt","w");
    int j;
    fprintf(fp,"学号 姓名   性别  语文成绩 外语成绩  化学成绩  数学成绩  电工成绩   总成绩   平均成绩\n");
    for(j=0;j<i;j++)
    {
    fprintf(fp,"%s\t%s\t  %s    %3.1f\t%3.1f\t  %3.1f\t   %3.1f\t     %3.1f\t %3.1f\t   %3.1f\t\n",xs[j].num,xs[j].name,xs[j].sex,xs[j].yuwen,xs[j].waiyu,xs[j].shuxue,xs[j].huaxue,xs[j].diangong,xs[j].totle,xs[j].ave);
    }
    fclose(fp);
}
void xg()
{
  
}
void xianshi()
{
FILE *fp;
char ch;
if((fp=fopen("e:\\student.txt","rt"))==NULL)
{
    printf("\ncannot open file strike any key exit!");
    getch();
    exit(1);
}
ch=fgetc(fp);
while(ch!=EOF)
{
    putchar(ch);
    ch=fgetc(fp);
}
fclose(fp);
}
void cx()
{
int n=0;
printf("1、 按姓名查找\n");
printf("2 、按学号查找\n");
scanf("%d",&n);
switch(n)
{
case 1: xm();
break;
case 2: xh();
break;
default: printf("输入错误!\n");
break;
}
}
void xm()
{
int Number;
char name[10];
int i=0;
printf("请输入要查找学生的姓名:");
scanf("%s",&name);
system("cls");
printf("学号\t姓名\t性别\t语文\t外语\t化学\t数学\t电工\t总成绩\t平均成绩\n");
for (i=0;i<Number;i++)
{
if (strcmp(name,xs[i].name)==0)
{  
printf("\t%s\t%s\t%s\t%.1f\t%.1f\t%.1f\t %.1f\t %.1f\t %.1f\t %.1f\n",xs[i].num,xs[i].name,xs[i].sex,xs[i].yuwen,xs[i].waiyu,xs[i].huaxue,xs[i].shuxue,xs[i].diangong,xs[i].totle,xs[i].ave);
}
}
}
void xh()
{
int Number;
char num[10];
int i=0;
printf("请输入要查找的学生学号:");
scanf("%s",&num);
system("cls");
printf("学号\t姓名\t性别\t语文\t外语\t化学\t数学\t电工\t总成绩\t平均成绩\n");
for (i=0;i<Number;i++)
{  
if (strcmp(num,xs[i].num)==0)
{
printf("\t%s\t%s\t%s\t%.1f\t%.1f\t%.1f\t %.1f\t %.1f\t %.1f\t %.1f\n",xs[i].num,xs[i].name,xs[i].sex,xs[i].yuwen,xs[i].waiyu,xs[i].huaxue,xs[i].shuxue,xs[i].diangong,xs[i].totle,xs[i].ave);
}
}
}
void px()
{
struct stu1 temp;
int y,z;
for(y=1;y<i;y++)
{
for(z=1;z<=i-y;z++)
{
if(xs[z-1].ave<xs[z].ave)
{
temp=xs[z];
xs[z]=xs[z-1];
xs[z-1]=temp;
}
}
}
}
void add()
{
    FILE *fp;
    char ch;
    pp=xs;
    if((fp=fopen("e:\\student.txt","at+"))==NULL)
{
    printf("\ncannot open file strike any key exit!");
    getch();
    exit(1);
}
printf("\n\t\t输入新插入学生成绩\n");
printf("\n输入学生学号:");
scanf("%s",xs[i].num);
printf("\n输入学员姓名:");
scanf("%s",xs[i].name);
printf("\n输入学员性别:");
scanf("%s",xs[i].sex);
printf("\n输入语文成绩:");
scanf("%f",&xs[i].yuwen);
printf("\n输入外语成绩:");
scanf("%f",&xs[i].waiyu);
printf("\n输入化学成绩:");
scanf("%f",&xs[i].huaxue);
printf("\n输入数学成绩:");
scanf("%f",&xs[i].shuxue);
printf("\n输入电工成绩:");
xs[i].totle=xs[i].yuwen+xs[i].waiyu+xs[i].huaxue+xs[i].shuxue+xs[i].diangong;
xs[i].ave=xs[i].totle/5;   
fwrite(pp,sizeof(struct stu1),20,fp);
rewind(fp);
ch=fgetc(fp);
while(ch!=EOF)
{
    putchar(ch);
    ch=fgetc(fp);
}
printf("\n");
fclose(fp);
}
   
我修改了,你看下行不?
2010-12-28 16:29
loveminttea
Rank: 3Rank: 3
来 自:河南科技学院
等 级:论坛游侠
帖 子:95
专家分:146
注 册:2010-10-14
收藏
得分:5 
额,不好意思!!
没修改好,还是不对!
2010-12-28 16:33
loveminttea
Rank: 3Rank: 3
来 自:河南科技学院
等 级:论坛游侠
帖 子:95
专家分:146
注 册:2010-10-14
收藏
得分:0 
弄不了,无能为力了!!
2010-12-28 16:46
f2831890
Rank: 3Rank: 3
等 级:论坛游侠
威 望:1
帖 子:115
专家分:107
注 册:2009-11-25
收藏
得分:0 
谢谢楼上的  等楼下的解毒

QQ:412869766
2010-12-28 17:14
wujieru
Rank: 10Rank: 10Rank: 10
等 级:青峰侠
威 望:1
帖 子:1108
专家分:1939
注 册:2010-10-9
收藏
得分:0 
晕死啊
2010-12-28 17:53
laoyang103
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:内蒙古包头
等 级:贵宾
威 望:19
帖 子:3082
专家分:11056
注 册:2010-5-22
收藏
得分:15 
程序代码:
#include<stdio.h>
#include<math.h>
#include <stdlib.h>
#include <string.h>
struct stu1
{
    char num[10];
    char name[10];
    char sex[2];
    float yuwen;
    float waiyu;
    float huaxue;
    float shuxue;
    float diangong;
    float totle;
    float ave;
}xs[20],*pp;
static int i=0;
int p;
FILE *fp;
void sr();
void bc();
void xg();
void xianshi();
void cx();
void px();
void xm();
void xh();
void add();
void menu()
{
printf("\t1输入学生成绩\t\t\t\t\t2修改学生成绩\n");
printf("\t3显示学生成绩\t\t\t\t\t4查询学生成绩\n");
printf("\t5排序学生成绩\t\t\t\t\t6添加学生成绩\n");
printf("\t7退出系统\n");
printf("请选择:");
}
void sr()
{
    printf("输入的人数为:");
    scanf("%d",&p);  
  for(i=0;i<p;i++)
{
    printf("学号:");
    scanf("%s",xs[i].num);
    printf("姓名:");
    scanf("%s",xs[i].name);
    printf("性别:");
    scanf("%s",xs[i].sex);
    printf("语文成绩:");
    scanf("%f",&xs[i].yuwen);
    printf("外语成绩:");
    scanf("%f",&xs[i].waiyu);
    printf("化学成绩:");
    scanf("%f",&xs[i].huaxue);
    printf("数学成绩:");
    scanf("%f",&xs[i].shuxue);
    printf("电工成绩:");
    scanf("%f",&xs[i].diangong);
    xs[i].totle=xs[i].yuwen+xs[i].waiyu+xs[i].huaxue+xs[i].shuxue+xs[i].diangong;
    xs[i].ave=xs[i].totle/5;  
}
bc();
}
void bc()
{
    FILE *fp=fopen("e:\\student.txt","w");
    int j;
    fprintf(fp,"学号 姓名   性别  语文成绩 外语成绩  化学成绩  数学成绩  电工成绩   总成绩   平均成绩\n");
    for(j=0;j<i;j++)
    {
    fprintf(fp,"%s\t%s\t  %s    %3.1f\t%3.1f\t  %3.1f\t   %3.1f\t     %3.1f\t %3.1f\t   %3.1f\t\n",xs[j].num,xs[j].name,xs[j].sex,xs[j].yuwen,xs[j].waiyu,xs[j].shuxue,xs[j].huaxue,xs[j].diangong,xs[j].totle,xs[j].ave);
    }
    fclose(fp);
}
void xg()
{

 
}
void xianshi()
{
FILE *fp;
char ch;
if((fp=fopen("e:\\student.txt","rt"))==NULL)
{
    printf("\ncannot open file strike any key exit!");
    getchar();
    exit(1);
}
ch=fgetc(fp);
while(ch!=EOF)
{
    putchar(ch);
    ch=fgetc(fp);
}
fclose(fp);
}
void cx()
{
int n=0;
printf("1、 按姓名查找\n");
printf("2 、按学号查找\n");
scanf("%d",&n);
switch(n)
{
case 1: xm();
break;
case 2: xh();
break;
default: printf("输入错误!\n");
break;
}
}
void xm()
{
int Number;
char name[10];
int i=0;
printf("请输入要查找学生的姓名:");
scanf("%s",&name);
system("cls");
printf("学号\t姓名\t性别\t语文\t外语\t化学\t数学\t电工\t总成绩\t平均成绩\n");
for (i=0;i<Number;i++)
{
if (strcmp(name,xs[i].name)==0)
{ 
printf("\t%s\t%s\t%s\t%.1f\t%.1f\t%.1f\t %.1f\t %.1f\t %.1f\t %.1f\n",xs[i].num,xs[i].name,xs[i].sex,xs[i].yuwen,xs[i].waiyu,xs[i].huaxue,xs[i].shuxue,xs[i].diangong,xs[i].totle,xs[i].ave);
}
}
}
void xh()
{
int Number;
char num[10];
int i=0;
printf("请输入要查找的学生学号:");
scanf("%s",&num);
system("cls");
printf("学号\t姓名\t性别\t语文\t外语\t化学\t数学\t电工\t总成绩\t平均成绩\n");
for (i=0;i<Number;i++)
{ 
if (strcmp(num,xs[i].num)==0)
{
printf("\t%s\t%s\t%s\t%.1f\t%.1f\t%.1f\t %.1f\t %.1f\t %.1f\t %.1f\n",xs[i].num,xs[i].name,xs[i].sex,xs[i].yuwen,xs[i].waiyu,xs[i].huaxue,xs[i].shuxue,xs[i].diangong,xs[i].totle,xs[i].ave);
}
}
}
void px()
{
struct stu1 temp;
int y,z;
for(y=1;y<i;y++)
{
for(z=1;z<=i-y;z++)
{
if(xs[z-1].ave<xs[z].ave)
{
temp=xs[z];
xs[z]=xs[z-1];
xs[z-1]=temp;
}
}
}
}
void add()
{
    FILE *fp;
    char ch;
    pp=xs;
    if((fp=fopen("e:\\student.txt","at+"))==NULL)
{
    printf("\ncannot open file strike any key exit!");
    getchar();
    exit(1);
}
printf("\n\t\t输入新插入学生成绩\n");
printf("\n输入学生学号:");
scanf("%s",xs[i].num);
printf("\n输入学员姓名:");
scanf("%s",xs[i].name);
printf("\n输入学员性别:");
scanf("%s",xs[i].sex);
printf("\n输入语文成绩:");
scanf("%f",&xs[i].yuwen);
printf("\n输入外语成绩:");
scanf("%f",&xs[i].waiyu);
printf("\n输入化学成绩:");
scanf("%f",&xs[i].huaxue);
printf("\n输入数学成绩:");
scanf("%f",&xs[i].shuxue);
printf("\n输入电工成绩:");
xs[i].totle=xs[i].yuwen+xs[i].waiyu+xs[i].huaxue+xs[i].shuxue+xs[i].diangong;
xs[i].ave=xs[i].totle/5;  
fwrite(pp,sizeof(struct stu1),20,fp);
rewind(fp);
ch=fgetc(fp);
while(ch!=EOF)
{
    putchar(ch);
    ch=fgetc(fp);
}
printf("\n");
fclose(fp);
}
void main()
{
    int k=1,n;
    while(k)
    {
        menu();
        scanf("%d",&n);
        switch(n)
{
case 1:sr();break;
case 2:xg();break;
case 3:xianshi();break;
case 4:cx();break;
case 5:px();break;
case 6:add();break;
case 7:break;
default:printf("输入错误,请重新选择!\n");
}
if(n==7)break;
    }
}  

编译错误已经没有了  剩下了你自己来吧

                                         
===========深入<----------------->浅出============
2010-12-28 18:00
快速回复:班级学生成绩管理 出现一些错误 帮忙修改下
数据加载中...
 
   



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

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