毕业设计(论文)用C语言实现一个学生成绩管理系统.doc

上传人:文库蛋蛋多 文档编号:2385440 上传时间:2023-02-17 格式:DOC 页数:16 大小:82.50KB
返回 下载 相关 举报
毕业设计(论文)用C语言实现一个学生成绩管理系统.doc_第1页
第1页 / 共16页
毕业设计(论文)用C语言实现一个学生成绩管理系统.doc_第2页
第2页 / 共16页
毕业设计(论文)用C语言实现一个学生成绩管理系统.doc_第3页
第3页 / 共16页
毕业设计(论文)用C语言实现一个学生成绩管理系统.doc_第4页
第4页 / 共16页
毕业设计(论文)用C语言实现一个学生成绩管理系统.doc_第5页
第5页 / 共16页
点击查看更多>>
资源描述

《毕业设计(论文)用C语言实现一个学生成绩管理系统.doc》由会员分享,可在线阅读,更多相关《毕业设计(论文)用C语言实现一个学生成绩管理系统.doc(16页珍藏版)》请在三一办公上搜索。

1、毕 业 论 文题 目 学生成绩管理系统 姓 名 所在系别 计算机系 专业班级 学 号 指导教师 日 期 目录摘要3关键字31引言32系统需求分析32.1项目背景分析32.2系统开发的目标与意义32.3项目需求分析43系统总体设计43.1功能模块分析43.2系统功能模块初始化准备63.2.1 编译预处理63.2.2数据结构定义63.3具体模块处理函数的实现73.1.1菜单函数界面的设计73.3.2功能函数设计84 系统测试与分析154.1系统操作15致谢16参考文献16用C语言实现一个学生成绩管理系统计算机081班 文苗苗 指导老师 解 军 摘要:伴随着现代社会的发展,网络技术的不断进步,越来越

2、多的管理工作都从传统的手工方式向信息自动化过度,高校是使用计算机技术最早的单位,学校的各项管理工作也从现实生活走进了网络空间,本文对学校的需求进行分析,通过使用C语言设计并实现学生成绩的管理,力求尽量简洁地解决学校对学生成绩的管理和学生对成绩的查询问题。关键字:C语言 成绩管理系统 程序设计1引言在信息时代,计算机以其极高的运算速度、巨大的数据存储能力,以及能准确地进行各种算术运算和逻辑运算的能力而成为信息化的代名词,并被广泛应用于社会各个领域。计算机技术的高速发展已被认为是人类进入信息时代的标志。该系统开发的总体任务是实现学生成绩管理的系统化、规范化、信息化、自动化,以达到提高学生成绩管理效

3、率的目的。该系统实现学生成绩管理中的多种功能,如学生成绩信息的添加、删除、查询、修改、显示、排序等。该系统的设计充分利用计算机作为辅助工具,来实现学生考试成绩从传统的手工管理到计算机管理,并对提高管理效率和节约大量的人力、物力有一定的推动作用,因此,在提高学校学生管理工作中发挥着巨大作用。,本文在充分分析客户需求及各种开发平台的特点后,决定采用C语言做为本项目的主要开发平台。2系统需求分析2.1项目背景分析在我国,各大中小学校的各类信息管理系统并非一个新的课题,但也有的学校根本就没有任何信息管理系统,特别是在西部贫困地区,学校的各类管理依然由手工操作来完成,这十分落后,效率低,成本很大,而且极

4、易出错。随着社会的发展,信息化是社会发展的必然趋势,学校管理只有快,准,精才能发挥其价值。2.2系统开发的目标与意义 (1)系统开发目标:本系统是将现代化的计算机技术和传统的教学、教务工作相结合,按照学院的工作流程设计完成的。为了使系统在学院的管理中发挥充分发挥其作用,实现工作过程信息化、自动化,提高工作效率和工作质量,在充分对客户需求调研及交流沟通的基础上得到以下系统开发目标: 系统应具有实用性、可靠性和适用性。对系统中数据库的信息进行有效处理,防止数据错乱。能够按照用户选择的不同的条件进行简单查询。具备友好的界面操作,尽量减少用户的操作。 (2)系统开发的意义:在各大中小学校,用计算机管理

5、学校的信息已经越来越普遍了。用计算机不但可以提高工作效率,而且还节省了许多人力、物力、财力。提高了学校的管理能力,为此,用计算机来管理学校的信息。是非常必要的。2.3项目需求分析学校工作流程分析:学校工作总体规划由教务人员在学生成绩管理系统中输入学生的基本信息对其进行维护管理,包括对信息的增加、修改及对信息的各项处理操作具体流程细节如下:学生成绩单建立成绩文件建立专业文件存储成绩文件存储专业文件输出学生的成绩进入新的学年,教务人员首先编排班级,再对在校学生进行基本的信息录入,新生入学后由教务人员在管理系统中完成新学生信息的维护。在每个学期开始,教务处根据班级的情况,以班为单位,为每个班级安排个

6、班主任,并对各科老师进行安排。每举行一次考试后由任课老师对成绩进行录入。班主任对本班的成绩汇总。并进行排名,教务处、班主任及任课老师跟据实际情况对寻入的成绩进行维护管理,各位同学对以上寻入的信息可以跟据自己的需要进行适当的查询。3系统总体设计3.1功能模块分析学生成绩管理系统是对学生基本信息及成绩的管理。开发工具主要采用TurboC2.0,主要用于对学生的学号、姓名等自然信息以及各项学科成绩进行增加、删除、修改、查询及保存到文件等操作。系统给用户提供了一个简单的人机界面,使用户可以根据提示输入操作项,调用系统提供的管理功能。学生成绩管理系统处理流程图1:欢迎界面 主菜单界面 7排序5插入6平均

7、分8显示4删除 10保存9初始化3修改2查询1输入0退出 1 继续输入 00返回主菜单1学号查询2姓名查询3总分查询结束主要功能设计描述如下: (1)系统主控平台允许用户选择想要的操作,包括输入学生信息。显示学生信息、查询学生信息、修改学生信息、删除学生信息、计算成绩以及成绩和排序等。通过输入相应的序号选择相应的操作。 (2)输入学生信息用户根据提示输入学生的学号、姓名、以及三门课 成绩,如语文成绩、英语成绩、数学成绩等。输入完成一条学生记录。可根据提示信息继续输入下一条学生记录或者继续其他的操作。允许输入多条学生的成绩信息记录。输入完的学生记录暂时保持在单链表中,等待下一步的操作。(3) 查

8、询学生信息:可以根据学号,姓名,总分从单链表中对学生所有的信息进行查询,如果没有查询到任何信息,系统会给出提示信息。(4) 修改学生信息:首先提示用户输入要进行修改的操作的学号,如果单链表中有该学生的信息存在,则提示用户输入要修改的学生的基本信息。各科成绩等,并将修改结果重新存储在单链表中。如果用户没有找到要修改的学生信息,系统将给出提示。(5) 插入学生信息:对已经建立好的信息若还需增加,则对信息进行插入。首先提示用户输入要进行插入的学号,然后在根据提示对用户信息进行完整输入。输入完成后系统对其进行保存。(6) 删除学生信息:首先提示用户输入要删除学生的学号,系统根据用户输入的信息在单链表中

9、查找,如果找到,直接删除该学生全部信息,如果没有找到,系统给出提示信息。(7) 计算各科成绩平均分:该模块主要进行学生成绩的平均分计算,进入计算界面,系统自动对各科进行平均分计算。(8) 显示学生信息:在选择了显示学生信息后,将刚输入的学生信息从单链表中调出来显示,如果没有数据,则提示无学生记录。(9) 学生成绩排序成绩信息输入完整后,根据学生的总分对学生从小到大进行排序,在显示学生信息的时候可以看到学生在班级或校的排序名次。(10) 操作完成后对操作结果进行保存。运行完毕,退出系统。3.2系统功能模块初始化准备3.2.1 编译预处理 “编译预处理”是C编译系统的一个组成部分。在C编译系统对程

10、序进行通常的编译(包括词法和语法分析、代码生成、优化等)之前,先对程序中这些特殊命令进行“预处理”,然后将预处理的多个源程序一起再进行通常的编译处理,以得到目标代码。C语言提供的预处理功能主要有:(1)宏定义:(2)文件包含:(3)条件编译。而本程序使用文件包含的预处理方式进行编译预处理: #include/*标准库函数*/ #include/*标准输出函数库*/ #include/*屏幕操作 函数*/ #include/*字符串函数*/3.2.2数据结构定义学生成绩管理系统中的变量有学号,姓名,成绩等,这些数据类型各不相同,无法用简单数据类型来描述,显然要定义结构体类型。由于学生人数很多,还

11、需要定义数组或者链表。数组的特点是数据在内存中顺序存放,长度必须事先指定,而学生的人数很难估计。如果数组长度定的过大。会造成存储空间浪费,如果过小,又无法满足需求。特别是进行插入,删除等操作时,代价较大而又容易出错。用链表来管理学生成绩就显得比较妥当,它无需估计学生人数,进行插入删除等操作时代价较小。C语言中,说明和使用“结构体”之前必须先定义,在编写程序之前应该对学生基本信息进行定义,在这个程序中,使用struct来定义结构的类型为List,然后用它来定义变量。在定义结构体类型的时候定义一个next成员,该成员可以把学生结点进行链接。并且通过类型定义typedef将已有的各种类型名定义成我新

12、的类型标识符link,经类型 定义后,link即可当做原类型名使用。具体定义如下:Struct list int ID;/*学号*/ charname256;/*姓名*/ int china;/*语文成绩*/ int english;/*英语成绩*/ int math;/*数学成绩*/ float sum;/*总分*/ int order;/*排序*/ struct list *next;/*指向下一个学生的指针*/ ; typedef struct list node;/*自定义一个数据结构的结点*/ tyoedef node *link;/*定义结点为link结构*/3.3具体模块处理函数

13、的实现3.1.1菜单函数界面的设计系统与用户交换的界面是通过菜单实现的,菜单按预定义格式显示要菜单界面,等待用户输入0-8中的任一标志字符,系统会根据用户的输入调用相应的功能模块,实现用户所要求的操作。 (1)本程序的菜单界面主要使用屏幕操作函数编写,欢迎界面设置为白底红字,菜单界面设置为绿底蓝字,在欢迎界面中单击任意键进入菜单操作界面。整个系统都以光标定位函数gotoxy(x,y)固定光标的位置,在对其进行输出,从而可以使显示的文字都出现在设定的窗口内,窗口的界面设置使用画图工具制作周围的边框,边框的设置具体如下: gotoxy(8,2);putch(0xc9);/*输入左上角边框*/ fo

14、r(i=1;i46;i+)putch(0xcd);/*上边框水平线*/ putch(oxbb);/*输出右上角边框*/ for(i=3;i23;i+) gotoxy(8,i)putch(0xba);/* 输出左垂直线*/ gotoxy(56,i);putch(0xba);/*输出右垂直线*/ gotoxy(8,23)putch(0xc8);/*输出左下角边框*/ for(i=1;i46;i+)putch(0xcd);/*输出下边框水平线*/ putch(0xbc);/*输出右下角边框*/ window(9,355,22);/*制作显示菜单的窗口*/ (2)菜单是由menu函数实现,主要通过pr

15、ingf函数显示一些文本选项如:printf(exit the program.n):构建一个简单的字符界面,系统设置11个模块,用户通过输入关键字key从0-10之间选 择相应的操作,函数通过switch 调用各功能模块:switch(key)case0;exit(0); case1:head=init();break; case2:head=creat_list()break; case3:search_chengji(head);break; case4:head=modify_chengji(head,key);break; case5:head=delete_chengji(head

16、,key);break; case6:head=insert_chengji(head,key);break; case7:average(head);break; case8:sort(head);break; case9:printf_list(head);break; case10:save(head);break; 3.3.2功能函数设计 (1)初始化链表 学生成绩管理系统使用前要先将系统进行初始化操作,初始化函数init()就是将函数置空。 (2)创建学生信息函数 创建学习信息函数 由creat_list函数实现,首先在创建链表之前先定义函数的基本信息并创建 结构全指针head,po

17、inter和new,设学号,排名为整形,名字设为字符型,语文,数学,英语成绩设为单精度类型,并对order 和sum进行初始化,为head建立一个空结点,当head不为空,输入用户信息,然后将新输入的数据存于head指针。程序如下: head=(link)malloc(sizeof(node);/*建立一个新/空结点*/ if(head=NULL) printf(memory allocate failure!n);exit(0) else printf(:please inputII):); scanf(%d,&ID);head-ID=cID printf(:please input nam

18、e:);scanf(%s,cname); for(i=0);inamei=cnmei; printf(please input china:);scanf(%d,&cchina);head-china=cchina;. head-.next=NULL;pointer=head; 如果输入正确既while我真的时候为news新建立一个结点,提示用户如果要继续输入按1,输入0为退出。新输入的数据存储到 news指针里,然后把 head和news里面的数据一起入到pointer,供下面操作时调用pointer的数据。While(1)news=(link)malloc(sizeof(node);pri

19、ntf(Are you continue?);printf(If continue enter1,or return enter 0.);/*输入1为继续,0为退出*、scanf(%d,&cID);if (cID=0)break;.news-next=NULL; pointer-next=news; pointer=news;创建函数时只能创建一次,因为创建的链表暂时存于head指针里,如果再次创建,要先保存否则系统会自动将head指针进行初始化数据将被清空,存放新创建的记录, (3)查询学生成绩函数 查询函数search_chengji用来对学生的基本信息进行查询。首先使用光标定位函数got

20、oxy(x,y)t printf函数制作查询的子菜单,菜单包括:0.exit 、1.search by ID、2.search by name、3.search by sum。查询菜单设置完成后应用switch()case1: 执行语句:break:语句调用相应函数操作功能。 系统在调用函数时,调用自定义的辅助函数,按预定格式显示查询成绩的子菜单界面。用户输入的格式正确时使用while函数调用相应的功能函数。 按学号查询,输入choose=1,key1为要查询的学号,查找系统中学号为key1的学生是否存在, 如果key1=ID说明找到该学生,并标记flag=1,国断查询显示 查询的结果,否则继

21、续查找直到找到为止。例如:if(choose=1) while(pointer!=NULL) if(pointer-ID-key1=0) flag=1;break; else pointer=pointer-next;按名字查询,输入choose=2, sname为要查询学生的名字,查找系统中名字为sname的学生是否存在,如果strcmp(pointer-name,sname)=0说明找到学生,并标记flag=1,中断查询显示查询的结果,否则继续向下查找直到找到名字为sname的学生。 按学生的总成绩查询,输入choose=3,score为要查找学生的总分,查找系统中总分为score的学生是

22、否存在,如果if(pointer-sum-score=0)说明找到该学生,并标记flag=1,中断查询显示查询的结果:否则继续向下查找直到找到总分为score的学生: (4)修改学生成绩函数修改函数modify_chengji是对之前所输入的信息如果出现错误,或需要更改进使用。在编写之前先对函数进行定义,并把head的值赋给pointer,然后用简单的printf函数编写修改菜单的基本界面以及修改的内容。用户根据提示输入要编辑的学号printf(please input number for modify:)scanf(%d.&keynum),系统根据学号查找该学生的基本信息,如果寻找到该生,

23、系统提示要修改蝗具体内容,根据用户需要选择相应内容进行修改,此功能应用switch(choose)case1:执行语句:break:语句执行。 Printf(enter0 exit modefiyn); Printf(enter1 modefiy namwn); Printf(enter2 modefiy chinan); Printf(enter3 modefiy englishn); Printf(enter4 modefiy mathn); Printf(Please Enter you choice:);scanf(%d,&choose);信息输入完成后,按任意键系统自动保存到poin

24、ter中,新信息将覆盖原有信息pointer-namei=xnamei,运行结束输出修改后的信息,返回到菜单。如果没有找到,系统将中止执行。 while(1)if (pointer-ID=key3) if(choose=1) for(i=0;inamei=xnamei;break; else if(choose=2)pointer-china=xchina;break; else if(choose=3)pointer-english=xenglish;break; else if(choose=4)pointer-math=xmath;breaj; if(head!=NULL) printf

25、(Pree any key to save! getch() printf_list(heas);) returnhead;(6) 删除学生信息函数 删除函数delete_chengji在编写之前先定义2个结构体pointer和q,key2为要删除学生的学号,定义完成后对pointer赋初值,用j纪录pointer的位置,将其设为整形并初始化。 从链表中删去一个节点只要改变链接的关系即可,既修改结点指针成员的值。从链表中删除一个结点有三种情况:删除链表的头结点,删除链表的中间结点,删除链表的尾节点。 当pointer 的后面指针不为空:如果key2!=pointer-ID,则把pointer的

26、值赋给q,pointer指向下一个记录继续寻找学号key2, while(pointer-nest!=NULL) if(pointdr-ID!=key2) q=pointer;j+;pointer=pointer-next; else break; 如果key2=pointer-ID时,判断j是否为0,如果j为0说明pointer为头结点,则直接将结点删除head指向他的下一指针。 If(pointer-ID=key2) if(j=0 head=head-next;free(pointer); 如果判断j!=0,则说明删除的结点不是头指针,结点位于中间,要删除结点pointer首先应该让q-n

27、ext指向pointer-next,然后释放pointer。执行完后系统将自动停留几秒然后返回主菜单。 (7)插入学生成绩 插入功能主要用于插入新的学生记录。在insert_chengji函数先定义2个结构体指针pointer和news,pointer为原指针,news为新插入指针。定义完成后对pointer初始化,然后为news建立新结点news=(link)malloc(siaeof(node),定义完成后为news输入新数据。插入的情况有两种既:如果pointer为空则直接将news的值赋给head输入系统并做为头指针:如果pointer不为空则把news的值赋给pointer,运行如果

28、正确且head不为空时显示输入的数据信息。 程序:if(bead!=NULL) news=(link)malloc(sizeof(node)/*如果head不为空,为news指针建立一个结点*/ gotoxy(3,5);printf(pleses input student ID;); scanf(%d,&news-ID);. while(1) if (pointer=NULL) news-nest=hesd;hesd=news;break;/*如果pointer为空,news直接为头指针*/ if(pointer-ID=dey3) news-nest=pointer-next:pointer

29、-next;break:/*如果key3等于 ID直接插入news*/ pointer=pointer-next:(8) 计算各科成绩的平均分函数 计算函数average求各科的平均分。首先为各科成绩进行初始化操作,如果pointer不为空,说明里面有数据,在对其求各科的总成绩,最后在进行平均分求值。计算完成显示最后计算结果。具体程序如下 : While(1) (achina=achina+pointer-china:;/*求总分*/ aenglish=aenglish+pointer-english; amath=amath+pointre-math; cnt=+cnt; If(pointe

30、r-next=NULL)break; pointer=pointer-next;/*求平均分*/ avechina=achina/cnt; aveengish=aenglish/cnt; avemath=amath/cnt; (9)学生成绩排序 学生成绩排序函数sort用来对学生成绩进行按从大到小的顺序排序。处理过程:定义2个临时指针pointer、max、max用来存放pointer的数据,而pointer指向它的下一位。再定义一个单精度变量fen、整形变量k和字符型变量s256,分别存放成绩、学号、名字。定义完成后把先对pointer初始化,用coumt来记录pointer的个数,然后从1

31、开始对max和pointer进行比较。比较一次count加1,在把count的值赋给pointer-order.排序完成后到显示界面查看。函数排序过程如下。 for(i=1;icount;i+) max=pointer=head; for(j=i+1;jnext; if(max-sumpointer-sum)/*用总分对成绩进行排名*/ fen=max-sum;max-sum=pointer-sum;pointer-sum=fen;/*总分的交换*/ k=max-ID;max-ID=pointer-ID;pointer-ID=k;/*学号的交换*/ fen=max-china;max-chin

32、a=pointer-china;pointer-china=fen:/*语文成绩的交换*/ fen=max-math;max-max=pointer-math;pointer-math=fen;/*数学成绩的交换*/ fen=max-english;max-english=pointer-english;pointer-english=fen;/*英语成绩的交换*/ strcpy(s,max-name);strcpy(max-name,pointer-name);strcpy-name,s);/*姓名的交换*/ pointer=pointer-next; pointer=head;count=

33、0; while(pointer!=NULL)/*赋排序的值*/ count+;pointer-order=count; pointer=pointer-next;(10) 显示学生成绩函数 显示函数printf_list主要显示学生的基本信息,每当操作完成的时候一般都会调用此函数进行预览。Printf_list函数运行时先输出表头,在单链表中反复调用函数,逐条显示学生的信息,直到运行结束,返回到主菜单界面。具体显示函数如下: printf_list(linkhead) (int i=0; Link pointer; clrscr();pointer=head; gotoxy(2,4);pri

34、ntf(+.+.+.+.+.+.+.+n);/*显示表头*/ gotoxy(2,5);prontf(|ID|name|china|english|math|sym|order|n); gotoxy(2,6);printf(+.+.+.+.+.+.+.+n); while(pointer!=NULL) i+; gotoxy(2,7);/*如果pointer不为空,逐条显示内容*/ printf(|%d|%s|%4.2f|%4.2f|%4.2f|%4.2f|%d|n,pointer-ID,pointer-name,pointer-china,pointer-english,pointer-math

35、,pointer-sum,pointer-order); pointer=pointer-next gotoxy(2.8);printf(*end*n); gotoxy(2,10);getch(); returnhead;clrsce();(11) 保存学生成绩函数 保存函数save主要用来对学生成绩运行后的结果进行保存。该函数在运行之前先要定义一个指向文件的指针fp,在定义一个移动指针p和保存输出的文件名outfile。用户根据系统的提示,输入要保存的文件名和保存路径。系统以只写(“w)方式打开文件,如果移动指针p不为空则写入一条记录。运行结束返回主菜单,运行过程函数; printf(Ent

36、eroutfilename,forexamliex:f1te.txt:n); scanf(%s,outfile); fp=fopen(outfile.w); while(p!=NULL) fwrite(p,sizeof(node),1,fp);p=p-next; printf(.savesuccess!.n); fclose(fp);4 系统测试与分析4.1系统操作将编写好的程序在TurboC的代码编辑器里进行编辑,语法检查正确后进行运行。系统进入运行后,首先进入系统欢迎界面单击任意键键入学生成绩管理系统的主菜单界面,系统提示用户输入0-8之间的不同数字。来实现不同的操作。进入主菜单界面后,输

37、入数字1对本系统先进行初始化,初始化后并可以输入2进去创建界面,用户可以根据提示信息输入学生的基本信息,输入完一条后,若要继续输入1,否则退出输入0,输入完成后调用显示功能模块,供用户预览。创建的时候只能创建一次,反复创建将把之前的数据清空,如需增加数据则使用插入功能。运行结束返回主菜单界面。若要进行查询,在主菜单中输入3,则进入查询学生信息的子菜单,用户可以根据自己的喜欢选择用学号、姓名。总分中任一方式查询。根据系统提示信息输入查询的条件,如果要查找的学生存在,系统根据要求从数据库中查找到该学生的信息,并输出显示。否则提示没有找到信息,返回主菜单界面。若要对学生信息进行修改则在主菜单中输入4

38、,进入修改学生信息界面,根据系统提示信息输入要修改学生的学号,系统根据输入的学号检索要修改的学生信息,在根据显示的内容人,选择要修改的具体内容。修改完成先显示未修改的信息,单击任一键对其进行保存。若要删除学生信息,在主菜单输入5,进入删除学生信息界面根据系统提示信息输入要增加的学生学号,若此学号不存在则根据提示输入学生的基本信息,输入完成后系统会自动保存。在主菜单中若输入7,则进入计算各科平均分成绩,计算完成输出计算结果。在主菜单界面中如果输入8,则进入学生成绩排行界面,系统会自动将刚输入学生的成绩进行排列,通过显示功能模块输出学生的排名。在主菜单界面中如果输入9,则进入显示学生信息界面,系统

39、会将刚输入的学生的信息按照预定格式显示出来。在主菜单中如果输入10,对其操作内容进行保存。退出系统输入0。本文简要介绍了如何用C语言来编写学生成绩管理系统和设计过程中的一些主要步骤。本系统基本上能够实现学生成绩管理的添加、删除、查询、修改、计算、显示、排序等功能,但是在设计过程中还有些功能不是很完善,操作界面不美观,还有非常多地方需要以后继续改进。因此在以后的学习当中还应该更加努力,尽量达到最好。致谢:本课题在选题及研究过程中得到解老师的亲切关怀和悉心指导下完成的。他严肃的科学态度,严谨的治学精神,精益求精的工作作风,深深地感染和激励着我。从课题的选择到项目的最终完成,解老师都始终给予我细心的指导和不懈的支持。解老师不仅在学业上给我以精心指导,同时还在思想、上给我以无微不至的关怀,在此谨向解老师致以诚挚的谢意和崇高的敬意。 参考文献【1】梁旭,古晓琳,黄明编著,C语言课程设计(第2版),电字出版社【2】毕万新,景福文主编,C语言程序设计(第四版),大连理工大

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 建筑/施工/环境 > 项目建议


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号