求助C语言中学生管理系统课题研究的难点的重点和难点是什么

当前位置: >>
c语言编写的学生成绩管理系统
PINGDINGSHAN UNIVERSITY软件学院 项目报告书 《专业实训二》 专业实训二》项目名称: 项目名称:专业班级: 专业班级:学号:姓名:指导教师: 指导教师:2011 年 6 月 19 日3 目 录................................................... 第 1 章 课题背景描述 ................................................... 3 第 2 章 总体设计 ......................................................... 3 2.1 任务目标 ........................................................ 3 2.2 开发设计思想 .....................................................4 2.3 主要功能 ........................................................ 4 2.4 关键技术 ........................................................ 5 第 3 章 代码设计 ......................................................... 7 3.1 截图 ............................................................ 7 3.2 核心代码 ....................................................... 12 第 4 章 总 结 ........................................................... 25 参考文献 ............................................................... 26 致 谢 .................................................................. 262 第1章课题背景描述由于计算机技术的迅速发展和普及,与之紧密相关的管理信息系统 :已经 深入到现代社会各行各业中。在高校,学生信息管理系统(SMIS)作为计算机管理 信息系统的一个应用,越来越发挥着它重要的作用。本文所介绍的学生信息管理 系统是用 C 语言开发的。本系统完成了对学生的成绩管理,包括对学生信息的 添加、 修改、 排序、 删除等计算机管理工作。 本文对采用的相关技术进行了描述, 对各个子系统的功能、设计思路及设计 方法都作了详细的描述。 学生信息管理系统(SMIS)是大学信息管理系统建设的重要组成部分, 是提 高教学管理的 质量和效益乃至建设知名高水平大学的关键环节。学生信息处理 的电脑化、网络化,也是实 现学校管理现代化和信息化的重要内容。 学生信息 管理系统的内容对于学校的决策者和管理者来说都至关重要,所以学生信息管理 系统应该能够为用户提供充足的信息和快捷的查询手段。 但一直以来人们使用传 统人工的方式管理文件档案, 这种管理方式存在着许多缺点,如: 效率低、 保密性 差,另外时间一长,将产生大量的文件和数据,这对于查找、更新和维护都带来 了 不少的困难。随着科学技术的不断提高,计算机科学日渐成熟,其强大的功能已为 人们深刻认识,它已进入人类社会的各个领域并发挥着越来越重要的作用。作为 计算机应用的一部分, 使用计算机对学生信息进行管理,具有手工管理所无法比 拟的优点.例如:检索迅速、查找方便、可靠性高、存储量大、保密性好、寿命长、 成本低等。这些优点能够极大地提高学生信息管理的效率,也是进行科学化、正 规化管理的重要条件。第2章2.1 任务目标总体设计随着学校的规模不断扩大,学生数量急剧增加,有关学生的各种信息量也成 倍增长。 面对庞大的信息量需要有学生管理系统来提高学生管理工作的效率。 通 过这样的系统可以做到信息的规范管理、科学统计和快速查询、 修改、 增加、 删除等,从而减少管理方面的工作量。 本系统主要用于学校学生信息管理, 总 体任务是实现学生信息关系的系统化、 规范化和自动化,其主要任务是用计算 机对学生各种信息进行日常管理。3 2.2开发设计思想程序总体框架如图: main()菜单 1 3 5 7 9 输入 查找 排序 保存 退出 2 4 6 8 输出 删除 插入 读取菜单代码1 添 加 学 生 信 息2按 序 输 出 信 息3按 姓 名 查 找 信 息4 按 学 号 删 除 信 息5 对 学 生 信 息 排 序6 插 入 新 的 信 息7 保 存 信 息 到 文 件8 从 文 件 中 读 取9 退 出2.3主要功能1、每一条记录包括一个学生的学号、姓名、3 门成绩、平均成绩。 2、输入功能:可以一次完成无数条记录的输入。 3、显示功能:完成全部学生记录的显示。 4、查找功能:完成按姓名查找学生记录,并显示。4 5、排序功能:按学生平均成绩进行排序。 6、插入功能:按平均成绩高低插入一条学生记录。 7、保存功能:将学生记录保存在任何自定义的文件中,如保存在:c:\score。 8、读取功能:将保存在文件中的学生记录读取出来。 9、有一个清晰美观界面来调用各个功能2.4关键技术输入要查找的学生的学号 s p=head,使 p 指向第一结点 当记录的学号不是要找的,或指针不为空时 p=p-&next p!=NULL 如果指针不为空 是 输出 p 所指向的结点 否 显示没有该 学生1、查找函数 void search(STUDENT *head) ; N-S 流程图如下:2、删除函数 STUDENT *delete(STUDENT *head); N-S 流程图如下:p1=head; 输入入要删除的学号 s 当(strcmp(p1-&num,s))&& p1 != NULL p2=p1 p1=p1-&next p1 是要删除的结点 是 p1 所指是头结点 是 head=p1-&next (删除头结点) 否 p2-&next=p1-next 输出”找不 到” 的信息“ 否3、排序函数 STUDENT *sort(STUDENT *head);N-S 流程图:temp=head-&next,head-&next=NULL5 当 temp!=NULL 时 t=temp;temp=temp-&next;p1=head;p2=head; 当 t-&average&p1-&average&&p1!=NULL 时 p2=p1;p1=p1-&next; p1=p2 是 t-&next=p1; head=t; 否 t-&next=p1; p2-&next=t;p1=head; 当 p1!=NULL 时 i++;p1-&order=i;p1=p1-&next; 输出“排序成功”4、插入函数 STUDENT *insert(STUDENT *head,STUDENT *new);N-S 流程图:P1=head, 原来的链表是空表 是 将 p0 所指 表尾结 的结点作为 唯一结点p0=new否 当 p0-&average&p1-&average 以及 p1 所指向的不是 点 p2 指向 p1 位置 p1 向后移一个结点 p0-&average&=p1-&average 是 否 p1 指向头结点 p1-&next=p0 是 否 p0-&next=NULL head=p0 p2-&next=p0 (插到表尾之后) p0 -&next=p1 p0-&next=p1 (插到表头之前) (插到表中间) n=n+1;(结点加 1) head=sort(hear); (将成绩重新排序)5、保存函数 void save(STUDENT *head);N-S 流程图如下:输入要保存记录的文件地址 outfile6 文件不能打开 否 p=head; 当 p 不为空时 fwrite(p,LEN,1,fp); (写入一条记录) p=p-& (指针后移) fclose(fp); (关闭文件) 输出一个出错信 息,并返回菜单 是第3章 章3.1 截图代码设计菜单界面:图 1.菜单1、创建信息:7 图 2.输入(已输入三个学生的学号及成绩)2、输出界面:图 3.输出(按输入顺序输出)3、查找界面:8 图 4.查找(输入名字 ZSan)4、删除界面:图 5.删除成功(输入学号 1001 选择 Y)5、排序界面:9 图 6-1.排序成功(按总分降序排列)图 6-2.菜单 2 输出查看排序6、插入界面:10 图 7-1.插入成功(插入 1 个学生学号及成绩)11 图 7-2.菜单 2 输出数据查看7、保存数据:图 8.保存成功(输入文件名称 xscjxx) 8、读取数据:12 图 9.读取成功(输入文件名称 xscjxx) 9、退出。3.2核心代码/*头文件*/ #include &stdio.h& #include&dos.h& #include&stdlib.h& #include&string.h& #include&mem.h& #include&ctype.h& #include&alloc.h& /*其它说明*/ /*字符串函数*/ /*内存操作函数*/ /*字符操作函数*/ /*动态地址分配函数*/#define LEN sizeof(STUDENT) typedef struct stu {char num[6]; char name[5]; int score[3]; /*定义结构体数组用于缓存数据*/13
struct stu * }STUDENT;/*函数原型*/ STUDENT *init(); int menu_select(); STUDENT *create(); /*初始化函数*/ /*菜单函数*/ /*创建链表*/ /* 显示全部记录*/ /*查找记录*/ /*删除记录*/ /*排序*/ /*插入记录*/void print(STUDENT *head); void search(STUDENT *head);STUDENT *delete(STUDENT *head); STUDENT *sort(STUDENT *head);STUDENT *insert(STUDENT *head,STUDENT *new); void save(STUDENT *head); STUDENT *load(); /*保存文件*/ /*读文件*//*主函数界面*/ main() {STUDENT *head, head=init(); for(;;) /*链表初始化,使 head 的值为 NULL*/ /*循环无限次*/{switch(menu_select()) { case 1:head=create(); case 2:print(head); case 3:search(head); case 4:head=delete(head); case 5:head=sort(head); case 6:head=insert(head,&new); /*&new 表示返回地址*/ case 7:save(head); case 8:head=load();14 case 9:exit(0); } } }/*如菜单返回值为 9 则程序结束*//*初始化函数*/ STUDENT *init() { return NULL; /*返回空指针*/ }/*菜单选择函数*/ menu_select() { getdate(&d); /*定义时间结构体*/ /*读取系统日期并把它放到结构体 d 中*/ /*按任一键进入主菜单*/printf(&press any key to enter the menu......&); getch(); clrscr();/*从键盘读取一个字符,但不显示于屏幕*/ /*清屏*/printf(&************************************************************************* *******\n&); printf(&\t\t printf(&\n\t\t Welcome to\n&); The student score manage system\n&);printf(&*************************************MENU****************************** *********\n&); printf(&\t\t\t1. Enter the record\n&); printf(&\t\t\t2. Print the record\n&); printf(&\t\t\t3. Search record on name\n&); printf(&\t\t\t4. Delete a record\n&); /*输入学生成绩记录*/ /*显示*/ /*寻找*/ /*删除*/15 printf(&\t\t\t5. Sort to make new a file\n&); printf(&\t\t\t6. Insert record to list\n&); printf(&\t\t\t7. Save the file\n&); printf(&\t\t\t8. Load the file\n&); printf(&\t\t\t9. Quit\n&); printf(&\n\t\t/*排序*/ /*插入*/ /*保存*/ /*读取*/ /*退出*/Made by Wang Dongsheng.\n&);printf(&************************************************************************* *******\n&); printf(&\t\t\t\t%d\\%d\\%d\n&,d.da_year,d.da_mon,d.da_day); do{ printf(&\n\t\t\tEnter your choice(1~9):&); scanf(&%d&,&n); }while(n&1||n&9); return(n); } /*如果选择项不在 1~9 之间则重输*/ /*返回选择项,主函数根据该数调用相应的函数*/ /*显示当前系统日期*//*输入函数*/ STUDENT *create() {int i,s; STUDENT *head=NULL,*p; /* 定义函数.此函数带回一个指向链表头的指针*/ clrscr(); for(;;) {p=(STUDENT *)malloc(LEN); /*开辟一个新的单元*/ if(!p) /*如果指针 p 为空*/ /*输出内存溢出*/{printf(&\nOut of memory.&);return (head); /*返回头指针,下同*/ } printf(&Enter the num(0:list end):&); scanf(&%s&,p-&num); if(p-&num[0]=='0') /*如果学号首字符为 0 则结束输入*/16 printf(&Enter the name:&); scanf(&%s&,p-&name); printf(&Please enter the %d scores\n&,3); /*提示开始输入成绩*/ s=0; for(i=0;i&3;i++) { do{ printf(&score%d:&,i+1); scanf(&%d&,&p-&score[i]); if(p-&score[i]&0 || p-&score[i]&100) /*确保成绩在 0~100 之间*/ /*计算每个学生的总分,初值为 0*/ /*3 门课程循环 3 次*/printf(&Data error,please enter again.\n&); }while(p-&score[i]&0 || p-&score[i]&100); s=s+p-&score[i]; } p-&sum=s; /*将总分保存*/ /*累加各门成绩*/p-&average=(float)s/3; /*先用强制类型转换将 s 转换成 float 型,再求平均值*/ p-&order=0; p-&next= head=p; } return(head); } /*未排序前此值为 0*/ /*将头结点做为新输入结点的后继结点*/ /*新输入结点为新的头结点*//* 显示全部记录函数*/ void print(STUDENT *head) {int i=0; /* 统计记录条数*/STUDENT *p; /*移动指针*/ clrscr(); p= /*初值为头指针*/printf(&\n************************************STUDENT**************************17 **********\n&); printf(&-------------------------------------------------------------------------------\n&); printf(&| Rec | |\n&); printf(&-------------------------------------------------------------------------------\n&); while(p!=NULL) { i++; printf(&| %3d | | %-5d|\n&, i, p-&num,p-&name,p-&score[0],p-&score[1],p-&score[2],p-&sum,p-&average,p-&order); p=p-& } printf(&-------------------------------------------------------------------------------\n&); %4s | %-4s | %3d | %3d | %3d | %3d | %4.2f Num | Name | Sc1 | Sc2 | Sc3 | Sum | Ave | Orderprintf(&**************************************END******************************* *******\n&); }/*查找记录函数*/ void search(STUDENT *head) {STUDENT *p; char s[5]; clrscr(); printf(&Please enter name for searching.\n&); scanf(&%s&,s); p= /*将头指针赋给 p*/ /* 移动指针*/ /*存放姓名用的字符数组*/while(strcmp(p-&name,s) && p != NULL) /*当记录的姓名不是要找的,或指针不为空时*/ p=p-& if(p!=NULL) /*移动指针,指向下一结点*/ /*如果指针不为空*/18 {printf(&\n*************************************FOUND************************** **********\n&); printf(&-------------------------------------------------------------------------------\n&); printf(&| Order |\n&); printf(&-------------------------------------------------------------------------------\n&); printf(&| | %-5d|\n&, p-&num,p-&name,p-&score[0],p-&score[1],p-&score[2],p-&sum,p-&average,p-&order); printf(&-------------------------------------------------------------------------------\n&); %4s | %4s | %3d | %3d | %3d | %3d | %4.2f Num | Name | sc1 | sc2 | sc3 | Sum | Ave |printf(&***************************************END****************************** ********\n&); } else printf(&\nThere is no num %s student on the list.\n&,s); } /*显示没有该学生*//*删除记录函数*/ STUDENT *delete(STUDENT *head) { STUDENT *p1,*p2; /*p1 为查找到要删除的结点指针,p2 为其前驱指针*/ char c,s[6]; clrscr(); printf(&Please enter the deleted num: &); scanf(&%s&,s); p1=p2= /*给 p1 和 p2 赋初值头指针*/ /*当记录的学号不是要找的,或指针不为空时 /*s[6]用来存放学号,c 用来输入字母*/while(strcmp(p1-&num,s) && p1 != NULL) */ {p2=p1; p1=p1-&/*将 p1 指针值赋给 p2 作为 p1 的前驱指针*/ /*将 p1 指针指向下一条记录*/19 } if(strcmp(p1-&num,s)==0) /*学号找到了*/{printf(&**************************************FOUND*************************** *********\n&); printf(&-------------------------------------------------------------------------------\n&); printf(&| Order |\n&); printf(&-------------------------------------------------------------------------------\n&); printf(&| | %-5d|\n&, %4s | %4s | %3d | %3d | %3d | %3d | %4.2f Num | Name | sc1 | sc2 | sc3 | Sum | Ave |p1-&num,p1-&name,p1-&score[0],p1-&score[1],p1-&score[2],p1-&sum,p1-&average,p1-&order); printf(&-------------------------------------------------------------------------------\n&);printf(&***************************************END****************************** ********\n&); printf(&Are you sure to delete the student Y/N ?&); /*提示是否要删除,输入 Y 删除,N 则退出 */ for(;;) {scanf(&%c&,&c); if(c=='n'||c=='N') /*如果不删除,则跳出本循环*/ if(c=='y'||c=='Y') { if(p1==head) head=p1-& else p2-&next=p1-& /*否则将一下结点地址赋给前一结点地址*/ n=n-1; printf(&\nNum %s student have been deleted.\n&,s); printf(&Don't forget to save.\n&); /*删除后就跳出循环*/ /*若 p1==head,说明被删结点是首结点*/ /*把第二个结点地址赋予 head*/20 } } } else printf(&\nThere is no num %s student on the list.\n&,s); /*找不到该结点*/ return(head); }/*排序函数*/ STUDENT *sort(STUDENT *head) {int i=0; STUDENT *p1,*p2,*t,* temp=head-& head-&next=NULL; while(temp!=NULL) { t= temp=temp-& p1= p2= /*取原表的头结点*/ /*原表头结点指针后移*/ /*设定移动指针 p1,从头指针开始*/ /*设定移动指针 p2 做为 p1 的前驱,初值为头指针*/ /*保存名次*/ /*定义临时指针*/ /*将原表的头指针所指的下一个结点作头指针*/ /*第一个结点为新表的头结点*/ /*当原表不为空时,进行排序*/while(t-&average&p1-&average&&p1!=NULL) /*作成绩平均分比较*/ { p2=p1; p1=p1-& } if(p1==p2) { t-&next=p1; head=t; } else /*待排序点应插入在中间某个位置 p2 和 p1 之间,如 p 为空则是尾部*/ /*待排序点的后继为 p*/ /*新头结点为待排序点*/ /*p1==p2,说明待排序点值大,应排在首位*/ /*待排序点值小,则新表指针后移*/21 { t-&next=p1; p2-&next=t; } } p1= /*已排好序的头指针赋给 p1,准备填写名次*/ /*t 的后继是 p1*/ /*p2 的后继是 t*/while(p1!=NULL) /*当 p1 不为空时,进行下列操作*/ { i++; p1-&order=i; p1=p1-& } printf(&Sorting is sucessful.\n&); return (head); } /*排序成功*/ /*结点序号*/ /*将结点序号赋值给名次*/ /*指针后移*//*插入记录函数*/ STUDENT *insert(STUDENT *head,STUDENT *new) {STUDENT *p0,*p1,*p2; int n,sum1,i; p1= /*使 p1 指向第一个结点*/ p0= /*p0 指向要插入的结点*/ /*提示输入记录信息*/printf(&\nPlease enter a new record.\n&); printf(&Enter the num:&); scanf(&%s&,new-&num); printf(&Enter the name:&); scanf(&%s&,new-&name); printf(&Please enter the %d scores.\n&,3); sum1=0;/*保存新记录的总分,初值为 0*/for(i=0;i&3;i++) {22 do{ printf(&score%d:&,i+1); scanf(&%d&,&new-&score[i]); if(new-&score[i]&100||new-&score[i]&0) printf(&Data error,please enter again.\n&); }while(new-&score[i]&100||new-&score[i]&0); sum1=sum1+new-&score[i]; } new-&sum=sum1; /*将总分存入新记录中*/ /*累加各门成绩*/new-&average=(float)sum1/3; new-&order=0; if(head==NULL) /*原来的链表是空表*/ {head=p0;p0-&next=NULL;} /*使 p0 指向的结点作为头结点*/ else {while((p0-&average&p1-&average)&&(p1-&next!=NULL)) {p2=p1; /*使 p2 指向刚才 p1 指向的结点*/ /*p1 后移一个结点*/p1=p1-& }if(p0-&average&=p1-&average) {if(head==p1)head=p0; else p2-&next=p0; p0-&next=p1;} else {p1-&next=p0;p0-&next=NULL;} /*插到最后的结点之后*/ } n=n+1; /*结点数加 1*/ head=sort(head); /*调用排序的函数,将学生成绩重新排序*/ printf(&\nStudent %s have been inserted.\n&,new-&name); printf(&Don't forget to save the new file.\n&); return(head); } /*插到原来第一个结点之前*/ /*插到 p2 指向的结点之后*/23 /*保存数据到文件函数*/ void save(STUDENT *head) {FILE * STUDENT *p; char outfile[10]; printf(&Enter outfile name,for example c:\\score\n&); scanf(&%s&,outfile); if((fp=fopen(outfile,&wb&))==NULL) { printf(&Cannot open the file\n&); } printf(&\nSaving the file......\n&); p= while(p!=NULL) { fwrite(p,LEN,1,fp); p=p-& } fclose(fp); /*关闭文件*/ /*写入一条记录*/ /*指针后移*/ /*移动指针从头指针开始*/ /*如 p 不为空*/ /*若打不开则返回菜单*/ /*为输出打开一个二进制文件,为只写方式*/ /*定义指向文件的指针*/ /* 定义移动指针*/printf(&Save the file successfully!\n&); }/* 从文件读数据函数*/ STUDENT *load() {STUDENT *p1,*p2,*head=NULL; FILE * char infile[10]; printf(&Enter infile name,for example c:\\score\n&); scanf(&%s&,infile); /*定义记录指针变量*//* 定义指向文件的指针*/24 if((fp=fopen(infile,&rb&))==NULL) { printf(&Can not open the file.\n&); return(head); } printf(&\nLoading the file!\n&); p1=(STUDENT *)malloc(LEN); if(!p1) { printf(&Out of memory!\n&); return(head); } head=p1;/*打开一个二进制文件,为只读方式*//*开辟一个新单元*//*申请到空间,将其作为头指针*/while(!feof(fp)) /*循环读数据直到文件尾结束*/ { if(fread(p1,LEN,1,fp)!=1) /*如果没读到数据,跳出循环*/ p1-&next=(STUDENT *)malloc(LEN); /*为下一个结点开辟空间*/ if(!p1-&next) { printf(&Out of memory!\n&); return (head); } p2=p1; p1=p1-& } p2-&next=NULL; fclose(fp); printf(&You have success to read data from the file!\n&); return (head); } /*最后一个结点的后继指针为空*/ /*使 p2 指向刚才 p1 指向的结点*/ /*指针后移,新读入数据链到当前表尾*/25 第4章总结经过一个多星期的 C 语言课程设计,感觉自己收获不少! 首先,链表老师讲的很少,但这个课程设计里面主要都是用链表,因为要达到这 样的功能,使用链表相当方便,但不容易理解,所以在这方面我很了很多的时间 看课本和参考课外书,使 C 语言的知识强化了不少。 其次,在做课程设计的过程中,发现了平时很多没有注意到的问题,例如:返回 值函数和不返回值函数两者在主函数中的调用是不同的………… 更重要的是,这次课程设计虽然花了我不少时间,但正是这些时间,让我见识到 了 C 语言的重要性。这个学生成绩管理系统都是在自己知识范围内完成的,所 以界面清晰简单,可能不是很好看,但绝对实用! 从这里我也得到一个体会,做一个程序,或者开发一个软件,应该着重从它的后 台制作入手,不能做出一个中看不中用的程序或者软件。 相信这次的项目设计为我以后的学习打了一个良好的开头。参考文献1.谭浩强 . C 程序设计(第三版). 清华大学出版社. 2005.72.沈大林. C 语言程序设计案例教程. 中国铁道出版社. .谭浩强. C 语言程序设计题解与上机指导. 清华大学出版社. . 肖宏启. 数据结构(C 语言版). 电子工业出版社. 2.10.1 5. http://www.4oa.com 6. http://www.pudn.com 7. http://www.baidu.com 8. http://wenku.baidu.com26 致谢首先感谢马飞老师,感谢他对我学习的悉心教导,他为我创造了各种机会去 迎接各种各样的挑战,使我能够迅速成长起来,让我明白了学无止境,必须以正 确的态度面对各种挑战。 通过本次设计,我的知识领域得到了进一步扩展,专业技能进一步提高,同 时增强了分析和解决实际问题的综合能力。27
《C 语言程序设计》课程综合案例 常州信息职业技术学院 难易程度 开发语言 开发工具 中等 C 操作系统: Windows XP 或更高 开发平台:VC++ 6.0 学生成绩管理 ...C 语言中有关结构体数组及外部文件的内容, 独立设计学生成绩管理系统, 并编程实现以下功能: 1、整个系统均用C语言实现; 2、利用结构体数组来实现学生成绩的数据...学生成绩管理系统(数据结构C语言版源代码)_工学_高等教育_教育专区。使用C语言编写的学生成绩管理系统,包涵学生基本信息及各科学习考试成绩的管理。一份完整的源代码...C语言课程设计―― 学生成绩管理系统_工学_高等教育_教育专区。内蒙古科技大学 ...巩固和加深学生对 C 语言课程的基本知识的理解和掌握 掌握 C 语言编程和程序...用C语言编写的学生成绩管理系统_IT/计算机_专业资料。二进制的读写 动态存储的分配 汉字点阵技术的应用今日推荐 89份文档 爆笑大撞脸 ...13页 免费 C语言学生成绩管理系统源程... 13页 2财富值如要投诉违规内容,请到百度文库投诉中心;如要提出功能问题或意见建议,请点击此处进行反馈。 ...C语言程序设计学生成绩管理系统实验报告_工学_高等教育_教育专区。计算机学院 C ...加强实践的能力,动手能力,同时进一步对所学的知识 进行巩固; 3.培养初步编程的...移通学院 C 语言程序设计报告书设计名称:学生成绩管理系统专业: 指导老师: 班级...加强实践的能力,动手能力,同时进一步对所学的知识 进行巩固; 3.培养初步编程的...《程序设计基础》课程综合设计实践教学课题考核表课题名称: 学生成绩管理系统 小 ...可以自己与同学一起编写一些简单的程序,在做综合设计中, 我感受到了 C 语言的...假设, 现收集到了一个班学生的所有成绩信息,要求用 C 语言编写一个简单的成绩 管理系统,可进行录入、查询、修改和浏览等功能。学习相关开发工具和应用软 件,熟悉...
All rights reserved Powered by
www.tceic.com
copyright &copyright 。文档资料库内容来自网络,如有侵犯请联系客服。用c语言编写学生成绩管理系统课题设计_百度知道
用c语言编写学生成绩管理系统课题设计
我有更好的答案
如果要全部代码,留个邮箱我发给你。如果还要步骤或者文档,那我就没有了。981--455795
要全部代码,留个邮箱我发给你
为您推荐:
其他类似问题
您可能关注的内容
学生成绩管理系统的相关知识
换一换
回答问题,赢新手礼包
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。}

我要回帖

更多关于 课题研究的重点和难点 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信