精华内容
下载资源
问答
  • 学生成绩管理系统C语言、C++6.0) 控制台界面,可计算平均成绩等功能
  • 主要为大家详细介绍了C语言利用结构体数组实现学生成绩管理系统,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
  • 图形界面学生管理系统(最新版所有功能均实现)c++ c++学生管理系统 图形界面学生管理系统(最新版所有功能均实现)c++ c++学生管理系统
  • 一个用dev-c++写的c语言学生管理系统
  • 这几天准备复习一下学习的C语言,于是写了一个操作系统,这是第二版操作系统,我又增加了密码登录模式,在此将源码分享给大家,希望大家喜欢。 #pragma once #include <SDKDDKVer.h> #include <stdio.h>...

    这几天准备复习一下学习的C语言,进行一门语言最好的复习方式我认为就是用这门语言做一个作品出来,这样可能方方面面的知识都有可能用到,于是我花了几天写了一个学生信息管理系统,这是第二版操作系统,我又增加了密码登录模式,在此将源码分享给大家,觉得可以的话记得点赞收藏( $ _ $ )。

    学生信息操作系统展示

    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    源码

    #pragma once
    #include <SDKDDKVer.h>
    #include <stdio.h>
    #include <tchar.h>
    #include <conio.h>
    #include<string.h>
    #include<stdlib.h>
    #include<math.h>
    #include<windows.h>
    
    struct student
    {
    	char name[20];
    	char num[20];
    	int age;
    	char sex[5];
    	char telephone[20];
    };
    
    char nam[20], number[20], s[5], tele[20];
    int ag;
    
    struct users
    {
    	char ac[30];
    	char pw[30];
    };
    struct users use[50];//结构体
    
    struct Node
    {
    	struct student data;
    	struct Node* next;
    };
    struct Node* list;
    
    struct Node* createList();
    struct Node* createNode(struct student data);
    void Hello();
    void registeruser();
    void login();
    void help();
    void insertNodeByHead(struct Node* headNode);
    void deleteNode(struct Node* headNode);
    void change(struct Node* headNode);
    struct Node* searchInfoByData(struct Node* headNode);
    void printList(struct Node* headNode);
    void readInfoToFile(struct Node* headNode, char *fileName);
    void writeInfoToFile(struct Node* headNode, char* fileName);
    void menu();
    void interaction();
    
    //创建信息表
    struct Node* createList()
    {
    	//结构体变量表示表头
    	//指针变成变量  用动态内存申请
    	struct Node* headNode = (struct Node*)malloc(sizeof(struct Node));
    	headNode->next = NULL;
    	return headNode;
    };
    
    //创建结点
    struct Node* createNode(struct student data)
    {
    	struct Node* newNode = (struct Node*) malloc(sizeof(struct Node));
    	newNode->data = data;
    	newNode->next = NULL;
    	return newNode;
    }
    
    //登录界面 
    void Hello()
    {
    	int se;
    	printf("********************************************\n");
    	printf("**********学生信息管理系统登录界面**********\n");
    	printf("********************************************\n\n");
    	printf("\t\t1.-登录账号-\n");
    	printf("\t\t2.-注册账号-\n");
    	printf("\t\t3.-退出界面-\n\n");
    	printf("******************欢迎使用******************\n");
    	printf("请选择:");
    	scanf("%d", &se);
    	switch (se)
    	{
    	case 1:
    		login();
    		break;
    	case 2:
    		registeruser();
    		break;
    	case 3:
    		printf("\n\t\t【成功退出】\n");
    		exit(0);
    		system("pause");
    		break;
    	default:
    		printf("\n没有这个选项,请重新选择!\n");
    		break;
    	}
    }
    
    // 注册账号功能 
    void registeruser()
    {
    	char ac[30];
    	char pw[6],pd[6];
    	int	i, a = 0;
    
    		printf("\t\t【注册帐号】\n");
    	FILE *fp = fopen("账号信息档案.txt", "ab");
    	printf("请输入用户账号和密码(账号、密码可以为数字,中文字母,英文字母,符号,密码必须6位)\n\n\n");
    	printf("\t请你输入账号:");
    	scanf("%s", &ac);
    	strcpy(use[a].ac, ac);
    	printf("\n\t请你输入密码:");
    	for (i = 0; i<6; i++)
    	{
    		pw[i] = _getch();
    		printf("*");
    		use[a].pw[i] = pw[i];
    		if (pw[i] == '\r')
    		{
    			printf("注册失败,请重新注册账号\n");
    			return;
    		}
    	}
    	printf("\n\n\t再次确认密码:");
    	for (i = 0; i<6; i++)
    	{
    		pd[i] = _getch();
    		printf("*");
    		if (use[a].pw[i] != pd[i])
    		{
    			printf("\n密码不对,请重新注册账号\n");
    			return;
    		}
    	}
    	fprintf(fp, "账号\t密码\n");
    	fprintf(fp, "%s\t%s\n", use[a].ac, use[a].pw);
    	printf("\n注册成功!!!\n");
    	fclose(fp);
    	system("pause");
    	system("cls");
    }
    
    //登录账号功能 
    void login()
    {
    	char ac[30];
    	char ad[20], pw;
    	int	i, j, a = 0;
    	int	flag = 0;
    
    		printf("--------【登录账号】--------\n");
    	for (i = 0; i<3; i++)
    	{
    		printf("请输入帐号:");
    		scanf("%s", &ac);
    		printf("请输入密码:");
    		for (j = 0; j<6; j++)
    		{
    			pw = _getch();
    			printf("*");
    			ad[j] = pw;
    		}
    		FILE *fp;
    		fp = fopen("账号信息档案.txt", "r");//读取文件操作
    		while (!feof(fp))
    		{
    			fscanf(fp, "%s %sn", &use[a].ac, &use[a].pw);
    			if ((strcmp(ac, use[a].ac) == 0) && (strcmp(ad, use[a].pw) == 0))
    			{
    				flag = 1;
    				fclose(fp);
    				break;
    			}
    			a++;
    		}
    
    		if (flag == 1)
    		{
    			printf("\n登录成功!");
    			printf("按任意键进入学生信息管理系统!\n");
    			system("pause");
    			system("cls");
    			while (1)
    			{
    				menu();
    				interaction();
    				system("pause");
    				system("cls");
    			}
    		}
    		else {
    			printf("\n账号或者密码输入错误,你还有%d次机会,请重新输入:\n", 2 - i);
    		}
    	}
    	if (i == 3)
    	{
    		printf("登录失败\n");
    		return;
    	}
    
    }
    
    //系统说明功能 
    void help()
    {
    	printf("\n\t欢迎使用学生系统帮助!\n");
    	printf("\n1、初次进入系统后,请先选择录入学生信息;\n");
    	printf("\n2、按照菜单提示键输入数字代号选择功能;\n");
    	printf("\n3、增加学生信息后,信息会被保存在该程序所在的文件夹中的《学生信息档案》文件中;\n");
    	printf("\n4、增加学生信息时,注意不要重复添加学号相同的信息;\n");
    	printf("\n5、如果系统卡住,请关闭程序重新登录;\n");
    	printf("\n6、注意!!!进行完一切操作后,记得退出系统,非正常手段关闭程序信息将无法保存!;\n");
    	printf("\n\t谢谢您的观看!再见\n");
    }
    
    //录入功能 
    void insertNodeByHead(struct Node* headNode)
    {
    	struct student data;
    	struct Node* pMove = headNode->next;
    	printf("请输入学生姓名,学号,年龄,性别,电话:\n");
    	scanf("%s%s%d%s%s", &data.name, &data.num, &data.age, &data.sex, &data.telephone);
    
    while (pMove != NULL)
    	{
    		if (strcmp(pMove->data.num, data.num) == 0)
    		{
    			printf("录入信息学号重复,请重新录入信息\n");
    			return;
    		}
    		break;
    	}
    	struct Node* newNode = createNode(data);
    	newNode->next = headNode->next;
    	headNode->next = newNode;
    }
    
    //删除功能 
    void deleteNode(struct Node* headNode)
    {
    	printf("请输入删除的学生学号:\n");
    	scanf("%s", &number);
    	struct Node* posNode = headNode->next;
    	struct Node* posFrontNode = headNode;
    
    	if (posNode == NULL)
    	{
    		printf("数据为空,无法删除!\n");
    		return;
    	}
    	//姓名是字符串,字符串:strcmp
    	while (strcmp(posNode->data.num, number))
    	{
    		posFrontNode = posNode;
    		posNode = posFrontNode->next;
    		if (posNode == NULL)
    		{
    			printf("未找到指定位置,无法删除!\n");
    			return;
    		}
    	}
    	posFrontNode->next = posNode->next;
    	free(posNode);
    	printf("学号为%s学生的信息已经删除!\n",number); 
    }
    
    //修改功能
    void change(struct Node* headNode)
    {
    	printf("请输入要修改信息的学生学号:\n");
    	scanf("%s", &number);
    
    		struct Node* changeNode = headNode->next;
    	if (changeNode == NULL)
    	{
    		printf("数据为空,无法改变!\n");
    	}
    	else
    	{
    		if (0 == strcmp(changeNode->data.num, number))
    		{
    			printf("请输入该学生要改变的信息选项:1、姓名 2、电话号码  3、年龄\n");
    			int choose;
    			scanf("%d", &choose);
    			switch (choose)
    			{
    			case 1:
    				printf("请输入您要修改的名字:");
    				scanf("%s", nam);
    				printf("修改的名字为:%s\n", nam);
    				strcpy(changeNode->data.name, nam);
    				printf("修改名字成功!\n");
    				break;
    	
    			case 2:
    				printf("请输入您要修改的电话号码");
    				scanf("%s", &tele);
    				printf("修改的电话号码为:%s\n", tele);
    				strcpy(changeNode->data.telephone, tele);
    				printf("修改电话号码成功!\n");
    				break;
    		
    			case 3:
    				printf("请输入您要修改的年龄:");
    				scanf("%d", &ag);
    				printf("修改的年龄为:%d\n", ag);
    				changeNode->data.age = ag;
    				printf("修改年龄成功!\n");
    				break;
    
    			default:
    				printf("请输入正确的选项\n");
    				break;
    			}
    		}
    	}
    }
    
    //查找功能
    struct Node* searchInfoByData(struct Node* headNode)
    {
    	printf("请输入要查找的学生学号:\n");
    	scanf("%s", &number);
    	struct Node* pMove = headNode->next;
    	if (pMove == NULL)
    	{
    		printf("未找到相关信息!\n");
    		return NULL;
    	}
    	while (strcmp(pMove->data.num, number))
    	{
    		pMove = pMove->next;
    	}
    	printf("姓名\t学号\t年龄\t性别\t电话\n");
    	printf("%s\t%s\t%d\t%s\t%s\n", pMove->data.name, pMove->data.num, pMove->data.age, pMove->data.sex, pMove->data.telephone);
    	return NULL;
    }
    
    //浏览功能 
    void printList(struct Node* headNode)
    {
    	struct Node* pMove = headNode->next;
    	printf("姓名\t学号\t年龄\t性别\t电话\n");
    	while (pMove)
    	{
    		printf("%s\t%s\t%d\t%s\t%s\n", pMove->data.name, pMove->data.num, pMove->data.age, pMove->data.sex, pMove->data.telephone);
    		pMove = pMove->next;
    	}
    	printf("\n");
    }
    
    //文件的读取
    void readInfoToFile(struct Node* headNode, char *fileName)
    {
    	//1、打开文件
    	FILE* fp;//文件指针名 
    	struct student data;
    	fp = fopen(fileName, "rt");
    	if (fp == NULL)
    	{
    		fopen(fileName, "wt+");
    		memset(&data, 0, sizeof(student));
    	}
    	else
    	{
    		memset(&data, 0, sizeof(student));
    		//2、读文件 
    		while (fscanf(fp, "%s\t%s\t%d\t%s\t%s", data.name, data.num,&data.age, data.sex, data.telephone) != EOF)
    		{
    			struct Node* newNode = createNode(data);
    			newNode->next = headNode->next;
    			headNode->next = newNode;
    		}
    	}
    
    //3、关闭文件
    	fclose(fp);
    }
    
    //文件的存储
    void writeInfoToFile(struct Node* headNode, char* fileName)
    {
    	FILE* fp;
    	fp = fopen(fileName, "at");
    	if (fp == NULL)
    	{
    		printf("文件打开失败!\n");
    	}
    	struct Node* pMove = headNode->next;
    	while (pMove)
    	{
    		fprintf(fp, "%s\t%s\t%d\t%s\t%s\n", pMove->data.name, pMove->data.num, pMove->data.age, pMove->data.sex, pMove->data.telephone);
    		pMove = pMove->next;
    	}
    	//关闭文件 
    	fclose(fp);
    }
    
    //系统菜单 
    void menu()
    {
    	//所有操作都同步到文件
    	printf("*********************************************\n");
    	printf("------------【学生信息管理系统】-------------\n");
    	printf("*********************************************\n\n");
    	printf("****************系统功能菜单*****************\n");
    	printf("*                                           *\n");
    	printf("*\t\t┌──────────┐\t\t    *\n");
    	printf("*\t\t│0.系统说明│\t\t    *\n");
    	printf("*\t\t│1.录入信息│\t\t    *\n");
    	printf("*\t\t│2.浏览信息│\t\t    *\n");
    	printf("*\t\t│3.修改信息│\t\t    *\n");
    	printf("*\t\t│4.删除信息│\t\t    *\n");
    	printf("*\t\t│5.查找信息│\t\t    *\n");
    	printf("*\t\t│6.退出系统│\t\t    *\n");
    	printf("*\t\t└──────────┘\t\t    *\n");
    	printf("*                                           *\n");
    	printf("******************欢迎使用*******************\n\n");
    }
    
    //用户的交互
    void interaction()
    {
    	int choice;
    	printf("请选择您想使用的功能:");
    	scanf("%d", &choice);
    	switch (choice)
    	{
    	case 0:
    		printf("\n--------【系统说明】--------");
    		help();
    		break;
    	case 1:
    		printf("\n--------【录入信息】--------\n");
    		insertNodeByHead(list);
    		break;
    	case 2:
    		printf("\n--------【浏览信息】--------\n");
    		printList(list);
    		break;
    	case 3:
    		printf("\n--------【修改信息】--------\n");
    		change(list);
    		break;
    	case 4:
    		printf("\n--------【删除信息】--------\n");
    		deleteNode(list);
    		break;
    	case 5:
    		printf("\n--------【查找信息】--------\n");
    		searchInfoByData(list);
    		break;
    	case 6:
    		printf("\n--------【系统已退出】-------\n");
    		system("pause");
    		writeInfoToFile(list, "学生信息档案.txt");
    		exit(0);
    		break;
    	default:
    		printf("选择错误,请重新输入\n");
    		break;
    	}
    }
    
    int main() {
    	system("color 81"); 
    	list = createList();
    	readInfoToFile(list, "学生信息档案.txt");
    
    	while(1)
    	{
    		Hello();
    		system("pause");
    		system("cls");
    	}
    	return 0;
    }
    //一切仅作学习交流使用,未经许可,请勿转载!
    
    展开全文
  • 初学EasyX,利用了C语言链表、EasyX图形库,实现了图形界面,基本键鼠操作,账号密码的基本登录,学生信息的录入.删除.修改.查找,载入文件数据,保存信息等功能,方便简单,下载积分是系统自己乱设的我也没办法。。。。
  • 基本的搜索、查找、删除。排序等等的功能齐全,菜单界面设计较为合理......
  • C语言源程序,可运行,全注释,学生管理系统,有菜单(dos界面),可以对添加学生信息,查找学生信息,修改学生信息,删除学生信息,查看所有学生信息等。
  • C语言 界面学生成绩管理系统

    千次阅读 2020-05-05 21:14:24
    C语言 界面学生成绩管理系统 源代码链接 Github学生成绩管理系统 前言 大一C语言课程结课作业。本作业除了完成学生成绩管理系统的基本功能外,还将界面进行图形化,提高了交互性。 功能介绍 程序在控制台上完成...

    C语言 界面化学生成绩管理系统

    源代码链接

    Github学生成绩管理系统


    前言

    大一C语言课程结课作业。本作业除了完成学生成绩管理系统的基本功能外,还将界面进行图形化,提高了交互性。

    功能介绍

    程序在控制台上完成了使用键盘(WS)和小键盘(⬆️⬇️)键以及回车键进行操控的基于图形界面的交互式学生成绩管理系统。

    读取界面在这里插入图片描述

    输入密码界面在这里插入图片描述

    欢迎界面在这里插入图片描述

    程序主菜单

    在这里插入图片描述

    • INSERT 选项可以输入学生成绩实现学生的信息的读取。

    在这里插入图片描述

    • SEARCH 可以根据学生姓名查找学生成绩
      -在这里插入图片描述
    • SORT选项可以选择学生成绩排序的方式并输出排序结果。
      在这里插入图片描述
    • DELETE菜单可以删除指定的学生在这里插入图片描述
    • COUNT选项自动统计已经输入的学生的信息。在这里插入图片描述
    • EXIT选项可以推出程序并确认信息是否需要保存,如果保存则会在所在目录生成一个文件名叫data.txt的文件,按照csv格式保存学生信息,并且在下次开始程序时自动读取该文件中的信息。
      在这里插入图片描述
    展开全文
  • 这是一个只可以在黑框框里跑的学生成绩管理系统,只需要C语言编译器就可以运行(几乎适配所有的编译器,且只有一个.c文件和三个作为数据库的txt文件),能够实现录入基础数据、显示奖学金获奖名单、显示成绩排名、...
  • 这是我自己写的学生成绩管理系统,具有多种功能及优化,用VC6.0能成功运行。 1.登陆注册功能 初始用户名:hello 密码:123456(建议先用这个账号登陆,方便先看看效果) 2.进入退出时的动态及颜色变化效果 3.数据的...
  • 添加学生信息(学号,姓名,性别,5门课程成绩)2.按学号或者姓名查找、修改、删除和保存各个学生的信息3.按学号或者总分排序输出每个学生的信息以及总分、平均分和名次4.计算全班各门功课的平均分,显示每门课程低于...

    #include

    #include

    #include

    #include

    #include

    /*

    功能:

    1.添加学生信息(学号,姓名,性别,5门课程成绩)

    2.按学号或者姓名查找、修改、删除和保存各个学生的信息

    3.按学号或者总分排序输出每个学生的信息以及总分、平均分和名次

    4.计算全班各门功课的平均分,显示每门课程低于平均分的学生信息

    5.显示每门课程成绩在90分以上的,以及每门课程不及格的学生信息

    注意:必须排序后才能排出名次

    */

    #define N 50

    /*定义结构类型*/

    struct student

    {

    int stuNo;

    char name[10];

    char sex[5];

    float score1 ;

    float score2;

    float score3;

    float score4;

    float score5;

    float sumScore;

    float avgScore;

    int ranking;      //排名

    }stu[N];

    /*函数声明*/

    int login();

    void add();

    void del();

    void delByIndex(int i);

    void search();

    int searchByNo();

    int searchByName();

    void update();

    void updateByIndex(int i);

    void display();

    void sort();

    void sortByNo();

    void sortBySum();

    void writeFile();

    void readFile();

    struct student input();

    void lowScoreAvg();

    void greaterThanNinty();

    void failed();

    int count=0;  //存储当前已有的学生人数

    /*程序入口*/

    void main()

    {

    int select;

    int isSuccess;

    int c = 0;//记录登入的次数

    do

    {

    isSuccess = login();

    if(!isSuccess)

    {

    printf("\n\t\t\t用户名不存在或密码错误,请检查后重新输入!\n");

    printf("\n\t\t\t",2-c);

    c++;

    if(c==3)

    {

    printf("\n\t\t您已尝试登入三次且失败,系统将退出!!!\n");

    exit(1);

    }

    fflush(stdin);

    getch();

    }

    else

    break;

    }while(1);

    do

    {

    system("cls");

    printf("\n\t\t欢迎进入学生成绩管理系统\n");

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

    printf("\n1.添加学生信息\n");

    printf("\n2.删除学生信息\n");

    printf("\n3.修改学生信息\n");

    printf("\n4.查找学生信息\n");

    printf("\n5.显示学生信息\n");

    printf("\n6.学生信息排序\n");

    printf("\n7.单门课程低于课程平均分的学生信息\n");

    printf("\n8.每门课程成绩在90分以上的学生信息\n");

    printf("\n9.每门课程不及格的学生信息\n");

    printf("\n10.保存文件\n");

    printf("\n11.打开文件\n");

    printf("\n12.退出系统\n");

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

    printf("\n\t请选择<1--12>:");

    scanf("%d",&select);

    if(select == 12)

    {

    printf("\n\t~~bye!!!\n");

    break;

    }

    switch(select)

    {

    case 1:

    add();

    break;

    case 2:

    del();

    break;

    case 3:

    update();

    break;

    case 4:

    search();

    break;

    case 5:

    display();

    break;

    case 6:

    sort();

    display();

    printf("\n排序已完成,按任意键继续...");

    fflush(stdin);

    getch();

    break;

    case 7:

    lowScoreAvg();

    break;

    case 8:

    greaterThanNinty();

    break;

    case 9:

    failed();

    break;

    case 10:

    writeFile();

    break;

    case 11:

    readFile();

    break;

    default:

    printf("\n\t您输入的选项无效!按任意键重新输入...\n");

    getch();

    }

    }while(1);

    }

    /*登录界面*/

    int login()

    {

    int i=0;

    char uname[20];

    char pwd[20];

    system("cls");

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

    printf("\n\t\t用户名:");

    gets(uname);

    printf("\n\t\t密  码:");

    fflush(stdin);

    do

    {

    pwd[i] = getch();

    if(pwd[i]!='\r')

    {

    i++;

    printf("*");

    }

    }while(pwd[i]!='\r');

    pwd[i]='\0';

    //验证帐号密码

    if(strcmp(uname,"admin")==0 && strcmp(pwd,"admin")==0)

    return 1;

    else

    return 0;

    }

    /*信息录入*/

    struct student input()

    {

    int i;

    struct student st;

    do{

    printf("\n输入学号:");

    scanf("%d",&st.stuNo);

    if(searchByNo(st.stuNo)!=-1)

    {

    printf("\n您输入的学号已存在!!!按任意键重新输入...\n");

    }

    else

    {

    break;

    }

    }while(1);

    fflush(stdin);

    do{

    printf("请输入姓名:");

    scanf("%s",st.name);

    //gets(st.name);

    if(searchByName(st.name)!=-1)

    {

    printf("\n您输入的姓名已存在!!!按任意键重新输入...\n");

    }

    else

    {

    break;

    }

    }while(1);

    fflush(stdin);

    printf("请输入性别:");

    scanf("%s",st.sex);

    //gets(st.sex);

    printf("请输入课程1的成绩:");

    scanf("%f",&st.score1);

    printf("请输入课程2的成绩:");

    scanf("%f",&st.score2);

    printf("请输入课程3的成绩:");

    scanf("%f",&st.score3);

    printf("请输入课程4的成绩:");

    scanf("%f",&st.score4);

    printf("请输入课程5的成绩:");

    scanf("%f",&st.score5);

    st.sumScore = st.score1 + st.score2 + st.score3 + st.score4 + st.score5 ;

    st.avgScore =st.sumScore / 5;

    return st;

    }

    /*添加学生*/

    void add()

    {

    char ans;

    do

    {

    stu[count] = input();

    count++;

    printf("\n\t信息录入完成,是否继续(y|n):");

    fflush(stdin);

    ans = getchar();

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

    }

    /*删除界面*/

    void del()

    {

    int op;

    char name[10];

    int no;

    int i;

    do{

    system("cls");

    printf("主界面>删除界面");

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

    printf("\n\t\t\t 1.根据学号删除\n");

    printf("\n\t\t\t 2.根据姓名删除\n");

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

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

    printf("\n\t请选择: ");

    scanf("%d",&op);

    if(op == 0)

    {

    break;

    }

    switch(op)

    {

    case 1:

    printf("请输入需要修改的学生信息的学号:");

    scanf("%d",&no);

    i=searchByNo();

    if(i!=-1){

    delByIndex(i);

    }

    else{

    printf("\n您输入的学号不存在!!!\n");

    }

    break;

    case 2:

    printf("请输入需要修改的学生信息的姓名:");

    scanf("%s",name);

    //gets(name);

    i=searchByName(name);

    if(i!=-1){

    delByIndex(i);

    }

    else{

    printf("\n您输入的姓名不存在!!!\n");

    }

    break;

    default:

    printf("\n您输入的选项无效!!!按任意键重新输入...\n");

    fflush(stdin);

    getch();

    }

    }while(1);

    }

    /*根据学号删除学生信息*/

    void delByIndex(int i)

    {

    char ans;

    do

    {

    printf("\n需要删除的学生信息如下:\n");

    printf("\n学号\t姓名\t性别\t课程1\t课程2\t课程3\t课程4\t课程5\t总分\t平均分\n");

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

    printf("%d\t%s\t%s\t%5.2f\t%5.2f\t%5.2f\t%5.2f\t%5.2f\t%5.2f\t%5.2f\n",

    stu[i].stuNo,stu[i].name,stu[i].sex,stu[i].score1,stu[i].score2,stu[i].score3,stu[i].score4,stu[i].score5,

    stu[i].sumScore,stu[i].avgScore);

    printf("\n确认删除该学生信息吗?:");

    fflush(stdin);

    ans = getchar();

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

    {

    int j;

    for(j = i;j>count-1 ; j++)

    {stu[j] = stu[j+1];}

    count--;

    printf("\n删除操作完成,按任意键继续...");

    fflush(stdin);

    getch();

    }

    printf("\n是否继续执行删除操作?:");

    fflush(stdin);

    ans = getchar();

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

    continue;

    else

    break;

    }while(1);

    }

    /*修改界面*/

    void update()

    {

    int op;

    char name[10];

    int no;

    int i;

    do{

    system("cls");

    printf("主界面>修改界面");

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

    printf("\n\t\t\t 1.根据学号修改\n");

    printf("\n\t\t\t 2.根据姓名修改\n");

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

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

    printf("\n\t请选择: ");

    scanf("%d",&op);

    if(op == 0)

    {

    break;

    }

    switch(op)

    {

    case 1:

    printf("请输入需要修改的学生信息的学号:");

    scanf("%d",&no);

    i=searchByNo();

    if(i!=-1){

    updateByIndex(i);

    }

    else{

    printf("\n您输入的学号不存在!!!\n");

    }

    break;

    case 2:

    printf("请输入需要修改的学生信息的姓名:");

    scanf("%s",name);

    //gets(name);

    i=searchByName();

    if(i!=-1){

    updateByIndex(i);

    }

    else{

    printf("\n您输入的姓名不存在!!!\n");

    }

    break;

    default:

    printf("\n您输入的选项无效!!!按任意键重新输入...\n");

    fflush(stdin);

    getch();

    }

    }while(1);

    }

    /*根据下标修改信息*/

    void updateByIndex(int i)

    {

    printf("请输入修改后的性别:");

    scanf("%s",stu[i].sex);

    //gets(stu[i].sex);

    printf("请输入修改后的课程1的成绩:");

    scanf("%f",&stu[i].score1);

    printf("请输入修改后的课程2的成绩:");

    scanf("%f",&stu[i].score2);

    printf("请输入修改后的课程3的成绩:");

    scanf("%f",&stu[i].score3);

    printf("请输入修改后的课程4的成绩:");

    scanf("%f",&stu[i].score4);

    printf("请输入修改后的课程5的成绩:");

    scanf("%f",&stu[i].score5);

    stu[i].sumScore = stu[i].score1 + stu[i].score2 + stu[i].score3 + stu[i].score4 + stu[i].score5 ;

    stu[i].avgScore =stu[i].sumScore / 5;

    }

    /*查找界面*/

    void search()

    {

    int op;

    int no;

    char name[10];

    int i;

    do{

    system("cls");

    printf("主界面>查找界面");

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

    printf("\n\t\t\t 1.根据学号查找\n");

    printf("\n\t\t\t 2.根据姓名查找\n");

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

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

    printf("\n\t请选择: ");

    scanf("%d",&op);

    if(op == 0)

    {

    break;

    }

    switch(op)

    {

    case 1:

    printf("请输入要查找的学生信息的学号:");

    scanf("%d",&no);

    i=searchByNo(no);

    printf("\n查询结果:\n");

    printf("\n学号\t姓名\t性别\t课程1\t课程2\t课程3\t课程4\t课程5\t总分\t平均分\n");

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

    printf("%d\t%s\t%s\t%5.2f\t%5.2f\t%5.2f\t%5.2f\t%5.2f\t%5.2f\t%5.2f\n",

    stu[i].stuNo,stu[i].name,stu[i].sex,stu[i].score1,stu[i].score2,stu[i].score3,stu[i].score4,stu[i].score5,

    stu[i].sumScore,stu[i].avgScore);

    fflush(stdin);

    getch();

    break;

    case 2:

    printf("请输入姓名:");

    scanf("%s",name);

    //gets(name);

    i=searchByName(name);

    printf("\n查询结果:\n");

    printf("\n学号\t姓名\t性别\t课程1\t课程2\t课程3\t课程4\t课程5\t总分\t平均分\n");

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

    printf("%d\t%s\t%s\t%5.2f\t%5.2f\t%5.2f\t%5.2f\t%5.2f\t%5.2f\t%5.2f\n",

    stu[i].stuNo,stu[i].name,stu[i].sex,stu[i].score1,stu[i].score2,stu[i].score3,stu[i].score4,stu[i].score5,

    stu[i].sumScore,stu[i].avgScore);

    fflush(stdin);

    getch();

    break;

    default:

    printf("\n您输入的选项无效!!!按任意键重新输入...\n");

    fflush(stdin);

    getch();

    }

    }while(1);

    }

    /*根据学号查找*/

    int searchByNo(int stuNo)

    {

    int i;

    for(i=0;i

    {

    if(stu[i].stuNo == stuNo)

    return i;

    }

    return -1;

    }

    /*根据姓名查找*/

    int searchByName(char stuName[])

    {

    int i;

    for(i=0;i

    {

    if(strcmp(stu[i].name,stuName)==0)

    return i;

    }

    return -1;

    }

    /*显示信息*/

    void display()

    {

    system("cls");

    int i;

    printf("\n\t\t*** 显示学生 ***\n");

    printf("\n学号\t姓名\t性别\t课程1\t课程2\t课程3\t课程4\t课程5\t总分\t平均分\n");

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

    for(i=0;i

    {

    printf("%d\t%s\t%s\t%5.2f\t%5.2f\t%5.2f\t%5.2f\t%5.2f\t%5.2f\t%5.2f\n",

    stu[i].stuNo,stu[i].name,stu[i].sex,stu[i].score1,stu[i].score2,stu[i].score3,stu[i].score4,stu[i].score5,

    stu[i].sumScore,stu[i].avgScore);

    }

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

    printf("\n\t\t按任意键返回主菜单...");

    fflush(stdin);

    getch();

    }

    /*排序界面*/

    void sort()

    {

    int op;

    do{

    system("cls");

    printf("主界面>排序界面");

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

    printf("\n\t\t\t 1.按学号排序 \n");

    printf("\n\t\t\t 2.按总分排序 \n");

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

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

    printf("\n\t请选择: ");

    scanf("%d",&op);

    if(op == 0)

    {

    break;

    }

    switch(op)

    {

    case 1:

    sortByNo();

    break;

    case 2:

    sortBySum();

    break;

    default:

    printf("\n您输入的选项无效!!!按任意键重新输入...\n");

    fflush(stdin);

    getch();

    }

    }while(1);

    }

    /*按学号排序*/

    void sortByNo()

    {

    sortBySum();

    int i,j;

    struct student temp;

    for(i=0;i

    {

    for(j=0;j

    {

    if(stu[j].stuNo>stu[j+1].stuNo)

    {

    temp=stu[j+1];

    stu[j+1]=stu[j];

    stu[j]=temp;

    }

    }

    }

    }

    /*按总分排序*/

    void sortBySum()

    {

    int i,j;

    struct student temp;

    for(i=0;i

    {

    for(j=0;j

    {

    if(stu[j].sumScore

    {

    temp=stu[j+1];

    stu[j+1]=stu[j];

    stu[j]=temp;

    }

    }

    }

    //排名

    for(i=0;i

    {

    stu[i].ranking=i+1;

    }

    }

    /*保存文件*/

    void writeFile()

    {

    FILE *fp;

    fp = fopen("stu.txt","wb");

    int i;

    for(i=0;i

    {

    printf("%d\t%s\t%s\t%5.2f\t%5.2f\t%5.2f\t%5.2f\t%5.2f\t%5.2f\t%5.2f\n",

    stu[i].stuNo,stu[i].name,stu[i].sex,stu[i].score1,stu[i].score2,stu[i].score3,stu[i].score4,stu[i].score5,

    stu[i].sumScore,stu[i].avgScore);

    fwrite(&stu[i],sizeof(struct student),1,fp);

    }

    fclose(fp);

    printf("\n文件保存完毕,按任意键继续...\n");

    printf("\n");

    fflush(stdin);

    getch();

    }

    /*读取文件*/

    void readFile()

    {

    FILE *fp;

    fp = fopen("stu.txt","rb");

    if(fp==NULL)

    {

    printf("\nSorry,您要打开的文件不存在。按任意键继续...\n");

    fflush(stdin);

    getch();

    }

    else

    {

    fseek(fp,0,2);

    count= ftell(fp)/sizeof (struct student);

    rewind(fp);

    int i;

    for(i=0;i

    {

    fread(&stu[i],sizeof(struct student),1,fp);

    printf("%d\t%s\t%s\t%5.2f\t%5.2f\t%5.2f\t%5.2f\t%5.2f\t%5.2f\t%5.2f\n",

    stu[i].stuNo,stu[i].name,stu[i].sex,stu[i].score1,stu[i].score2,stu[i].score3,stu[i].score4,stu[i].score5,

    stu[i].sumScore,stu[i].avgScore);

    }

    fclose(fp);

    printf("\n文件打开完成,按任意键返回...\n");

    printf("\n");

    fflush(stdin);

    getch();

    }

    }

    /*单门课程低于课程平均分的学生信息*/

    void lowScoreAvg()

    {

    int i;

    float avgCourseScore[5];

    for(i=0;i

    {

    avgCourseScore[0]+=stu[i].score1;

    avgCourseScore[1]+=stu[i].score2;

    avgCourseScore[2]+=stu[i].score3;

    avgCourseScore[3]+=stu[i].score4;

    avgCourseScore[4]+=stu[i].score5;

    }

    //求出每门课的平均分

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

    {

    avgCourseScore[i]=avgCourseScore[i]/5;

    }

    printf("\n学号\t姓名\t性别\t课程1\t课程2\t课程3\t课程4\t课程5\t总分\t平均分\n");

    for(i=0;i

    {

    if(stu[i].score1

    {

    printf("%d\t%s\t%s\t%5.2f\t%5.2f\t%5.2f\t%5.2f\t%5.2f\t%5.2f\t%5.2f\n",

    stu[i].stuNo,stu[i].name,stu[i].sex,stu[i].score1,stu[i].score2,stu[i].score3,stu[i].score4,stu[i].score5,

    stu[i].sumScore,stu[i].avgScore);

    fflush(stdin);

    getch();

    }

    }

    }

    /*每门课程成绩在90分以上的学生信息*/

    void greaterThanNinty()

    {

    int i;

    printf("\n学号\t姓名\t性别\t课程1\t课程2\t课程3\t课程4\t课程5\t总分\t平均分\n");

    for(i=0;i

    {

    if(stu[i].score1>90&&stu[i].score2>90&&stu[i].score3>90&&stu[i].score4>90&&stu[i].score5>90)

    {

    printf("%d\t%s\t%s\t%5.2f\t%5.2f\t%5.2f\t%5.2f\t%5.2f\t%5.2f\t%5.2f\n",

    stu[i].stuNo,stu[i].name,stu[i].sex,stu[i].score1,stu[i].score2,stu[i].score3,stu[i].score4,stu[i].score5,

    stu[i].sumScore,stu[i].avgScore);

    fflush(stdin);

    getch();

    }

    }

    }

    /*每门课程不及格的学生信息*/

    void failed()

    {

    int i;

    printf("\n学号\t姓名\t性别\t课程1\t课程2\t课程3\t课程4\t课程5\t总分\t平均分\n");

    for(i=0;i

    {

    if(stu[i].score1<60&&stu[i].score2<60&&stu[i].score3<60&&stu[i].score4<60&&stu[i].score5<60)

    {

    printf("%d\t%s\t%s\t%5.2f\t

    %5.2f\t%5.2f\t%5.2f\t%5.2f\t%5.2f\t%5.2f\n",

    stu[i].stuNo,stu[i].name,stu[i].sex,stu[i].score1,stu[i].score2,stu[i].score3,stu[i].score4,stu[i].score5,

    stu[i].sumScore,stu[i].avgScore);

    fflush(stdin);

    getch();

    }

    }

    }

    展开全文
  • 本程序属于非数值计算型算法设计,学生需要设计出学生管理系统所需要的基本功能,并设计简单的界面(无需图形化)。本程序主要考察对自定义函数的熟悉程度,本程序中主要使用到的是数组的相关操作,包括数组(链表)...
  • int Menu(void) //兼容型菜单{int i;system("title 学生成绩管理系统V4.0 Create By Lu Tong");printf("\n\n");printf(" 学生成绩管理系统(V18.8.30版...

    int   Menu(void)                                                                //兼容型菜单

    {

    int i;

    system("title 学生成绩管理系统V4.0  Create By Lu Tong");

    printf("\n\n");

    printf("                 学生成绩管理系统(V18.8.30版本)\n");

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

    printf("Made By LuTong                                                                                                  *\n");

    printf("1.  录入每个学生的基本信息                                                                                 *\n");

    printf("2.  按平均分从高到低输出学生成绩                                                                      *\n");

    printf("3.  按单门学科成绩从高到低输出学生信息;                                                           *\n");

    printf("4.  按学号从小到大顺序输出学生基本信息                                                             *\n");

    printf("5.  按字典从小到大顺序输出学生基本信息                                                             *\n");

    printf("6.  按年龄和性别查找学生的基本信息                                                                     *\n");

    printf("7.  查找某门课成绩最高的学生的基本信息,某门课成绩最高的可能不只一名学生 *\n");

    printf("8.  查找某门课成绩在某个分数段内的学生人数和学生基本信息                             *\n");

    printf("9.  按学号查找学生基本信息,对学生信息进行修改后保存                                     *\n");

    printf("10. 按学号删除学生信息                                                                                          *\n");

    printf("11. 插入一名新的学生信息                                                                                        *\n");

    printf("12. 将学生信息写入文件                                                                                           *\n");

    printf("13. 从文件读取学生信息                                                                                           *\n");

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

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

    printf("\n");

    printf("\n");

    printf("\n");

    printf("\n");

    printf("*****************Please Input your choice:");

    scanf("%d", &i);

    return i;

    }

    展开全文
  • 功能:学生管理系统设计,每个学生信息作为一条记录,包括姓名、学号、性别、出生年月、专业、班级、家庭地址、宿舍号码等。 系统要求实现以下功能: 1、输入功能:录入学生信息(包括学生学号、姓名、性别、出生...
  • 有N个学生,每个学生的数据包含学号(不重复)、姓名、三门课的成绩及平均成绩,试设计一学生成绩管理系统。 功能: 1.学生成绩录入:输入学生学号、姓名、三门课程(语、数、英)。 2.学生成绩查询:输入学生...
  • 更甚者是学院里课程最多考试最多的一个专业总算是度过了让人掉头发的考试月,而回到家的我也知道自己的目标所在,所以也是没有丝毫的放松,睡醒的第一天就将自己在考试阶段中所编写的学生信息管理系统做到了完善,...
  • 本周完成了学生管理系统,在完成的过程中遇见了许多问题,今天来总结上周写管理系统一些比较困难的模块。 登陆界面 在写学生管理系统时,我首先写的是登陆界面学生管理系统有三个身份的id,分别是管理员,老师,与...
  • C语言期末作业学生管理系统(免积分下载),主界面如下: =============欢迎来到学生管理系统!!!============ ================已经有2个学生成绩=============== 1.教师登录 2.学生登录 3.退出 4.注册学生账号
  • 要求:1记录学生班级姓名,性别,职务住址情况,数据输入数据删除排序查。#include /*引用库函数*/ #include #include #include typedef struct /*定义结构体数组*/ . printf("\t\t\this(her) number:%s\n",stud[i...
  • 基于c语言的GUI(gtk)的简单学生管理系统 welcome hello world! 这是第一次写博客,同时将本次课上实训的小作业展示出来 ,请多多关照。 GUI Graphics User Interface) 图形用户界面,是计算机与使用者之间的对话...
  • 学生成绩管理系统设计》 二、实训目的 (1)掌握结构化程序设计的基本方法,基本掌握面向对象程序设计的基本思路和方法。 (2)掌握C++的基本概念和基础知识。 (3)通过训练能够读懂较为复杂的C++语言源程序...
  • C语言期末作业学生成绩管理系统(免积分下载) 1.主界面:“1.学生登录”“2.教师登录”“3.校长登录”“0.退出系统”,4个选项进行跳转。(main.c) 2.1 选择1,跳转“学生登录界面”,输入学号及默认密码(三次错误...
  • 学习C语言后的一次设计与总结,程序设计与问题求解基础...它是一个简单的学生成绩管理信息系统学生成绩信息包括:学号,姓名,课程名,平时成绩,实验成绩,考试成绩,总评成绩,可对信息进行增删查改,排序,评优等
  • 学生信息管理系统——C语言

    万次阅读 多人点赞 2019-04-06 18:07:13
    1)查询学生信息 2)添加学生信息 3)修改学生信息 4)删除学生信息 5)刷新学生信息 6)保存学生信息 7)输出当前学生信息 2.题目要求: 1)使用结构体建立学生信息体制 2)实现七大基本功能 3)采用文件存储学生...
  • 华中科技大学软件课程设计作业-小型成绩管理系统,纯C语言实现,通过调用WINDOWS API实现的图形界面,代码格式还算规范,注释较多,编译无错误,暂未发现功能不正常的BUG。包含所有源文件、资源文件和图标等资源,...
  • ***迎使用学生成绩管理系统**** 请输入密码,123 密码错误,你还有2饮机会请输人密码123、 密码错误,您还有1这机会请输人密码,456 您已连续输错三次密码,请退出系统 图1:输错三次密码示例 ...
  • 要求:①包含最多可以输入3次密码的登录系统系统 选择界面②用二维数组和调用函数实现学号、语文、数 学、英语成绩的输入、求每-一个人的总成绩、平均分、显 示、查询、修改和排序(按总分)功能、输出各科最高分、 ...
  • 设计一个学生管理系统,需要的功能有,添加、修改、删除、查找及按成绩进行从低到高的排序等功能。
  • 设计一个实用的学生通讯录管理系统,能以简便高效的方式对通讯录进行管理和检索,具体要示: 录入:学生通讯录信息包括:学号,姓名,地址,电话。以结构数组或数据文件的形式存放通讯录信息。 更新:增加、删除...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 9,659
精华内容 3,863
关键字:

学生管理系统登录界面c语言

c语言 订阅