C语言课程设计–成绩管理系统

文章目录

    • C语言课程设计--成绩管理系统
  • 前言
  • 一、系统功能
  • 二、使用步骤
    • 1.主函数
    • 2.运行结果
  • 总结

前言

第一次写博客,有什么错误还请留言修改,其中,对于颜色的控制的函数,来源于网络,侵删!!!

一、系统功能

成绩管理系统要求实现学生成绩管理的基本功能,包括学生、课程、成绩信息的录入、删除、查找和导入/导出等。学生信息的属性包括学号、姓名、性别和年龄,课程信息包括课号、课名和学分属性,选课信息包括学号、课号和成绩属性。

二、使用步骤

1.主函数

while (s){printf("欢迎登录该成绩系统(1.登录 2.注册):\n");scanf("%d", &z);switch (z) {case(1):Signing(mmlist); s = 0; break;case(2):registering(mmlist); s = 1; break;}}init(slist, scount, clist, ccount, sclist, sccount);while (1){*cjcount = create_cjlist(sclist, *sccount, clist, *ccount, cjlist);switch (menu_select()){case 1://输入学生,课程,选课信息 printf(">>请选择要输入的信息(1.学生,2.课程,3.选课信息):");scanf("%d", &z);switch (z) {case(2):*ccount = input_course(clist, *ccount); break;case 1: *scount = input_stud(slist, *scount); break;case 3:*sccount = input_select(sclist, *sccount, clist, *ccount, slist, *scount); break;}system("pause");break;case 2://显示所有数据printf(">>请选择要显示的信息(1.学生,2.课程,3.选课信息):");scanf("%d", &z);switch (z) {case 1:   disp_stud(slist, *scount); break;case 2: disp_course(clist, *ccount); break;case 3: disp_cjlist(cjlist, *cjcount, clist, *ccount, slist, *scount); break;}system("pause");break;case 3://按条件删除记录printf(">>请选择要删除的信息(1.学生,2.课程,3.选课信息):");scanf("%d", &z);switch (z) {case 1:  *scount = delete_stud(slist, *scount, sclist,sccount); break;case 2: *ccount = delete_course(clist, *ccount,sclist,sccount); break;case 3:    *sccount = delete_select(sclist, *sccount); break;}system("pause");break;case 4://查询信息printf(">>请选择要查询的信息(1.学生,2.课程,3.选课信息):");scanf("%d", &z);switch (z) {case 1:   query_stud(slist, *scount); break;case 2: query_course(clist, *ccount); break;case 3:   query_cjlist(cjlist, *cjcount, clist, *ccount, slist, *scount); break;}system("pause");break;case 5://保存记录write_to_file1(slist, *scount, clist, *ccount, sclist, *sccount);write_to_file2(cjlist, *cjcount, clist, *ccount, slist, *scount);color(red); printf("写入成功\n"); color(white);system("pause");break;case 6://退出return 0;default:color(red); printf("输入无效信息\n"); color(white);} }return 0;

2.运行结果

总结

本着开源的原则,接下来对于其他函数就不一一作出介绍(里面有注释 ^ - ^ ),直接贴出源代码,与君共勉;

#include<stdio.h>
#include<string.h>
#include <stdlib.h>
#include <ctype.h>
#include<windows.system.h>enum Color
{black, blue, green, lakeBlue, red, purple, yellow, white, gray,lightBlue, lightGreen, lightSimpleGreen, lightRed, lightPurple, lightYellow, brightWhite
};typedef struct
{char xh[10]; //学号char xm[20]; //姓名,10个汉字以内char xb[3];  //性别,只能保存一个汉字int nl;       //年龄
}Student;typedef struct
{char kh[10]; //课号,长度10字符以内char km[25]; //课姓名,12个汉字以内float  xf;    //课程学分,为一个浮点数
}Course;typedef struct
{char xh[10]; //学号,长度10字符以下char kh[10]; //课程号float  cj;    //成绩,为一个浮点数
}Select;typedef struct
{char xh[10]; //学号char xm[20]; //姓名float cj[30];//各门课程成绩float zpj;    //加权平均分float zxf;    //总修习学分
}Score;typedef struct
{char zh[15];char mm[15];
}sigen;
int main()
{int sum,a=0,b=0,c=0,d=0; int z=0;int* scount=&a, * ccount=&b, * sccount=&c, * cjcount=&d;Student slist[100];Course clist[100];Select sclist[100];Score cjlist[100];sigen mmlist[100];void init(Student slist[], int* scount, Course clist[], int* ccount, Select sclist[], int* sccount);void disp_cjlist(Score cjlist[], int cjcount, Course clist[], int ccount, Student slist[], int scount);int create_cjlist(Select sclist[], int sccount, Course clist[], int ccount, Score cjlist[]);int input_select(Select sclist[], int sccount, Course clist[], int ccount, Student slist[], int scount);void write_to_file1(Student slist[], int scount, Course clist[], int ccount, Select sclist[], int sccount);void write_to_file2(Score cjlist[], int cjcount, Course clist[], int ccount, Student slist[], int scount);void query_cjlist(Score cjcount[], int cjcoun, Course clist[], int ccount, Student slist[], int scount);int input_course(Course clist[], int ccount);void disp_course(Course clist[], int ccount);int delete_select(Select sclist[], int sccount);void query_course(Course clist[], int ccount);int delete_stud(Student slist[], int scount, Select sclist[], int* sccount);int delete_course(Course clist[], int ccount, Select sclist[], int* sccount);int delete_select(Select sclist[], int sccount);int input_stud(Student slist[], int scount);void sort_slist(Student slist[], int scount);void disp_stud(Student slist[], int scount);int delete_stud(Student slist[], int scount);void query_stud(Student slist[], int scount);void color(const unsigned short textColor);void registering(sigen mmlist[]);int Signing(sigen mmlist[]);int menu_select();//初始化程序int s=1;while (s){printf("欢迎登录该成绩系统(1.登录 2.注册):\n");scanf("%d", &z);switch (z) {case(1):Signing(mmlist); s = 0; break;case(2):registering(mmlist); s = 1; break;}}init(slist, scount, clist, ccount, sclist, sccount);while (1){*cjcount = create_cjlist(sclist, *sccount, clist, *ccount, cjlist);switch (menu_select()){case 1://输入学生,课程,选课信息 printf(">>请选择要输入的信息(1.学生,2.课程,3.选课信息):");scanf("%d", &z);switch (z) {case(2):*ccount = input_course(clist, *ccount); break;case 1: *scount = input_stud(slist, *scount); break;case 3:*sccount = input_select(sclist, *sccount, clist, *ccount, slist, *scount); break;}system("pause");break;case 2://显示所有数据printf(">>请选择要显示的信息(1.学生,2.课程,3.选课信息):");scanf("%d", &z);switch (z) {case 1: disp_stud(slist, *scount); break;case 2: disp_course(clist, *ccount); break;case 3: disp_cjlist(cjlist, *cjcount, clist, *ccount, slist, *scount); break;}system("pause");break;case 3://按条件删除记录printf(">>请选择要删除的信息(1.学生,2.课程,3.选课信息):");scanf("%d", &z);switch (z) {case 1:  *scount = delete_stud(slist, *scount, sclist,sccount); break;case 2: *ccount = delete_course(clist, *ccount,sclist,sccount); break;case 3:    *sccount = delete_select(sclist, *sccount); break;}system("pause");break;case 4://查询信息printf(">>请选择要查询的信息(1.学生,2.课程,3.选课信息):");scanf("%d", &z);switch (z) {case 1:   query_stud(slist, *scount); break;case 2: query_course(clist, *ccount); break;case 3:   query_cjlist(cjlist, *cjcount, clist, *ccount, slist, *scount); break;}system("pause");break;case 5://保存记录write_to_file1(slist, *scount, clist, *ccount, sclist, *sccount);write_to_file2(cjlist, *cjcount, clist, *ccount, slist, *scount);color(red); printf("写入成功\n"); color(white);system("pause");break;case 6://退出return 0;default:color(red); printf("输入无效信息\n"); color(white);} }return 0;
}
void init(Student slist[], int* scount, Course clist[], int* ccount, Select sclist[], int* sccount)//初始换函数
{FILE* fp1;FILE* fp2;FILE* fp3;int ch, i = 0, k = 0, j = 0;fp1 = fopen("identipy information.txt", "r");if (fp1 == NULL) {printf("错误打开文件\n");exit(1);}while (!feof(fp1)){fscanf(fp1,"%s%s%s%d", slist[i].xh, slist[i].xm, slist[i].xb, &slist[i].nl);i++;}*scount = i-1;fclose(fp1);fp2 = fopen("count.txt", "r");if (fp2 == NULL) {printf("错误打开文件\n");exit(1);}while (!feof(fp2)){fscanf(fp2, "%s%s%f", clist[j].kh, clist[j].km,&clist[j].xf);j++;}*ccount = j-1;fclose(fp2);fp3 = fopen("scount.txt", "r");if (fp3 == NULL) {printf("错误打开文件\n");exit(1);}while (!feof(fp3)){fscanf(fp3, "%s%s%f", sclist[k].xh, sclist[k].kh, &sclist[k].cj);k++;}*sccount = k-1;fclose(fp3);
}int input_stud(Student slist[], int scount)//输入函数
{int i = 0, k = scount, g, h;void color(const unsigned short textColor);while (i == 0){g = 0;printf("输入要记录的若干学生信息(学号,姓名,性别,年龄)\n");scanf("%s%s%s%d", slist[k].xh, slist[k].xm, slist[k].xb, &slist[k].nl);while (g < scount){if (strcmp(slist[k].xh, slist[g].xh) == 0|| strcmp(slist[k].xm, slist[g].xm) == 0){color(red);printf("存在相同信息,是否要发生替换  是:0 否:1\n"); color(white);scanf("%d", &h);if (h == 0){slist[g] = slist[k];}else {k--;break;}}g++;}printf("是否继续输入(是:0 否:1)\n");scanf("%d", &i);k++;}return k;
}int input_course(Course clist[], int ccount)//输入函数
{int i = 0, k = ccount, g, h;void color(const unsigned short textColor);while (i == 0){g = 0;printf("输入要记录的若干课程信息(课号,课名,学分)\n");scanf("%s%s%f", clist[k].kh, clist[k].km,&clist[k].xf);while (g < ccount){if (strcmp(clist[k].kh, clist[g].kh) == 0|| strcmp(clist[k].km, clist[g].km) == 0){color(red);printf("存在相同信息,是否要发生替换  是:0 否:1\n"); color(white);scanf("%d", &h);if (h == 0){clist[g] = clist[k];}else {k--;break;}}g++;}printf("是否继续,是:0 否:1\n");scanf("%d", &i);k++;}return k;
}int input_select(Select sclist[], int sccount, Course clist[], int ccount, Student slist[], int scount)//输入函数
{int i = 0, k = sccount, g, h, m, n,f;int q;void color(const unsigned short textColor);while (i == 0){g = 0; m = 0; n = 0; h = 0, q = 0, f = 0;printf("输入要记录的若干学生成绩信息(学号,课号,成绩(无成绩为-1))\n");scanf("%s%s%f", sclist[k].xh, sclist[k].kh, &sclist[k].cj);while (g < ccount){if (strcmp(sclist[k].kh, clist[g].kh) == 0){m = 1;break;}g++;}if (g == ccount){color(red);printf("非合法输入课程号,请检查后重新进行输入\n"); color(white);}while (h < scount){if (strcmp(sclist[k].xh, slist[h].xh) == 0){n = 1;break;}h++;}if (h == scount){color(red);printf("非合法输入学号,请检查后重新进行输入\n"); color(white);}if (!(sclist[k].cj>=0&& sclist[k].cj<=120)){color(red);printf("非合法输入成绩,请检查后重新进行输入\n"); color(white);}else{q = 1;}while (f < k){if (strcmp(sclist[k].kh, sclist[f].kh)==0&& strcmp(sclist[k].xh, sclist[f].xh)==0){color(red);printf("存在相同信息,是否要发生替换  是:0 否:1\n"); color(white);scanf("%d", &h);if (h == 0){sclist[f] = sclist[k];}else {k--;break;}}f++;}if (m == 1 && n == 1&& q == 1){k++;}printf("是否继续或重新输入,是:0 否:1\n");scanf("%d", &i);}return k;
}
void sort_slist(Student slist[], int scount)
{int t;for (int i = 0; i < scount -1; i++){for (int j = 0; j < scount - i - 1; j++){t = strcmp(slist[j].xh, slist[j + 1].xh);if (t > 0) {slist[99] = slist[j]; slist[j] = slist[j + 1]; slist[j + 1] = slist[99];}}}
}
int create_cjlist(Select sclist[], int sccount, Course clist[], int ccount, Score cjlist[])//创建成绩表函数
{int i = 0, number = 0, j,g;while (i<sccount){j = 0;while (j<number){if (!strcmp(cjlist[j].xh, sclist[i].xh)) {break;}j++;}if (j == number) {strcpy(cjlist[j].xh, sclist[i].xh);int e = 0;while (e<30) {cjlist[j].cj[e++] = -1;}cjlist[j].zpj = 0; cjlist[j].zxf = 0;g = 0;while (strcmp(sclist[i].kh,clist[g].kh)) {g++;}cjlist[j].cj[g] = sclist[i].cj;cjlist[j].zxf += clist[g].xf;if (cjlist[j].zxf == 0) {cjlist[j].zpj = 0;}else {cjlist[j].zpj = (cjlist[j].zpj * (cjlist[j].zxf - clist[g].xf) + sclist[i].cj * clist[g].xf) / cjlist[j].zxf;}number++;}else {g = 0;while (strcmp(sclist[i].kh,clist[g].kh)) {g++;}cjlist[j].cj[g] = sclist[i].cj;cjlist[j].zxf += clist[g].xf;if (cjlist[j].zxf == 0) {cjlist[j].zpj = 0;}else {cjlist[j].zpj = (cjlist[j].zpj * (cjlist[j].zxf - clist[g].xf) + sclist[i].cj * clist[g].xf) / cjlist[j].zxf;}}i++;}return number;
}
void disp_cjlist(Score cjlist[], int cjcount, Course clist[], int ccount, Student slist[], int scount)//显示成绩信息函数
{void sort_cjlist(Score cjlist[], int cjcount);int h = 0, k = 0, i = 0, j = 0,f;while (i< cjcount){h = 0;while (strcmp(cjlist[i].xh ,slist[h].xh)) {h++;}strcpy(cjlist[i].xm, slist[h].xm);i++;}sort_cjlist(cjlist, cjcount);printf("序号\t学号\t   姓名 ");while (k < ccount) {printf("%12s", clist[k].km);k++;}printf("\t\t均分\t总学分\t");printf("\n");k = 0;while (k< cjcount) {printf("%2d %12s% 10s ", k+1, cjlist[k].xh, cjlist[k].xm);j = 0;while (j< ccount){if (cjlist[k].cj[j] == -1){printf("            ");}else {printf("%12f", cjlist[k].cj[j]);}j++;}printf("%12f%12f\n", cjlist[k].zpj, cjlist[k].zxf);if (k % 9 == 0 && k != 0){printf("是否需要继续输出  是:0 否:1\n");scanf("%d", &f);if (f == 0) {;}else {break;}}k++;}
}
void disp_stud(Student slist[], int scount)//显示学生信息函数
{int f;void sort_slist(Student slist[], int scount);printf("序号\t学号\t姓名\t\t性别\t年龄\t\n");sort_slist(slist, scount);for (int k = 0; k < scount; k++){printf("%-5d%10s%10s%10s%10d\n",k, slist[k].xh, slist[k].xm, slist[k].xb, slist[k].nl);if (k % 9 == 0 && k != 0){printf("是否需要继续输出  是:0 否:1\n");scanf("%d", &f);if (f == 0) {;}else {break;}}}
}
void disp_course(Course clist[], int ccount)//显示课程信息函数
{int f;void sort_clist(Course clist[], int ccount);sort_clist(clist, ccount);printf("课程号\t课名\t\t学分\t\n");for (int k = 0; k < ccount; k++){printf("%s\t%-16s%f\t\n", clist[k].kh, clist[k].km, clist[k].xf);if (k % 9 == 0 && k != 0){printf("是否需要继续输出  是:0 否:1\n");scanf("%d", &f);if (f == 0);else {break;}}}
}
int delete_stud(Student slist[], int scount, Select sclist[], int* sccount)//删除学生信息函数
{char xh[100]; int f;void color(const unsigned short textColor);int delete_select1(Select sclist[], int* sccount, char xh[10]);int m = 101, d; int* p = &scount;while (1){printf("输入你要删除的学生信息(学号或姓名)\n");scanf("%s", xh);for (int i = 0; i < scount; i++){m = 101;if (strcmp(slist[i].xh, xh)==0|| strcmp(slist[i].xm, xh) == 0){m = i;break;}}if (m == 101){color(red);printf("没有找到该学生信息\n"); color(white);}else {for (; m < scount - 1; m++){slist[m] = slist[m + 1];}scount -= 1;delete_select1(sclist, sccount, xh);color(red); printf("修改完成\n"); color(white);}printf("是否需要继续输出  是:0 否:1\n");scanf("%d", &f);if (f == 0) {;}else {break;}}return scount;
}
int delete_course(Course clist[], int ccount, Select sclist[], int* sccount)//删除课程信息函数
{char xh[100];int f = 0;void color(const unsigned short textColor);int delete_select1(Select sclist[], int* sccount, char xh[10]);int m = 101, d; int* p = &ccount;while (1){printf("输入你要删除的课程信息(课程名或课程号)\n");scanf("%s", xh);for (int i = 0; i < ccount; i++){m = 101;if (strcmp(clist[i].kh, xh) == 0 || strcmp(clist[i].km, xh) == 0){m = i;break;}}if (m == 101){color(red);printf("没有找到该课程信息\n"); color(white);}else {for (; m < ccount - 1; m++){clist[m] = clist[m + 1];}ccount -= 1;delete_select1(sclist, sccount,xh);color(red); printf("修改完成\n"); color(white);}printf("是否需要继续输出  是:0 否:1\n");scanf("%d", &f);if (f == 0);else {break;}}return ccount;
}int delete_select(Select sclist[], int sccount)//删除选课信息函数
{void color(const unsigned short textColor);int f = 0, m, k = 1, g = 0;char xh[10];while (1){g = 0; k = 1;printf("输入你要删除的选课信息(学号或课号)\n");scanf("%s", xh);while (k != 0){k = 0, m = 101;for (int i = 0; i < sccount; i++){if (strcmp(sclist[i].xh, xh)==0||strcmp(sclist[i].kh, xh)==0){m = i;k = 1;g++;break;}}if (m == 101&& g == 0){color(red);printf("没有找到成绩信息\n"); color(white);}else {for (; m < sccount - 1; m++){sclist[m] = sclist[m + 1];}sccount -= 1;}}if (m == 101 && g == 0);else {color(red); printf("修改完成\n"); color(white);}printf("是否需要继续操作删除信息  是:0 否:1\n");scanf("%d", &f);if (f == 0);else {break;}}return sccount;
}int delete_select1(Select sclist[], int* sccount, char xh[10])//删除成绩信息函数
{int f = 0, m, k = 1, g = 0; int i;while (1){g = 0; k = 1;for ( i = 0; i < *sccount; i++){if (strcmp(sclist[i].xh, xh) == 0 || strcmp(sclist[i].kh, xh) == 0){m = i;k = 0;g++;break;}}if (k == 1 && i == *sccount){break;}else {for (; m < *sccount - 1; m++){sclist[m] = sclist[m + 1];}*sccount -= 1;}}return 0;
}
int menu_select(void)
{char c;void color(const unsigned short textColor);do {system("cls");/*  清屏  */color(green); printf("                   (▁▁▁▁∩▁▁▁▁)"); printf("                            (▁▁▁▁∩▁▁▁▁)\n");color(green); printf("                        ╭╋╮ "); printf("                                      ╭╋╮ \n");color(green); printf("                -▁╭▅▇ □□█▇▆▅▄▃▂▁(╳ )█ ╮"); printf("                -▁╭▅▇ □□█▇▆▅▄▃▂▁(╳ )█ ╮\n");color(green); printf("                ╰═ █ ▁ NUAA  C语言▁ ∠═══  ▔▔▔"); printf("           ╰═ █ ▁学生信息管理系统▁ ∠═══  ▔▔▔\n");color(green); printf("                     ┣O〓▁ 〓O┫"); printf("                               ┣O〓▁ 〓O┫\n");color(white);printf("            ---------------------------------------------------------\n");color(red);printf("            |                功能列表:                             |\n");color(white);printf("            |                1.输入学生,课程,选课信息             |\n");printf("            |                2.显示所有数据                         |\n");printf("            |                3.按条件删除记录                       |\n");printf("            |                4.按条件查询记录                       |\n");printf("            |                5.保存记录                             |\n");printf("            |                6.退出                                 |\n");printf("            ---------------------------------------------------------\n");printf("Input 1-6: ");c = getchar();} while (c < '0' || c>'10');return(c - '0');
}
void color(const unsigned short textColor)      //自定义函根据参数改变颜色
{if (textColor >= 0 && textColor <= 15)     //参数在0-15的范围颜色SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), textColor);  //用一个参数,改变字体颜色else   //默认的字体颜色是白色SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), 7);
}
void sort_cjlist(Score cjlist[], int cjcount)//排序函数
{int t, max, i, j;Score m;for (i = 0; i < cjcount - 1; i++){max = cjlist[0].zpj; t = 0;for (j = 0; j < cjcount - i; j++){if (max > cjlist[j].zpj) {max = cjlist[j].zpj; t = j;}}m = cjlist[cjcount - i - 1]; cjlist[cjcount - i - 1] = cjlist[t]; cjlist[t] = m;}
}void sort_clist(Course clist[], int ccount)//排序函数
{int t, i, j;Course m;for (int i = 0; i < ccount - 1; i++){for (int j = 0; j < ccount - i - 1; j++){if (strcmp(clist[j].kh,clist[j + 1].kh)>0) {m = clist[j]; clist[j] = clist[j + 1]; clist[j + 1] = m;}}}
}void query_stud(Student slist[], int scount)//查询学生信息函数
{char str[100]; int i=0;printf("请输入你要查询的学生信息(学号或姓名)\n");scanf("%s", str);while (i< scount){if (strcmp(str, slist[i].xh)==0||strcmp(str, slist[i].xm)==0)break;else {i++;}}if (i == scount) {color(red); printf("没有找到该学生的信息\n"); color(white);}else {printf("学号\t\t姓名\t性别\t年龄\t\n");printf("%s\t%s\t%s\t%d\n", slist[i].xh, slist[i].xm, slist[i].xb, slist[i].nl);}
}void query_course(Course clist[], int ccount)//查询课程信息函数
{char str[100]; int i = 0;printf("请输入你要查询的课程信息(课号或课程名)\n");scanf("%s", str);while (i < ccount){if (strcmp(str, clist[i].kh) == 0 || strcmp(str, clist[i].km) == 0)break;else {i++;}}if (i == ccount) {color(red); printf("没有找到该课程的信息\n"); color(white);}else {printf("%s\t%s\t%f\n", clist[i].kh, clist[i].km, clist[i].xf);}
}void query_cjlist(Score cjcount[], int cjcoun, Course clist[], int ccount, Student slist[], int scount)//查询成绩信息函数
{char str[100]; int i = 0, k = 0, j = 0, h = 0;printf("请输入你要查询的学生成绩信息(学号或姓名)\n");scanf("%s", str);while (i < cjcoun){if (strcmp(str, cjcount[i].xh) == 0 || strcmp(str, cjcount[i].xm) == 0)break;else {i++;}}if (i == cjcoun) {color(red); printf("没有找到该学生成绩信息\n"); color(white);}else {while (strcmp(cjcount[i].xh, slist[h].xh)){h++;}strcpy(cjcount[i].xm, slist[h].xm);printf("学号         姓名 ");while (k < ccount) {printf("%15s", clist[k].km);k++;}printf("   \t均分\t总学分  ");printf("\n");  printf("%-12s%-10s", cjcount[i].xh, cjcount[i].xm);j = 0;while (j < ccount){if (cjcount[i].cj[j] == -1){printf("\t\t");}else {printf("%f   \t", cjcount[i].cj[j]);}j++;}printf("%f  %f\t\n", cjcount[i].zpj, cjcount[i].zxf);}
}
void write_to_file1(Student slist[], int scount, Course clist[], int ccount, Select sclist[], int sccount)//写文件
{FILE* fp1; FILE* fp2; FILE* fp3;int i = 0;fp1=fopen("student20210522120423.txt", "w");if (fp1 == NULL) {printf("错误打开文件\n");exit(1);}while (i < scount){fprintf(fp1, "%s %s %s %d\n", slist[i].xh, slist[i].xm, slist[i].xb, slist[i].nl);i++;}fclose(fp1);i = 0;fp2=fopen("course20210522120430.txt", "w");if (fp2 == NULL) {printf("错误打开文件\n");exit(1);}while (i < ccount){fprintf(fp2, "%s %s %f\n", clist[i].kh, clist[i].km, clist[i].xf);i++;}fclose(fp2);i = 0;fp3 = fopen("select202105221258.txt", "w");if (fp3 == NULL) {printf("错误打开文件\n");exit(1);}while (i < sccount){fprintf(fp3, "%s %s\n", sclist[i].xh, sclist[i].kh);i++;}fclose(fp3);
}
void write_to_file2(Score cjlist[], int cjcount, Course clist[], int ccount, Student slist[], int scount)//写文件
{FILE* fp1;int h = 0, k = 0, i = 0, j = 0, f;void sort_cjlist(Score cjlist[], int cjcount);fp1 = fopen("cj20210522120423.txt", "w");if (fp1 == NULL) {printf("错误打开文件\n");exit(1);}while (i < cjcount){h = 0;while (strcmp(cjlist[i].xh, slist[h].xh)){h++;}strcpy(cjlist[i].xm, slist[h].xm);i++;}sort_cjlist(cjlist, cjcount);fprintf(fp1,"序号    学号     姓名 ");while (k < ccount) {fprintf(fp1,"%15s", clist[k].km);k++;}fprintf(fp1,"\t均分\t总学分\t");fprintf(fp1,"\n");k = 0;while (k < cjcount) {fprintf(fp1,"%2d %12s% 10s ", k + 1, cjlist[k].xh, cjlist[k].xm);j = 0;while (j < ccount){if (cjlist[k].cj[j] == -1){fprintf(fp1,"\t\t");}else {fprintf(fp1,"%f   \t", cjlist[k].cj[j]);}j++;}fprintf(fp1,"%f\t%f\t\n", cjlist[k].zpj, cjlist[k].zxf);k++;}
}int Signing(sigen mmlist[])//登录检查函数
{int t = 2;loop1:FILE* fp1;int i = 0, k = 0, j = 0, h;char a[15], b[15];void color(const unsigned short textColor);fp1 = fopen("account number.txt", "r");if (fp1 == NULL) {printf("错误打开文件\n");exit(1);}while (!feof(fp1)){fscanf(fp1, "%s%s", mmlist[i].zh, mmlist[i].mm);i++;j++;}i -= 1;j -= 1;fclose(fp1);printf("请输入您的账号\n");scanf("%s",a);while (i>=0){if (strcmp(a, mmlist[i].zh) == 0){break;}else {i--;}}if (i < 0){printf("输入的信息(账号)错误\n");goto loop1;}
loop:printf("请输入您的密码\n");h = j;scanf("%s", b);while (h >= 0){if (strcmp(a, mmlist[h].zh) == 0&&strcmp(b, mmlist[h].mm) == 0){return 0;}else {h--;}}if (h < 0){printf("输入的信息(密码)错误\n");}while (1){color(red); printf("您还有%d次机会,请重新输入\n", t); color(white);if (t > 0) {t--;goto loop;}else {exit(1);}}
}
void registering(sigen mmlist[])//注册登录信息函数
{loop:FILE* fp1; int i = 0, k = 0; int j = 0;void color(const unsigned short textColor);fp1 = fopen("account number.txt", "r");if (fp1 == NULL) {printf("错误打开文件\n");exit(1);}while (!feof(fp1)){fscanf(fp1,"%s%s", mmlist[i].zh, mmlist[i].mm);i++;}i--;fclose(fp1);printf("请输入你要注册的账号及密码\n");scanf("%s%s", mmlist[i].zh, mmlist[i].mm);while (j < i) {if (strcmp(mmlist[i].zh, mmlist[j].zh) == 0) {color(red); printf("该账号信息已存在\n"); color(white);goto loop;}j++;}fp1 = fopen("account number.txt", "w");if (fp1 == NULL) {printf("错误打开文件\n");exit(1);}while (k<=i){fprintf(fp1,"%s %s \n", mmlist[k].zh, mmlist[k].mm);k++;}fclose(fp1);color(red); printf("注册成功\n"); color(white);
}

C语言课程设计–成绩管理系统相关推荐

  1. 销售管理c语言程序设计,C语言课程设计销售管理系统

    C语言课程设计销售管理系统 C语言课程设计 题 目 商品销售系统 指导教师 曹东燕 学生姓名 刘伟 张新星 马国文 学 号 200900804072 200901802005 200900804051 ...

  2. 网吧管理系统C语言作业,C语言课程设计-网吧管理系统.doc

    C语言课程设计-网吧管理系统 <通信工程专业C语言课程设计> 报 告 专 业: 通信工程 班 级: 0802 姓 名: 赵 松 指导教师: 丁 雄 二00九 年 十二 月 二十五 日 目 ...

  3. c语言程序设计书店销售管理系统,C语言课程设计-书店管理系统

    <C语言课程设计-书店管理系统>由会员分享,可在线阅读,更多相关<C语言课程设计-书店管理系统(25页珍藏版)>请在人人文库网上搜索. 1.计算机程序设计计算机程序设计(C(C ...

  4. c语言课程设计人事管理,C语言课程设计-人事管理系统(65页).doc

    C语言课程设计-人事管理系统(65页) C语言课程设计 --人事管理系统 来自资料搜索网() 海量资料下载 人事管理管理系统 [要求] 某高校主要人员有:在职人员(行政人员.教师.一般员工).退休人员 ...

  5. c语言编程票务系统,C语言课程设计票务管理系统

    C语言课程设计票务管理系统 C语言课程设计1西安交通大学城市学院C语言程序设计课程设计报告题目图书信息管理系统专业自动化班级自动化101姓名陈蕾完成日期2012年5月31日C语言课程设计2目录第一章项 ...

  6. c语言课程设计图书管理系统

    数据结构c语言课程设计 图书管理系统 我做的是百度文库的第28题,目前没有报错,正常运行,但是还有一点小bug.代码很多地方写的不是很好,请多多包涵. 账号1,密码1,为管理员账号:其他账号2,3,4 ...

  7. c语言课程设计作业图书管理系统,C语言课程设计图书馆管理系统程序代码.doc

    C语言课程设计图书馆管理系统程序代码.doc includestdio.h includewindows.h includestring.h includeconio.h define M 100 s ...

  8. c语言大作业书店图书管理系统,c语言课程设计 书店管理系统.pdf

    c语言课程设计 书店管理系统 计算机程序设计(C语言) 课程设计报告 题目:图书管理系统 学院: 专业: 班级: 学号: 姓名: 指导教师: 设计日期:2013年06月24 日 一.选题背景: 设计一 ...

  9. c语言课程设计订单管理系统,C语言课程设计订单管理系统讲解.doc

    C语言课程设计订单管理系统讲解 C语言课程设计 随米打印订单管理系统 学 院: 计算机与信息科学学院 学生姓名: 谢润发 指导教师: 王新祥 职称 教授 专 业: 网络工程 班 级: 1501 完成时 ...

  10. c语言课程设计人事部门,C语言课程设计人事管理系统

    <C语言课程设计人事管理系统>由会员分享,可在线阅读,更多相关<C语言课程设计人事管理系统(36页珍藏版)>请在人人文库网上搜索. 1.C语言课程设计人事管理系统 题目要求:人 ...

最新文章

  1. SAP PM工作清单管理
  2. python生成饼图文件_python使用HTMLTestRunner导出饼图分析报告的方法
  3. 被relativeLayout的grivate center 折腾死了
  4. 如何获取高精度CV模型?快来试试百度EasyDL超大规模视觉预训练模型
  5. Qt在Mac系统下添加alias到IncludePath中
  6. ARMv8体系结构基础02:搭建实验环境
  7. CentOS下安装实时检测网络带宽的小工具bmon
  8. python二维列表长度_python如何使二维数组的高度大于长度
  9. ASP.NET2.0缓存(Cache)技术
  10. 算法:回溯十二 Word Search字符串匹配二维矩阵
  11. 冬瓜哥原创装b文 :《觉醒》
  12. 【操作系统】30天自制操作系统--(26)LDT与库
  13. Odoo相关资源(持续更新中)
  14. 根据地理位置获取经纬度
  15. 加密币Terra创始人权道亨已从新加坡飞往杜拜转往第三国
  16. Laravel CSRF token mismatch
  17. proftpd 服务器配置
  18. 基于javaweb的蓝天幼儿园管理系统(java+springboot+thymeleaf+html+mysql)
  19. WPE教学之-截取操作篇
  20. POJ 1076 Bowl 笔记

热门文章

  1. 中文停用词词表-自然语言处理
  2. wxWindows 程序编译选项设置统揽
  3. ubuntu安装gcc失败怎么办?
  4. PDFLib库的使用c++
  5. c语言是高级编程语言吗,C语言是高级编程语言吗?
  6. C++ OpenCV技术实战之身份证离线识别
  7. Android 关于IC卡的读写和加密
  8. 考研清华985信号与系统参考书籍(郑君里)重点
  9. 【王道考研】计算机网络知识点
  10. 一台显示器分成双屏_华硕显示器贴心相伴:云办公、云学习宅家无忧