




已阅读5页,还剩49页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
华中科技大学计算机科学与技术学院C语言程序设计课程设计基础部分任务书年 级:2014级专 业:计算机科学与技术班 级:计科201408班指导教师:王多强时 间:2015年6月18日一、题目及选题规定1题目设置 三题,选做其一:(1)学生成绩信息管理系统(2)教师教学信息管理系统(3)教室排课信息管理系统二、设计说明(一)学生成绩信息管理系统1. 需要处理的基础数据对计算机学院1-4年级各班学生成绩信息进行管理。主要包括:班级信息、学生基本信息、学生课程成绩基本信息三类信息。一个年级包含多个班级,一个班级包含多个学生,一个学生有多门课程成绩信息。(1) 班级信息(仅供参考,不限于以下设计):中文字段名类型及长度举例班级编号char10EE201401班导师char20王多强联系电话char15189xxxxxxxx(2) 学生基本信息(仅供参考,不限于以下设计):中文字段名类型及长度举例班级编号char10EE201401学号char12U201412345姓名char20张三性别charm /m:表示男 f:表示女已修课程学分float44.5 / 本项及后两项不需录入已获学分float39.0 / 而是计算后填入加权平均分float78.33 / 保留两位小数(3) 学生课程成绩基本信息(仅供参考,不限于以下设计):中文字段名类型及长度举例学号char12U201412345课程名char30C语言程序设计开课学期int1 / 1-8学期学时数int88学分float5.5考试成绩int56补考成绩int65附加说明:设计时,也可以考虑将学生课程成绩基本信息表中与课程相关的信息,如课程名、开课学期、学时数、学分,另外保存到数据文件courseinfo.txt,程序执行时将该文件中的课程相关信息加载到一个链表(或数组),供数据维护、数据查询和数据统计时使用。如果采用这种设计,学生课程成绩基本信息表中可只保留课程名称,而开课学期、学时数、学分这些项不用在本表录入。2. 系统基本功能1) 数据维护本模块实现班级信息、学生基本信息、学生课程成绩基本信息等三方面信息的数据维护功能,又分为三个子模块。(1)班级信息维护包括对班级信息的录入、修改和删除等功能。(2)学生基本信息维护包括对学生基本信息的录入、修改和删除等功能。(3)学生课程成绩基本信息维护包括对学生课程成绩基本信息的录入、修改和删除等功能。2) 数据查询本模块实现班级信息、学生基本信息、学生课程成绩基本信息等三方面信息的数据查询功能,又分为三个子模块。(1)班级信息查询实现两个功能。 以班级编号为条件来查找并显示满足条件的班级信息。例如,查找并显示班级编号为“EE201401”的班级信息。 以班导师为条件来查找并显示满足条件的班级信息。例如,查找并显示班导师为“王多强”的班级信息。(2)学生基本信息查询实现两个功能。 以学号为条件查找并显示满足条件的学生基本信息。例如,查找并显示学号为“U201412345”的学生基本信息。 以已修课程学分、已获学分和加权平均分为条件,查找并显示满足条件的学生基本信息。例如,查找并显示已修课程学分大于60、已获学分大于50、加权平均分大于60且小于80的所有学生基本信息。(3)学生课程成绩基本信息查询实现两个功能。 以学号和课程名为条件查找并显示满足条件的学生课程成绩基本信息。例如,查找并显示学号为“U201412345”且课程名为“C语言程序设计”的学生课程成绩基本信息。 以开课学期和考试成绩为条件查找并显示满足条件的学生课程成绩基本信息。例如,查找并显示开课学期为1且考试成绩小于60的所有学生课程成绩基本信息。3) 数据统计本模块实现五个方面的数据统计功能,前四个功能需求已给出,第五个自行设计。(1) 按班级统计各班男生和女生数、不及格人数、不及格比例、班级平均加权平均分(全体学生的加权平均分之和除以班级人数),按班级平均加权平均分降序排序后输出统计结果。(输出样式仅供参考,不限于以下设计)班级男生人数女生人数不及格人数不及格比例平均加权平均分EE20140127313.33%85.69IOT20140228127.00%84.32(2)以输入的班级编号和学期(1-8)为条件,统计该班这一学期内各位学生各门课程的考试成绩,按所有课程平均成绩降序排序后,输出名次、姓名、课程1、课程2、平均成绩等统计结果。班级:EE201401 学期:1 (输出样式仅供参考,不限于以下设计)名次用户名课程1课程2平均成绩1张三988992.32李四929491.8(3)按课程统计各分数段人数,计算该课程平均分和及格率,按及格率降序排序后,输出课程名称、90, 100人数、80, 90)人数、60, 80)人数、0, 60)人数、平均分、及格率等统计结果。(输出样式仅供参考,不限于以下设计)课程90-10080-8960-790-59平均分及格率C语言程序设计772161631283.797.44%综合英语(一)832121591482.397.01%(4)按学期统计1-8学期开课门数、总学时数、总学分数、不及格人数。(输出样式仅供参考,不限于以下设计)学期开课门数总学时数总学分数不及格人数第1学期1045028.5123第2学期1252232.5166第8学期52641861(5)有关学生成绩其他方面的数据统计。自行设计至少一项统计功能。3. 数据结构说明及举例数据结构可以采用三个方向的十字链表(图1)或两个方向的十字链表(图2)来处理,相应的难度系数有所不同。图1 学生成绩信息管理系统三个方向的十字交叉链表图2 学生成绩信息管理系统两个方向的十字交叉链表三、难度选择的规定1. 数据结构选三个方向的十字交叉链表数据结构的难度系数为1;选二个方向十字交叉链表数据结构的难度系数为0.85。2. 界面采用文本菜单界面的难度系数为1;采用简易菜单的难度系数为0.75;采用MFC等生成菜单难度系数为0.50(有特殊设计的除外)。请每个同学根据实际掌握程度和能力选择相应难度系数的题,要求独立完成。 注:难度系数的影响是,计算综合成绩时,相应项目分值乘以难度系数后再计入总评分数。四、要求1. 只能使用C语言来实现,源程序要有适当的注释,使程序容易阅读。2以上设计说明中列出的内容,仅作为实际工作的参考。可以在此基础上补充完善,但至少完成设计说明中提出的功能,要保证有足够的工作量和完成质量。3. 要有用户界面。要求至少采用简易菜单;鼓励采用文本菜单界面甚至采用图形菜单界面。4. 必须使用结构和十字交叉链表等数据结构。5. 使用文件保存数据。6. 至少输出一份报表(屏幕输出即可),鼓励自行增加新功能。7. 写课程设计报告(要求打印,A4幅面),内容格式见附件C语言课程设计报告_模板。8. 凡发现抄袭,抄袭者与被抄袭者皆以零分计入本课程设计成绩并向学院报告。凡发现实验报告或源程序雷同,涉及的全部人员皆以零分计入本课程设计成绩并向学院报告。五、参考书目C语言实验与课程设计六、评分标准(百分制,难度系数为1)课程设计的评分分三个部分:1. 上机演示占40%(40分)其中功能演示占本部分的70%(28分),回答问题占本部分的30%(12分)。2. 课程设计报告占40%(40分)其中报告占本部分的70%(28分),源程序清单占本部分的30%(12分,程序要有注释,编程风格要好)。3. 程序结构和风格占20%(20分)其中数据结构(如是否用十字交叉链表)以及代码的简洁性占本部分的50%(10分),程序注释占本部分的50%(10分)。七、如何做?1需求分析对你选做的课题,结合现实之中的应用认真思考,从中总结出该系统要管理什么数据、怎么管、提供什么功能为使用者使用、实现方法和技术等相关问题,形成需求分析报告。需求分析是后续设计的重要依据。2数据结构设计 对系统管理的数据对象进行认真研究,得出其属性和组织结构,根据设计说明中的说明,利用结构和十字链表设计其数据结构及保存的文件格式。3功能设计 对系统功能进行认真分析,参照设计说明,设计出相应的功能模块。画出系统模块结构图和各功能模块的流程图,特别要明确数据在各个模块中是怎么被使用的,以及数据在各模块之间是怎么交流变换的。4熟悉菜单界面 参考C语言实验与课程设计,着重分析文本菜单界面结构和应用接口,以便于把你设计的功能加入到系统框架中。5软件按开发 暑假期间完成,在前期准备工作完成比较好的前提下,软件开发工作量预计2-3周,各人安排好时间。开学第一周即开始检查。6书写报告 务必按照格式规范的要求认真书写报告。课程设计报告中要反映出你的实际工作,包括:需求分析、功能模块设计、数据结构设计、开发技术描述、成果展示等。在软件按时完成的前提下,报告书写时间大约2周。(1)在描述设计内容时,要给出一定的设计依据,说明为什么设计此项功能,并详细介绍如何设计该功能的,用文字、流程图、关键程序代码等方式展示设计内容。(2)开发技术描述要给出系统实现中一些重要功能的实现方法和技术,说明对于一些技术要点和难点你是如何解决的。 (3)成果展示要有比较丰富的截屏和数据分析来说明你的设计成果,要真实、具体。(4)源程序清单仅作为报告的附录提供,关于需求分析、功能模块设计、数据结构设计、开发技术及成果的说明,不要用大段的源代码,而应用文字、图表予以描述。 #include dorm.hunsigned long ul;int main() COORD size = SCR_COL, SCR_ROW; /*窗口缓冲区大小*/ gh_std_out = GetStdHandle(STD_OUTPUT_HANDLE); /* 获取标准输出设备句柄*/ gh_std_in = GetStdHandle(STD_INPUT_HANDLE); /* 获取标准输入设备句柄*/ SetConsoleTitle(gp_sys_name); /*设置窗口标题*/ SetConsoleScreenBufferSize(gh_std_out, size); /*设置窗口缓冲区大小80*25*/ LoadData(); /*数据加载*/ InitInterface(); /*界面初始化*/ RunSys(&gp_head); /*系统功能模块的选择及运行*/ CloseSys(gp_head); /*退出系统*/ return 0;/* * 函数名称: LoadData * 函数功能: 将代码表和三类基础数据从数据文件载入到内存缓冲区和十字链表中. * 输入参数: 无 * 输出参数: 无 * 返 回 值: BOOL类型, 功能函数中除了函数ExitSys的返回值可以为FALSE外, * 其他函数的返回值必须为TRUE. * * 调用说明: 为了能够以统一的方式调用各功能函数, 将这些功能函数的原型设为 * 一致, 即无参数且返回值为BOOL. 返回值为FALSE时, 结束程序运行. */BOOL LoadData() int Re = 0; if (gp_sex_code != NULL) free(gp_sex_code); gul_sex_code_len = LoadCode(gp_sex_code_filename, &gp_sex_code); if (gul_sex_code_len 3) printf(性别代码表加载失败!n); gc_sys_state &= 0xfe; else printf(性别代码表加载成功!n); gc_sys_state |= 1; if (gp_type_code != NULL) free(gp_type_code); gul_type_code_len = LoadCode(gp_type_code_filename, &gp_type_code); if (gul_type_code_len 4) printf(学生类别代码表加载失败!n); gc_sys_state &= 2; else printf(学生类别代码表加载成功!n); gc_sys_state |= 2; Re = CreatList(&gp_head); gc_sys_state |= Re; gc_sys_state &= (4 + 8 + 16 - Re); if (gc_sys_state (1 | 2 | 4 | 8 | 16) /*数据加载提示信息*/ printf(n系统基础数据不完整!n); printf(n按任意键继续.n); getch(); return TRUE;/* * 函数名称: LoadCode * 函数功能: 将代码表从数据文件载入到内存缓冲区, 并进行排序和去除空格. * 输入参数: FileName 存放代码表的数据文件名. * 输出参数: pBuffer 指向内存缓冲区的指针变量的地址. * 返 回 值: 存放代码表的内存缓冲区大小(以字节为单位). * * 调用说明: */int LoadCode(char *FileName, char *pBuffer) char *pTemp, *pStr1, *pStr2; int handle; int BufferLen, len, loc1, loc2, i; long filelen; if (handle = open(FileName, O_RDONLY | O_TEXT) = -1) /*如果以只读方式打开失败 */ handle = open(FileName, O_CREAT | O_TEXT, S_IREAD); /*以创建方式打开*/ filelen = filelength(handle); /*数据文件的长度*/ pTemp = (char *)calloc(filelen + 1, sizeof(char); /*申请同样大小的动态存储区*/ BufferLen = read(handle, pTemp, filelen); /*将数据文件的内容全部读入到内存*/ close(handle); *(pTemp + BufferLen) = 0; /*在动态存储区尾存一个空字符,作为字符串结束标志*/ BufferLen+; for (i=0; i len + 1) /*选择法排序*/ loc1 = len + 1; while (BufferLen loc1) /*每趟找到序列中最小代码串,首地址存入pStr1*/ pStr2 = pTemp + loc1; if (strcmp(pStr1, pStr2) 0) pStr1 = pStr2; loc1 += strlen(pStr2) + 1; len = strlen(pStr1); /*这一趟所找到的最小代码串长度*/ /*如果不是空串,则进行复制,loc2是下一个最小代码串存放地址的偏移量*/ if (len 0) strcpy(*pBuffer + loc2, pStr1); loc2 += len + 1; /*已复制的代码串所占存储空间大小*/ /*将最小代码串从序列中删除掉*/ for(i=0; isnext = NULL; pDormNode-next = hd; hd = pDormNode; fclose(pFile); if (hd = NULL) printf(宿舍楼信息数据文件加载失败!n); return re; printf(宿舍楼信息数据文件加载成功!n); *phead = hd; re += 4; if (pFile = fopen(gp_stu_info_filename, rb) = NULL) printf(学生基本信息数据文件打开失败!n); return re; printf(学生基本信息数据文件打开成功!n); re += 8; /*从数据文件中读取学生基本信息数据,存入主链对应结点的学生基本信息支链中*/ while (fread(&tmp2, sizeof(STU_NODE), 1, pFile) = 1) /*创建结点,存放从数据文件中读出的学生基本信息*/ pStuNode = (STU_NODE *)malloc(sizeof(STU_NODE); *pStuNode = tmp2; pStuNode-cnext = NULL; /*在主链上查找该学生所住宿舍楼对应的主链结点*/ pDormNode = hd; while (pDormNode != NULL & strcmp(pDormNode-dorm_id, pStuNode-dorm_id) != 0) pDormNode = pDormNode-next; if (pDormNode != NULL) /*如果找到,则将结点以后进先出方式插入学生信息支链*/ pStuNode-next = pDormNode-snext; pDormNode-snext = pStuNode; else /*如果未找到,则释放所创建结点的内存空间*/ free(pStuNode); fclose(pFile); if (pFile = fopen(gp_charge_info_filename, rb) = NULL) printf(住宿缴费信息数据文件打开失败!n); return re; printf(住宿缴费信息数据文件打开成功!n); re += 16; /*从数据文件中读取学生缴费信息数据,存入学生基本信息支链对应结点的缴费支链中*/ while (fread(&tmp3, sizeof(CHARGE_NODE), 1, pFile) = 1) /*创建结点,存放从数据文件中读出的学生缴费信息*/ pChargeNode = (CHARGE_NODE *)malloc(sizeof(CHARGE_NODE); *pChargeNode = tmp3; /*查找学生信息支链上对应学生信息结点*/ pDormNode = hd; find = 0; while (pDormNode != NULL & find = 0) pStuNode = pDormNode-snext; while (pStuNode != NULL & find = 0) if (strcmp(pStuNode-stu_id, pChargeNode-stu_id) = 0) find = 1; break; pStuNode = pStuNode-next; pDormNode = pDormNode-next; if (find) /*如果找到,则将结点以后进先出方式插入学生缴费信息支链中*/ pChargeNode-next = pStuNode-cnext; pStuNode-cnext = pChargeNode; else /*如果未找到,则释放所创建结点的内存空间*/ free(pChargeNode); fclose(pFile); return re;/* * 函数名称: InitInterface * 函数功能: 初始化界面. * 输入参数: 无 * 输出参数: 无 * 返 回 值: 无 * * 调用说明: */void InitInterface() WORD att = FOREGROUND_RED | FOREGROUND_GREEN | FOREGROUND_INTENSITY | BACKGROUND_BLUE; /*黄色前景和蓝色背景*/ SetConsoleTextAttribute(gh_std_out, att); /*设置控制台屏幕缓冲区字符属性*/ ClearScreen(); /* 清屏*/ /*创建弹出窗口信息堆栈,将初始化后的屏幕窗口当作第一层弹出窗口*/ gp_scr_att = (char *)calloc(SCR_COL * SCR_ROW, sizeof(char);/*屏幕字符属性*/ gp_top_layer = (LAYER_NODE *)malloc(sizeof(LAYER_NODE); gp_top_layer-LayerNo = 0; /*弹出窗口的层号为0*/ gp_top_layer-rcArea.Left = 0; /*弹出窗口的区域为整个屏幕窗口*/ gp_top_layer-rcArea.Top = 0; gp_top_layer-rcArea.Right = SCR_COL - 1; gp_top_layer-rcArea.Bottom = SCR_ROW - 1; gp_top_layer-pContent = NULL; gp_top_layer-pScrAtt = gp_scr_att; gp_top_layer-next = NULL; ShowMenu(); /*显示菜单栏*/ ShowState(); /*显示状态栏*/ return;/* * 函数名称: ClearScreen * 函数功能: 清除屏幕信息. * 输入参数: 无 * 输出参数: 无 * 返 回 值: 无 * * 调用说明: */void ClearScreen(void) CONSOLE_SCREEN_BUFFER_INFO bInfo; COORD home = 0, 0; unsigned long size; GetConsoleScreenBufferInfo( gh_std_out, &bInfo );/*取屏幕缓冲区信息*/ size = bInfo.dwSize.X * bInfo.dwSize.Y; /*计算屏幕缓冲区字符单元数*/ /*将屏幕缓冲区所有单元的字符属性设置为当前屏幕缓冲区字符属性*/ FillConsoleOutputAttribute(gh_std_out, bInfo.wAttributes, size, home, &ul); /*将屏幕缓冲区所有单元填充为空格字符*/ FillConsoleOutputCharacter(gh_std_out, , size, home, &ul); return;/* * 函数名称: ShowMenu * 函数功能: 在屏幕上显示主菜单, 并设置热区, 在主菜单第一项上置选中标记. * 输入参数: 无 * 输出参数: 无 * 返 回 值: 无 * * 调用说明: */void ShowMenu() CONSOLE_SCREEN_BUFFER_INFO bInfo; CONSOLE_CURSOR_INFO lpCur; COORD size; COORD pos = 0, 0; int i, j; int PosA = 2, PosB; char ch; GetConsoleScreenBufferInfo( gh_std_out, &bInfo ); size.X = bInfo.dwSize.X; size.Y = 1; SetConsoleCursorPosition(gh_std_out, pos); for (i=0; i 5; i+) /*在窗口第一行第一列处输出主菜单项*/ printf( %s , ga_main_menui); GetConsoleCursorInfo(gh_std_out, &lpCur); lpCur.bVisible = FALSE; SetConsoleCursorInfo(gh_std_out, &lpCur); /*隐藏光标*/ /*申请动态存储区作为存放菜单条屏幕区字符信息的缓冲区*/ gp_buff_menubar_info = (CHAR_INFO *)malloc(size.X * size.Y * sizeof(CHAR_INFO); SMALL_RECT rcMenu =0, 0, size.X-1, 0 ; /*将窗口第一行的内容读入到存放菜单条屏幕区字符信息的缓冲区中*/ ReadConsoleOutput(gh_std_out, gp_buff_menubar_info, size, pos, &rcMenu); /*将这一行中英文字母置为红色,其他字符单元置为白底黑字*/ for (i=0; iAttributes = BACKGROUND_BLUE | BACKGROUND_GREEN | BACKGROUND_RED; ch = (char)(gp_buff_menubar_info+i)-Char.AsciiChar); if (ch = A & ch = a & ch Attributes |= FOREGROUND_RED; /*修改后的菜单条字符信息回写到窗口的第一行*/ WriteConsoleOutput(gh_std_out, gp_buff_menubar_info, size, pos, &rcMenu); COORD endPos = 0, 1; SetConsoleCursorPosition(gh_std_out, endPos); /*将光标位置设置在第2行第1列*/ /*将菜单项置为热区,热区编号为菜单项号,热区类型为0(按钮型)*/ i = 0; do PosB = PosA + strlen(ga_main_menui); /*定位第i+1号菜单项的起止位置*/ for (j=PosA; jPosB; j+) gp_scr_attj |= (i+1) 2; /*设置菜单项所在字符单元的属性值*/ PosA = PosB + 4; i+; while (i5); TagMainMenu(gi_sel_menu); /*在选中主菜单项上做标记,gi_sel_menu初值为1*/ return;/* * 函数名称: ShowState * 函数功能: 显示状态条. * 输入参数: 无 * 输出参数: 无 * 返 回 值: 无 * * 调用说明: 状态条字符属性为白底黑字, 初始状态无状态信息. */void ShowState() CONSOLE_SCREEN_BUFFER_INFO bInfo; COORD size; COORD pos = 0, 0; int i; GetConsoleScreenBufferInfo( gh_std_out, &bInfo ); size.X = bInfo.dwSize.X; size.Y = 1; SMALL_RECT rcMenu =0, bInfo.dwSize.Y-1, size.X-1, bInfo.dwSize.Y-1; if (gp_buff_stateBar_info = NULL) gp_buff_stateBar_info = (CHAR_INFO *)malloc(size.X * size.Y * sizeof(CHAR_INFO); ReadConsoleOutput(gh_std_out, gp_buff_stateBar_info, size, pos, &rcMenu); for (i=0; iAttributes = BACKGROUND_BLUE | BACKGROUND_GREEN | BACKGROUND_RED;/* ch = (char)(gp_buff_stateBar_info+i)-Char.AsciiChar); if (ch = A & ch = a & ch Attributes |= FOREGROUND_RED; */ WriteConsoleOutput(gh_std_out, gp_buff_stateBar_info, size, pos, &rcMenu); return;/* * 函数名称: TagMainMenu * 函数功能: 在指定主菜单项上置选中标志. * 输入参数: num 选中的主菜单项号 * 输出参数: 无 * 返 回 值: 无 * * 调用说明: */void TagMainMenu(int num) CONSOLE_SCREEN_BUFFER_INFO bInfo; COORD size; COORD pos = 0, 0; int PosA = 2, PosB; char ch; int i; if (num = 0) /*num为0时,将会去除主菜单项选中标记*/ PosA = 0; PosB = 0; else /*否则,定位选中主菜单项的起止位置: PosA为起始位置, PosB为截止位置*/ for (i=1; inum; i+) PosA += strlen(ga_main_menui-1) + 4; PosB = PosA + strlen(ga_main_menunum-1); GetConsoleScreenBufferInfo( gh_std_out, &bInfo ); size.X = bInfo.dwSize.X; size.Y = 1; /*去除选中菜单项前面的菜单项选中标记*/ for (i=0; iAttributes =
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025版光伏发电项目施工合同小型工程本文本
- 2025版动漫衍生品授权销售合同汇编
- 2025翻译公司知识产权保护保密协议
- 2025版无人机监控设备采购安装合同
- 二零二五年屋顶雨棚安装工程环保验收合同
- 二零二五年度挖掘机采购合同及维修配件供应范本
- 二零二五版旅游客车租赁与旅游文化交流协议
- 2025版绿色交通保障返租回报资金担保合同
- 2025版企业内退员工再就业培训及就业服务合同
- 2025版投影机采购及配套软件服务合同
- 混凝土配合比验证检验委托书模板
- 住房公积金投诉申请书
- 众辰变频器说明书3400
- 《世说新语》乘船 完整版课件
- 施工现场安全检查记录表(周)以及详细记录
- 《财务管理》课程教学实施方案
- 煤矿地质基础知识课件
- 检验科生物安全风险评估报告
- 西安市建设工程竣工验收备案表
- 大学体育四——啦啦操的教学设计
- 原始点疗法PPT课件
评论
0/150
提交评论