第一次写博客~有什么问题大家多多见谅~欢迎找我探讨hhh

  • 学生成绩管理系统(C语言)
    • 系统功能模块构成
    • 数据结构说明
    • 自定义函数说明:
    • 数据读取:文件读取
    • 视频演示
    • 源代码在此!

学生成绩管理系统(C语言)

本系统通过多模块化设计进行开发,包含三个.c文件(main.c、function.c和extra.c)、一个function.h文件和一个student.txt文件。实现的功能有:对学生的学号自动分配,对学生数据的读取、插入、删除、查询、输出等,对学生成绩进行等级划分、名次排序等。

系统功能模块构成

数据结构说明

1、头文件:

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

2、数据结构:动态单链表
3、结构体:

typedef struct StuLink
{int xh;               //学生学号(由系统自动生成)char xm[20];          //学生姓名enum Sex_type xb;     //学生性别(枚举类型)int cj;               //学生成绩(0-100之间)char dj;              //学生等级int mc;               //学生名次struct StuLink *next; //单向链表next结点指向下一位学生
} StuLink;

4、枚举类型:

enum Sex_type{  boy = 0, girl = 1 };

5、全局变量:

int Max_xh = 0;                 //当前最大学号
int dj[6] = {0, 0, 0, 0, 0, 0}; //一维数组存储ABCDE各等级人数

自定义函数说明:

//功能:从数据文件中逐行读取学生信息生成学生链表,返回头指针。
StuLink *ReadFromFile(FILE *fp, StuLink *head);
//功能:先将学生链表按学号升序排序,再将学生链表中的数据逐行保存到数据文件。
void SaveToFile(FILE *fp, StuLink *head);
//功能:在链表尾插入一个新结点,返回头指针
StuLink *InsertNode(StuLink *head);
//修改链表中指定学号的结点(学号不能修改,成绩必须在[0,100]区间的整数)。
void EditNode(StuLink *head, int num);
//功能:删除链表中指定学号的结点,返回头指针。
StuLink *DeleteNode(StuLink *head, int num);
//功能:查询链表中指定学号的结点,并显示查询结果
void QueryNode(StuLink *head, int num);
//功能:查询链表中不及格的所有结点,并显示查询结果
void QueryLink(StuLink *head);
//功能:计算链表中每个结点的名次。
void RankLink(StuLink *head);
//功能:统计并返回各等级人数。
void AnalysisLink(StuLink *head);
//功能:按指定数据项的顺序对学生链表进行排序。
void SortLink(StuLink *head, int choose);
//功能:按指定数据项的顺序输出学生成绩表、各等级人数。
void OutputLink_1(StuLink *head, int choose);
//功能:分页显示全部学生的信息。
void OutputLink_2(StuLink *head, int num);
//功能:匹配等级
void dj_change(StuLink *p);
//功能:确定学号
void xh_define(StuLink *p, StuLink *head);
//功能:计算人数
int count(StuLink *head);
//功能:开始菜单
void start_menu();
//功能:显示二级菜单,返回头指针
StuLink *menu(int choose1, StuLink *head);
//功能:交换两个学生的顺序
void exchange(StuLink *p1, StuLink *p2);
//功能:单独显示10个学生信息
void OutputLink_only10(StuLink *head, int start);

数据读取:文件读取

文件:student.txt
测试数据:

1 aaa 0 98 A 4
2 bbb 0 42 E 13
3 ccc 1 98 A 4
5 eee 1 75 C 11
7 rrr 0 91 A 7
8 qqq 0 70 C 12
10 mmm 1 86 B 9
11 kkk 0 98 A 4
12 ttt 0 42 E 13
13 小红 1 100 A 1
14 dzh 0 100 A 1
15 小蓝 0 85 B 10
16 小薇 1 90 A 8
17 小黑 0 100 A 1

视频演示

c语言学生管理系统视频演示

源代码在此!

function.h

#ifndef _FUNCTION_H_
#define _FUNCTION_H_#include <stdio.h>
#include <stdlib.h>
#include <malloc.h>
#include <string.h>enum Sex_type
{boy = 0,  // 男生:0girl = 1, //女生:1
};typedef struct StuLink
{int xh;               //学生学号(由系统自动生成)char xm[20];          //学生姓名enum Sex_type xb;     //学生性别(枚举类型)int cj;               //学生成绩(0-100之间)char dj;              //学生等级int mc;               //学生名次struct StuLink *next; //单向链表next结点指向下一位学生
} StuLink;//函数声明
//功能:从数据文件中逐行读取学生信息生成学生链表,返回头指针。
StuLink *ReadFromFile(FILE *fp, StuLink *head);
//功能:先将学生链表按学号升序排序,再将学生链表中的数据逐行保存到数据文件。
void SaveToFile(FILE *fp, StuLink *head);
//功能:在链表尾插入一个新结点,返回头指针
StuLink *InsertNode(StuLink *head);
//修改链表中指定学号的结点(学号不能修改,成绩必须在[0,100]区间的整数)。
void EditNode(StuLink *head, int num);
//功能:删除链表中指定学号的结点,返回头指针。
StuLink *DeleteNode(StuLink *head, int num);
//功能:查询链表中指定学号的结点,并显示查询结果
void QueryNode(StuLink *head, int num);
//功能:查询链表中不及格的所有结点,并显示查询结果
void QueryLink(StuLink *head);
//功能:计算链表中每个结点的名次。
void RankLink(StuLink *head);
//功能:统计并返回各等级人数。
void AnalysisLink(StuLink *head);
//功能:按指定数据项的顺序对学生链表进行排序。
void SortLink(StuLink *head, int choose);
//功能:按指定数据项的顺序输出学生成绩表、各等级人数。
void OutputLink_1(StuLink *head, int choose);
//功能:分页显示全部学生的信息。
void OutputLink_2(StuLink *head, int num);
//功能:匹配等级
void dj_change(StuLink *p);
//功能:确定学号
void xh_define(StuLink *p, StuLink *head);
//功能:计算人数
int count(StuLink *head);
//功能:开始菜单
void start_menu();
//功能:显示二级菜单,返回头指针
StuLink *menu(int choose1, StuLink *head);
//功能:交换两个学生的顺序
void exchange(StuLink *p1, StuLink *p2);
//功能:单独显示10个学生信息
void OutputLink_only10(StuLink *head, int start);#endif

function.c

#include "function.h"int Max_xh = 1;                 //当前最大学号
int dj[6] = {0, 0, 0, 0, 0, 0}; //一维数组存储ABCDE各等级人数StuLink *ReadFromFile(FILE *fp, StuLink *head)
{StuLink *p1 = NULL, *p2 = NULL;char ch;int i = 0;if ((fp = fopen("student.txt", "r")) == NULL){fp = fopen("student.txt", "w");} //判断是否正常打开文件并使指向文件head = NULL;ch = fgetc(fp);if (ch != EOF){rewind(fp);while (!feof(fp)){if ((p2 = (StuLink *)malloc(sizeof(StuLink))) == NULL){printf(" 不能成功分配储存块!\n");exit(0);} //动态分配空间fscanf(fp, "%d %s %d %d %c %d\n", &p2->xh, p2->xm, &p2->xb, &p2->cj, &p2->dj, &p2->mc);p2->next = NULL;if (head == NULL){p1 = p2;head = p2;}else{p1->next = p2;p1 = p2;}if (p2->xh > i)i = p2->xh;}Max_xh = i + 1;AnalysisLink(head);RankLink(head);}if (fclose(fp)){printf("\n 无法正常关闭数据文件!\n");getchar();exit(0);}return head;
}void SaveToFile(FILE *fp, StuLink *head)
{StuLink *p = head;SortLink(head, 1);if ((fp = fopen("student.txt", "w")) == NULL){printf("\n 文件打开失败!\n");getchar();exit(0);}while (p != NULL){fprintf(fp, "%d %s %d %d %c %d\n", p->xh, p->xm, p->xb, p->cj, p->dj, p->mc);p = p->next;}if (fclose(fp)){printf("\n 无法正常关闭数据文件!\n");getchar();exit(0);}
}StuLink *InsertNode(StuLink *head)
{StuLink *new = NULL, *p = NULL;char xb[10];if ((new = (StuLink *)malloc(sizeof(StuLink))) == NULL){printf("\n 内存分配失败!\n");getchar();exit(0);}printf("\n 请依次输入该生的姓名、性别、成绩:(0代表男生 1代表女生,各项以空格隔开)\n\n ");scanf("%s %d %d", new->xm, &new->xb, &new->cj);while (new->xb != 0 && new->xb != 1){printf("\n 性别输入错误!请重新输入性别( 0 或 1 )!\n ");scanf("%d", &new->xb);}while (new->cj > 100 || new->cj < 0){printf("\n 成绩输入错误!请重新输入成绩( 0 至 100)!\n ");scanf("%d", &new->cj);}dj_change(new);new->next = NULL;p = head;if (head == NULL){head = new;}else{while (p->next != NULL)p = p->next;p->next = new;}xh_define(new, head);printf("\n 插入成功!\n");return head;
}
void EditNode(StuLink *head, int num)
{StuLink *p = head;int choose;while (p != NULL){if (p->xh == num){switch (p->xb){case boy:printf("\n 该生的信息为:\n\n学号:%d  姓名:%s  性别:男  成绩:%d  等级:%c  名次:%d\n", p->xh, p->xm, p->cj, p->dj, p->mc);break;case girl:printf("\n 该生的信息为:\n\n学号:%d  姓名:%s  性别:女  成绩:%d  等级:%c  名次:%d\n", p->xh, p->xm, p->cj, p->dj, p->mc);break;}printf("\n 要修改的数据项是:\n");printf("\n   1)姓名   2)性别   3)成绩   4)返回\n");start:printf("\n 请输入:");scanf("%d", &choose);printf("\n 请修改:");if (choose == 1)scanf("%s", p->xm);else if (choose == 2){printf("(0代表男生 1代表女生)  ");scanf("%d", &p->xb);while (p->xb != 0 && p->xb != 1){printf("\n 性别输入错误!请重新输入性别!(0代表男生 1代表女生)\n\n ");scanf("%d", &p->xb);}}else if (choose == 3){scanf("%d", &p->cj);while (p->cj > 100 || p->cj < 0){printf("\n 成绩输入错误!请重新输入成绩( 0 至 100 )!\n\n ");scanf("%d", &p->cj);}dj_change(p);RankLink(head);}else if (choose == 4)return;else{printf("\n 输入错误!\n\n");goto start;}printf("\n 修改成功!\n");break;}p = p->next;}if (p == NULL){printf("\n 无法查到该学号的信息!\n");}
}StuLink *DeleteNode(StuLink *head, int num)
{StuLink *p1 = head, *p2 = NULL;while (p1->xh != num && p1 != NULL){p2 = p1;p1 = p1->next;}if (p1->xh == num && p1 == head){head = head->next;free(p1);}else if (p1->xh == num){p2->next = p1->next;free(p1);}else{printf("\n 无法查到该学号的信息!\n");return head;}RankLink(head);printf("\n 删除成功!\n");getchar();return head;
}void QueryNode(StuLink *head, int num)
{StuLink *p = head;if (head == NULL){printf("\n 数据为空!\n");getchar();return;}else{while (p != NULL){if (p->xh == num){switch (p->xb){case boy:printf("\n 该生的信息为:\n\n 学号:%d  姓名:%s  性别:男  成绩:%d  等级:%c  名次:%d\n", p->xh, p->xm, p->cj, p->dj, p->mc);break;case girl:printf("\n 该生的信息为:\n\n 学号:%d  姓名:%s  性别:女  成绩:%d  等级:%c  名次:%d\n", p->xh, p->xm, p->cj, p->dj, p->mc);break;}break;}p = p->next;}if (p == NULL){printf("\n 无法查到该学号的信息!\n");}getchar();}
}
void QueryLink(StuLink *head)
{int i = 0;StuLink *p = head;if (head == NULL){printf("\n 数据为空!\n");return;}else{while (p != NULL){if (p->cj < 60){i++;if (i == 1)printf("\n\t学号\t 姓名 \t性别\t成绩\t等级\t名次\n");switch (p->xb){case boy:printf("\n\t%3d\t%6s\t  男\t%3d\t  %c\t%3d\n", p->xh, p->xm, p->cj, p->dj, p->mc);break;case girl:printf("\n\t%3d\t%6s\t  女\t%3d\t  %c\t%3d\n", p->xh, p->xm, p->cj, p->dj, p->mc);break;}}p = p->next;}if (i == 0){printf("\n 没有不及格人数!\n");}else{printf("\n 不及格人数:%d 人\n", i);}}
}void RankLink(StuLink *head)
{StuLink *p1, *p2;int i = 1;if (head == NULL){printf("\n 数据为空!\n");getchar();return;}if (head->next == NULL){head->mc = 1;return;}for (p1 = head; p1 != NULL; p1 = p1->next){for (p2 = head; p2 != NULL; p2 = p2->next){if (p1->cj < p2->cj)i++;}p1->mc = i;i = 1;}
}void AnalysisLink(StuLink *head)
{StuLink *p = head;int i;if (head == NULL){printf("\n 数据为空!\n");getchar();return;}else{for (i = 1; i <= 5; i++)dj[i] = 0; //初始化等级数组while (p != NULL){if (p->cj >= 90)dj[1]++;else if (p->cj < 90 && p->cj >= 80)dj[2]++;else if (p->cj < 80 && p->cj >= 70)dj[3]++;else if (p->cj < 70 && p->cj >= 60)dj[4]++;else if (p->cj < 60)dj[5]++;p = p->next;}}
}void exchange(StuLink *p1, StuLink *p2)
{StuLink *temp;if ((temp = (StuLink *)malloc(sizeof(StuLink))) == NULL){printf("\n 空间分配失败!\n");getchar();exit(0);}temp->xh = p1->xh;strcpy(temp->xm, p1->xm);temp->xb = p1->xb;temp->cj = p1->cj;temp->dj = p1->dj;temp->mc = p1->mc;p1->xh = p2->xh;strcpy(p1->xm, p2->xm);p1->xb = p2->xb;p1->cj = p2->cj;p1->dj = p2->dj;p1->mc = p2->mc;p2->xh = temp->xh;strcpy(p2->xm, temp->xm);p2->xb = temp->xb;p2->cj = temp->cj;p2->dj = temp->dj;p2->mc = temp->mc;free(temp);
}void SortLink(StuLink *head, int choose)
{StuLink *p1 = head, *p2;StuLink *temp;if (p1 == NULL || p1->next == NULL)return;if (choose == 1) //按学号排序(升序){for (p1 = head; p1->next != NULL; p1 = p1->next){temp = p1;for (p2 = p1->next; p2 != NULL; p2 = p2->next){if (temp->xh > p2->xh)temp = p2;}exchange(temp, p1);}}else if (choose == 2) //按成绩排名(降序){for (p1 = head; p1->next != NULL; p1 = p1->next){temp = p1;for (p2 = p1->next; p2 != NULL; p2 = p2->next){if (temp->cj < p2->cj)temp = p2;}exchange(temp, p1);}}elseprintf("\n 输入错误!\n");
}void OutputLink_1(StuLink *head, int choose)
{StuLink *p = NULL;if (choose == 1){if (head != NULL){SortLink(head, 1);printf("\n 学生成绩表如下:(按学号升序排序)\n");printf("\n\t学号\t 姓名 \t性别\t成绩\t等级\t名次\n");for (p = head; p != NULL; p = p->next){switch (p->xb){case boy:printf("\n\t%3d\t%6s\t  男\t%3d\t  %c\t%3d\n", p->xh, p->xm, p->cj, p->dj, p->mc);break;case girl:printf("\n\t%3d\t%6s\t  女\t%3d\t  %c\t%3d\n", p->xh, p->xm, p->cj, p->dj, p->mc);break;}}AnalysisLink(head);printf("\n 各等级人数:\n");printf("\n   A等级:%d 人\n   B等级:%d 人\n   C等级:%d 人\n   D等级:%d 人\n   E等级:%d 人\n", dj[1], dj[2], dj[3], dj[4], dj[5]);}else{printf("\n 数据为空!\n");}}else if (choose == 2){if (head != NULL){SortLink(head, 2);printf("\n 学生成绩表如下:(按学号升序排序)\n");printf("\n\t学号\t 姓名 \t性别\t成绩\t等级\t名次\n");for (p = head; p != NULL; p = p->next){switch (p->xb){case boy:printf("\n\t%3d\t%6s\t  男\t%3d\t  %c\t%3d\n", p->xh, p->xm, p->cj, p->dj, p->mc);break;case girl:printf("\n\t%3d\t%6s\t  女\t%3d\t  %c\t%3d\n", p->xh, p->xm, p->cj, p->dj, p->mc);break;}}AnalysisLink(head);printf("\n 各等级人数:\n");printf("\n   A等级:%d 人\n   B等级:%d 人\n   C等级:%d 人\n   D等级:%d 人\n   E等级:%d 人\n", dj[1], dj[2], dj[3], dj[4], dj[5]);}else{printf("\n 数据为空!\n");}}elseprintf("\n 输入错误!\n");getchar();
}void OutputLink_2(StuLink *head, int num)
{int i = 1; //每十个数据中第一个数据的下标int choose;int page = 1;if (head == NULL){printf("\n 数据为空!\n");getchar();return;}else{printf("\n 当前位置:第 %d 页 , 共 %d 页\n", page, (count(head) / 10) + 1);OutputLink_only10(head, 1);printf("\n\n       1)首页   2)上一页   3)下一页   4)尾页   0)返回\n");back:printf("\n 请对应操作输入序号:");scanf("%d", &choose);switch (choose){case 1:{if (i == 1 || num == 10){printf("\n 当前位置位于首页!\n");}else{system("cls");start_menu();printf("\n");page = 1;printf("\n 当前位置:第 %d 页\n", page);OutputLink_only10(head, 1);printf("\n\n       1)首页   2)上一页   3)下一页   4)尾页   0)返回\n");i = 1;}getchar();goto back;}case 2:{if (i == 1 || num == 10){printf("\n 当前位置位于首页!\n");getchar();goto back;}else{system("cls");start_menu();printf("\n");page--;printf("\n 当前位置:第 %d 页\n", page);OutputLink_only10(head, i - 10);printf("\n\n       1)首页   2)上一页   3)下一页   4)尾页   0)返回\n");i = i - 10;}getchar();goto back;}case 3:{if (i == num / 10 * 10 + 1 || num == 10){printf("\n 当前位置位于尾页!\n");getchar();goto back;}else{system("cls");start_menu();printf("\n");page++;printf("\n 当前位置:第 %d 页\n", page);OutputLink_only10(head, i + 10);printf("\n\n       1)首页   2)上一页   3)下一页   4)尾页   0)返回\n");i = i + 10;}getchar();goto back;}case 4:{if (i == num / 10 * 10 + 1 || num == 10){printf("\n 当前位置位于尾页!\n");}else{system("cls");start_menu();printf("\n");page = num / 10;printf("\n 当前位置:第 %d 页\n", page);if (num % 10 == 0)OutputLink_only10(head, (num / 10 - 1) * 10 + 1);elseOutputLink_only10(head, num / 10 * 10 + 1);printf("\n\n       1)首页   2)上一页   3)下一页   4)尾页   0)返回\n");i = num / 10 * 10 + 1;}getchar();goto back;}case 0:return;default:{printf("\n 输入错误!请重新输入!\n");getchar();goto back;}}}
}

extra.c

#include "function.h"extern int Max_xh;
extern int dj[6];void dj_change(StuLink *p)
{if (p->cj >= 90)p->dj = 'A';else if (p->cj < 90 && p->cj >= 80)p->dj = 'B';else if (p->cj < 80 && p->cj >= 70)p->dj = 'C';else if (p->cj < 70 && p->cj >= 60)p->dj = 'D';else if (p->cj < 60)p->dj = 'E';
}void xh_define(StuLink *p, StuLink *head)
{p->xh = Max_xh;Max_xh++;
}void OutputLink_only10(StuLink *head, int start)
{int i = 1;StuLink *p = head;while (p != NULL && i != start){p = p->next;i++;}i = 1;printf("\n\t学号\t 姓名 \t性别\t成绩\t等级\t名次\n");for (p; (p != NULL) && (i <= 10); p = p->next, i++){switch (p->xb){case boy:printf("\n\t%3d\t%6s\t  男\t%3d\t  %c\t%3d\n", p->xh, p->xm, p->cj, p->dj, p->mc);break;case girl:printf("\n\t%3d\t%6s\t  女\t%3d\t  %c\t%3d\n", p->xh, p->xm, p->cj, p->dj, p->mc);break;}}
}int count(StuLink *head)
{int num = 0;StuLink *p = head;while (p != NULL){p = p->next;num++;}return num;
}void start_menu()
{printf("\n\t**********欢迎来到学生管理系统**********\n\n");printf("\n\t\t    (1) 数据维护\n\n\t\t    (2) 数据查询\n\n\t\t    (3) 统计分析\n\n\t\t    (4) 报表输出\n\n\t\t    (0) 退出\n\n");printf("\n          请不要强制关闭本窗口导致数据保存出错!\n");printf("\n\t*****************************************\n\n");
}
StuLink *menu(int choose1, StuLink *head)
{int choose2, choose3, num, i; //choose2:二级菜单选择  choose3:三级菜单选择  num:学号  i:人数switch (choose1){case 1:{start1:printf("\n   1)数据插入   2)数据修改   3)数据删除   0)返回\n");printf("\n 请对应操作输入序号:");scanf("%d", &choose2);switch (choose2){case 1:{head = InsertNode(head);RankLink(head);getchar();break;}case 2:{printf("\n 请输入学号:");scanf("%d", &num);EditNode(head, num);getchar();break;}case 3:{printf("\n 请输入学号:");scanf("%d", &num);DeleteNode(head, num);break;}case 0:break;default:{printf("\n 输入错误!请重新输入!\n");goto start1;}}break;}case 2:{start2:printf("\n   1)学号查询   2)不及格学生查询   0)返回\n");printf("\n 请对应操作输入序号:");scanf("%d", &choose2);switch (choose2){case 1:{printf("\n 请输入学号:");scanf("%d", &num);QueryNode(head, num);break;}case 2:{QueryLink(head);getchar();break;}case 0:break;default:{printf("\n 输入错误!请重新输入!\n");getchar();goto start2;}}break;}case 3:{start3:printf("\n   1)成绩名次计算   2)成绩频度分析   0)返回\n");printf("\n 请对应操作输入序号:");scanf("%d", &choose2);switch (choose2){case 1:{RankLink(head);printf("\n 操作完成!\n");getchar();break;}case 2:{AnalysisLink(head);printf("\n 操作完成!\n");printf("\n 各等级人数:\n");printf("\n   A等级:%d 人\n   B等级:%d 人\n   C等级:%d 人\n   D等级:%d 人\n   E等级:%d 人\n", dj[1], dj[2], dj[3], dj[4], dj[5]);getchar();break;}case 0:break;default:{printf("\n 输入错误!请重新输入!\n");getchar();goto start3;}}break;}case 4:{start4:printf("\n   1)排序显示学生信息   2)分页显示学生信息   0)返回\n");printf("\n 请对应操作输入序号:");scanf("%d", &choose2);switch (choose2){case 1:{printf("\n  1)按学号升序排序   2)按成绩降序排序\n");printf("\n 请对应操作输入序号:");scanf("%d", &choose3);OutputLink_1(head, choose3);break;}case 2:{OutputLink_2(head, count(head));break;}case 0:break;default:{printf("\n 输入错误!请重新输入!\n");goto start4;}}break;}default:break;}return head;
}

main.c

#include "function.c"
#include "extra.c"int main(void)
{int choice1;          //一级选择FILE *fp;             //定义一个文件指针StuLink *head = NULL; //定义一个头指针head = ReadFromFile(fp, head); //读取学生信息
start:start_menu();
start1:printf("\n 请对应操作输入序号:");scanf("%d", &choice1);if (choice1 == 1 || choice1 == 2 || choice1 == 3 || choice1 == 4 || choice1 == 0)goto out; //满足条件 --> 移动到 out位置继续运行else          //不满足条件 --> 移动到 start位置继续运行{printf("\n 输入错误!请重新输入!\n");getchar();goto start1;}
out:switch (choice1){case 0:{SaveToFile(fp, head);exit(0);}case 1:case 2:case 3:case 4:{head = menu(choice1, head);SaveToFile(fp, head);printf("\n 按任意键返回...");getchar();system("cls");goto start;}}return 0;
}

完!全部分享给大家!希望大家不要直接照搬,靠自己写出来的还是会比较有成就感的!努力搬砖!

觉得不错的给我点个赞,点个关注吧!

邮箱:863176846@qq.com(欢迎交流!)
b站:鸭脖来lo(主要是日常和自己一些小的视频作品,欢迎大家关注!)

【你还在烦恼你的实验报告吗?】C语言结课实验——学生成绩管理系统相关推荐

  1. C语言期末大作业-学生成绩管理系统(完整源码+设计报告)

    C语言-学生成绩管理系统 一.学生成绩管理系统源码(完整) 二.程序设计报告 1.课程设计目的 2.课程设计任务与要求: 4.课程设计成果(运行截图) 5.课程设计心得 一.学生成绩管理系统源码(完整 ...

  2. c语言课程设计实验报告模板,[C语言课程设计实验报告模板.doc

    [C语言课程设计实验报告模板 <程序设计基础> 课程设计报告 课程设计题目 通讯录管理系统 指导教师:____李 萍____ 班 级:__ 0903班_ _ __ 学生姓名:2009100 ...

  3. 逻辑与计算机设计基础实验报告,逻辑与计算机设计基础--课实验的报告.doc

    逻辑与计算机设计基础--课实验的报告 学生学号 0121410870432实验成绩 学 生 实 验 报 告 书 实验课程名称逻辑与计算机设计基础开 课 学 院计算机科学与技术学院指导教师姓名肖敏学 生 ...

  4. 计算机学院课程实验报告怎么写,大学计算机课实验报告

    大学计算机课实验报告 注意: 本次实验完成后把最后两页<实验报告答题纸>打印成纸质文档,下次上理论课时上交.其中,[实验内容]的蓝色文字部分是<实验报告2答题纸>所填写内容 实 ...

  5. 《c语言程序设计》实验报告,《C语言程序设计》实验报告模板-2013级软件工程...

    <C语言程序设计>实验报告模板-2013级软件工程 院 系: 计算机科学学院 专 业: 软件工程 年 级: 2013级 课程名称: 程序设计语言 学 号: 姓 名: 指导教师:程林辉 肖文 ...

  6. python的实验报告大一心理_python的期末实验报告

    青岛工学院 实验报告 <Python 语言基础>实验报告 实验室: 实验题目 年... python大作业实验报告.pptx_计算机软件及应用_IT/计算机_专业资料.... 温州大学瓯江 ...

  7. 用C语言学生成绩数据库排序功能设计,[c语言学生成绩管理系统]C语言学生成绩管理系统实验报告...

    篇一 : C语言学生成绩管理系统实验报告 实 验 四:结构体(6学时) 实验目的: 1.更加灵活的使用数组作为函数参数: 2.初步掌握开发一个小型实用系统的基本方法: 3.初步掌握书写程序设计开发文档 ...

  8. 第四次c语言实验报告模板,C语言实验报告模板.doc

    C语言实验报告模板.doc 下载提示(请认真阅读)1.请仔细阅读文档,确保文档完整性,对于不预览.不比对内容而直接下载带来的问题本站不予受理. 2.下载的文档,不会出现我们的网址水印. 3.该文档所得 ...

  9. c语言张振国实验报告,基于VisualC的黄金分割法程序设计实验报告.doc

    基于VisualC的黄金分割法程序设计实验报告 新疆农业大学机械交通学院 实验报告 基于Visual C 的黄金分割法程序设计 一 .实验目的 1. 加深对机械优化设计方法的基本理论和算法步骤的理解: ...

最新文章

  1. 当AI学会高数:解题、出题、评分样样都行
  2. 执行应用程序出现: No such file or directory
  3. editorconfig常用配置
  4. WebBrowser控件禁用超链接转向、脚本错误提示、默认右键菜单和快捷键
  5. android textview动态设置,android – 如何动态设置文本到TextView?
  6. 克隆需要验证_[实验技巧]CRISPR实验中如何验证编辑?
  7. 判断点是否在给定四边形内的算法
  8. MC新手入门(二十八)------ 顺序结构程序
  9. LintCode 生成括号
  10. linux 系统修复 启动盘,linux服务器系统盘坏且系统盘为软raid的修复方法
  11. linux gdb基本调试及其多线程调试
  12. 深度学习(一):神经元模型、感知机与BP算法
  13. 易优插件采集伪原创发布插件免费
  14. 查看html源代码编码,查看网页源代码全是乱码,但前台页面可以正常显示
  15. dubbo异常源码分析处理
  16. Effective C++记录(6):Explicitly disallow the use of compiler-generated functions you do not want
  17. JAVA利用第三方平台发送短信验证码
  18. Python爬虫入门-fiddler抓取手机新闻评论
  19. Verilog中if-else和case对比
  20. 笔记本电脑识别不到WiFi、蓝牙消失

热门文章

  1. NEFU 117 素数定理
  2. adb shell dumpsys alarm 显示所有Alarm
  3. KepOPC实现CAN设备的OTIT互操作!
  4. 论文笔记--3D Human Pose Estimation with Spatial and Temporal Transformers(用空间和时间变换器进行三维人体姿势估计)
  5. 关系型数据库第五章笔记---数据库设计
  6. Latex中多个作者用同一个地址、一个作者用多个地址等问题(以Elsevier为例)
  7. kali-Linux局域网渗透之Win2003
  8. win2003搭建IIS
  9. 十进制转二进制,八进制,十六进制(PHP)
  10. 细胞污染及污染源排查与细胞传代、冻存