学生数据由学号、姓名、班级、三门课(数学、英语、计算机)的成绩和平均成绩构成。

功能要求:

(1)添加学生的记录

(2)查询学生记录(分别按学号和姓名)

(3)对学生数据排序(分别按平均成绩和计算机成绩的降序)

(4)删除学生记录

(5)修改学生记录

(6)班级成绩分析(各科平均成绩、最高分、最低分、及格率)

(7)输出学生信息表

list.h

#ifndef list_h
#define list_h#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<math.h>typedef struct nNode Node;
struct nNode
{// 向上指针Node* nUp;// 向下指针Node* nDown;// 学号int iId;// 班级char* pcClass;// 姓名char* pcName;// 数学float fMath;// 英语float fEng;// 计算机float fCmp;// 平均分float fAver;
};typedef struct
{Node* nTop;Node* nBottom;int iSize;
} List;// 新建节点
Node* Node_new(int iId, char* pcClass, char* pcName, float fMath, float acEng, float acCmp);
// 删除节点
void Node_delete(Node* nNode);
// 新建链表
List* List_new(void);
// 删除链表
void List_delete(List* lList);
// 节点从链表顶部加入
void List_pushTop(List* lList, Node* nNewNode);
// 节点从链表顶部取出
Node* List_popTop(List* lList);
// 节点从链表底部加入
void List_pushBottom(List* lList, Node* nNewNode);
// 节点从链表底部取出
Node* List_popBottom(List* lList);
// 节点从链表指定位置插入
void List_insert(List* lList, Node* nNewNode, int iIndex);
// 从链表中移除指定节点
void List_remove(List* lList, Node* nOldNode);
// 这个节点在链表是第几个节点
int getIndex(List* lList, Node* nOldNode);
// 按平均分排序
void List_sortByAver(List* lList);
// 按计算机成绩排序
void List_sortByCmp(List* lList);
// 按学号输出
void List_printById(List* lList);
// 按姓名输出
void List_printByName(List* lList);#endif // list_h

list.c

#include"list.h"// 新建节点
Node* Node_new(int iId, char* pcClass, char* pcName, float fMath, float fEng, float fCmp)
{int iSize;Node* nNode = (Node*)malloc(sizeof(Node));// 设置向上指针nNode->nUp = NULL;// 设置向下指针nNode->nDown = NULL;// 设置学号nNode->iId = iId;// 设置班级if(pcClass != NULL)iSize = strlen(pcClass);elseiSize = 0;if(iSize != 0){nNode->pcClass = (char*)malloc(sizeof(char)*(iSize) + 1);strcpy(nNode->pcClass, pcClass);nNode->pcClass[iSize] = '\0';}// 设置姓名if(pcName != NULL)iSize = strlen(pcName);elseiSize = 0;if(iSize != 0){nNode->pcName = (char*)malloc(sizeof(char)*(iSize) + 1);strcpy(nNode->pcName, pcName);nNode->pcName[iSize] = '\0';}// 设置数学成绩nNode->fMath = fMath;// 设置英语成绩nNode->fEng = fEng;// 设置计算机成绩nNode->fCmp = fCmp;// 设置平均成绩nNode->fAver = (fMath + fEng + fCmp)/3.0;return nNode;
}// 删除节点
void Node_delete(Node* nNode)
{// 释放字符串空间free(nNode->pcClass);free(nNode->pcName);// 释放节点空间free(nNode);
}// 新建链表
List* List_new(void)
{// 新建链表数据List* lList = (List*)malloc(sizeof(List));// 链表节点个数初始化为 0lList->iSize = 0;// 新建顶部节点,顶部节点是空节点lList->nTop = Node_new(0, "", "", 0.0, 0.0, 0.0);// 新建底部节点,底部节点也是空节点,这样写容易组织代码lList->nBottom = Node_new(0, "", "", 0.0, 0.0, 0.0);// 顶部节点的 nDown 指针连接到底部节点lList->nTop->nDown = lList->nBottom;// 底部节点的 nUp    指针连接到顶部节点lList->nBottom->nUp = lList->nTop;return lList;
}// 删除链表
void List_delete(List* lList)
{Node* nNode;// 逐个删除中间的节点for(; lList->iSize>0; ){// 获取顶部节点的下一个节点nNode = lList->nTop->nDown;// 顶部节点的 nDown 指针连接到顶部节点的下下节点lList->nTop->nDown = lList->nTop->nDown->nDown;// 删除节点Node_delete(nNode);// 节点个数减 1lList->iSize --;}// 删除顶部节点if(lList->nTop != NULL)Node_delete(lList->nTop);// 删除底部节点if(lList->nBottom != NULL)Node_delete(lList->nBottom);// 删除链表数据free(lList);
}// 节点从链表顶部加入
void List_pushTop(List* lList, Node* nNewNode)
{// 新节点 nUp 指针连接到链表顶部节点nNewNode->nUp = lList->nTop;// 新节点 nDown 指针连接到链表顶部节点的下一节点nNewNode->nDown = lList->nTop->nDown;// 链表顶部节点的下一节点 nUp 指针连接到新节点lList->nTop->nDown->nUp = nNewNode;// 链表顶部节点 nDown 指针连接到新节点lList->nTop->nDown = nNewNode;// 节点个数加 1lList->iSize ++;
}// 节点从链表顶部取出
Node* List_popTop(List* lList)
{// 备份将要取出的节点Node* nNode = lList->nTop->nDown;if(lList->iSize > 0){// 链表顶部节点下下节点的 nUp 指针连接到链表顶部节点lList->nTop->nDown->nDown->nUp = lList->nTop;// 链表顶部节点的 nDown 指针连接到下下节点lList->nTop->nDown= lList->nTop->nDown->nDown;nNode->nUp = NULL;nNode->nDown = NULL;// 节点个数减 1lList->iSize --;}elseprintf("%s\n", "List_popTop() 函数报错,此链表是空的,没有节点可取出。");return nNode;
}// 节点从链表底部加入
void List_pushBottom(List* lList, Node* nNewNode)
{// 新节点 nDown 指针连接到链表底部节点nNewNode->nDown = lList->nBottom;// 新节点 nUp 指针连接到链表底部节点的上一节点nNewNode->nUp = lList->nBottom->nUp;// 链表底部节点的上一节点 nDown 指针连接到新节点lList->nBottom->nUp->nDown = nNewNode;// 链表底部节点 nUp 指针连接到新节点lList->nBottom->nUp = nNewNode;// 节点个数加 1lList->iSize ++;
}// 节点从链表底部取出
Node* List_popBottom(List* lList)
{// 备份将要取出的节点Node* nNode = lList->nBottom->nUp;if(lList->iSize > 0){// 链表底部节点上上节点的 nDown 指针连接到链表底部节点lList->nBottom->nUp->nUp->nDown = lList->nBottom;// 链表底部节点的 nUp 指针连接到上上节点lList->nBottom->nUp = lList->nBottom->nUp->nUp;nNode->nUp = NULL;nNode->nDown = NULL;// 节点个数减 1lList->iSize --;}elseprintf("%s\n", "List_popBottom() 函数报错,此链表是空的,没有节点可取出。");return nNode;
}// 节点从链表指定位置插入
void List_insert(List* lList, Node* nNewNode, int iIndex)
{Node* nOldNode = lList->nTop->nDown;int i;for(i=0; i<iIndex; i++)nOldNode = nOldNode ->nDown;// 把 nNewNode 节点插到 nOldNode 节点上面nNewNode->nUp = nOldNode->nUp;nNewNode->nDown = nOldNode;nOldNode->nUp->nDown = nNewNode;nOldNode->nUp = nNewNode;// 节点个数加 1lList->iSize ++;
}// 从链表中移除指定节点
void List_remove(List* lList, Node* nOldNode)
{// 断开 nOldNode节点的前后链接nOldNode->nUp->nDown = nOldNode->nDown;nOldNode->nDown->nUp = nOldNode->nUp;// 节点个数减 1lList->iSize --;
}// 这个节点在链表是第几个节点
int getIndex(List* lList, Node* nOldNode)
{int i, iSize = lList->iSize;Node* nNode = lList->nTop;for(i=0; i<iSize ; i++){nNode = nNode->nDown;if(nOldNode == nNode)return i;}return -1;
}// 按平均分排序
void List_sortByAver(List* lList)
{Node* nNode = NULL;Node* nMaxNode = NULL;int i, j, iSize = lList->iSize;float fMax;for(i=0; i<iSize; i++){fMax = 0.0;nNode = lList->nTop;for(j=iSize-i; j>0; j--){nNode = nNode->nDown;if(nNode->fAver > fMax){fMax = nNode->fAver;nMaxNode = nNode;}}// 把最高平均分节点移除List_remove(lList, nMaxNode);// 把最高平均分节从链表底部加入List_pushBottom(lList, nMaxNode);}
}// 按计算机成绩排序
void List_sortByCmp(List* lList)
{Node* nNode = NULL;Node* nMaxNode = NULL;int i, j, iSize = lList->iSize;float fMax;for(i=0; i<iSize; i++){fMax = 0.0;nNode = lList->nTop;for(j=iSize-i; j>0; j--){nNode = nNode->nDown;if(nNode->fCmp > fMax){fMax = nNode->fCmp;nMaxNode = nNode;}}// 把最高计算机分节点移除List_remove(lList, nMaxNode);// 把最高计算机分节从链表底部加入List_pushBottom(lList, nMaxNode);}
}// 按学号输出
void List_printById(List* lList)
{int iId;for(; ;){printf("%s\n", "请输入学号,如果要退出,请输入 0:");scanf("%d", &iId);// 如果输入的是 0 退出循环if(iId == 0)return;// 得到顶部节点指针Node* nNode = lList->nTop;int i, iSize = lList->iSize;for(i=0; i<iSize; i++){nNode = nNode->nDown;if(nNode->iId == iId){// 输出学号printf("学号:%d\t", nNode->iId);// 输出班级printf("班级:%s\t", nNode->pcClass);// 输出姓名printf("姓名:%s\t", nNode->pcName);// 输出数学成绩printf("数学:%.1f\t", nNode->fMath);// 输出英语成绩printf("英语:%.1f\t", nNode->fEng);// 输出计算机成绩printf("计算机:%.1f\t", nNode->fCmp);// 输出平均成绩printf("平均分:%.2f\n", nNode->fAver);return;}}printf("%s\n", "没有此学生的记录,请重新输入:");}
}// 按姓名输出
void List_printByName(List* lList)
{char acName[32];
name:printf("%s\n", "请输入姓名,如果要退出,请输入 NULL:");scanf("%s", &acName[0]);// 如果输入的是 NULL 退出循环if((acName[0] == 'N') && (acName[1] == 'U') && (acName[2] == 'L') && (acName[3] == 'L'))return;// 得到顶部节点指针Node* nNode = lList->nTop;int i, iSize = lList->iSize;for(i=0; i<iSize; i++){nNode = nNode->nDown;if(strCmp(nNode->pcName, acName)){// 输出学号printf("学号:%d\t", nNode->iId);// 输出班级printf("班级:%s\t", nNode->pcClass);// 输出姓名printf("姓名:%s\t", nNode->pcName);// 输出数学成绩printf("数学:%.1f\t", nNode->fMath);// 输出英语成绩printf("英语:%.1f\t", nNode->fEng);// 输出计算机成绩printf("计算机:%.1f\t", nNode->fCmp);// 输出平均成绩printf("平均分:%.2f\n", nNode->fAver);return;}}printf("%s\n", "没有此学生的记录,请重新输入:");goto name;
}

oper.h

#ifndef oper_h
#define oper_h#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<math.h>
#include"list.h"// 菜单函数
int menu(char* acOptions);
// 字符串比较
_Bool strCmp(char* acStrA, char* acStrB);
// 添加记录
void addRec(List* lList);
// 查询记录
void srchRec(List* lList);
// 排序记录
void sortRec(List* lList);
// 删除记录
void delRec(List* lList);
// 修改记录
void modRec(List* lList);
// 分析记录
void analRec(List* lList, float fPassLine);
// 输出记录
void oputRec(List* lList);#endif // oper_h

oper.c

#include"oper.h"// 菜单函数
int menu(char* acOptions)
{int iNum;printf("%s\n", acOptions);scanf("%d", &iNum);return iNum;
}// 字符串比较
_Bool strCmp(char* acStrA, char* acStrB)
{int i;for(i=0; ; i++){if(acStrA[i] != acStrB[i])return 0;else if((acStrA[i] == '\0') && (acStrB[i] == '\0'))return 1;}
}// 添加记录
void addRec(List* lList)
{char acClass[32], acName[32];int  iId = 0;float fMath = 0.0, fEng = 0.0, fCmp = 0.0;Node* nNode = NULL;for(; ;){printf("%s\n", "请输入学号,如果输入完成,请输入 0:");scanf("%d", &iId);// 如果输入的是 0 退出循环if(iId == 0)return;printf("%s\n", "请输入班级:");scanf("%s", &acClass);printf("%s\n", "请输入姓名:");scanf("%s", &acName);printf("%s\n", "请输入数学成绩:");scanf("%f", &fMath);printf("%s\n", "请输入英语成绩:");scanf("%f", &fEng);printf("%s\n", "请输入计算机成绩:");scanf("%f", &fCmp);// 新建节点nNode = Node_new(iId, acClass, acName, fMath, fEng, fCmp);// 节点从底部加入链表List_pushBottom(lList, nNode);}
}// 查询记录
void srchRec(List* lList)
{int iMenu = 0;for(; ;){iMenu = menu("**************************************************************************\n1------按学号查询 2------按姓名查询 3------退出查询\n**************************************************************************\n请输入选项所对应的数字:\n");switch (iMenu){case 1:List_printById(lList);break;case 2:List_printByName(lList);break;case 3:// 退出查询return;default:printf("%s\n", "您输入的选项不存在,请重新输入。");}}
}// 排序记录
void sortRec(List* lList)
{int iMenu = 0;for(; ;){iMenu = menu("**************************************************************************\n1------按平均成绩排序 2------按计算机成绩排序  3------退出排序\n**************************************************************************\n请输入选项所对应的数字:\n");switch (iMenu){case 1:List_sortByAver(lList);printf("%s\n", "按平均成绩排序完成。");oputRec(lList);break;case 2:List_sortByCmp(lList);printf("%s\n", "按计算机成绩排序完成。");oputRec(lList);break;case 3:// 退出排序return;default:printf("%s\n", "您输入的选项不存在,请重新输入。");}}
}// 删除记录
void delRec(List* lList)
{char acName[32];int i, iSize;Node* nNode = NULL;for(; ;){printf("%s\n", "请输入要删除学生的姓名,如果要退出删除,请输入 NULL:");scanf("%s", &acName[0]);// 如果输入的是 NULL 退出函数if((acName[0] == 'N') && (acName[1] == 'U') && (acName[2] == 'L') && (acName[3] == 'L'))return;// 获取链表节点总数iSize = lList->iSize;// 获取顶部节点指针nNode = lList->nTop;for(i=0; i<iSize; i++){nNode = nNode->nDown;if(strCmp(nNode->pcName, acName)){// 从链表中移除此节点List_remove(lList, nNode);Node_delete(nNode);printf("%s\n", "此学生记录已删除。");return;}}printf("%s\n", "没有此学生的记录,请重新输入:");}
}// 修改记录
void modRec(List* lList)
{int i, iId = 0;int iSize;Node* nNode = NULL;// 先查询有没有此学生信息for(; ;){printf("%s\n", "请输入学号,如果要退出修改,请输入 0:");scanf("%d", &iId);// 如果输入的是 0 退出函数if(iId == 0)return;// 获取链表中节点总数iSize = lList->iSize;// 获取顶部节点指针nNode = lList->nTop;for(i=0; i<iSize; i++){nNode = nNode->nDown;if(nNode->iId == iId)break;}if(nNode->iId == iId)break;elseprintf("%s\n", "没有此学生的记录,请重新输入:");}// 修改此学生信息char acClass[32], acName[32];float fMath = 0.0, fEng = 0.0, fCmp = 0.0;for(; ;){int iMenu = menu("**************************************************************************\n1------修改姓名 2------修改班级 3------修改数学成绩 4------修改英语成绩 5------修改计算机成绩 6------退出修改\n**************************************************************************\n请输入选项所对应的数字:\n");switch (iMenu){case 1:printf("%s\n", "请输入姓名:");scanf("%s", &acName);iSize = strlen(acName);free(nNode->pcName);nNode->pcName = (char*)malloc(sizeof(char)*(iSize) + 1);strcpy(nNode->pcName, acName);nNode->pcName[iSize] = '\0';break;case 2:printf("%s\n", "请输入班级:");scanf("%s", &acClass);iSize = strlen(acClass);free(nNode->pcClass);nNode->pcClass = (char*)malloc(sizeof(char)*(iSize) + 1);strcpy(nNode->pcClass, acClass);nNode->pcClass[iSize] = '\0';break;case 3:printf("%s\n", "请输入数学成绩:");scanf("%f", &fMath);nNode->fMath = fMath;nNode->fAver = (nNode->fMath + nNode->fEng + nNode->fCmp)/3.0;break;case 4:printf("%s\n", "请输入英语成绩:");scanf("%f", &fEng);nNode->fEng = fEng;nNode->fAver = (nNode->fMath + nNode->fEng + nNode->fCmp)/3.0;break;case 5:printf("%s\n", "请输入计算机成绩:");scanf("%f", &fCmp);nNode->fCmp = fCmp;nNode->fAver = (nNode->fMath + nNode->fEng + nNode->fCmp)/3.0;break;case 6:return;default:printf("%s\n", "您输入的选项不存在,请重新输入。");}}
}// 分析记录
void analRec(List* lList, float fPassLine)
{float fMathAver = 0.0, fEngAver = 0.0, fCmpAver = 0.0,/*各科平均分*/fMathMax = 0.0, fEngMax = 0.0, fCmpMax = 0.0,/*各科最高分*/fMathMin = 1000.0, fEngMin = 1000.0, fCmpMin = 1000.0,/*各科最低分*/fMathPassRate = 0.0, fEngPassRate = 0.0, fCmpPassRate = 0.0;/*各科及格率*/int i, iSize = lList->iSize;// 得到顶部节点指针Node* nNode = lList->nTop;for(i=0; i<iSize; i++){nNode = nNode->nDown;// 各科平均分fMathAver = (fMathAver*i + nNode->fMath)/(i + 1);fEngAver = (fEngAver*i + nNode->fEng)/(i + 1);fCmpAver = (fCmpAver*i + nNode->fCmp)/(i + 1);// 各科最高分if(nNode->fMath > fMathMax) fMathMax = nNode->fMath;if(nNode->fEng > fEngMax) fEngMax = nNode->fEng;if(nNode->fCmp > fCmpMax) fCmpMax = nNode->fCmp;// 各科最低分if(nNode->fMath < fMathMin) fMathMin = nNode->fMath;if(nNode->fEng < fEngMin) fEngMin = nNode->fEng;if(nNode->fCmp < fCmpMin) fCmpMin = nNode->fCmp;// 各科及格率fMathPassRate = (nNode->fMath >= fPassLine) ? ((fMathPassRate*i + 1.0)/(i + 1)) : (fMathPassRate*i/(i + 1));fEngPassRate = (nNode->fEng >= fPassLine) ? ((fEngPassRate*i + 1.0)/(i + 1)) : (fEngPassRate*i/(i + 1));fCmpPassRate = (nNode->fCmp >= fPassLine) ? ((fCmpPassRate*i + 1.0)/(i + 1)) : (fCmpPassRate*i/(i + 1));}printf("数学平均分:%.4f\t最高分:%.1f\t最低分:%.1f\t及格率:%.2f", fMathAver, fMathMax, fMathMin, fMathPassRate*100.0);printf("%s", "%\n");printf("英语平均分:%.4f\t最高分:%.1f\t最低分:%.1f\t及格率:%.2f", fEngAver, fEngMax, fEngMin, fEngPassRate*100.0);printf("%s", "%\n");printf("计算机平均分:%.4f\t最高分:%.1f\t最低分:%.1f\t及格率:%.2f", fCmpAver, fCmpMax, fCmpMin, fCmpPassRate*100.0);printf("%s", "%\n");
}// 输出记录
void oputRec(List* lList)
{// 得到顶部节点指针Node* nNode = lList->nTop;int i, iSize = lList->iSize;if(iSize <= 0)printf("%s\n", "没有任何学生成绩信息,请重新选择。");elseprintf("%s\n", "以下是学生成绩信息表:");for(i=0; i<iSize; i++){nNode = nNode->nDown;// 输出学号printf("学号:%d\t", nNode->iId);// 输出班级printf("班级:%s\t", nNode->pcClass);// 输出姓名printf("姓名:%s\t", nNode->pcName);// 输出数学成绩printf("数学:%.1f\t", nNode->fMath);// 输出英语成绩printf("英语:%.1f\t", nNode->fEng);// 输出计算机成绩printf("计算机:%.1f\t", nNode->fCmp);// 输出平均成绩printf("平均分:%.2f\n", nNode->fAver);}
}

main.c

#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<math.h>
#include"list.h"
#include"oper.h"int main(void)
{// 创建链表List* lList = List_new();int iMenu = 0;for(; ;){iMenu = menu("**************************************************************************\n\
1------添加记录 2------查询记录 3------排序记录 4------删除记录\n\
5------修改记录 6------分析记录 7------输出记录 8------退出系统\n\
**************************************************************************\n\
请输入选项所对应的数字:\n");switch (iMenu){case 1:// 添加记录addRec(lList);break;case 2:// 查询记录srchRec(lList);break;case 3:// 排序记录sortRec(lList);break;case 4:// 删除记录delRec(lList);break;case 5:// 修改记录modRec(lList);break;case 6:// 分析记录 60.0 是及格线analRec(lList, 60.0);break;case 7:// 输出记录oputRec(lList);break;case 8:// 删除链表List_delete(lList);// 退出系统return 0;default:printf("%s\n", "您输入的选项不存在,请重新输入。");}}// 删除链表List_delete(lList);return 0;
}

【C语言课程设计】【C语言】学生成绩管理系统相关推荐

  1. (MFC)广州大学大一下课程设计实验报告-学生成绩管理系统

    程序设计 课程设计实验报告 学院: 计算机科学与网络工程学院 专业班级: XXX 姓名: XXX 学号: 190XXXXXXX 指导老师:张艳玲 2020.6.29 目录 一.课程设计题目及内容 二. ...

  2. ♥数据库课程设计之《学生成绩管理系统》♥

    0.写在前面 展示的是很常规的<学生成绩管理系统>,但是可修改为任何管理系统,只需要改些字段即可,具备java基础即可 简单的增删改查均可实现,本来很简单的几页文档就能交了,老师非得让详细 ...

  3. c语言学生考勤系统课设报告,C语言课程设计总结报告学生考勤系统设计

    C语言课程设计总结报告学生考勤系统设计 C语言程序设计课程设计报告设计题目:学生考勤系统设计专 业 自 动 化 班 级 自 动 化 071 学 生 朱 胜 佳 指导教师 梁 德 胜 2008 年 春季 ...

  4. 用链表c语言程序设计,C语言程序设计-基于链表的学生成绩管理系统

    <C语言程序设计-基于链表的学生成绩管理系统>由会员分享,可在线阅读,更多相关<C语言程序设计-基于链表的学生成绩管理系统(18页珍藏版)>请在人人文库网上搜索. 1.华北科技 ...

  5. c语言用链表实现成绩管理系统,C语言基于单链表得学生成绩管理系统

    前言 传说中讲课通俗而不庸俗,说话风流而不下流的小编又来了哦,今天的主要内容是:C语言基于单链表得学生成绩管理系统.首先给年夜家总结下为什么你们学习C语言会觉得难,尤其是对单链表这块,主要原因得是因为 ...

  6. C语言程序设计会员计费系统,C语言课程设计酒店房间登记与计费管理系统总结报告...

    <C语言课程设计酒店房间登记与计费管理系统总结报告>由会员分享,可在线阅读,更多相关<C语言课程设计酒店房间登记与计费管理系统总结报告(19页珍藏版)>请在人人文库网上搜索. ...

  7. 订单管理系统c语言课程设计,C语言课程设计订单管理系统资料.doc

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

  8. c语言程序设计 链表,c语言程序设计基于链表的学生成绩管理系统.doc

    c语言程序设计基于链表的学生成绩管理系统 华北科技学院计算机系综合性实验报告 PAGE 第 PAGE 10 页 华北科技学院计算机系综合性实验 实 验 报 告 课程名称 C语言程序设计 实验学期 20 ...

  9. 湖北汽车工业学院c语言程序设计 汽车零部件采购管理程序,湖北汽车工业学院c语言课程设计实验报告(采购信息管理系统).docx...

    湖北汽车工业学院c语言课程设计实验报告(采购信息管理系统) C语言课程设计 商品销售信息管理系统 #include #include #include #include structproduct// ...

  10. c语言程序课程设计投票程序,C语言课程设计--C语言投票程序.doc

    C语言课程设计--C语言投票程序 C程序设计实习报告 题目:C语言投票程序 学 院: 专 业: 姓 名: 班级学号 指导教师: 2010 年 07 月 17 日 目录 一.课程设计题目描述与要求--- ...

最新文章

  1. 拓展ARM研发进展与玩家
  2. Caused by: org.apache.flink.core.fs.UnsupportedFileSystemSchemeException: Could not find a file syst
  3. operator.itermgetter() (Python)
  4. C++中关于配置文件的问题
  5. 【leetcode77】Single Number
  6. Linux中一些 不是很常用的配置修改
  7. Freelancer.com(原GAF – GetAFreelancer)帐户里的钱如何取出?
  8. 常用的linux命令20条,Linux常用的20条命令
  9. eigrp配置实验_【实验】思科与华为的差别——路由的优选
  10. Android TextView 45°倾斜效果
  11. JavaScript比较是否在某时间段内
  12. 图卷积网络(Graph Convolutional Network)
  13. 黑客攻防技巧:2分钟入侵网站全程实录
  14. dll修复工具哪个好?靠谱dll修复助手
  15. 不用爬虫也可以轻松获取 unsplash 图片
  16. IT售前工程师需要掌握哪些技术
  17. python模块化 面向对象,Python学习记录4-面向对象,,OOP思想以模块化思
  18. 抖音CLICKID+淘宝Relaitionid回传淘积木APP内下单--转化归因联调ROI程序算法及代码技术实现
  19. 多线程——问题引出以及解决方法
  20. 从苹果、SpaceX等高科技企业的产品发布会看企业产品战略和敏捷开发的关系

热门文章

  1. PLC与变频器联机需要注意什么
  2. 英语总结——木桶原理
  3. 省份、城市、区域 选择功能模块
  4. java 海报一: 如何合成海报并保存本地
  5. 人工智能趋势与深度学习算法
  6. 《中国芯片往事》的破局与诞生
  7. wps数据库三线表怎么做_WPS文档三线表怎么做?
  8. HTML中常用的特殊字符
  9. 一篇文章入门Word2Vec
  10. java+web+打印条形码_javaweb条形码产生、打印、扫描