| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1942 人关注过本帖
标题:哪位大神可以帮我改改!
取消只看楼主 加入收藏
忱罅斯潋旎
Rank: 2
等 级:论坛游民
帖 子:35
专家分:10
注 册:2012-6-3
结帖率:100%
收藏
已结贴  问题点数:10 回复次数:13 
哪位大神可以帮我改改!
#include<stdio.h>
#include<string.h>
#define n 100
 struct  student                         //定义学生结构体类型
 {
    int num;
    char name;
    char sex;
    char adress;
    int  phonenum;
    int chinese;
    int mathematic;
    int english;
    float aver;
    float mategrade;
    float pindegrade;
    float teachergrade;
    double totalgrade;
}stu[100];



int baocun()                                      /*建立保存文件函数*/
{   
    int a;
        FILE *fp;                                 /*定义文件型指针*/
        int i;
        if((fp=fopen("student.txt","wb"))==NULL)   /*打开输出文件*/
        {
            printf("不能打开文件!\n");   
            return 0;                              /*终止程序*/
        }
        for(i=0;i<n;i++)                       /*向student文件中写入信息*/
            if(fwrite(&stu[i],sizeof(struct student),1,fp)!=1)
                printf("文件写入错误\n");
        fclose(fp);          /*关闭文件*/
        printf("\n\n\n\n\t\t\t学生信息保存成功!\n");
        printf("\n\n\n\n\t\t\t按任意键返回菜单!!");
scanf("%d",&a);
    return 0;

}






int input()                                            /*定义录入学生信息函数*/
{


int Y,N;

        int i,a,m;                                          /*定义局部变量*/
        printf("\t\t输出你想输入的学生信息个数:");
        scanf("%d",&a);
        for(i=0;i<a;i++)                               /*输入每个学生的信息*/
        {
            printf("\n\t\t\t----------------\n");
            printf("\t\t\t学号:");
            scanf("%s",&stu[i].num);                     /*输入学号*/
            printf("\t\t\t姓名:");
            scanf("%s",&stu[i].name);                     /*输入姓名*/
            printf("\t\t\t性别:");
            scanf("%S",&stu[i].sex);                       /*输入性别*/
            printf("\t\t\t英语:");
            scanf("%d",&stu[i].english);                     /*输入英语成绩*/
            printf("\t\t\t数学:");
            scanf("%d",&stu[i].mathematic);                   /*输入数学成绩*/
            printf("\t\t\t语文:");
            scanf("%d",&stu[i].chinese);                    /*输入语文成绩*/
             printf("\t\t\t同学互评分:");
            scanf("%d",&stu[i].mategrade);                   /*输入同学互评分成绩*/
             printf("\t\t\t品德分:");
            scanf("%d",&stu[i].pindegrade);                /*输入品德分成绩*/
             printf("\t\t\t教师评分:");
            scanf("%d",&stu[i].teachergrade);               /*输入教师评分成绩*/

stu[i].aver=((float)stu[i].english+(float)stu[i].mathematic+(float)stu[i].chinese)/3;          /*计算平均成绩*/
stu[i].totalgrade=(float)stu[i].aver*0.6+(float)stu[i].mategrade*0.1+(float)stu[i].pindegrade*0.1+(float)stu[i].teachergrade*0.2;    /*计算综合测评成绩*/
            printf("\t\t\t平均成绩=%4.1f\n",stu[i].aver);               /*输出平均成绩*/
            printf("\t\t\t总成绩=%4.1f\n",stu[i].totalgrade);        /*输出总成绩*/
    baocun();    }

    printf("是否继续录入,继续选Y,退出选N");
scanf("%s",&m);
if(m==Y)
    input();
if(m==N)
    return 0;

}








int show()                                                   /*定义查看函数*/
{   
        
        int i;
                                  //n=openl();    /*调用openl函数*/
        printf("\t学号\t姓名\t性别\t地址\t电话号码\t英语\t数学\t语文\t品德分\t同学互评分\t教师评分\t平均成绩\t总成绩\n");
        for(i=0;i<n;i++)                           /*输出所有的学生信息*/
        {
            printf("%10s\t%s\t%2s\t%s\t%d\t%d\t%d\t%d\t%d\t%d\t%d\t%3.1f\t\t%6.1f\n",stu[i].num,stu[i].name,
            stu[i].sex,stu[i].adress,stu[i].phonenum,stu[i].english,stu[i].mathematic,stu[i].chinese,stu[i].pindegrade,stu[i].mategrade,stu[i].teachergrade,stu[i].aver,stu[i].totalgrade);
        }
        printf("\n\n\n\t\t\t按任意键返回菜单");
        input();
        return 0;
}






void numquary()                                        //定义学号查询函数
{   int exit;
    int i,a,b,m;
    printf("*********************************学号查询***************************************\n");
    printf("请输入要查询的学号:\n");
    scanf("%d",&m);
printf("学号\t姓名\t性别\t地址\t电话号码\t语文\t英语\t数学\t测试平均分\t同学互评分\t教师评分\t综合评分\n");
    for(i=0;i<n;i++)
    if(m==stu[i].num)   
printf("%4d\t%s\t%s\t%s\t%6.2f\t%6.2f\t%6.2f\t%6.2f\t%6.2f\t%6d\t%s\n",
stu[i].num,stu[i].name,stu[i].sex,stu[i].adress,stu[i].chinese,stu[i].english,stu[i].mathematic,stu[i].aver,stu[i].mategrade,stu[i].teachergrade,stu[i].totalgrade);
    for(i=0;i<5;i++)
        if(m==stu[i].num)
        { printf("\n\n\n\n\n\n");
          printf("\t\t\t1.继续查询\n");
          printf("\t\t\t2.返回上一级菜单\n");
          printf("\t\t\t0.退出系统\n");
          printf("请选择下一步操作:(0-2)\n");
    scanf("%d",&a);
    if(n==0) exit;
    if(n==1) numquary();
    if(n==2)
return;}
    printf("该学号不存在!\n");
         printf("\n\n\n\n\n\n");
          printf("\t\t\t1.继续查询\n");
        
          printf("\t\t\t0.退出系统\n");
          printf("请选择下一步操作:(0-1)\n");
    scanf("%d",&b);
    if(b==0) return;
    if(b==1) numquary();


}







void namequary()                                    //定义按姓名查询的函数
{
    int i,a,b,m;
  
    printf("*********************************姓名查询***************************************\n");
    printf("请输入要查询的姓名:\n");
    scanf("%c",&m);
printf("学号\t姓名\t性别\t地址\t电话号码\t语文\t英语\t数学\t测试平均分\t同学互评分\t教师评分\t综合评分\n");
    for(i=0;i<n;i++)
    if(m==stu[i].name)
   
printf("%4d\t%s\t%s\t%s\t%6.2f\t%6.2f\t%6.2f\t%6.2f\t%6.2f\t%6d\t%s\n",
stu[i].num,stu[i].name,stu[i].sex,stu[i].adress,stu[i].chinese,stu[i].english,stu[i].mathematic,stu[i].aver,stu[i].mategrade,stu[i].teachergrade,stu[i].totalgrade);
    for(i=0;i<n;i++)
        if(m==stu[i].name)
        { printf("\n\n\n\n\n\n");
          printf("\t\t\t1.继续查询\n");
        
          printf("\t\t\t0.退出系统\n");
          printf("请选择下一步操作:(0-1)\n");
    scanf("%d",&a);
    if(a==0) return;
    if(a==1) namequary();

}
    printf("该学号不存在!\n");
         printf("\n\n\n\n\n\n");
          printf("\t\t\t1.继续查询\n");
         
          printf("\t\t\t0.退出系统\n");
          printf("请选择下一步操作:(0-1)\n");
    scanf("%d",&b);
    if(b==0) return;
    if(b==1) namequary();

}








int chaxun()
{
 
    int i,j;

    do
            {printf("\n\n\n");
            printf("              |*************编辑子菜单****************|\n");
            printf("              |.......................................|\n");
            printf("              |.........请选择菜单序号(0-2)...........|\n");
            printf("              |         1.按学号查询                  |\n");
             printf("              |         2.按姓名查询                  |\n");
            printf("              |         0.返回上级菜单                |\n");
            scanf("%d",&i);
            switch(i)
            {case 0:break;
            case 1:numquary();break;
            case 2:namequary();break;
            default:printf("输入错误,请重新输入(只有5次机会!)");break;}
            }while(j!=5);
return 0;}







int Delete_record(struct student)
{
    int s;
int i,j;
printf("\t\t\t请输入所要删除数据的学号:");      /*交互式问寻*/
scanf("%s",&s);
for(i=0;i<n;i++)                               //
if(s!=stu[i].num)
{printf("未找到数据!");
return(n);}
   else for(j=i;j<n-1;j++)                  /*删除操作*/
      strcpy(stu[j],stu[j+1]);
      printf("\t\t\t删除结束!\n");          /*返回成功信息*/
      return(n-1);
}








int add(struct student)          //定义添加函数
{      
      
    int s,j,i;

printf("\t\t\t请输入所要添加的学号:\n");
scanf("%s",s);

for(i=0;i<n;i++)
if(s!=stu[i].num)   //查找判断
{printf("该学生已存在,请重新输入!");
return(n);
}
else input();
 return(n-1);
}






int modify(struct student[])       //定义修改函数
{
int s,i,j;

printf("请输入要修改的学号\n");
scanf("%s",s);
for(i=0;i<n;i++)
if(s==stu[i].num)                  //查找判断
{printf("%4d\t%s\t%s\t%s\t%6.2f\t%6.2f\t%6.2f\t%6.2f\t%6.2f\t%6d\t%s\n",
stu[i].num,stu[i].name,stu[i].sex,stu[i].adress,stu[i].chinese,stu[i].english,stu[i].mathematic,stu[i].aver,stu[i].mategrade,stu[i].teachergrade,stu[i].totalgrade);
printf("请输入语文成绩:\n");
scanf("%s",stu[i].chinese);
printf("请输入英语成绩:\n");
scanf("%s",stu[i].english);
printf("请输入数学成绩:\n");
scanf("%s",stu[i].mathematic);
 printf("请输入品德成绩:\n");
scanf("%s",stu[i].pindegrade);
printf("请输入同学互评分成绩:\n");
scanf("%s",stu[i].mategrade);
 printf("请输入教师评分成绩:\n");
scanf("%s",stu[i].teachergrade);
}
else{ printf("未找到数据!");
return 0;}
return(n-1);}










int update(struct student[])                      //定义更新函数
{
    int i,j;
    do
    {
    {printf("\n\n\n");
            printf("              |*************编辑子菜单****************|\n");
            printf("              |.......................................|\n");
            printf("              |.........请选择菜单序号(0-2)...........|\n");
            printf("              |         1.添加学生信息                |\n");
             printf("              |         2.修改学生信息                |\n");
            printf("              |         0.返回上级菜单                |\n");
            scanf("%d",&i);
            switch(i)
            {case 0:break;
            case 1:add();break;
            case 2:modify();break;
            default:printf("输入错误,请重新输入(只有5次机会!)");break;}
            }while(j!=5);
return 0;}

   








int main()
{
    int x,y;
    do                                           //显示一个简易菜单
    {
    printf("          |*****************************************************|\n");
    printf("          |                    学生测评系统                     |\n");
    printf("          |*****************************************************|\n");
    printf("          |                    1.录入学生信息                   |\n");
    printf("          |                    2.浏览学生信息                   |\n");
    printf("          |                    3.查询学生信息                   |\n");
    printf("          |                    4.更新学生信息                   |\n");
    printf("          |                    5.删除学生信息                   |\n");
        printf("          |                    6.保存                           |\n");
    printf("          |                    7.退出                           |\n");
    printf("          |*****************************************************|\n");
    printf(":请选择(1-7):\n");
    scanf("%d",&x);                             //接受用户的选择
   
        switch(x)                               //调用对应的函数
        {    case 1:input();break;
            case 2:show();break;
            case 3:chaxun();break;                     
            case 4:update();break;
            case 5:delete_record();break;
         
            case 6: baocun();break;
            case 7:break;
         default:{printf("选择错误,请重新输入(只有5次机会!)\n");}break;}
    }while(y<5);
return 0;

}
            
搜索更多相关主题的帖子: 结构体 include double english 
2012-06-15 12:08
忱罅斯潋旎
Rank: 2
等 级:论坛游民
帖 子:35
专家分:10
注 册:2012-6-3
收藏
得分:0 
回复 9楼 ithaibo
恩恩,因为这是最初级的呢,最开始以为时间不够不能改,不过老师宽限了时间,现在改的差不多了,只是还有一个功能不能实现呢!就是文件保存怎么写啊?

做一个温暖的女子,不倾城,不倾国,只倾其所有过我想过的生活
2012-06-16 23:25
忱罅斯潋旎
Rank: 2
等 级:论坛游民
帖 子:35
专家分:10
注 册:2012-6-3
收藏
得分:0 
回复 8楼 ithaibo
额……编译的时候有很多错误,不过最后还是改的差不多了,现在还剩下一个功能不能实现,就是文件的保存,我还在研究中呢,哎,这就是老师不靠谱的悲哀呀!

做一个温暖的女子,不倾城,不倾国,只倾其所有过我想过的生活
2012-06-16 23:28
忱罅斯潋旎
Rank: 2
等 级:论坛游民
帖 子:35
专家分:10
注 册:2012-6-3
收藏
得分:0 
回复 3楼 lonmaor
呵呵……你的签名有个性

做一个温暖的女子,不倾城,不倾国,只倾其所有过我想过的生活
2012-06-16 23:31
忱罅斯潋旎
Rank: 2
等 级:论坛游民
帖 子:35
专家分:10
注 册:2012-6-3
收藏
得分:0 
回复 2楼 moliy
好吧!我表示我还需要努力……

做一个温暖的女子,不倾城,不倾国,只倾其所有过我想过的生活
2012-06-16 23:33
忱罅斯潋旎
Rank: 2
等 级:论坛游民
帖 子:35
专家分:10
注 册:2012-6-3
收藏
得分:0 
回复 7楼 ly2222
额……我也才刚学c语言,可是老师要我们做这个学生测评系统呀,木有办法呀!

做一个温暖的女子,不倾城,不倾国,只倾其所有过我想过的生活
2012-06-16 23:36
忱罅斯潋旎
Rank: 2
等 级:论坛游民
帖 子:35
专家分:10
注 册:2012-6-3
收藏
得分:0 
回复 4楼 silent_world
呵呵……其实我只是随便定义的一个数字,老师又没强调要多少是吧

做一个温暖的女子,不倾城,不倾国,只倾其所有过我想过的生活
2012-06-16 23:38
忱罅斯潋旎
Rank: 2
等 级:论坛游民
帖 子:35
专家分:10
注 册:2012-6-3
收藏
得分:0 
回复 5楼 jtyf1314
额……还好吧,就是我写的啰嗦了点……额,本人初学者能力不够呀!

做一个温暖的女子,不倾城,不倾国,只倾其所有过我想过的生活
2012-06-16 23:40
忱罅斯潋旎
Rank: 2
等 级:论坛游民
帖 子:35
专家分:10
注 册:2012-6-3
收藏
得分:0 
回复 17楼 wwc386646959
好的,谢谢,我最近也在看链表和文件保存的内容,我试着写一下

做一个温暖的女子,不倾城,不倾国,只倾其所有过我想过的生活
2012-06-17 21:08
忱罅斯潋旎
Rank: 2
等 级:论坛游民
帖 子:35
专家分:10
注 册:2012-6-3
收藏
得分:0 
回复 18楼 lully6
额……

做一个温暖的女子,不倾城,不倾国,只倾其所有过我想过的生活
2012-06-17 21:09
快速回复:哪位大神可以帮我改改!
数据加载中...
 
   



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

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