| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 475 人关注过本帖
标题:关于c语言问题改错 程序出了一个错运行不了 请各位帮忙
取消只看楼主 加入收藏
尚帝zico
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2015-5-7
收藏
 问题点数:0 回复次数:3 
关于c语言问题改错 程序出了一个错运行不了 请各位帮忙
我程序输完了有一个错误怎么都找不出来,请大神们帮忙找一下并改正,谢了!!
是关于学生籍贯信息的
每个学生信息包括:学号、姓名、性别、籍贯、年龄。

主要功能:

1、信息录入;

2、信息浏览;

3、信息查询(a 按籍贯查询   b按年龄查询(输入某个年龄,显示该年龄的学生信息))   

4、信息排序(a 按年龄排序(从高到低)b 按姓名排序  

5、信息统计(统计用户要求的某籍贯的学生人数)

6、信息删除(删除指定学号的学生籍贯信息)

7、 保存信息(把当前的结构体数组内容保存到文件student.txt中)

8、 读取信息(从文件student.txt中把结构体数组的内容读到结构体数组中,并显示)

0、 退出

#include<stdio.h>
#include<stdafx.h>
#include <string.h>
#include <stdlib.h>
#include <cstring>
#define N 5
 
struct student
{
int number,age;
char name[20],sex[10],address[30];
}em[N];                        
int a=N ;int exit();                       
int *p=&a;                     
 
int main()
{   
 
void search();
    void search_name();
    void search_age();
    void search_number();
    void load();
    void display();
void del();
void input();
void add();
void save();              
    int n;
    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("\n");
    scanf_s("%d",&n);
     switch(n)
  {
       case 1:printf("              ◆◆◆输入学生信息◆◆◆\n");printf("\n");input();int main();break;
       case 2:printf("              ◆◆◆浏览学生信息◆◆◆\n");printf("\n");display();int main();break;
       case 3:printf("              ◆◆◆查询学生信息◆◆◆\n");printf("\n");search();break;
       case 4:printf("              ◆◆◆删除学生信息◆◆◆\n");printf("\n");del();break;
       case 5:printf("              ◆◆◆添加学生信息◆◆◆\n");printf("\n");add();break;
       case 6:exit();break;
       default :break;
  }
}
 
void input()      
{
int i ;int save();
for(i=0;i<N;i++)
{
printf("请输入学生号: ");
    scanf_s("%d",&em[i].number);
    printf("请输入姓名:  ");
    scanf_s("%s",em[i].name);
    printf("请输入性别:  ");
    scanf_s("%s",&em[i].sex);
    printf("请输入年龄:  ");
    scanf_s("%d",&em[i].age);
    printf("请输入住址:  ");
    scanf_s("%s",em[i].address);
    printf("\n");
    }
   
printf("\n创建完毕!\n");
    save();
 
}
 
 
void save(int m)         
{
int i;
FILE*fp;
if(!(fopen_s(&fp,"d://bbb.txt","w")))
{
printf("打开失败");
exit();
 
}
for(i=0;i<m;i++)
fprintf(fp,"M %8s %5s ] %8s ] %8s ?\n",em[i].number,
em[i].name,em[i].sex,em[i].age,
em[i].address);
 
fclose(fp);
}
 
 
void load(int b)            
{
int i;
FILE*fp;
if(!(fopen_s(&fp,"d://bbb.txt","r")))
{
printf("打开失败");
exit();
}
else
for(i=0;i<b;i++)
fscanf_s(fp,"?%8s%5s]%8s]%8s?\n",&em[i].number,&em[i].name,&em[i].sex,&em[i].age,&em[i].address);
fclose(fp);
}
void display(int a)           
{
    int i,b=a;               
load(b);               
printf("\n学生号\t    姓名\t性别\t年龄\t  住址\n");
for(i=0;i<a;i++)
printf("%d\t%8s\t%s\t%d\t%8s    %d\t%s\t%d\n",em[i].number,em[i].name,em[i].sex,em[i].age,em[i].address);
printf("\n");
  
}
 
 
void search()            
{
int t;int number;
printf("\n按学生号查询按1\n按姓名查询请按2");
printf("\n按性别查询请按3\n返回主菜单请按4\n");
scanf_s("%d",&t);
    switch(t)
{
case 1:
printf("\n按学生号查询\n");
search_number();            
break;
case 2:
printf("\n按姓名查询\n");
search_name();               
break;
case 3:
printf("\n按性别查询\n");
search_sex();              
break;
case 4:int main();break;                  
 
default :
printf("输入错误,请重新输入!\n");
    search();                        
break;
 
}
}
 
void search_number()            
{
int i,number;
load(*p);                 
printf("\n请输入要查询的学生号:");
scanf_s("%d",&number);
for(i=0;i<*p;i++)
if(number==em[i].number)
{
printf("\n该学生信息如下:\n");
printf("\n学生号\t    姓名\t性别\t年龄\t  住址\n");
printf("\n%d\t%8s\t%s\t%d\t%8s    %d\t%s\t%d\n",em[i].number,em[i].name,em[i].sex,em[i].age,em[i].address);
        printf("\n");
break;
}
if(i==*p)
printf("\n查无此人\n");
 search();
}
 
void search_name()           
{
int i;
char name[20];
load(*p);                  
printf("\n请输入要查询的姓名:");
scanf_s("%s",name);
for(i=0;i<*p;i++)
if(!strcmp(em[i].name,name))
{
            printf("\n该学生信息如下:\n");
printf("\n学生号\t    姓名\t性别\t年龄\t  住址\n");
printf("\n%d\t%8s\t%s\t%d\t%8s    %d\t%s\t%d\n",em[i].number,em[i].name,em[i].sex,em[i].age,em[i].address);
        printf("\n");
break;
}
if(i==*p)
printf("\n查无此人\n");
    search();
 
}
 
void search_sex()              
{
int i,k=0,sex;
char xueli[20];
load(*p);           
printf("\n请输入要查询的性别:");
scanf_s("%s",sex);
for(i=0;i<*p;i++)
if(!strcmp(em[i].sex,sex))
{
printf("学生号\t    姓名\t性别\t年龄\t 学历\t     工资\t  住址\t  电话\n");
printf("%d\t%8s\t%s\t%d\t%8s    %d\t%s\t%d\n",em[i].number,em[i].name,em[i].sex,em[i].age,em[i].address);
      
}
for(i=0;i<*p;i++)                 
{
if(!strcmp(em[i].sex,sex))
break;
else k++;
}
if(k==*p)
printf("\n查无此人\n");
    search();
 
 
}
   
 
void del(int *b)
{
int i,t,j,m;
int a=*b;
char name[20];
printf("\n所有学生信息:\n");
    display(a);                                 
printf("\n请输入要删除学生的名字:");
scanf_s("%s",name);
for(i=0;i<a;i++)
{
if(!strcmp(em[i].name,name))
{
printf("\n确认删除请按1\n取消请按2\n");
scanf_s("%d",&t);
if(t==1)
{                                 
for(j=i;j<a-1;j++)
{
em[j].age=em[j+1].age;
em[j].number=em[j+1].number;
strcpy(em[j].name,em[j+1].name);
strcpy(em[j].address,em[j+1].address);
strcpy(em[j].sex,em[j+1].sex);
                     
}
a--;
save(j);            
break;
}
            if(t==2)
break;
}
}
if(i==a)
     printf("\n输入错误,无此人\n");
 
*b=a;
printf("\n继续删除请按1\n浏览信息请按2\n返回主菜单请按3\n");
scanf_s("%d",&m);
switch(m)
{
        case 1:del(p);break;         
        case 2:display(*b);int main();break;      
case 3:int main();break;
        default:break;
}
}
 
 
 
void add(int *a)               
{
int i,n,m;
FILE*fp;
if(!(fopen_s(&fp,"d://bbb.txt","a")))
{
printf("打开失败");
exit();
 
}
printf("\n请输入想添加的人数:\n");
scanf_s("%d",&n);
for(i=*a;i<n+(*a);i++)                  
{
printf("请输入学生号: ");
        scanf_s("%d",&em[i].number);
        printf("请输入姓名:  ");
        scanf_s("%s",em[i].name);
        printf("请输入性别:  ");
        scanf_s("%s",&em[i].sex);
        printf("请输入年龄:  ");
        scanf_s("%d",&em[i].age);


        printf("请输入住址:  ");
        scanf_s("%s",em[i].address);

printf("\n");
}
printf("\n添加完毕\n");
for(i=*a;i<n+(*a);i++)
fprintf(fp,"M %8s %5s ] %8s ] %8s ?\n",em[i].number,
em[i].name,em[i].sex,em[i].age,
em[i].address);
 
fclose(fp);
*a=*a+n;               
printf("\n浏览新信息请按1\n返回主菜单请按2\n");
scanf_s("%d",&m);
switch(m)
{
case 1:display(*a);int main();break;
case 2:int main();break;
default:break;
}
}

[ 本帖最后由 尚帝zico 于 2015-5-9 10:43 编辑 ]
2015-05-08 20:40
尚帝zico
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2015-5-7
收藏
得分:0 
求助啊,实在不会啦
2015-05-09 09:48
尚帝zico
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2015-5-7
收藏
得分:0 
没有人帮忙吗???

[ 本帖最后由 尚帝zico 于 2015-5-9 11:08 编辑 ]
2015-05-09 09:59
尚帝zico
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2015-5-7
收藏
得分:0 
求助啊!help
2015-05-09 11:09
快速回复:关于c语言问题改错 程序出了一个错运行不了 请各位帮忙
数据加载中...
 
   



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

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