成绩管理系统(练手版)

第一次写博客—大学生成绩管理系统

基本要求

使用c语言在windows环境下使用本地编译器实现成绩管理系统,要求具有登录以及基本的增、删、查、改功能。

源代码

因为是第一次尝试写博客,程序思路及代码的各功能就不一一解释了,感兴趣的同学的看看,同时欢迎各位大佬指正不足和错误。
在这里插入图片描述

#include <stdio.h>
#include <stdlib.h>
#include <string.h>



void login();
void numquery();
void insert();
void update();
void del();
void list();
void inde();
int k=0,n=3,a;


struct user
{
    
    	char username[20];
	char password[20];
}user[3]={
    
    {
    
    "aaa","111"},{
    
    "bbb","222"},{
    
    "ccc","111"}};


struct student
{
    
      int num;
	char name[20];
	float score[5];
	int classs;
	char sub[20];
}s[30]={
    
    {
    
    101,"li",{
    
    65,66,78,90,87},9901,"会计"},{
    
    102,"wang",{
    
    65,66,78,90,87},9901,"软工"},{
    
    103,"zhang",{
    
    68,78,56,88,90},9901,"软工"}};




void login()  //登录功能
{
    
    	int i;   char a[20],b[20];
  printf("please input username:");
  scanf("%s",a);
  printf("please input password:");
   scanf("%s",b);
	for(i=0;i<3;i++)
	if(strcmp(a,user[i].username)==0&&strcmp(b,user[i].password)==0)
	{
    
    	printf("登录成功!");
	     inde();  break;  }
if(i==3)
	{
    
    printf("登录失败!"); k++;
       if(k>=3)   exit(1);
          else  login();}

}


void inde() //主菜单函数
{
    
    	int x,z;
	printf("欢迎来到学生管理系统\n");
    printf("---------------------\n");
	printf("选择要查询的类型\n");
	printf("1 按学号查询\n2 添加\n3 删除\n4 修改 \n5显示全部 \n6 退出登入\n");
	printf("---------------------\n");
	scanf("%d",&x);
	if (x==1)  numquery();
	if(x==2) insert();
	if(x==3) del();
	if(x==4) update();
	if(x==5)  list();
	if(x==6){
    
    
        printf("是否继续登入账号(1 是;2 否)\n");
        scanf("%d",&z);
        if(z==1) inde();
        else{
    
     printf("退出系统成功!!!");
        exit(1);}
	};
}


void numquery()   //按学号查询函数
{
    
     int i,x;
	printf("请输入要查询的学号:");
	scanf("%d",&x);
	for(i=0;i<n;i++)
	if(x==s[i].num)
	{
    
      printf("%5d %s %.2f %.2f %.2f %.2f %.2f%5d%s\n",s[i].num,s[i].name,s[i].score[0],s[i].score[1],s[i].score[2],s[i].score[3],s[i].score[4],s[i].classs,s[i].sub);    break;}
	if(i==n) printf("没有这个学生的纪录\n");
printf("1 返回主菜单\n 2 继续查询\n");
	scanf("%d",&x);
	if(x==1) inde();
		else numquery();
}


void insert()   //添加学生函数
{
    
      int x,i;
	int num;
	char name[20];
	float score[5];
	int classs;
	char sub[20];
   	printf("请输入要添加的学号:");
	scanf("%d",&num);
	printf("请输入要添加的姓名:");
	scanf("%s",name);
	for(i=0;i<5;i++)
	{
    
    
    printf("请输入要添加的第%d门课成绩:",i+1);
	scanf("%f",&score[i]);
	}
	printf("请输入要添加的班级号:");
	scanf("%d",&classs);
	printf("请输入要添加的专业:");
	scanf("%s",sub);
    s[n].num=num;
	strcpy(s[n].name,name);
	for(i=0;i<5;i++)
		s[n].score[i]=score[i];
	s[n].classs=classs;
	strcpy(s[n].sub,sub);
	n++;    //实际人数增1
	printf("1 返回主菜单\n 2 继续添加\n");
	scanf("%d",&x);
	if(x==1) inde();
		else insert();
}



void list()  //显示全部学生信息
{
    
    	int x,i;
	for(i=0;i<n;i++)
printf("%5d %s %.2f %.2f %.2f %.2f %.2f%5d%s\n",s[i].num,s[i].name,s[i].score[0],s[i].score[1],s[i].score[2],s[i].score[3],s[i].score[4],s[i].classs,s[i].sub);
if(a==1){
    
    
    printf("1 返回主菜单\n2 继续显示\n3 继续删除\n");
    a++;}
else
printf("1 返回主菜单\n2 继续显示\n");
	scanf("%d",&x);
	if(x==1) inde();
    if(x==2) list();
    if(x==3) del();
}

void del()  //删除学生信息
{
    
    
    int i,j,m;
printf("请输入要删除学生所有信息的学生学号(0 退出并回到主菜单;1显示目前全部学生信息):\n");
scanf("%d",&a);
if(a==0)
    inde();
if(a==1)
    list();
for(i=0;i<n;i++){
    
    
    if(a==s[i].num){
    
    
        if(i==n-1){
    
    
            n--;
            break;
            }
        else{
    
    
            for(m=i;m<n-1;m++){
    
    
            s[m].num=s[m+1].num;
            s[m].classs=s[m+1].classs;
            for(j=0;j<5;j++){
    
    
            s[m].score[j]=s[m+1].score[j];}
            strcpy(s[m].name,s[m+1].name);
            strcpy(s[m].sub,s[m+1].sub);}
            n--;
            break;
           }
    }
}
del();
}

void update()   //修改学生信息
{
    
       int x,y,z,i,m,first,h,j;
    char name1[20],sub1[20];
    printf("请输入要修改的学生学号,对该学生进行学生信息修改(0退出修改回到主菜单)\n");
    scanf("%d",&x);
    if(x==0)
        inde();
    for(i=0;i<n;i++){
    
    
        if(x==s[i].num)
            m=i;
    }
    printf("\n1 学号修改\n2 名字修改\n3 成绩\n4 班级\n5 专业\n");
    scanf("%d",&y);
    if(y==1){
    
    
    printf("将该学生的学号修改为:");
    scanf("%d",&z);
    s[m].num=z;
    }
    if(y==2){
    
    
    printf("将该学生的姓名修改为:");
    getchar();
    gets(name1);
    strcpy(s[m].name,name1);
    }
    if(y==3){
    
    
        do{
    
    
        printf("修改第几课目成绩(输入0退出修改成绩)\n");
        scanf("%d",&first);
        if(first==0)
            break;
        else if(first==1)
            j=0;
        else if(first==2)
            j=1;
        else if(first==3)
            j=2;
        else if(first==4)
            j=3;
        else if(first==5)
            j=4;
        else{
    
     printf("无此科目,请重新输入!!\n");
        continue;}
        printf("将该成绩修改为:\n");
        scanf("%d",&z);
        s[m].score[j]=z;
        }while(1);
    }
    if(y==4){
    
    
        printf("将该学生班级修改为:\n");
        scanf("%d" ,&z);
        s[m].classs=z;
        }
    if(y==5){
    
    
        printf("将该学生专业修改为:\n");
        getchar();
        gets(sub1);
        strcpy(s[m].sub,sub1);
    }
    printf("修改成功!!!!\n");
    printf("1继续修改\n2回到主菜单)\n");
    scanf("%d",&h);
    if(h==1)
        update();
    if(h==2)
        inde();
}
int main()
{
    
      login();
   inde();
   return 0;
}

总结

程序不是现写的就不展示运行截图了,感兴趣可以自行复制粘贴去编译一下,大一萌新要是有类似的大作业可不要照搬哦,多动手试试才会进步呢。
还有,写博客感觉还不错,以后尽量保持写博客吧,啊哈哈。。。。
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/k1507157/article/details/109467342
今日推荐