hamiltontai吧 关注:24贴子:747
  • 12回复贴,共1

学生成绩管理系统V1.2

只看楼主收藏回复

学生成绩录入系统各版说明:
V1.2 20120728
1、修复了排序时选择退出时,不保存无法退出的BUG。
2、修改了排序时的部分功能,选择退出时不退出程序,而是返回上一级。
3、修复了注册时用户名或密码输入错误会陷入死循环的BUG。
V1.1 20120726
1、增加用户名和密码的注册修改功能。
2、实现密码加密,user.dll文件中不再显示明文密码。
3、修复了成绩查询时只能查询第一名学生成绩的BUG。
V1.0 20120724
1、实现成绩查询修改功能。
2、实现成绩排序功能。
V0.2 201206
1、实现新成绩录入功能。
2、实现菜单选择功能。
V0.1 201206
1、实现用户名和密码的对比,并登陆。



IP属地:内蒙古1楼2012-07-28 13:43回复
    第一部分:main.c文件代码
    #include <stdio.h>
    #include <stdlib.h>
    #include <conio.h>
    #include <string.h>
    #define N 20 /*假设20名学生*/
    struct student /*结构体,学生数据*/
    {
    char name[20];
    float score[6]; /*假定一共五科成绩,最后一组是平均分*/
    int num;
    }stu[N];
    int statement()
    {
    int a;
    char c;
    printf("\t\t学生成绩录入查询系统V1.2\n");
    printf("一、声明:\n");
    printf("1、本程序归原作者HamiltonTai所有,盗版欢迎。\n");
    printf("2、本程序题目来自C语言大作业,原则上不允许他人复制粘贴。如他人使用出现不利后果,原作者不负任何责任。\n");
    printf("\n");
    printf("二、使用说明:\n");
    printf("1、成绩数据一共6组,其中前5组为科目1~5的成绩,第6组为平均分。\n");
    printf("2、使用本程序时,请使用本程序自带的退出选项,而不要用鼠标点击右上角的X来关闭,否则可能没有保存用户的操作。\n");
    printf("\n");
    printf("您已阅读本页文字,您必须遵守才能继续使用,否则程序将关闭。\n请问您是否遵守本说明?[y/n]\n");
    fflush(stdin);
    scanf("%c",&c);
    if(c=='y'||c=='Y') a=1;
    else a=0;
    return a;
    }


    IP属地:内蒙古2楼2012-07-28 13:46
    回复
      2025-06-10 20:10:12
      广告
      int entry() /*新成绩录入函数*/
      {
      int i,c;
      char s1,s2;
      float avg;
      FILE *fp;
      if((fp=fopen("data.txt","a"))==NULL) /*打开数据文件*/
      {
      printf("打开数据文件错误。\n程序将在任意键后退出。\n");
      system("pause");
      exit(0);
      }
      system("cls");
      s1='y';
      while(s1=='y') /*录入信息*/
      {
      printf("请输入学生姓名,回车结束。\n");
      fflush(stdin);
      gets(stu[0].name);
      printf("请输入学生学号,回车结束。\n");
      scanf("%d",&stu[0].num);
      avg=0.0;
      for(i=0;i<5;i++)
      {
      printf("请输入该学生科目%d的成绩。\n",i+1);
      scanf("%f",&stu[0].score[i]);
      }
      s2='n';
      while(s2=='n') /*检查是否输入正确*/
      {
      printf("您输入为:\n姓名:%s ;学号:%d ;",stu[0].name,stu[0].num);
      printf("\n");
      for(i=0;i<5;i++)
      printf("科目%d:%.1f ;",i+1,stu[0].score[i]);
      printf("\n是否正确?[y/n]:");
      fflush(stdin);
      scanf("%c",&s2);
      if(s2=='y') /*录入正确,保存文件*/
      {
      fprintf(fp,"%s\t%d\t",stu[0].name,stu[0].num);
      for(i=0;i<5;i++)
      {
      fprintf(fp,"%.1f\t",stu[0].score[i]);
      avg+=stu[0].score[i];
      }
      avg=avg/5;
      fprintf(fp,"%.1f\n",avg);
      }
      else /*录入有误,修改选项*/
      {
      printf("------------------------------------------------------------\n");
      printf("7、更改姓名。\n8、更改学号。\n1、更改科目1成绩。\n2、更改科目2成绩。\n3、更改科目3成绩。\n4、更改科目4成绩。\n5、更改科目5成绩。\n按回车结束。\n");
      printf("------------------------------------------------------------\n");
      scanf("%d",&c);
      switch(c)
      {
      case 7: {printf("请输入姓名,回车结束:\n"); fflush(stdin); gets(stu[0].name);break;}
      case 8: {printf("请输入学号,回车结束:\n"); scanf("%d",&stu[0].num);break;}
      case 1: {printf("请输入科目1成绩,回车结束:\n"); scanf("%f",&stu[0].score[0]);break;}
      case 2: {printf("请输入科目2成绩,回车结束:\n"); scanf("%f",&stu[0].score[1]);break;}
      case 3: {printf("请输入科目3成绩,回车结束:\n"); scanf("%f",&stu[0].score[2]);break;}
      case 4: {printf("请输入科目4成绩,回车结束:\n"); scanf("%f",&stu[0].score[3]);break;}
      case 5: {printf("请输入科目5成绩,回车结束:\n"); scanf("%f",&stu[0].score[4]);break;}
      default: ;
      }
      }
      }
      printf("是否继续录入?[y/n]:");
      fflush(stdin);
      scanf("%c",&s1);
      }
      fclose(fp);
      return 0;
      }


      IP属地:内蒙古4楼2012-07-28 13:47
      回复
        第二部分:zhuce.c代码


        IP属地:内蒙古9楼2012-07-28 13:50
        回复
          第三部分:md5main.c代码


          IP属地:内蒙古11楼2012-07-28 13:51
          回复
            #include <stdio.h>
            #include <stdlib.h>
            #include "md5.h"
            int md5(int argc, char *argv[])
            {
            FILE *fp;
            fp=fopen("check.dll","w");
            MD5_CTX md5;
            MD5Init(&md5);
            int i;
            unsigned char encrypt[20];
            fflush(stdin);
            gets(encrypt);
            unsigned char decrypt[16];
            MD5Update(&md5,encrypt,strlen((char *)encrypt));
            MD5Final(&md5,decrypt);
            for(i=0;i<16;i++)
            {
            fprintf(fp,"%02x",decrypt[i]);
            }
            fprintf(fp,"\n");
            fclose(fp);
            return 0;
            }


            IP属地:内蒙古12楼2012-07-28 13:51
            回复
              第四部分,md5.c代码


              IP属地:内蒙古13楼2012-07-28 13:53
              回复
                第五部分:md5.h代码


                IP属地:内蒙古16楼2012-07-28 13:54
                回复
                  2025-06-10 20:04:12
                  广告
                  代码已发完。
                  尾注:
                  如要编译运行本程序,需要包含main.c、zhuce.c、md5.c、md5main.c四个文件,并且将md5.h头文件放到该放的地方才可以编译成功并运行。


                  IP属地:内蒙古18楼2012-07-28 13:57
                  回复
                    好厉害啊,邰邰~么么


                    20楼2012-07-28 15:24
                    收起回复
                      虽不知 但觉历


                      IP属地:陕西21楼2012-07-28 15:40
                      回复
                        好厉害~~~


                        IP属地:浙江22楼2012-07-28 18:18
                        回复