C语言课程设计报告

一 .设计目的

学生成绩管理系统

主要功能:

(1)能按学期、按班级完成对学生成绩的录入、

修改,删除

(2)能按班级统计学生的成绩,求学生的总分及

平均分,并能根据学生的平均成绩进行排序

(3)能查询学生成绩,不及格科目及学生名单

(4)能按班级输出学生的成绩单

二 .总体设计

此流程图是整体上对程序需要哪些函数而设计的,这些都是核心函数,先将这些函数实现以后再通过main()主函数对每一个核心函数进行调用,主函数里面可以用到while循环和switch语句

三.详细设计

void Pass_File(); //创建密码文件

int Name_Password(); //登陆密码验证

void User_Amadeus();/* 密码修改 */

/***********************************************/

void in();/*录入学生成绩信息*/

void show();/*显示学生信息*/

void order();/*按总分排序*/

void del();/*删除学生成绩信息*/

void modify();/*修改学生成绩信息*/

void menu();/*主菜单*/

void insert();/*插入学生信息*/

void total();/*计算总人数*/

void search();/*查找学生信息*/

void ShowClassS();      // 显示某班学生信息

void ShowFailS();       // 显示不及格学生信息

void main()/*主函数,实现对每个函数的调用,main函数里面,通过对输入序号的值对应的调用函数,这需要用到switch()语句*/

每个函数都相对是独立的,入口参数就是输入学生的成绩信息

四.调试与测试

五.源程序清单和执行结果1 . 定义结构体及宏定义#include<stdio.h>#include<stdlib.h>#include<conio.h>#include<dos.h>#include<string.h>#define LEN sizeof(struct student)#define FORMAT "  %2s   %2s   %s   %s     %4.1lf     %4.1lf     %4.1lf  %4.1lf   %4.2lf  \n"#define DATA stu[i].Term,stu[i].Class,stu[i].name,stu[i].num,stu[i].score[0],stu[i].score[1],stu[i].score[2],stu[i].sum,stu[i].avechar Name[15]; //用户名存储char Pass[15]; //用户密码存储#define R 3struct student/*定义学生成绩结构体*/{char Class[15];        //专业班级char Term[5];          // 学期char num[15];              /*学号*/char name[15];         /*姓名*/double score[3];        //学科成绩double sum;          /*总分*/double ave;          /*平均分*/};struct student stu[100];/*定义结构体数组*//******用户输入用户名与登陆密码*******/struct NamePass{char name[15];char pass[15];};2.函数声明/**********密码登陆模块************************/void Pass_File(); //创建密码文件int Name_Password(); //登陆密码验证void User_Amadeus();/* 密码修改 *//***********************************************/void in();/*录入学生成绩信息*/void show();/*显示学生信息*/void order();/*按总分排序*/void del();/*删除学生成绩信息*/void modify();/*修改学生成绩信息*/void menu();/*主菜单*/void insert();/*插入学生信息*/void total();/*计算总人数*/void search();/*查找学生信息*/void ShowClassS();      // 显示某班学生信息void ShowFailS();       // 显示不及格学生信息3.主函数 main()利用while循环和swithch()语句进行菜单选择来实现各函数的调用,系统根据输入的数字选项来调用相应的函数,输入0时,结束退出。等执行完每一个函数功能后,按任一键回到主界面也要通过这个函数来实现!/*******************************************************************************************************************程序的开始部分********************************************************************************************************************/void main()/*主函数*/{int n;Pass_File();Name_Password();system("pause");system("cls");printf("\t\t******************************************************************\n");printf("\t\t*                                                                *\n");printf("\t\t*      欢迎使用由计算机1505班设计的学生成绩管理系统              *\n");printf("\t\t*                   祝您使用愉快!!!!                         *\n");printf("\t\t*                                                                *\n");printf("\t\t*      心灵鸡汤:                                                *\n");printf("\t\t*                                                                *\n");printf("\t\t*      相信自己,依靠自己,要尽自己的能力,把每件事情都做得更好,*\n");printf("\t\t*      让自己活的每一天都有意义。                                *\n");printf("\t\t*      努力成为你最喜欢的那种人,就算不成功,                    *\n");printf("\t\t*      至少你会喜欢这样努力的自己。                              *\n");printf("\t\t*                                                                *\n");printf("\t\t*      指导老师  :毋小省                                        *\n");printf("\t\t*      课程设计  :C语言                                         *\n");printf("\t\t*      姓    名  :张诚华、马莹莹                                *\n");printf("\t\t*      学    校  :河南理工大学                                  *\n");printf("\t\t*      学    号  :311509010516,311509010507                    *\n");printf("\t\t*      专业班级  :计算机1505                                    *\n");printf("\t\t*                                                                *\n");printf("\t\t******************************************************************\n");system("pause");//暂停system("cls");menu();scanf("%d",&n);/*输入选择功能的编号*/while(n){switch(n){case 1:in();break;case 2:search();break;case 3:del();break;case 4:modify();break;case 5:insert();break;case 6:order();break;case 7:total();break;case 8:User_Amadeus();break;case 9:ShowClassS();break;case 10:show();break;case 11:ShowFailS();break;default:break;}getch();menu();/*执行完功能再次显示菜单界面*/scanf("%d",&n);}}4.创建密码文件函数/****************创建密码文件*************/void Pass_File(){FILE *  PassFile;PassFile = fopen("c:\\CLP\\password.bat", "ab+");if(NULL == PassFile){printf("创建密码文件失败!\n");exit(0);}fprintf(PassFile ,"amadeus\n");fwrite("amadeus" , sizeof("amadeus"), 1, PassFile);fclose(PassFile);}5.登录密码验证函数 /******************登 陆 密 码 验 证 ***********************/int Name_Password(){struct NamePass PassW1;int num = 0;FILE * PassFile;PassFile = fopen("c:\\CLP\\password.bat", "rb");//以只读的方式打开二进制文件password.batif(NULL == PassFile){Pass_File();}fscanf(PassFile, "%s", Name );//设置初始用户名fscanf(PassFile, "%s", Pass);//设置初始密码while(1){system("cls");printf("\n\n\t\t\t  欢迎使用学生成绩管理系统\n\n");printf("\t\t\t\t密码和学号一样\n\n\n");printf("  请输入学号: ");scanf("%s", &PassW1.name);printf("\n");printf("  请输入密码: ");scanf("%s", &PassW1.pass);if(0 == strcmp(Name,PassW1.name) && 0 == strcmp(Pass,PassW1.pass)){printf("\n\n\n\t\t\t密 码 核 对 正 确 ! \1 \n");printf("\n\n\n\t\t 欢 迎 您 使 用 学 生 管 理 系 统 ! \2\n");break;}else{printf("\n\n\t\t\t对不起,您输入的用户名或密码有误!\n\n");printf("\n\n\t\t      请  按  任  意  键  重  新  输  入 !\n\n\n\n\n\n\n\n\n");getch();num++;if(3 == num){   system("cls");printf("\n\n\t\t\t  欢迎使用学生成绩管理系统\n\n\n");printf("\n\n\n\t\t 对 不 起\n\n\n");printf("\n\t\t\t  你 已 经 三 次 输 入 错 误\n\n");printf("\n\t\t\t\t\t\t\t再 见 ! \n\n\n\n\n\n");getch();fclose(PassFile);return 0;}}}printf("\n\n\n");fclose(PassFile);return 1;}6.密码修改函数 /*******************密码修改****************/void User_Amadeus(){FILE * PassFile;int a = 1;char name1[15];char passw1[15];char passw2[15];char passw3[15];system("cls");PassFile = fopen("c:\\CLP\\password.bat", "wb");if(NULL == PassFile){printf("修改密码文件失败!\n");exit(0);}printf("\t\t\t\t  用 户 修 改 \n");while(1){printf("请输入原密码:");               scanf("%s", passw1);if(0 == strcmp(Pass, passw1)){printf("\n请输入新用户名:");scanf("%s", name1);while(1){while(1){printf("\n请输入新密码:");scanf("%s", passw2);if(0 == strcmp(Pass, passw2)){printf("\n新密码不能与旧密码相同!\n");}elsebreak;}printf("\n请确认新密码:");scanf("%s", passw3);if(0 == strcmp(passw2, passw3)){strcpy(Pass , passw2);printf("\n\n\t\t\t密 码 修 改 成 功 \1 请 重 新 登 陆 !\n\n");fprintf(PassFile, "%s\r\n", name1);fprintf(PassFile, "%s\r\n", passw2);break;}elseprintf("\n您输入的密码不一致, 请重新输入!\n");}break;}else{if(a != 3){printf("\n密码错误,请重新输入!\n\n");a++;}else{printf("你已三次输入密码错误 !\n\n");printf("再见!\n");exit(0);}}}fclose(PassFile);system("pause");}7.按学期、按班级录入学生成绩函数/*********************录入学生信息********************/void in(){int i,m=0;/*m是记录的条数*/char ch[2];FILE *fp;/*定义文件指针*/if((fp=fopen("data","ab+"))==NULL)/*打开指定文件*/{printf("can not open the file\n");return;}while(!feof(fp)){if(fread(&stu[m] ,LEN,1,fp)==1)m++;/*统计当前记录条数*/}fclose(fp);if(m==0)printf("No record!\n");else{system("cls");show();/*调用show函数,显示原有信息*/}if((fp=fopen("data","wb"))==NULL){printf("can not open the file\n");return;}printf("please input(Y/N):");scanf("%s",ch);while(strcmp(ch,"Y")==0||strcmp(ch,"y")==0)/*判断是否要录入新信息*/{printf("输入学期:");scanf("%s",stu[m].Term);printf("输入专业班级:");scanf("%s",stu[m].Class);printf("输入学生姓名:");scanf("%s",stu[m].name);/*输入学生姓名*/printf("学号:");scanf("%s",stu[m].num);/*输入学生学号*/printf("输入工科数学成绩:");scanf("%lf",&stu[m].score[0]);/*输入工科数学成绩*/printf("输入大学英语成绩:");scanf("%lf",&stu[m].score[1]);/*输入大学英语成绩*/printf("输入C语言成绩:");scanf("%lf",&stu[m].score[2]);/*输入C语言成绩*/stu[m].sum=stu[m].score[0]+stu[m].score[1]+stu[m].score[2];/*计算出总成绩*/stu[m].ave=stu[m].sum/3.0;/*计算出平均分*/if(fwrite(&stu[m],LEN,1,fp)!=1)/*将新录入的信息写入指定的磁盘文件*/{printf("不能保存!");getch();}else{printf("%s 保存成功!\n",stu[m].name);m++;}printf("是否继续?(Y/N):");/*询问是否继续*/scanf("%s",ch);}fclose(fp);printf("OK!\n");}8.显示学生成绩函数/**************************显示学生成绩*************************/void show(){FILE *fp;int i,m=0;fp=fopen("data","ab+");while(!feof(fp)){if(fread(&stu[m] ,LEN,1,fp)==1)m++;}  fclose(fp);printf(" 学期   专业班级      姓名       学号      工科数学  大学英语  C语言  总分  平均分 \n");for(i=0;i<m;i++){printf(FORMAT,DATA);/*将信息按指定格式打印*/}}9.将学生成绩进行排序函数/*******************自定义排序函数***********************/void order(){FILE *fp;struct student t;int i=0,j=0,m=0;if((fp=fopen("data","ab+"))==NULL){printf("can not open the file!\n");return;}while(!feof(fp))if(fread(&stu[m] ,LEN,1,fp)==1)m++;fclose(fp);if(m==0){printf("no record!\n");return;}for(i=0;i<m-1;i++)for(j=i+1;j<m;j++)/*双重循环实现成绩比较并交换*/if(stu[i].sum<stu[j].sum){t=stu[i];stu[i]=stu[j];stu[j]=t;}printf(" 学期   专业班级      姓名       学号      工科数学  大学英语  C语言  总分  平均分 \n");for(i=0;i<m;i++){printf(FORMAT,DATA);/*将信息按指定格式打印*/}if((fp=fopen("data","a"))==NULL){printf("can not open the file\n");return;}for(i=0;i<m;i++)/*将重新排好序的内容重新写入指定的磁盘文件中*/if(fwrite(&stu[i] ,LEN,1,fp)!=1){printf("%s 没有保存成功!\n");getch();}fclose(fp);printf("保存成功!已将成绩名次存入data中\n");}10.删除学生成绩函数/********************自定义删除函数********************/void del(){FILE *fp;int i,j,m=0;char snum[15];char ch[2];if((fp=fopen("data","ab+"))==NULL){printf("can not open the file\n");return;}while(!feof(fp))  if(fread(&stu[m],LEN,1,fp)==1)m++;fclose(fp);if(m==0){printf("没有该学号!\n");return;}printf("请输入学号:");scanf("%s",snum);for(i=0;i<m;i++)if(strcmp(snum,stu[i].num))break;if(i==m){printf("没有找到该学生的成绩");getchar();return;}printf("找到该学生的成绩,是否删除?(Y/N)");scanf("%s",ch);if(strcmp(ch,"Y")==0||strcmp(ch,"y")==0)/*判断是否要进行删除*/{for(j=i;j<m;j++)stu[j]=stu[j+1];/*将后一个记录移到前一个记录的位置*/m--;/*记录的总个数减1*/printf("删除成功!\n");}if((fp=fopen("data","wb"))==NULL){printf("can not open the file\n");return;}for(j=0;j<m;j++)/*将更改后的记录重新写入指定的磁盘文件中*/if(fwrite(&stu[j] ,LEN,1,fp)!=1){printf("保存失败!\n");getch();}fclose(fp);}11.修改学生成绩函数/*********************自定义修改函数********************/void modify(){FILE *fp;int i,j,m=0;char snum[15];if((fp=fopen("data","ab+"))==NULL){printf("can not open the file\n");return;}while(!feof(fp))  if(fread(&stu[m],LEN,1,fp)==1)m++;if(m==0){printf("没有记录!\n");fclose(fp);return;}printf("请输入你要修改的成绩的学生的学号!\n");scanf("%s",snum);for(i=0;i<m;i++)if(strcmp(snum,stu[i].num))/*检索记录中是否有要修改的信息*/break;if(i<m){printf("找到该学生的成绩!你可以修改该成绩!\n");printf("姓名:");scanf("%s",stu[i].name);/*输入名字*/scanf("%lf",&stu[m].score[0]);/*输入工科数学成绩*/printf("输入大学英语成绩:");scanf("%lf",&stu[m].score[1]);/*输入大学英语成绩*/printf("输入C语言成绩:");scanf("%lf",&stu[m].score[2]);/*输入C语言成绩*/stu[m].sum=stu[m].score[0]+stu[m].score[1]+stu[m].score[2];/*计算出总成绩*/stu[i].ave=stu[i].sum/3.0;}else{printf("没有找到该学生的成绩!");getchar();return;}if((fp=fopen("data","wb"))==NULL){printf("can not open the file\n");return;}for(j=0;j<m;j++)/*将新修改的信息写入指定的磁盘文件中*/if(fwrite(&stu[j] ,LEN,1,fp)!=1){printf("保存失败!");getch();}fclose(fp);}12.功能主菜单函数/******************自定义函数实现菜单功能*************************/void menu(){system("cls");printf("\n\n\n\n\n");printf("\t\t\t|-------------------学生成绩管理系统------------|\n");printf("\t\t\t|\t\t *0  退出                       |\n");printf("\t\t\t|\t\t *1  按学期、班级录入学生成绩   |\n");printf("\t\t\t|\t\t *2  查找学生成绩               |\n");printf("\t\t\t|\t\t *3  删除学生成绩               |\n");printf("\t\t\t|\t\t *4  修改学生成绩               |\n");printf("\t\t\t|\t\t *5  插入学生成绩               |\n");printf("\t\t\t|\t\t *6  学生成绩名次               |\n");printf("\t\t\t|\t\t *7  统计保存的学生人数         |\n");printf("\t\t\t|\t\t *8  用户密码修改               |\n");printf("\t\t\t|\t\t *9  按班级输出学生成绩         |\n");printf("\t\t\t|\t\t *10 显示学生成绩信息           |\n");printf("\t\t\t|\t\t *11 输出不及格学生成绩         |\n");printf("\t\t\t|-----------------------------------------------|\n\n");printf("\t\t\t请选择(0-10):");}13.插入学生成绩函数/****************自定义插入函数*****************/void insert(){FILE *fp;int i,j,k,m=0;char snum[15];if((fp=fopen("data","ab+"))==NULL){printf("can not open the file\n");return;}while(!feof(fp))  if(fread(&stu[m],LEN,1,fp)==1)m++;if(m==0){printf("没有记录!\n");fclose(fp);return;}printf("请输入你要插入的位置!(请输入学号)\n");scanf("%s",snum);/*输入要插入的位置*/for(i=0;i<m;i++)if(strcmp(snum,stu[i].num))break;for(j=m-1;j>i;j--)stu[j+1]=stu[j];/*从最后一条记录开始均向后移一位*/printf("现在请输入新的信息.\n");printf("学号:");scanf("%s",stu[i+1].num);for(k=0;k<m;k++)if(stu[k].num==stu[i+1].num&&k!=i+1){printf("the number is existing,press any to continue!");getch();fclose(fp);return;}printf("姓名:\n");scanf("%s",stu[i+1].name);printf("\n工科数学成绩:");scanf("%lf",&stu[i+1].score[0]);printf("\n大学英语成绩:");scanf("%lf",&stu[i+1].score[1]);printf("\nC语言成绩:");scanf("%lf",&stu[i+1].score[2]);stu[i+1].sum=stu[i+1].score[0]+stu[i+1].score[1]+stu[i+1].score[2];/*计算出总成绩*/stu[i+1].ave=stu[i+1].sum/3.0;if((fp=fopen("data","wb"))==NULL){printf("can not open the file\n");return;}for(k=0;k<=m;k++)if(fwrite(&stu[k] ,LEN,1,fp)!=1)/*将修改后的记录写入磁盘文件中*/{printf("保存失败!");getch();}fclose(fp);}14.统计学生人数/*************统计学生人数************/void total(){FILE *fp;int m=0;if((fp=fopen("data","ab+"))==NULL){         printf("can not open the file\n");return;}while(!feof(fp))  if(fread(&stu[m],LEN,1,fp)==1)m++;/*统计记录个数即学生个数*/if(m==0){printf("没有记录!\n");fclose(fp);return;}printf("该年级有 %d 个学生!\n",m);/*将统计的个数输出*/fclose(fp);}15.查找学生成绩函数/**********************自定义查找函数*********************/void search(){FILE *fp;int i,m=0;char snum[15];char ch[2];if((fp=fopen("data","ab+"))==NULL){printf("can not open the file\n");return;}while(!feof(fp))if(fread(&stu[m],LEN,1,fp)==1)m++;fclose(fp);if(m==0){printf("没有记录!\n");return;}printf("请输入学号:");scanf("%s",snum);for(i=0;i<m;i++)if(strcmp(snum,stu[i].num))/*查找输入的学号是否在记录中*/{printf("找到该学生成绩,是否显示?(y/n)");scanf("%s",ch);if(strcmp(ch,"Y")==0||strcmp(ch,"y")==0){printf(" 学期    专业班级    姓名       学号       工科数学  大学英语  C语言  总分  平均分 \n");printf(FORMAT,DATA);/*将查找出的结果按指定格式输出*/break;}elsereturn;}   if(i==m)printf("没有找到该学生的成绩!\n");/*未找到要查找的信息*/}16.显示某班学生成绩信息函数/*****************按班级输出学生成绩****************/void ShowClassS(){int i,j;char k[15];printf("请输入班级:\n");scanf("%s",k);printf(" 学期    专业班级    姓名       学号       工科数学  大学英语  C语言  总分  平均分 \n");for(i=0;i<R;i++){if(strcmp(k,stu[i].Class)){stu[i].sum=stu[i].score[0]+stu[i].score[1]+stu[i].score[2];stu[i].ave=stu[i].sum/3.0;printf(FORMAT,DATA);//按班级输出学生成绩}}system("pause");system("cls");}17.输出不及格学生成绩单/***********输出不及格学生成绩****************/void ShowFailS(){int i,j;printf("不及格学生名单及成绩:\n\n");printf(" 学期    专业班级    姓名       学号       工科数学  大学英语  C语言  总分  平均分 \n");for(i=0;i<R;i++){for(j=0;j<3;j++){if(stu[i].score[j]<60)                              printf(FORMAT,DATA); /*输出不及格学生名单及成绩*/break;}}}

C语言学生成绩信息管理系统课程设计报告相关推荐

  1. c语言学生成员管理代码报告怎么写,C语言学生通信录管理系统课程设计报告

    <C语言学生通信录管理系统课程设计报告>由会员分享,可在线阅读,更多相关<C语言学生通信录管理系统课程设计报告(18页珍藏版)>请在人人文库网上搜索. 1.实验名称 :学生通信 ...

  2. 【基于SSM+MySQL+Jsp的高校学生成绩信息管理系统的设计与实现 ---(效果+源代码+数据库+获取 ~ ~】

    快速阅读目录 写在前面: (一)效果展示 (1)数据库表一览 (2)部分运行截图 (二)代码展示 (三)说明 写在前面: tips:这是一个基于SSM+MySQL+Jsp等技术的高校学生成绩信息管理系 ...

  3. python学生信息管理系统课程设计报告_学生信息管理系统课程设计报告

    一. 引言(简要说明设计题目的目的.意义.内容.主要任务等) 1 实验目的 在全面掌握< C 语言程序设计>课程的知识点的前提下,培养了我们分析实际问题的能力,并能够自己编写程序 实现对实 ...

  4. C语言课程信息管理系统课程设计,c语言课程设计学生信息管理系统.doc

    c语言课程设计学生信息管理系统 课程设计报告 课程名称: 高级语言程序设计课程设计 姓 名: 汤璞君 班级学号: BX1209 121003410937 指导教师: 吉顺如 完成日期: 2013.6. ...

  5. C语言编写学生成绩信息管理系统

    用C语言设计简单的学生成绩信息管理系统 介绍 代码 结构体数组的定义 home_page() 函数 add_infor() 函数 browse_infor() 函数 find_infor() 函数 m ...

  6. c语言航班管理系统报告,c航班管理系统课程设计报告.doc

    c航班管理系统课程设计报告 北华航天工业学院课程设计报告 PAGE 课程设计报告 报告(论文)题目: 1航班信息查询系统 2迷宫问题 作者所在系部: 计算机科学与工程系 作者所在专业: 计算机科学与技 ...

  7. 任务2 学生成绩信息管理系统

    系列文章 任务2 学生成绩信息管理系统 某班级学生C语言第一次正考的成绩存于数据文件score.txt中,记录了学生学号.姓名和考试成绩,bk.txt文件中记录了补考学生的学号.姓名和补考成绩,编写程 ...

  8. c语言个人通讯录管理系统实验报告_C语言个人通讯录管理系统课程设计报告

    语言程序设计> C <课程设计报告 _________:__________C 设计题目语言个人通讯录管理系统 摘要 本次课程设计地题目为个人通讯录管理系统, 要求将程序中所输入地联系人姓 ...

  9. C语言学生学籍信息管理系统源码附赠实验报告

    一.课程设计目标 C语言课程设计的目的是通过课程设计的综合训练,培养学生实际分析问题.编程和动手能力,最终目标是通过这种形式,帮助学生系统掌握该门课程的主要内容,更好地完成教学任务.本课程设计具有如下 ...

最新文章

  1. 架构设计的本质:系统与子系统、模块与组件、框架与架构
  2. 为什么很难训练深度神经网络?
  3. ubuntu下 mysql数据 自执行备份
  4. 【数据平台】pandas按条件去重
  5. 22. loacte命令
  6. qlineedit文本改变时_PyQt5 QLineEdit(单行编辑器) 学习
  7. [matlab]斜阶梯式长条引起的重力异常计算
  8. 区块链技术的发展趋势
  9. linux 镜像 多 网络,Linux内核实现多路镜像流量聚合和复制的方法
  10. 几种分页方法效率比较
  11. Spark Streaming三种运行场景
  12. 有了net send,谁还用IM?
  13. 计算机专业有必要考软考吗,软考初级程序员有用吗_有必要考吗_上学吧
  14. et文件丢失怎么恢复?5种恢复方法轻松掌握
  15. python机器学习分析影响房价的主要因素
  16. 如何关闭FileZilla Server开机自启
  17. 2020年chx的计算机保研之路系列(2)——华东师范大学计算机学院(获得优营)
  18. IDEA查看jks文件
  19. 2011移动开发者大会亮点之二:七大论坛神秘嘉宾闪亮登场!
  20. 订阅者java_发布者订阅者模式之JAVA实现

热门文章

  1. 1.16. BIP39协议:使用助记词生成确定性钱包
  2. 2021年5月11日19:50:56 学习 真的很难吗?
  3. 绘画教程:日式温泉场景怎么画?露天浴场的正确画法!
  4. UI自动化框架 基于selenium+pytest和PO分层思想
  5. shp数据中文乱码的一种恢复方法
  6. 学人工智能以后从事什么工作?这6大就业方向前景广阔
  7. 实验7-3-3 统计大写辅音字母(15 分)
  8. 嵌入式:Altium Designer18提升速度的操作(画开发板笔记)
  9. mongoTemplate结合Criteria实现分页、模糊、二级嵌套和时间范围查询等
  10. IP与MAC绑定的难题