经验首页 前端设计 程序设计 Java相关 移动开发 数据库/运维 软件/图像 大数据/云计算 其他经验
当前位置:技术经验 » 程序设计 » C 语言 » 查看文章
基于C语言实现简单学生成绩管理系统
来源:jb51  时间:2022/8/31 17:26:10  对本文有异议

本文实例为大家分享了C语言实现简单学生成绩管理系统的具体代码,供大家参考,具体内容如下

一、系统主要功能

1、密码登录
2、输入数据
3、查询成绩
4、修改成绩
5、输出所有学生成绩
6、退出系统

二、代码实现

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define N 10
struct student
{
?? ?char num[10];
? ? char name[20];
?? ?int old;
?? ?char add[30];
?? ?char xb[5];
?? ?char mc[5];
? ? int ds;
?? ?int eng;
?? ?int math;
?? ?int lan;
};
struct student stu[N];
int count=0;
void insert(int i) //输入学生的具体信息
{
?? ?printf("第%d个学生的姓名:",i);
? ? scanf("%s",stu[i].name);
?? ?printf("第%d个学生的年龄:",i);
? ? scanf("%d",&stu[i].old);
?? ?printf("第%d个学生的住址:",i);
? ? scanf("%s",stu[i].add);
?? ?printf("第%d个学生的性别:",i);
? ? scanf("%s",stu[i].xb);
?? ?printf("第%d个学生的民簇:",i);
? ? scanf("%s",stu[i].mc);
? ? printf("第%d个学生的线性代数分数:",i);
? ? scanf("%d",&stu[i].ds);
? ? printf("第%d个学生的英语分数:",i);
? ? scanf("%d",&stu[i].eng);
? ? printf("第%d个学生的高等数学分数:",i);
? ? scanf("%d",&stu[i].math);
? ? printf("第%d个学生的C语言分数:",i);
? ? scanf("%d",&stu[i].lan);
? ? count++;
? ? sprintf(stu[i].num,"%d",count);
}
void input() //输入数据
{
? ? system("color 3e");
? ? void menu();
? ? void insert(int i);
? ? int i,k,l,u;
? ? printf("请设定输入的学生人数:");
?? ?scanf("%d",&u);
?? ?while(u<1||u>10)
?? ?{
?? ??? ?printf("超出数据范围请重输:");
?? ??? ?scanf("%d",&u);
?? ?}
? ? for(i=1;i<u+1;i++)
? ? {
? ? ? ? printf("\n请输入第%d个学生的信息!\n",i);
? ? ? ? insert(i);
? ? }
? ? do
? ? {
? ? ? ? printf("请按0返回菜单:");
? ? ? ? scanf("%d",&k);
? ? ? ? if (k==0)
? ? ? ? {
? ? ? ? ? ? system("cls");
? ? ? ? ? ? menu();
? ? ? ? }
? ? ? ? else
? ? ? ? ? ? l=0;
? ? }while(l==0);
}
void search() //查询成绩
{
? ? system("color 3f");
?? ?void menu();
? ? void printf_one(int k);
? ? struct student s;
? ? int i,k,w0,w1,w2;
? ? do
? ? {
? ? ? ? printf("1.姓名 ?2.学号 \n请选择查找的类别:");
? ? ? ? scanf("%d",&w1);
? ? ? ? if (w1<1||w1>2)
? ? ? ? {
? ? ? ? ? ? printf("输入错误!请重输:\n");
? ? ? ? ? ? w2 = 1;
? ? ? ? }
? ? ? ? else
? ? ? ? ? ? w2 = 0;
? ? }while(w2 == 1);
? ? if(w1==1) //按姓名查找
? ? {
?? ??? ?do
? ? ? ? {
? ? ? ? ? ? k=-1;
? ? ? ? ? ? do
? ? ? ? ? ? {
? ? ? ? ? ? ? ? printf("请输入您想查找的学生的姓名:");
? ? ? ? ? ? ? ? scanf("%s",s.name);
? ? ? ? ? ? ? ? for(i= 1;i<N;i++)
? ? ? ? ? ? ? ? ? ? if(strcmp(s.name,stu[i].name)==0)
? ? ? ? ? ? ? ? ? ? {
? ? ? ? ? ? ? ? ? ? ? ? k=i;
? ? ? ? ? ? ? ? ? ? ? ? s=stu[i];
? ? ? ? ? ? ? ? ? ? }
? ? ? ? ? ? ? ? if(k==-1) //没有找到
? ? ? ? ? ? ? ? {
? ? ? ? ? ? ? ? ? ? int o;
? ? ? ? ? ? ? ? ? ? printf("\n没有这个学生的信息!\n");
? ? ? ? ? ? ? ? ? ? printf("\n 1.继续 ?2.返回菜单 \n请选择进行下一个操作;");
? ? ? ? ? ? ? ? ? ? scanf("%d",&o);
? ? ? ? ? ? ? ? ? ? if (o==1)
? ? ? ? ? ? ? ? ? ? {
? ? ? ? ? ? ? ? ? ? ? ? system("cls");
? ? ? ? ? ? ? ? ? ? ? ? search(); //继续查找
? ? ? ? ? ? ? ? ? ? }
? ? ? ? ? ? ? ? ? ? if(o==2)
? ? ? ? ? ? ? ? ? ? {
? ? ? ? ? ? ? ? ? ? ? ? system("cls");
? ? ? ? ? ? ? ? ? ? ? ? menu(); //返回菜单
? ? ? ? ? ? ? ? ? ? }
? ? ? ? ? ? ? ? }
? ? ? ? ? ? }while(k==-1);
? ? ? ? ? ? system("cls");
? ? ? ? ? ? printf_one(k); //查找到以后输出这个学生的信息
? ? ? ? ? ? printf("\n 1.继续 ?2.返回菜单 \n请选择进行下一个操作:");
? ? ? ? ? ? scanf("%d",&w0);
? ? ? ? }while(w0==1);
? ? ? ? system("cls");
? ? ? ? menu(); //不再查找时返回菜单
? ? }
? ? else //按学号查找
? ? {
? ? ? ? do
? ? ? ? {
? ? ? ? ? ? k=-1;
? ? ? ? ? ? do
? ? ? ? ? ? {
? ? ? ? ? ? ? ? printf("请输入您想查找的学生的学号:");
? ? ? ? ? ? ? ? scanf("%s",s.num);
? ? ? ? ? ? ? ? for(i=0;i<N;i++)
? ? ? ? ? ? ? ? ? ? if(strcmp(s.num,stu[i].num)==0) //找到了
? ? ? ? ? ? ? ? ? ? {
? ? ? ? ? ? ? ? ? ? ? ? k=i;
? ? ? ? ? ? ? ? ? ? ? ? s=stu[i];
? ? ? ? ? ? ? ? ? ? }
? ? ? ? ? ? ? ? if(k==-1) ? ?//没有找到
? ? ? ? ? ? ? ? {
? ? ? ? ? ? ? ? ? ? int o;
? ? ? ? ? ? ? ? ? ? printf("\n没有这个学生的信息!\n");
? ? ? ? ? ? ? ? ? ? printf("\n 1.继续 ?2.返回菜单 \n请选择进行下一个操作:");
? ? ? ? ? ? ? ? ? ? scanf("%d",&o);
? ? ? ? ? ? ? ? ? ? if(o==1)
? ? ? ? ? ? ? ? ? ? {
? ? ? ? ? ? ? ? ? ? ? ? system("cls");
?? ??? ??? ??? ??? ??? ?search();
? ? ? ? ? ? ? ? ? ? }
? ? ? ? ? ? ? ? ? ? if(o==2)
? ? ? ? ? ? ? ? ? ? {
? ? ? ? ? ? ? ? ? ? ? ? system("cls");
? ? ? ? ? ? ? ? ? ? ? ? menu(); //返回菜单
? ? ? ? ? ? ? ? ? ? }
? ? ? ? ? ? ? ? }
? ? ? ? ? ? }while(k==-1);
? ? ? ? ? ? system("cls");
? ? ? ? ? ? printf_one(k); //找到后输出这个学生的信息
? ? ? ? ? ? printf("\n 1.继续 ?2.返回菜单 \n请选择进行下一个操作:");
? ? ? ? ? ? scanf("%d",&w0);
? ? ? ? }while(w0==1);
? ? ? ? system("cls");
? ? ? ? menu(); //不再查找时返回菜单
? ? }
}
void xiugai() //修改学生信息的函数
{
? ? system("color 1a");
?? ?void menu();
? ? void printf_one(int k);
? ? void xiugai_2();
? ? struct student s;
? ? int i,n,k,w0=1,w1,w2=0,o;
? ? do
? ? {
? ? ? ? k=-1;
? ? ? ? do
? ? ? ? {
? ? ? ? ? ? printf("请输入您想要修改的学生的姓名:");
? ? ? ? ? ? scanf("%s",s.name);
? ? ? ? ? ? for(i=0;i<N;i++)
? ? ? ? ? ? if(strcmp(s.name,stu[i].name)==0) //与其中一个学生匹配
? ? ? ? ? ? {
? ? ? ? ? ? ? ? k=i;
? ? ? ? ? ? ? ? s=stu[i];
? ? ? ? ? ? }
? ? ? ? ? ? if(k==-1) //没有找到输入的学生
? ? ? ? ? ? { ? ? ? ? ? ? ? ?
? ? ? ? ? ? ? ? printf("没有这个学生的信息!\n");
? ? ? ? ? ? ? ? printf("\n 1.继续 ?2.返回菜单 \n请选择进行下一个操作:");
? ? ? ? ? ? ? ? scanf("%d",&o);
? ? ? ? ? ? ? ? if(o==1)
? ? ? ? ? ? ? ? {
? ? ? ? ? ? ? ? ? ? system("cls");
?? ??? ??? ??? ??? ?xiugai();
? ? ? ? ? ? ? ? }
? ? ? ? ? ? ? ? if(o==2)
? ? ? ? ? ? ? ? {
? ? ? ? ? ? ? ? ? ? system("cls");
? ? ? ? ? ? ? ? ? ? menu(); //返回菜单
? ? ? ? ? ? ? ? }
? ? ? ? ? ? }
? ? ? ? }while(k==-1);
? ? ? ? system("cls");
?? ??? ?printf("请输入修改后的线性代数分数:");
?? ??? ?scanf("%d",&stu[k].ds);
?? ??? ?printf("请输入修改后的英语分数:");
?? ??? ?scanf("%d",&stu[k].eng);
?? ??? ?printf("请输入修改后的高等数学分数:");
?? ??? ?scanf("%d",&stu[k].math);
?? ??? ?printf("请输入修改后的C语言分数:");
?? ??? ?scanf("%d",&stu[k].lan);
? ? ? ? printf("\n");
?? ??? ?printf("\n该生修改后的信息如下:\n");
? ? ? ? printf_one(k); //输出这个学生的信息
? ? ? ? printf("\n请按0返回菜单:");
? ? ? ? scanf("%d",&o);
? ? ? ? if(o==0)
? ? ? ? {
? ? ? ? ? ? system("cls");
? ? ? ? ? ? menu(); //返回菜单
? ? ? ? }
? ? }while(1);
}
void printf_all() //输出所有学生成绩的函数
{
? ? void menu();
? ? system("color 9e");
? ? int i,j,k;
? ? for (i=1;i<3;i++)
? ? {
? ? ? ? printf("\n学号:%s \n姓名:%s \n性别:%s \n民簇:%s \n年龄:%d \n地址:%s \n线性代数分数:%d \n英语分数:%d \n高等数学分数:%d \nC语言分数:%d \n",stu[i].num,stu[i].name,stu[i].xb,stu[i].mc,stu[i].old,stu[i].add,stu[i].ds,stu[i].eng,stu[i].math,stu[i].lan);
? ? }
? ? do
? ? {
? ? ? ? printf("请按0返回菜单:");
? ? ? ? scanf("%d",&j);
? ? ? ? if(j==0)
? ? ? ? {
? ? ? ? ? ? system("cls");
? ? ? ? ? ? menu();
? ? ? ? }
? ? ? ? else
? ? ? ? {
? ? ? ? ? ? k = 0;
? ? ? ? }
? ? } while (k == 0);
}
void printf_one(int k) ?//输出某一个学生的信息的函数
{
?? ?printf("\n学号:%s \n姓名:%s \n性别:%s \n民簇:%s \n年龄:%d \n地址:%s \n线性代数分数:%d \n英语分数:%d \n高等数学分数:%d \nC语言分数:%d \n",stu[k].num,stu[k].name,stu[k].xb,stu[k].mc,stu[k].old,stu[k].add,stu[k].ds,stu[k].eng,stu[k].math,stu[k].lan);
}
void Exit() //退出系统的函数
{
? ? system("cls");
?? ?system("color 2e");
?? ?printf("\n祝您生活愉快!\n");
?? ?exit(0);
}
void menu() //菜单函数
{
? ? system("color 1e");
? ? printf("\n\t\t\t欢迎使用学生学籍管理系统!\n");
? ? printf("\n");
? ? int n,m;
? ? do
? ? {
? ? ? ? puts("\t\t********************菜单*********************");
? ? ? ? puts("\t\t**************学生学籍管理系统***************");
? ? ? ? puts("\t\t*********************************************");
? ? ? ? puts("\t\t******* ? ? ? ?1--输入数据 ? ? ? ? ? ? ? ****");
? ? ? ? puts("\t\t******* ? ? ? ?2--查询成绩 ? ? ? ? ? ? ? ****");
? ? ? ? puts("\t\t******* ? ? ? ?3--修改成绩 ? ? ? ? ? ? ? ****");
? ? ? ? puts("\t\t******* ? ? ? ?4--输出所有学生成绩 ? ? ? ****");
? ? ? ? puts("\t\t******* ? ? ? ?5--退出系统 ? ? ? ? ? ? ? ****");
? ? ? ? puts("\t\t*********************************************");
? ? ? ? printf("\t\t*************请选择服务种类(1~5):");
? ? ? ? scanf("%d",&n);
? ? ? ? if(n<1||n>5)
? ? ? ? {
? ? ? ? ? ? system("cls");
? ? ? ? ? ? printf("\n\t\t*************选择错误! 请重新选择!\n");
? ? ? ? ? ? m=1;
? ? ? ? }
? ? ? ? else
? ? ? ? {
? ? ? ? ? ? m = 0;
? ? ? ? }
? ? }while(m==1);
? ? switch(n)
? ? {
?? ??? ?case 1:system("cls");input();break;
?? ??? ?case 2:system("cls");search();break;
?? ??? ?case 3:system("cls");xiugai();break;
?? ??? ?case 4:system("cls");printf_all();break;
?? ??? ?case 5:Exit();break;
? ? }
}
int main()
{
?? ?int c;
?? ?printf("请输入密码:");
?? ?scanf("%d",&c);
?? ?while(c!=12345)
?? ?{
?? ??? ?printf("密码错误,请重输:");
?? ??? ?scanf("%d",&c);
?? ?}
?? ?system("cls");
?? ?menu();
? ? return 0;
}

三、效果演示

输入登入密码:

输入数据:

查询成绩:

修改成绩:

输出所有学生成绩:

退出系统:

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持w3xue。

 友情链接: NPS