第一篇:学生成绩管理系统 C语言061406116蒋红杰
C++面向对象课程设计
任 务 报 告 书
课题:学生成绩管理系统
★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★
指 导 教 师:闫洪亮 陈红军 薛 冰
李
蓓 景伟娜
学 生 班 级:0614061 学 生 学 号:061406140 学 生 姓 名:蒋红杰
★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★
2008.02.28
一、设计题目:学生成绩管理系统
二、系统环境:硬件:联想电脑
软件:Microsoft visual c++
三、设计内容概述、解决方案及说明
学生成绩管理系统能够实现学生成绩的录入、查询、修改、增加、注销、总排明及各科分数排名基本信息。利用C++语言编写来实现,深入理解用类、继承等面向对象的编程的特点。
四、流程图及模块图及说明()(流程图模块见后附录)
五、程序清单(加注释)及相关说明(程序源代码如下)#include
struct fenshu
{ float chinese;
float math;
float english;
float total;};
struct student
{ char xingming[20];
int xuehao;
fenshu z;
};class program
{ public: void setname();
void getname();
void xiugai();
void tianjia();
void shanchu();
void paiming();
private: student a[100];
};void program::setname(){ float d,e,f;
//全局变量
//用于存放学生成绩
//存放语文成绩
//存放数学函数
//存放英语函数
//用于存放学生所有信息
//存放学生姓名
//存放学生学号
//学生成绩封装结构体
//类 实现学生成绩的各种功能
//学生成绩注册
//学生成绩查询
//学生成绩修改 //学生成绩填加
//学生成绩注销
//学生成绩排名函数
//用于存放学生的各种信息
//学生注册函数
cout<
//输入学生姓名
int number;for(int i=0;i cin>>namestr; //学生姓名输入 strcpy(a[i].xingming,namestr);//输入的学生姓名负值给结构体保存 cout<<“请输入学生的学号:”;cin>>number;a[i].xuehao=number; //输入学生学号 cout<<“语文:”;cin>>d;cout<<“数学:”;cin>>e;cout<<“英语:”;cin>>f;a[i].z.chinese=d; //给学生成绩赋值 a[i].z.english=f;a[i].z.math=e;a[i].z.total=a[i].z.chinese+a[i].z.english+a[i].z.math;} char wo;cout< void program::getname() //学生成绩查询函数 { cout< cout<<“请输入查询同学的姓名:”< char name[20]; cin>>name;for(int k=0;k if(strcmp(a[k].xingming,name)==0) //学生姓名查询是否对应 { //对应则输出学生信息否则不执行 cout<<“学号:”< cout<<“语文:”< cout<<“数学:”< cout<<“英语:”< cout<<“综合:”< } } char wo; cout< cout<<“ ★★★★★★★★★★★★★”<<“按0返回上层”<<“★★★★★★★★★★★★★★★★★★”< cin>>wo;} void program::xiugai() //学生成绩修改函数 { cout< float x,y,z; cout<<“请输入需要修改的学生的姓名:”; char names[20]; cin>>names; for(int l=0;l { if(strcmp(a[l].xingming,names)==0)//学生姓名查询是否对应 { cout<<“请从新输入该生的成绩!”< //新学生信息输入 cout<<“语文:”; cin>>x; cout<<“数学:”; cin>>y; cout<<“英语:”; cin>>z; a[l].z.chinese=x; a[l].z.english=z; a[l].z.math=y; a[l].z.total=a[l].z.chinese+a[l].z.english+a[l].z.math; } } char wo; cout< cout<<“ ★★★★★★★★★★★★★”<<“按0返回上层”<<“★★★★★★★★★★★★★★★★★★”< cin>>wo; } void program::tianjia() //新学生注册函数 { cout< ++j; //全局变量 char names[20]; cout<<“输入新增学生姓名:”; cin>>names; strcpy(a[j-1].xingming,names); cout<<“输入新增学生学号:”; int i; cin>>i; a[j-1].xuehao=i; //J减一与数组对应 cout<<“输入新增学生成绩:”< float m,n,r; cout<<“语文:”; cin>>m; cout<<“数学:”; cin>>n; cout<<“英语:”; cin>>r; a[j-1].z.chinese=m; //给新添加学生成绩赋值 a[j-1].z.english=r; a[j-1].z.math=n; a[j-1].z.total=a[j-1].z.chinese+a[j-1].z.english+a[j-1].z.math; char wo; cout< cout<<“ ★★★★★★★★★★★★★”<<“按0返回上层”<<“★★★★★★★★★★★★★★★★★★”< cin>>wo; } void program::shanchu() //学生成绩注销函数 { cout< char nam[20];char na[]=“sorry”; cout<<“输入需要删除的学生姓名”< cin>>nam; for(int o=0;o if(strcmp(a[o].xingming,nam)==0) { cout<<“您的操作成功!”< //将注销学生成绩归零 strcpy(a[o].xingming,na); a[o].xuehao=0; a[o].z.english=0; a[o].z.chinese=0; a[o].z.math=0; a[o].z.total=0; } } char wo;cout< //学生成绩排名函数 { cout< if(strcmp(a[p].xingming,name)==0) //学生成绩排序 { for(int k=0;k { if(a[p].z.total { q++; } if(a[p].z.chinese { i++; } if(a[p].z.english //英语成绩排序 { l++; } if(a[p].z.math //数学成绩排序 { m++; } } cout<<“姓名:”< cout<<“总分:”< //输出学生成绩排序情况 cout< cout<<“语文:”< cout< cout<<“数学:”< cout< cout<<“英语:”< cout< } } char wo;cout< void main() //主函数 { system(“color 56”); char r[20];char s[20];cout<<“★★★★★★★★★★★★★★★★”<<“欢迎用户注册”<<“★★★★★★★★★★★★★★★★”< cin>>s;system(“cls”);cout< cout<<“★★★★★★★★★★★★★★★”<<“欢迎使用本软件”<<“★★★★★★★★★★★★★★★”< cout<<“请输入用户名:”; cin>>h; cout<<“请输入密码:”; cin>>t; system(“cls”); if(strcmp(r,h)==0&&strcmp(s,t)==0) { cout< cout<<“ ”<<“登陆中,请稍等...”< for(int k=0;k<1000000000;k++) {} goto menu; } else { cout<<“a”<<“a”<<“a”< cout<<“输入错误,请从新输入”< cout<<“您只有三次机会”< } } exit(0);menu: system(“color 60”); //DOS颜色变换 cout<<“★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★”< ▲▲▲▲”< ★★★★★★★★★★★★★”<<“学生成绩注册”<<“★★★★★★★★★★★★★★★”< ★★★★★★★★★★★★★”<<“学生成绩查询”<<“★★★★★★★★★★★★★★★”< ★★★★★★★★★★★★★”<<“学生成绩修改”<<“★★★★★★★★★★★★★★★”< ★★★★★★★★★★★★★”<<“学生成绩添加”<<“★★★★★★★★★★★★★★★”< ★★★★★★★★★★★★★”<<“学生成绩注销”<<“★★★★★★★★★★★★★★★”< ★★★★★★★★★★★★★”<<“学生成绩排名”<<“★★★★★★★★★★★★★★★”< 六、设计中遇到的问题及解决方法 我们设计的题目是学生成绩管理系统,刚拿到这个我们首先进行了分析,在头脑里有了个大概的脉络,接下来的就具体行动了,对系统的需求分析,编写程序,当然在编写的过程中遇到了很多困难。编写一个程序需要实现什么功能,学生的基本信息要如何得到实现,刚开始我们先编写一个简单的程序,能够基本实现学生成绩的录入,查询,修改等功能,显然这些在实际生活中还是不够的,然后再添加了总分的计算,各科的排名,学生成绩的注销。而如何将这些功能全部联系起来呢,我们考虑到了结构体,再经过仔细复习课本,参考书籍,经过我们三个人的仔细研究与探讨终于得到了实现。调试的时候是也是不断修改。 七、心得体会 心得体会 经过一星期的艰苦奋战,我们三人齐心协力,共同完成了任务.这不仅是程序设计,更是锻炼我们处理问题的能力,同时也使我们了解到团队合作的可贵.编写程序是件细心活,稍不留神就会出错,这就必须要求我们对待事情要认真!在编写程序的过程中,错误不断出现,不同的类型(如少写了一个符号,写错了字母,用错了函数等等)层出不穷,这考验我们待事细心,耐心,能不能坚持到底,不能半途而废.这次主要体现出了团队合作的无比重要性,但与此同时我们也发现知识也同样占据着重要的地位.胜不骄,败不馁.没有最好,只有更好!团队精神贯穿于课程设计的始终,这种精神带给我们力量的同时也增强了我们的团队意识,它将对我们产生巨大的影响。在设计和调试程序的过程中,我们看到了自身在掌握知识上的欠缺之处,并获得了补充的机会。从中获得的宝贵的经验和汲取的实践精华将对我们以后的学习起着不可磨灭的推动作用。课程设计的时间很短暂,但对我们的影响意义却是无穷无尽的。 三人行必有我师,遇到问题我们一起讨论,研究,错了再写,写了在改.经过多次的修改,调试,运行,添加,终于最后在大家的欢呼声中,完成了我们的任务.虽说是累了点,但我们也从中找到了自己的快乐,每当完成一个新的函数时,那心情是激动啊,这毕竟是自己弄出来的,同时也使我们感受到了学习的快乐! 生活上我们也同样如此,以这种精神对待生活,对待生命,我想,我们的人生会更美好,路是自己走出来的,也只有经过无数次的磨练,无数次地坚定我们的信心,锻炼我们的意志渐渐地使自己才能够使自己成熟起来,走出一片属于自己的天空.钟锦荣 2008-2-29 八、参考文献 《C++语言程序设计》(清华大学出版社)《C++程序设计》谭浩强编 111111111学院 毕 业 论 文 题 目 学生成绩管理系统 姓 名 1 1 1 所在系别 计 算 机 系 专业班级 计算机应用技术计算机111班 学 号 1111111111 指导教师 1 1 1 日 期 2012 年 4 月 15 日 临汾职业技术学院 09届计算机应用技术专业毕业论文 目 录 摘 要 „„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„1 临汾职业技术学院 09届计算机应用技术专业毕业论文 学生成绩管理系统 计算机111班 1111 指导老师 111 摘 要:学生成绩管理系统是为了实现学校对学生成绩管理的系统化、规范化和自动化,从而提高学校管理效率而设计的。它完全取代了原来一直用人工管理的工作方式,避免了由于管理人员的工作疏忽以及管理质量问题所造成的各种错误,为及时、准确、高效的完成学生成绩管理提供了强有力的工具和管理手段。学生成绩管理系统是一个中小型数据库管理系统,它界面美观、操作简单、安全性高,基本满足了学生成绩管理的要求。 本系统是在以ACCESS2003作为后台数据库来开发的。学生成绩管理系统在运行阶段,效果好,数据准确性高,提高了工作效率,同时也实现了学生成绩管理计算机化。关键字: 成绩 管理系统 数据库 Abstract:The system of “The Managment of Student's Mark” has been designed mainly for acheiving such goal of letting the students' marks to be well-managed and modelized automaticly in order to higher the school's managing speed.it has already replaced the original artificial method completely thus the avoiding of wrongs that could be caused by carelessness and the lack of managing skill.due to the more accurate results within a shorter time, the system is obviously providing a stronger managing mean.“The Managment of Student's Mark” is a middle-sized system of data Management, which is both simple-controlling and safe.this technique is the nowadays best system towards the management of student's marks since it is now being mostly satisfied.The system's opening relies on ACCESS2003 as a backup of the data management.this technology not only shortened the managing time but also, it hightlights the high-quality by providing more accurate datas.on top of it, it has also put the computerized “The Managment of Student's Mark” into practice.Key word: Mark Administrative System The Database 临汾职业技术学院 09届计算机应用技术专业毕业论文 学校对系统的开发大力支持。因此经济上是可行的。 本系统可以马上开始实施,并尽可能做到提前完成。从人力资源优化角度来说,可以充分利用学校已有人力资源。从开发成本角度来说,将支出成本降到最底。所以在三个可选择的方案中推荐此方案为最佳方案。 临汾职业技术学院 09届计算机应用技术专业毕业论文 2.4 系统功能模块设计 该系统的目标是提高学生成绩管理的效率,通过本系统可以对学生个人信息、课程和任课教师信息、选课信息进行管理和维护。该系统分为教师权限和学生权限,主要功能包括: 1.用户管理 2.基于数据管理 3.学生对个人数据的查询及管理 具体模块功能如下图2-1,图2-2: 图2-1 临汾职业技术学院 09届计算机应用技术专业毕业论文 图2-2 临汾职业技术学院 09届计算机应用技术专业毕业论文 3:课程表中的课程号与学生成绩表中的课程号对应,课程表中的课程号依附于学生成绩表中的课程号。 4:课程号于老师是一对一的关系,课程名对成绩是一对一的关系。 学号于课程号同样是一对多的关系,课程号对成绩是一对多的关系,一个学号和一个课程号对于成绩是一一对应的关系。E-R图如下图3-1 图3-1 3.3 数据库逻辑结构设计 学生成绩信息系统中的关系模式如下: 学生基本信息(学号,姓名 ,性别),主键是学号。学生成绩表(学号,课程号,成绩),主键是学号+课程号。课程表(课程号,课程名,教师姓名)。主键是课程号。 临汾职业技术学院 09届计算机应用技术专业毕业论文 临汾职业技术学院 09届计算机应用技术专业毕业论文 图4-3 图4-4 4.2 成绩信息模块的设计 这一模块的主要功能是用于实现对学生各科成绩的录入,修改与查询。学生成绩录入,修改界面图4-5: 临汾职业技术学院 09届计算机应用技术专业毕业论文 图4-5 学生成绩查询界面图4-6: 临汾职业技术学院 09届计算机应用技术专业毕业论文 图4-6 4.3 添加信息模块的设计 这一模块的主要功能是对教师,学生信息的录入,修改与查询。图4-7,图4-8,图4-9: 图4-7 临汾职业技术学院 09届计算机应用技术专业毕业论文 图4-8 图4-9: 临汾职业技术学院 09届计算机应用技术专业毕业论文 4.4 查询统计模块的设计 这一模块的主要功能是对学生选课及教师授课信息的查询。图4-10,图4-11,图4-12: 图4-10: 临汾职业技术学院 09届计算机应用技术专业毕业论文 图4-11 图4-12 4.5 开发中的难点和解决技巧 1.一个全面的Access应用至少会涉及到以下三种基本Access 对象类型:(1)表用于存储你或其他人向数据库中添加的数据。 (2)窗体用于显示和输入数据,控制其他窗体的打开和关闭以及打印报表。 临汾职业技术学院 09届计算机应用技术专业毕业论文 (3)报表打印表中的细节信息、总结信息或者将两者都进行打印。2.Access模块:包含VBA子过程和函数(公共,任何窗体或报表均可访问)要想成为一个完善的关系型数据库管理系统(RDBMS),一个应用必须具备以下四个基本功能,其中每个功能都有其自己的表现形式(或者视图):(1)数据组织(表的创建和操作) (2)表链接和数据提取(查询,临时表等)(3)数据输入和编辑(窗体实现)(4)数据表示(报表) 3.数据库实用工具(一些需要在不打开数据库的情况下执行) (1)压缩和修复(最好压缩和修复为新数据库,防止数据库不小心损坏不能恢复)(2)添加切换面板窗体(没有将创建新) (3)创建.mde文件(编译过的VBA代码,源文件不可用,用户将不能再修改其中的设计对象)4.设计表需要注意的事项 (1)字段名称:不能重复,最长64字符,可中间包含(空格,“。”没“!”和“[]” (2)数据类型,说明,主键,字段大小,格式(不影响值本身,只是显示方式),Precision(Decimal类型特有,指定总共用多少数位表示一个数值,默认18位),Scale(Decimal特有,决定小数位数),小数位数,输入掩码,标题,默认值,有效性规则,有效性文本,必填字段,允许0长度,索引,新值(自动编号类型特有)5.字段类型需要注意的事项 (1)文本:默认,最大255个字符(指定长度后,如果输入数据超出,将自动截去多余)(2)备注:最大65535个字符(不能作为关键字段)(3)数字型:根据字段大小属性设置一个合适的类型 (4)自动编号:(长整型),产生方法取决于新值属性(最大20亿左右) (5)Yes/No:逻辑(布尔)字段(True:-1,False:0),可被索引,但不能作为关键字段(6)货币:currency,固定格式(小数4位) 6.设置“主键”:唯一性,可创建多字段的主键和相应的索引 临汾职业技术学院 09届计算机应用技术专业毕业论文 求,能够完成学生信息的存储和成绩的查询以及各类相关报表的打印。并提供部分系统测试功能,使用户方便进行数据备份和恢复、数据删除。对于数据的一致性的问题也通过程序进行了有效的解决。 但是由于毕业设计时间较短和本人水平所限,所以该系统还有许多不尽如人意的地方,希望使用者能给予指正,这些都有待进一步改善。 致谢 在此更要感谢我的导师和专业老师,是你们的细心指导和关怀,使我能够顺利的完成毕业论文。在我的学业和论文的研究工作中无不倾注着老师们辛勤的汗水和心血。老师的严谨治学态度、渊博的知识、无私的奉献精神使我深受启迪。从尊敬的导师身上,我不仅学到了扎实、宽广的专业知识,也学到了做人的道理。在此我要向我的导师致以最衷心的感谢和深深的敬意。 参考文献 [1]白以恩.计算机网络基础及应用.哈尔滨:工业大学出版社,2000 [2]包锦阳.大专生毕业论文(设计)写作指导.浙江大学出版社,2004 [3] 李俊德.ACCESS2003入门与实例演练.中国青年出版社,2005 [4]张泽虹.数据库原理及应用:Access2003.电子工业出版社,2005 [5]彭湘凯,曾光辉.数据库原理与应用.机械工业出版社,2007 [6]楼土明.信息系统应用与开发.浙江摄影出版社,2009 [7]张作华.管理制度——人事与组织机构管理制度.伊犁人民出版社,2000 [8]毛国君.高级数据库原理与技术.人民邮电出版社,2004 [9]上海市教育委员会.信息系统与数据库技术学习指导及习题解析.机械工业出版社,2009 [10]何宁,黄文斌,熊建强.数据库技术应用教程.机械工业出版社,2007 [11]吴京慧,刘爱红,廖国琼.数据库系统原理与设计实验教程.清华大学出版社,2009 [12]刘晓强.信息系统与数据库技术.机械工业出版社,2008 [13]丁宝康,陈坚.数据库系统工程师考试全程指导.清华大学出版社,2006 [14]张平.数据库应用基础Access2003.人民邮电出版社,2007 临汾职业技术学院 09届计算机应用技术专业毕业论文 [15]魏茂林.数据库应用技术.电子工业出版社,2009 [16]黄河,乐磊.微软解疑专家(5)——Access数据库.北京大学出版社,2001 [17]神龙工作室.新编Access2003数据库管理入门与提高.人民邮电出版社,2007 [18]启明工作室.ACCESS 数据库应用实例完全解析.人民邮电出版社,2007 [19]高英,张晓冬.ACCESS数据库应用系统开发与实例.人民邮电出版社,2008 [20]王宇虹.专家门诊--ACCESS开发答疑200问1CD.人民邮电出版社,2009 课程设计题目:简单的学生成绩管理的程序 要求: 一、由键盘输入原始数据。原始数据内容如下: 学号姓名C程序设计高等数学英语线性代数 1王..80808080 2张..90909090 注:要求至少有20个学生的原始数据 二、实现以下功能。 程序要求主函数是一个功能选择菜单,其它各功能用函数实现。功能要求如下: 1、原始数据的输入 2、计算每位同学的平均分 3、计算每门课程的平均分 4、计算各分数段(90-100、80-89、60-79、60以下)的人数 5、对这些同学的成绩按平均分排序,给出名次。 6、对原始数据可以进行增、删、改的编辑操作。 7、按学号查询学生。找到则显示该生信息,否则提示未找到。 8、原始数据可以保存为文件,也可以从文件载入。 注:程序统计输出结果如下: 学号姓名C程序设计高等数学英语线性代数平均分名次 1王..80808080802 2张..90909090901 … 各科平均分8585858585 C程序设计高等数学英语线性代数平均分 90-10011111 80-8911111 60-6900000 60以下00000 1.实验内容 实现一个学生成绩处理程序,先输入多名学生的学号和成绩,然后进入菜单,可以选择打印,添加,修改,删除或查询成绩(学号查询和成绩段查询)。 2.实验步骤 2.1 程序1 2.1.1 程序功能 这是一个学生成绩处理程序,通过用户输入多名学生的学号和成绩,然后进入菜单,可以选择打印,添加,修改,删除或查询成绩(学号查询和成绩段查询)。2.1.2 设计思路 将一个大程序分块化处理,各个部分先用普通方法实现,在能运行的条件下改用插入排序和折半查找实现。先实现输入成绩和菜单,再一项一项实现菜单中的功能。 2.1.3 流程图或其他描述(不要求可以不写) 2.1.4 程序代码(要有注释) //实现一个学生成绩处理程序,可以选择打印、添加、修改、删除或查询成绩(学号和成绩段查询) #include typedef struct student { long num;int score;}STU; STU stu[N];int n=0;int KEY=0;int k; void Input();void Output();void Add();void Direct();void Delete();void Search();void Sch();void Save();void Read(); void main(){ switch(chos){ case 1: Input();break;system(“cls”);printf(“n”);printf(“学生成绩管理系统nn”);printf(“1.录入n2.显示n3.添加n4.修改n”);printf(“5.删除n6.查找n7.查询n8.退出n”);printf(“n请选择: ”);scanf(“%d”, &chos);int chos;case 2: } Output();break;case 3: Add();break;case 4: KEY = 1;Search();break;case 5: Delete();break;case 6: Search();break;case 7: Sch();break;case 8: exit(0);break;default: } printf(“错误!请按要求输入!”);Sleep(2000);main();void Input(){ } int i=-1;system(“cls”);printf(“当输入学号为负时返回!n”);do{ i++;printf(“n”);printf(“请输入第%2d个学生的学号: ”, i+1);scanf(“%ld”, &stu[i].num);if(stu[i].num < 0)break;printf(“请输入第%2d个学生的成绩: ”, i+1);scanf(“%d”, &stu[i].score);n++;}while(i } Read();printf(“nn任意键返回!”);getchar();getchar();main();void Add(){ for(i=0;i } if(stu[N-1].num < stu[i].num){ for(j=n;j>i;j--){ } stu[i].num = stu[N-1].num;stu[i].score = stu[N-1].score;break;stu[j].num = stu[j-1].num;stu[j].score = stu[j-1].score;}else{ } stu[n].num = stu[N-1].num;stu[n].score = stu[N-1].score;break;}n++;printf(“修改后的”);Save();void Direct(){ } void Delete(){ system(“cls”);printf(“请输入要删除信息的学生学号: ”);scanf(“%ld”, &del);getchar();printf(“确认删除?(Y/N)”);int i, del;char key;printf(“请输入修改后的成绩: ”);scanf(“%d”, &stu[k].score);printf(“修改后的成绩为:n”);printf(“t%8ldt%dn”, stu[k].num, stu[k].score);printf(“nn”);printf(“修改后的”);Save(); } scanf(“%c”, &key);if(key=='y' || key=='Y'){ } printf(“修改后的”);Save();for(i=0;i } if(del == stu[i].num){ } stu[i] = stu[i+1];n-= 1;void Search(){ int i;char key = 'y'; } long search;system(“cls”);if(KEY==1)printf(“n请输入要修改成绩学生的学号: ”);else printf(“n请输入要查询成绩学生的学号: ”);scanf(“%ld”, &search);for(i=0;i } if(KEY == 1)Direct();KEY = 0;if(search == stu[i].num){ } printf(“学生信息为:n”);printf(“t%ldt%dn”, stu[i].num, stu[i].score);k = i;void Sch(){ } void Save(){ printf(“任意键返回!”);getchar();getchar();main();for(i=0;i } if(stu[i].score>=a && stu[i].score<=b)printf(“t%ldt%dn”, stu[i].num, stu[i].score);system(“cls”);printf(“请输入您要查询的成绩段(A B): ”);scanf(“%d %d”, &a, &b);printf(“符合条件的学生有:n”);int i, a ,b; } FILE *fp;if((fp=fopen(“score.bin”, “wb”))== NULL){ } fwrite(stu, sizeof(STU), n, fp);fclose(fp);printf(“Failed to save the data!n”);exit(0);printf(“学生成绩已储存在”score.bin“中!n”);printf(“nn任意键返回!”);getchar();getchar();main();void Read(){ FILE *fp;int i, total; } printf(“学生信息:n”);if((fp=fopen(“score.bin”, “rb”))== NULL){ } printf(“Failed to read the data!n”);exit(0);for(i=0;!feof(fp);i++){ } fclose(fp);fread(&stu[i], sizeof(STU), 1, fp);total = i-1;for(i=0;i 3.实验体会 3.1 调试中出现的问题及解决过程 在程序中运用数组时还是不够熟练,调试时总出现指代不明或无法显示所要内容的情况,在认真看老师课上例子后找出错误所在,修改后运行成功。 3.2 心得体会 3.3 实验改进建议 在查询某个学生成绩,可实现查询第n-m名学生成绩,查询分数在n-m之间的学生成绩,查询平均成绩;学生成绩修改(增加、删除、修改)等。 C语言课程设计——学生成绩管理系统 个人心得体会 (徐州工程学院 14计嵌1班 07组 张凯) 这一周以来的课程设计,不仅让我明白了C语言的确是一门很有用的,但是又是不容易的一门课程。起初刚开始做课程设计时,以为这个课程设计不会有多难,只不过是把多个函数组合起来就好了,但是,经过这一星期的编程,发现要完完整整把程序按照要求编出来是一件很不容易的事情。然而在这一周以来的学习中,也对C语言这门课程有了更加的了解和学习。 在整个编程的过程中,可以说遇到了很多难题,但是让我印象最深刻的是在编写从某文件中读取学生信息这个程序时所遇到的困难。起初,程序时编写出来了,在组建时也没有错误,但是就是实现不了这个功能,接着就是整整一天的苦战;终于,能够读取文件中的信息了,可是,新问题又来了,在显示读取的信息时出现了乱序。另外在编写加密代码的时候竟然忘记了将其放在主函数中运行闹了笑话,在指导老师的帮助下最后解决了这个问题。 每天看到一行行代码着实有时让人头大。然而在这个程序完整地编写下来,我觉得编写程序需要很大的耐心,一个稍微大点的程序就有个几百甚至上千行,没有耐心是很难做得成功的。当然细心也很需要,在编程的过程中有很多错误都是自己的粗心造成的,有时甚至自己多次检查都看不出来,这样一来,会造成时间的大量浪费。 这次的课程设计也是一次很好的对自我的检查。它让我知道了自己在C语言的学习上还不够认真刻苦,很多知识点还是没有很好的掌握,甚至有些知识点很生疏,这也许就是我在编写从某文件中读取学生信息这一函数时老碰壁的原因所在!从这一点上来看,发现我对待学习的态度还不够端正,有待加强。 不管怎么说,经过这一次课程设计,在C语言方面的收获最大,让我读代码的能力大大提升了不少,也巩固了很多知识。同时也受到了指导老师刘云、邹文辉的细心指导,非常感谢!第二篇:学生成绩管理系统毕业论文C语言
第三篇:C语言课程设计任务书(学生成绩管理系统)
第四篇:c语言实验报告三 学生成绩管理系统
第五篇:C语言课程设计学生成绩管理系统个人总结