鱼C论坛

 找回密码
 立即注册
查看: 3101|回复: 15

求助!学生学籍管理问题!急!

[复制链接]
发表于 2020-6-9 22:57:37 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 coxixixixny 于 2020-6-10 00:47 编辑

/*录入学生的信息*/
int  add(struct student st[100]){
        system("cls");system("color 3f");
        char ch;
    char c;
        fflush(stdin);//fflush函数包含在stdio.h头文件中,2113用来强制将缓5261冲区中的内容写入文件
        chong:
                printf("请输入所要录入的第%d个学生信息:",length+1);
                printf("\n学生年龄:");
                scanf("%d",&st[0].age);
                if(st[0].age>200||st[0].age<0||st[0].age==200||st[0].age==0){
                        
                        printf("您输入的年龄不符合实际!请重新输入!\n");
                        goto chong;
                }
                else{
                printf("\n学生学号:");
                scanf("%s",&st[0].logdate);
                printf("\n学生姓名:");
                scanf("%s",&st[0].name);
                printf("\n学生专业:");
                scanf("%s",&st[0].xb);
                printf("\n学生年级:");
                scanf("%d",&st[0].nianji);
                printf("\n学生性别:");
                scanf("%s",&st[0].xb);
        chong1:
                printf("\n学生的出生日期:(年月日(每写一个按enther换下一个)) ");
                scanf("%d%d%d",&st[0].birthday.year,&st[0].birthday.month,&st[0].birthday.day);
                if((st[0].birthday.year<2020||st[0].birthday.year==2020)&&(st[0].birthday.month<12||st[0].birthday.month==12)&&(st[0].birthday.day==31||st[0].birthday.day<31)){
                                printf("\n学生的家庭地址:");
                scanf("%s",&st[0].homedz);
                printf("\n学生的联系电话:");
                scanf("%s",&st[0].dianhua);
                length++;
                while(1)
                {
                        c=getchar();
                        printf("\n输入Y/y继续录入学生信息,输入N/n结束录入返回界面.\n");
                        ch=getchar();
                        if(ch=='y'||ch=='Y'){
                                system("cls");
                                fflush(stdin);
                                goto chong;
                        }
                        else{
                                if(ch=='n'||ch=='N'){
                                        jiemian1();
                                }
                        }
                }
                }
                else{
                        printf("\n输入错误!请按括号里的格式正确输入!\n");
                        goto chong1;
                }
        


}
}
/*列出所有的学生的信息*/
int liechu(student st[100],int i){        
        system("color 3f");
        system("cls");
        fflush(stdin);
    printf("\n年龄   学号   姓名   专业   年级   性别   出生日期(年-月-日)   家庭地址   联系电话    \n");
        printf("\n%d   %s   %s   %s   %d   %s   %d-%d-%d   %s   %s\n",st.age,st.logdate,st.name,st.zy,st.nianji,st.xb,st.birthday.year,st.birthday.month,st.birthday.day,st.homedz,st.dianhua);
}

/*删除学生的信息*/
int shac(struct student st[]){
        system("color 3f");
        system("cls");
        int liechu(struct student st[],int i);
        char ch[100],c;
        int i,j=-1;
        printf("请输入所要删除学生信息的学号\n");
        fflush(stdin);
        gets(ch);
        for(i=0;i<length;i++){
                if((strcmp(ch,st.logdate))==0){
                        j=i;
                        liechu(st,i);
                }
        }
        if(j==-1)
        {
                printf("没有找到该学生的信息记录!\n");
                printf("\n");
                shac(st);
        }
        printf("输入y/Y确定删除。输入n/N取消删除.\n");
        fflush(stdin);
        c=getchar();
        if(c=='Y'||c=='y'){
                for(j;j<length;j++){
                        st[j]=st[j+1];
                }
                length--;
                printf("\n已删除!\n");
        }
        else{
                jiemian1();
        }
        printf("是否继续删除其他学生信息:(确定请输入y/Y,取消则输入n/N).\n");
        fflush(stdin);
        c=getchar();
        if(c=='y'||c=='Y'){
                shac(st);
        }
        else{
                if(c=='n'||c=='N'){
                        jiemian1();
                }
        }
}
/*修改学生的信息*/
int xiugai(struct student st[]){
        system("color 3f");
        system("cls");
        int liechu(struct student st[],int i);
        char ch[100],c;
        int i,j=-1;
        printf("输入学生的学号进行修改\n");
        gets(ch);
        for(i=0;i<length;i++){
                if((strcmp(ch,st.logdate))==0){
                        j=i;
                        liechu(st,i);
                }
                if(j==-1){
                                printf("没有找到该学生的信息记录!\n");
                                xiugai(st);
                }
        printf("是否继续修改其他学生信息:(确定请输入y/Y,取消则输入n/N)\n");
        fflush(stdin);
        c=getchar();
        if(c=='y'||c=='Y'){
                fflush(stdin);
                printf("\n学生年龄:");
                scanf("%d",&st[j].age);
                printf("\n学生学号:");
                scanf("%s",&st[j].logdate);
                printf("\n学生姓名:");
                scanf("%s",&st[j].name);
                printf("\n学生专业:");
                scanf("%s",&st[j].xb);
                printf("\n学生年级:");
                scanf("%d",&st[j].nianji);
                 printf("\n学生性别:");
                scanf("%s",&st[j].xb);
                printf("\n学生的出生日期:(年-月-日) ");
                scanf("%d%d%d",&st[j].birthday.year,&st[j].birthday.month,&st[j].birthday.day);
                printf("\n学生的家庭地址:");
                scanf("%s",&st[j].homedz);
                printf("\n学生的联系电话:");
                scanf("%s",&st[j].dianhua);
        }
        else{
                if(c=='n'||c=='N'){
                        jiemian1();
                }
        }
        printf("是否继续修改学生信息:(确定请输入y/Y,取消则输入n/N)\n");
        c=getchar();
        if(c=='y'||c=='Y'){
                xiugai(st);
        }
        else{
                if(c=='n'||c=='N'){
                        jiemian1();
                }
        }
}  
}



/*查询学生信息*/
void chaxun(struct student st[]){
        
        cl:
        system("color 3f");
        system("cls");
        char c;
        char ch[100];
        int a,i,j=0;
        int liechu(struct student st[],int i);
        printf("     --------------------------------------------------------------------------------------------------------------\n");
        printf("     |                                           学生信息管理系统                                                 |\n");
        printf("     --------------------------------------------------------------------------------------------------------------\n");
        printf("     |           请选择:                                                                                         |\n");
        printf("     |                                                                                                            |\n");
        printf("     |                                                                                                            |\n");
        printf("     |                                                                                                            |\n");
        printf("     |                                                                                                            |\n");
        printf("     |                                               1.输入学生学号进行查询                                       |\n");
        printf("     |                                                                                                            |\n");
        printf("     |                                                                                                            |\n");
        printf("     |                                               2.输入学生年级进行查询                                       |\n");
        printf("     |                                                                                                            |\n");
        printf("     |                                                                                                            |\n");
        printf("     |                                               3.返回界面                                                   |\n");
        printf("     |                                                                                                            |\n");
        printf("     |                                                                                                            |\n");
        printf("     |                                                                                                            |\n");
        printf("     --------------------------------------------------------------------------------------------------------------\n");
        printf("     |请输入你的选择(输入序号1/2/3)  ");
        fflush(stdin);
        c=getchar();
        switch(c)
        {
                case '1':{
                        fflush(stdin);
        printf("     |请输入学生学号:");
                        scanf("%s",&ch);
                        for(i=0;i<length;i++){
                                if((strcmp(ch,st.logdate))==0){
                                        j++;
                                        liechu(st,i);
                                }
                        }
                        if(j=0){
                                printf("没有找到该学生的信息记录!\n");
                                chaxun(st);
                        }
                        break;
                }
                case '2':{
                        fflush(stdin);
                        printf("     |请输入学生年级:");
                        scanf("%d",&a);
                        for(i=0;i<length;i++){
                                if(a==st.nianji){
                                        j++;
                                        liechu(st,i);
                                }
                        }
                        if(j==0){
                                printf("没有找到该学生的信息记录!\n");
                                chaxun(st);
                        }
                        break;
                }
                case '3':{
                        jiemian1();
                        break;
                }
                default:
                        {
                                printf("非法输入!请重新输入!\n");
                                goto cl;
                        }
         }
         printf("是否继续查询学生信息:(确定请输入y/Y,取消则输入n/N)\n");
         fflush(stdin);
         c=getchar();
         if(c=='y'||c=='Y'){
                 chaxun(st);
         }
         else
         {
                 main();
         }
}
问题:为什么我输入学生信息进去后,然后重新查找或者删除的时候找不到该数据?请问能否帮我改一下?(顺序表)让数据信息可以保存,拜托了!!!明天要交
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-6-9 23:01:48 | 显示全部楼层
别一直重复发了...就算你很急,重复发也没有效果的...
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-6-9 23:02:12 | 显示全部楼层
我看一下,其实长代码排错的话还是自己排的快,楼主自己尝试调试了吗?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-6-9 23:04:13 | 显示全部楼层
Twilight6 发表于 2020-6-9 23:01
别一直重复发了...就算你很急,重复发也没有效果的...

因为自己出现一个问题想了好久就会发上来问问大家,现在又出现了新的问题了就再次发上来了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-6-9 23:07:18 | 显示全部楼层
小甲鱼的铁粉 发表于 2020-6-9 23:02
我看一下,其实长代码排错的话还是自己排的快,楼主自己尝试调试了吗?

其实我运行的起来,就是比如我输入3个学生的信息进去,我重新查找或者修改或者删除的时候就找不到前两个,我在想会不会是自己没有把前两个数据给做成单链表或者什么的整合起来了,苦于自己数据结构学的不好。。。如果条件允许,你能否帮我修改一下。。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-6-9 23:08:41 | 显示全部楼层
coxixixixny 发表于 2020-6-9 23:07
其实我运行的起来,就是比如我输入3个学生的信息进去,我重新查找或者修改或者删除的时候就找不到前两个 ...

主要是我不会,我都看你发四次了,不然看你第一次发的时候就会帮你了,我只会Python
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-6-9 23:13:52 | 显示全部楼层
coxixixixny 发表于 2020-6-9 23:07
其实我运行的起来,就是比如我输入3个学生的信息进去,我重新查找或者修改或者删除的时候就找不到前两个 ...

我在看,这个太长了,我还学数据结构,估计帮不上你了,很多地方我看不懂
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-6-9 23:14:21 | 显示全部楼层
Twilight6 发表于 2020-6-9 23:08
主要是我不会,我都看你发四次了,不然看你第一次发的时候就会帮你了,我只会Python

嗯嗯我知道,就是因为有点着急。。因为明天要交了。。我想了好久这个作业。。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-6-9 23:14:31 | 显示全部楼层
小甲鱼的铁粉 发表于 2020-6-9 23:13
我在看,这个太长了,我还学数据结构,估计帮不上你了,很多地方我看不懂

打错了,是没学数据结构
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-6-9 23:15:37 | 显示全部楼层
小甲鱼的铁粉 发表于 2020-6-9 23:14
打错了,是没学数据结构

嗯嗯,没事,谢谢你!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-6-10 00:32:35 | 显示全部楼层
发了好几个帖子,还是不会发代码。。。。
这么长,不想看。。。
请用这种方式发代码。
直接把代码贴在正文中,看着不舒服,很多人可能就不愿意看了,包括我。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-6-10 00:45:01 | 显示全部楼层
sunrise085 发表于 2020-6-10 00:32
发了好几个帖子,还是不会发代码。。。。
这么长,不想看。。。

嗯嗯好的,谢谢你的建议,我自己想出来了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-6-10 01:04:01 | 显示全部楼层
刚才你在c/cpp发的那贴下面回复我的是什么啊?怎么帖子突然跑到这里来了???
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-6-10 01:13:12 | 显示全部楼层
Darth_EF 发表于 2020-6-10 01:04
刚才你在c/cpp发的那贴下面回复我的是什么啊?怎么帖子突然跑到这里来了???

我也不知道哈哈哈哈“对不起。。。下次注意!问题自己已经找到改出来了,谢谢!”这个是原话
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-11-2 11:35:44 | 显示全部楼层
小甲鱼的铁粉 发表于 2020-6-9 23:02
我看一下,其实长代码排错的话还是自己排的快,楼主自己尝试调试了吗?

你的源代码可以发给我吗我想学习
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-11-14 22:00:33 | 显示全部楼层
请问楼主的源代码可以发一下么,想学习一下这个问题
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-11-21 21:39

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表