学生成绩管理系统c语言代码.docx

上传人:b****1 文档编号:1399610 上传时间:2023-04-30 格式:DOCX 页数:19 大小:81.63KB
下载 相关 举报
学生成绩管理系统c语言代码.docx_第1页
第1页 / 共19页
学生成绩管理系统c语言代码.docx_第2页
第2页 / 共19页
学生成绩管理系统c语言代码.docx_第3页
第3页 / 共19页
学生成绩管理系统c语言代码.docx_第4页
第4页 / 共19页
学生成绩管理系统c语言代码.docx_第5页
第5页 / 共19页
学生成绩管理系统c语言代码.docx_第6页
第6页 / 共19页
学生成绩管理系统c语言代码.docx_第7页
第7页 / 共19页
学生成绩管理系统c语言代码.docx_第8页
第8页 / 共19页
学生成绩管理系统c语言代码.docx_第9页
第9页 / 共19页
学生成绩管理系统c语言代码.docx_第10页
第10页 / 共19页
学生成绩管理系统c语言代码.docx_第11页
第11页 / 共19页
学生成绩管理系统c语言代码.docx_第12页
第12页 / 共19页
学生成绩管理系统c语言代码.docx_第13页
第13页 / 共19页
学生成绩管理系统c语言代码.docx_第14页
第14页 / 共19页
学生成绩管理系统c语言代码.docx_第15页
第15页 / 共19页
学生成绩管理系统c语言代码.docx_第16页
第16页 / 共19页
学生成绩管理系统c语言代码.docx_第17页
第17页 / 共19页
学生成绩管理系统c语言代码.docx_第18页
第18页 / 共19页
学生成绩管理系统c语言代码.docx_第19页
第19页 / 共19页
亲,该文档总共19页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

学生成绩管理系统c语言代码.docx

《学生成绩管理系统c语言代码.docx》由会员分享,可在线阅读,更多相关《学生成绩管理系统c语言代码.docx(19页珍藏版)》请在冰点文库上搜索。

学生成绩管理系统c语言代码.docx

学生成绩管理系统c语言代码

 

学生成绩管理系统c语言代码(总20页)

getchar();

       scanf("%c",&ch);

       

if(ch=='y'||ch=='Y')

       {

           printf("\n继续!

");

           getch();

           flag=1;/*标志程序不结束*/

       }

       else

           flag=0;

   }while(flag==1);

   save_message();

   printf("按任意键继续...");

   getch();

}

/*insert()模块*/              /*被输入和插入模块所调用*/

intinsert(structSTH**h)

{

   structSTH*p,*p0;

   p=(structSTH*)malloc(N);

   printf("\n请输入学号:

");

   scanf("%ld",&p->num);

   printf("\n请输入姓名:

");

   scanf("%s",p->name);

   printf("\n请输入性别:

");

   getchar();     /*取走上一个留下来得‘\n’*/

   scanf("%s",p->sex);

   printf("\n请输入生日(年月日,用回车隔开):

\n");

   scanf("%d%d%d",&p->birth.year,&p->birth.month,&p->birth.day);

   printf("\n请输入系别:

");

   scanf("%s",p->xi);

   printf("\n请输入班级:

");

   scanf("%s",p->ban);

   printf("\n请输入家庭住址:

");

   scanf("%s",p->add);

   p->next=NULL;

   if(*h==NULL)

   {

       *h=p;

       return1;

   }

   p0=*h;

   if(p0->num>p->num)

   

{

       p->next=p0;

       

*h=p;

       return1;

   }

   while(p0->next!

=NULL&&p0->next->numnum)

       p0=p0->next;

   if(p0->next==NULL)

   {

       p0->next=p;

       return1;

   }

   elseif(p0->next->num==p->num)

   {

       free(p);           /*有相同数据输入失败*/

       return0;

   }

   else

   {

       p->next=p0->next;

       p0->next=p;

       return1;

   }

}

/*读文件模块*/                               /*读文件模块中创建了一个新的链表,其返回值为新链表的头指针*/

structSTH*readfile()

{

   FILE*fp;

   structSTH*p,*p0;

   charch;

   inti;

   if((fp=fopen("STH.txt","r"))==NULL)

   {

       printf("\n不能读取文件!

\n");

       returnNULL;

   }                                               /*注意要该*/

   head=p=p0=(structSTH*)malloc(N);

   fscanf(fp,"%d",&n);

   fscanf(fp,"%c",&ch); 

/*为了使学号和信息个数分开加入一个‘/’*/

   fscanf(fp,"%ld%s%s%d%d%d%s%s%s",

          

&p->num,p->name,p->sex,&p->birth.year,&p->birth.month,&p->birth.day,p->xi,p->ban,p->add);

   p->next=NULL;

   i=1;              /*如果只有一个数时跳出*/

   if(n!

=1)

   {

       do

       {

           p=(structSTH*)malloc(N);

           fscanf(fp,"%ld%s%s%d%d%d%s%s%s",

               &p->num,p->name,p->sex,&p->birth.year,&p->birth.month,&p->birth.day,p->xi,p->ban,p->add);

           p0->next=p;

           p0=p;

           i++;

       }while(i

       p0->next=NULL;

   }

   fclose(fp);

   returnhead;

}

/*插入模块*/

insert_message()

{

   structSTH*p;

   intflag=1;

   charch;

   head=readfile();

   do

   {

       if(insert(&head)!

=0)

       {

           n++;

           save_message();

           printf("");

       }                 /*计数*/

       else

       {

           printf("\n添加失败!

\n有相同的的学号!

");

           save_message();

           getch();

       }

       

printf("\n是否继续(

y/n)");

       

getchar();

       ch=getchar();

       if(ch=='y'||ch=='Y')

       {

           printf("\n继续!

");

           flag=1;/*标志程序不结束*/

       }

       else

           flag=0;

   }while(flag==1);

   printf("\n按任意键继续...");

   getch();

}

/*修改模块*/

renew_message()

{

   structSTH*p;

   inti,flag=1;

   longnum;

   p=head=readfile();

   if(head==NULL)

   {

       printf("读文件有误!

");

       getch();

   }

   else

   {

       printf("\n请按输入要修改的学生的学号:

");

       scanf("%ld",&num);

       for(i=0;i

       {

           if(p->num==num)

           {

               p->num=num;

               printf("\n已找到要%ld号学生的信息!

\n",num);

               printf("原姓名为%s 要修改为:

\n",p->name);

               scanf("%s",p->name);

               printf("原性别为%s 要修改为:

\n",p->sex);

               scanf("%s",p->sex);

               printf("原生日为%d/%d/%d 

要修改为:

\n",p->birth.year,p->birth.month,p->birth.day);

               scanf("%d%d%d",&p->birth.year,&p->birth.month,&p->birth.day);

               printf("原系别为%s 

要修改为:

\n",p->xi);

               scanf("%s",p->xi);

               printf("原班级为%s 要修改为:

\n",p->ban);

               scanf("%s",p->ban);

               printf("原家庭住址为%s 要修改为:

\n",p->add);

               scanf("%s",p->add);

               printf("你所更改后的信息为:

\n");

               printf(PRINTF);

               printf(GESHI,

                       p->num,p->name,p->sex,p->birth.year,p->birth.month,p->birth.day,p->xi,p->ban,p->add);

               printf("\n按任意键退出!

\n");

               getch();

               flag=1;

               break;

           }

           else

               p=p->next;

       }

       if(flag!

=1)

           printf("无此人信息!

\n");

       else

           save_message();

       getch();

   }

}

/*删除模块*/

delete_message()

{

   intflag;

   longnum;

   charch;

   structSTH*p,*p0;

   p0=p=head=readfile();

   if(head==NULL)

   {

       printf("文件读取出错!

");

       getch();

   }

   else

   {

       

printf("请输入要删除学生的学号:

\n");

       scanf("%ld",&num);

       

if(p0->num==num)

       {

           head=p0->next;

           free(p0);

           flag=1;

           n--;    /*学生数减一*/

       }

       p=p0->next;

       while(p!

=NULL)

       {

           if(p->num==num)

           {

               p0->next=p->next;

               free(p);

               flag=1;

               n--;

           }

           else

           {

               p0=p;

               p=p->next;

           }

       }

       if(p->next==NULL)

           flag=0;

       if(flag==1)

       {

           printf("\n永久删除%ld号学生的信息(

y/n)",num);

           getchar();

           ch=getchar();

           if(ch=='y'||ch=='Y')

               save_message();

           else

           {

               printf("\n撤消删除!

");

               getch();

           }

       }

       else

           printf("\n删除失败!

");

       getch();

   }

}

/*查询模块*/

inquire_message()

{

   inti,flag=0;

   longnum;

   structSTH*p;

   p=head=readfile();

   if(head==NULL)

   {

       printf("文件读取出错!

");

       getch();

   }

   else

   {

       printf("请输入要查询学生的学号:

\n");

       scanf("%ld",&num);

       for(i=0;i

       {

           if(p->num==num)

           {

               printf("\n信息已找到:

\n");

               getch();

               clrscr();

               printf("**********************************FOUND*********************************\n");

               printf("------------------------------------------------------------------------\n\n");

               printf(PRINTF);

               printf(GESHI,

                       p->num,p->name,p->sex,p->birth.year,p->birth.month,p->birth.day,p->xi,p->ban,p->add);

               printf("\n------------------------------------------------------------------------\n");

               printf("***********************************END**********************************\n");

               flag=1;break;

           }

           else

               p=p->next;

       }

       if(flag==0)

           printf("\n无此人信息!

");

       else

           

printf("\n显示完毕!

\按任意键返回主菜单......");

       getch();

   }

}

/*显示模块*/

output_message()

{

   inti=0;

   structSTH*p;

   p=head=readfile();

   if(head==NULL)

   {

       printf("文件读取出错!

");

       getch();

   }

   else

   {

       clrscr();

       printf("\n************************************STUDENT************************************\n");

       printf("-------------------------------------------------------------------------------\n");

       printf(PRINTF);

       while(i

       {

           printf(GESHI,

                   p->num,p->name,p->sex,p->birth.year,p->birth.month,p->birth.day,p->xi,p->ban,p->add);

           p=p->next;

           i++;

       }

       printf("-------------------------------------------------------------------------------\n");

        printf("**************************************END**************************************\n");

       printf("\n显示完毕!

\n共%d条信息.\n按任意键返回主菜单......",n);

       getch();

   }

}

/*存档模块*/

save_message()

{

   FILE

*fp;

   inti;

   structSTH*p;

   p=head;

   if((fp=fopen("STH.txt","w"))==NULL)

   {

       printf("读文件错误!

");

       exit(0);

   }

   fprintf(fp,"%d",n);

   fprintf(fp,"%c",'/');                                                             /*注意要该*/

   for(i=0;i

   {

       fprintf(fp,"%ld%s%s%d%d%d%s%s%s",

               p->num,p->name,p->sex,p->birth.year,p->birth.month,p->birth.day,p->xi,p->ban,p->add);

       p=p->next;

   }

   fclose(fp);

   printf("\n信息已经保存在STH.txt文件中!

");

   getch();

}

  /*主函数*/

voidmain(void)

{

   intchoice;

   charch;

   FILE*fp;

   structdated;

   getdate(&d);

   if((fp=fopen("STH.txt","r"))==NULL)

   {

       fp=fopen("STH.txt","w");

       fprintf(fp,"%d",0);

       fclose(fp);

   }

   else

   {

       

fscanf(fp,"%d",&n);

       fclose(fp);

   }

   clrscr();

   printf("制作人:

通工0501李艺凡");

   printf("\n\n\n");

   printf("            **************************************************     \n");

   printf("                            欢迎进入学生户籍系统                  \n\n");

   printf("                   1创建记录\n");

   printf("                   2添加记录\n");

   printf("                   3查找记录\n");

   printf("                   4删除记录\n");

   printf("                   5修改记录\n");

   printf("                   6显示全部信息\n");

   printf("                   0退出程序\n");

   printf("            **************************************************     \n");

   printf("                              %d年%d月%d日",d.da_year,d.da_mon,d.da_day);

   printf("                  \n      请选择(0-6):

");

   scanf("%d",&choice);

   if(n==0)      /*记录为空时不让其进行其他操作*/

   {

   

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 幼儿教育 > 幼儿读物

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2