【源码视频素材】【程序发布源码】【spring 源码重点】c 教务管理系统源码_教务系统管理系统源码

时间:2024-12-23 04:04:07 编辑:长沙模板建站源码 来源:kernel 源码下载

1.C语言学生管理系统
2.教务信息管理系统(C语言)

c  教务管理系统源码_教务系统管理系统源码

C语言学生管理系统

       #include<stdio.h>

       #include<string.h>

       #include<stdlib.h>

       #include<conio.h>

       #define max

       typedef struct student //学生

       {

       char sno[max]; // 学号

       char sname[max]; //姓名

       char sex[max]; //性别

       char age[max]; //年龄

       char depart[max]; //ç³»

       char classs[max]; //班

       char grade[max]; //年级

       struct student* next;

       } student;

       student* head;

       int LogOn() //登录模块,已实现输入密码不回显,如果中途发现输错某几位,可退格键重输

       {

       char username[max],管务系password[max];

       printf("\n请输入用户名:");

       scanf("%s",username);

       printf("\n请输入密码(最多位):");

       //开始以不回显且支持退格方式获取输入密码

       int i=0;

       while((i>=0)&&(password[i++]=getch())!=)//条件i>=0是用于限制退格的范围

       {

       if(password[i-1]=='\b')//对退格键的处理

       {

       printf("%c%c%c",'\b','\0','\b');

       i=i-2;

       }

       else

       printf("*");

       }

       password[--i]='\0';

       //已获取密码。验证用户身份

       if(!strcmp(username,"zhang")&&!strcmp(password,""))

       {

       printf("\n登录成功!");

       return 1;

       }

       else

       return 0;

       }

       void regist()

       {

       char ch;

       student *s,*ptr; //s用来建新结点,ptr用来暂存头结点

       do

       {

        s=(student*)malloc(sizeof(student)); // 新建一个学生结点

       printf("\n开始注册..."); //开始注册

        printf("\n请输入该学生的学号:");

        scanf("%s",s->sno);

        printf("\n请输入该学生的姓名:");

        scanf("%s",s->sname);

        printf("\n请输入该学生的性别:");

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

        printf("\n请输入该学生的年龄:");

        scanf("%s",s->age);

        printf("\n请输入该学生的系:");

        scanf("%s",s->depart);

        printf("\n请输入该学生所在的班:");

        scanf("%s",s->classs);

        printf("\n请输入该学生所在的年级");

        scanf("%s",s->grade);

       ptr=head;

       head=s;//将新结点插入队头

       s->next=ptr;

       fflush(stdin);

       printf("\n请问是否继续注册?(Y/N)");

       scanf("%c",&ch);

       }while(ch=='Y'||ch=='y');

       return;

       }

       void ElePrint(char str[]) //输出单个元素

       {

       if(str==NULL) exit(0);

       printf("%s",str);

       for(unsigned int i=0;i<-strlen(str);i++) printf(" ");//为了对齐输出,需插入一些空格

       return;

       }

       int LinePrint(student *ptr) //输出一行

       {

       if(ptr==NULL) //检查传进来的指针

       return 0;

       printf("\n");

       ElePrint(ptr->sno);

       ElePrint(ptr->sname);

       ElePrint(ptr->age);

       ElePrint(ptr->sex);

       ElePrint(ptr->depart);

       ElePrint(ptr->classs);

       ElePrint(ptr->grade);

       return 1;

       }

       void print() //输出全部学生信息

       {

       student *ptr=head;

       printf("\n学号 姓名 年龄 性别 ç³» 班 年级 ");

       while(ptr)

       {

       LinePrint(ptr);

       ptr=ptr->next;

       }

       printf("\n");

       return;

       }

       void search()//查询模块

       {

       int method;//查询方式

       char no[max],name[max],departm[max],clss[max],grades[max]; //用来接收查询关键字

       while(1)

       {

       printf("\n请选择查询方式");

        printf("\n1.按学号查询");

        printf("\n2.按姓名查询");

        printf("\n3.按所在系查询");

        printf("\n4.按所在班级查询");

        printf("\n5.按所在年级查询");

       printf("\n6.打印全部学生信息");

        printf("\n7.返回主菜单\n");

        scanf("%d",&method);

        student *p=head,*temp;

        switch(method)

       {

        case 1:

        printf("\n请输入要查询的学号:");

        scanf("%s",no);

        while(p)

        {

        if(!strcmp(p->sno,no))

        break;

        else

        {

        temp=p;

        p=p->next;

        }

        }

        printf("\n学号 姓名 年龄 性别 ç³» 班 年级 ");

        LinePrint(p);

        break;

        case 2:

        printf("\n请输入要查询的姓名:");

        scanf("%s",name);

        printf("\n学号 姓名 年龄 性别 ç³» 班 年级 ");

        while(p)

        {

        if(!strcmp(p->sname,name))

        LinePrint(p);

        p=p->next;

        }

        break;

        case 3:

        printf("\n请输入学生所在的系:");

        scanf("%s",departm);

        printf("\n学号 姓名 年龄 性别 ç³» 班 年级 ");

        while(p)

        {

        if(!strcmp(p->depart,departm))

        LinePrint(p);

        p=p->next;

        }

        break;

        case 4:

        printf("\n请输入学生所在的班:");

        scanf("%s",clss);

        printf("\n请输入学生所在的年级:");

        scanf("%s",grades);

        printf("\n学号 姓名 年龄 性别 ç³» 班 年级 ");

        while(p)

        {

        if(!strcmp(p->classs,clss)&&!strcmp(p->grade,grades))

        LinePrint(p);

        p=p->next;

        }

        break;

        case 5:

        printf("\n请输入学生所在的年级:");

        scanf("%s",grades);

        printf("\n学号 姓名 年龄 性别 ç³» 班 年级 ");

        while(p)

        {

        if(!strcmp(p->grade,grades))

        LinePrint(p);

        p=p->next;

        }

        break;

        case 6:

        print();

        break;

        case 7:

        return;

        default:

        printf("很抱歉,暂无此查询方式!");

        break;

       }

       }

       }

       void modify()//修改学生信息

       {

       char num[max];

       student *p=head;

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

       scanf("%s",num);

       while(p)

       {

       if(!strcmp(p->sno,num))

       break;

       else

       p=p->next;

       }

       if(p==NULL)

       {

       printf("\n错误:没有此学生的信息!\n");

       return;

       }

       LinePrint(p);

       printf("\n请输入要修改的该学生的信息:");

       printf("\n1.姓名");

       printf("\n2.性别");

       printf("\n3.年龄");

       printf("\n4.所在的系");

       printf("\n5.所在的班");

       printf("\n6.所在的年级");

       char name1[max],sex1[max],age1[max],depart1[max],class1[max],grade1[max];

       int select;

       fflush(stdin);

       scanf("%d",&select);

       printf("\n请输入新的信息:");

       switch(select)

       {

       case 1:

       scanf("%s",name1);

       strcpy(p->sname,name1);

       break;

       case 2:

       scanf("%s",sex1);

       strcpy(p->sex,sex1);

       break;

       case 3:

       scanf("%s",age1);

       strcpy(p->age,age1);

       break;

       case 4:

       scanf("%s",depart1);

       strcpy(p->depart,depart1);

       break;

       case 5:

       scanf("%s",class1);

       strcpy(p->classs,class1);

       break;

       case 6:

       scanf("%s",grade1);

       strcpy(p->grade,grade1);

       break;

       default:

       printf("\nError!");

       break;

       }

       LinePrint(p);

       return;

       }

       void del()// 删除某学生的信息

       {

       student *p=head,*temp=head,*s;

       char num1[max];

       printf("\n请输入要删除的学生的学号:");

       scanf("%s",num1);

       while(p)//查找该学生所在的结点

       {

       if(!strcmp(p->sno,num1))

       break;

       else

       {

       temp=p;

       p=p->next;

       }

       }//while

       if(!p)

       {

       printf("\n不存在此学生的信息.");

       return;

       }

       LinePrint(p);//输出该学生的信息

       printf("\n请问真的要删除该学生的信息吗?(Y/N)");

       char ch;

       fflush(stdin);

       scanf("%c",&ch);

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

       {

       s=p->next;

       temp->next=s;

       free(p);

       printf("\n已经删除该学生的信息.");

       }

       return;

       }

       void sort() //排序模块。将学生记录按学号从小到大排列。用起泡排序算法实现

       {

       student *ptr,*s=head,*p;

       int count=0,count1;

       while(s)//统计链表结点个数

       {

       count++;

       s=s->next;

       }

       for(int i=1;i<count;i++)

       {

       ptr=head;

       p=NULL;

       count1=count-i; //用来控制每轮起泡排序的终点,即每次把学号最小的结点移到倒数第i个结点

       while(ptr&&ptr->next&&(count1--))

       {

       if(strcmp(ptr->sno,ptr->next->sno)>0)

       {

       s=ptr->next;

       ptr->next=s->next;

       if(p==NULL) //ptr处于队头时

       head=s;

       else

       p->next=s;

       s->next=ptr;

       p=s;

       }

       else

       {

       ptr=ptr->next;

       if(p==NULL) //ptr处于队头时

       p=head;

       else

       p=p->next;

       }

       }

       }

       return;

       }

       void quit()

       {

       char ch;

       printf("\n真的要退出?(Y/N)");

       fflush(stdin);

       scanf("%c",&ch);

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

       exit(0);

       return;

       }

       int main()

       {

       int option;

       printf("\nCopyright@ KongXinCai All rights reserved.");

       printf("\n欢迎使用学生信息管理系统!\n");

       //登录模块

       int icheck=0;

       while(icheck<3)

       {

       if(LogOn()==0)

       icheck++;

       else

       break;

       }

       if(icheck==3)

       {

       printf("\n连续登录三次不成功,退出!");

       exit(0);

       }

       //系统界面

       while(1)

       {

       printf("\n\n请选择需要的服务:");

        printf("\n1.注册");

        printf("\n2.查询");

        printf("\n3.修改");

        printf("\n4.删除");

        printf("\n5.排序");

        printf("\n7.求平均");

        printf("\n6.退出\n");

       scanf("%d",&option);

       switch(option)

       {

       case 1:

       regist();

       break;

       case 2:

       search();

       break;

       case 3:

       modify();

       break;

       case 4:

       del();

       break;

       case 5:

       sort();

       break;

       case 6:

       quit();

       break;

       }

       }

       return 0;

       }

教务信息管理系统(C语言)

       #include <stdio.h>

       struct Student

       {

       int num;

       char name[];

       float score[3];

       float avg;

       }stus[];

       void Add();//填加学员

       void List();//学员详细列表

       void Asc();//显示后三名学员

       void Desc();//显示前三名学员

       void Display();

       void main()

       {

       int s;

       while(1)

       {

       printf("学员管理系统:\n");

       printf("1、增加学员\n");

       printf("2、理系理系源码视频素材学员详细列表\n");

       printf("3、统源统管统源程序发布源码显示前三名\n");

       printf("4、码教码spring 源码重点显示后三名\n");

       printf("5、管务系指尖遥控源码显示平均成绩\n");

       printf("6、理系理系花网页源码退出\n");

       printf("请选择:");

       scanf("%d",统源统管统源&s);

       switch(s)

       {

       case 1:

       Add();

       break;

       case 2:

       List();

       break;

       case 3:

       Desc();

       Display();

       break;

       case 4:

       Asc();

       Display();

       break;

       case 5:

       Display();

       break;

       case 6:

       return;

       break;

       default:

       printf("选择错误!\n");

       break;

       }

       }

       }

       void Add()

       {

       int i,k;

       float sum;

       char c;

       for(i=0;i<;i++)

       {

       printf("请输入第%d个学员信息:\n",i+1);

       printf("学号:");

       scanf("%d",&stus[i].num);

       printf("姓名:");

       fflush(stdin);

       scanf("%s",stus[i].name);

       printf("请输入三门课的成绩:\n");

       sum=0;

       for(k=0;k<3;k++)

       {

       printf("%d:",k+1);

       scanf("%f",&stus[i].score[k]);

       sum+=stus[i].score[k];

       }

       stus[i].avg=sum/3;

       printf("是否继续?");

       fflush(stdin);

       scanf("%c",&c);

       if(c=='n' || c=='N')

       return;

       }

       }

       void List()

       {

       int i,j=0;

       printf("学号\t姓名\t成绩1\t成绩2\t成绩3\t平均\n");

       for(i=0;i<;i++)

       {

       if(stus[i].num!=0)

       {

       printf("%d\t%s\t%.2f\t%.2f\t%.2f\t%.2f\n",stus[i].num,stus[i].name,stus[i].score[0],stus[i].score[1],stus[i].score[2],stus[i].avg);

       }

       }

       }

       void Asc()

       {

       int i,j;

       struct Student c;

       for(i=0;i<;i++)

       { for(j=0;j<-i;j++)

       if(stus[j].avg<stus[j+1].avg)

       {

       c=stus[j];

       stus[j]=stus[j+1];

       stus[j+1]=c;

       }

       }

       }

       void Desc()

       {

       int i,j;

       struct Student c;

       for(i=0;i<;i++)

       { for(j=0;j<-i;j++)

       if(stus[j].avg>stus[j+1].avg)

       {

       c=stus[j];

       stus[j]=stus[j+1];

       stus[j+1]=c;

       }

       }

       }

       void Display()

       {

       int i,d=0;

       printf("学号\t姓名\t平均\n");

       for(i=0;i<;i++)

       {

       if(stus[i].num!=0)

       {

       printf("%d\t%s\t%.2f\n",stus[i].num,stus[i].name,stus[i].avg);

       d++;

       }

       if(d==3)

       break;

       }

       }

       看看我写的这个!

码教码