




已阅读5页,还剩22页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
目 录目 录2一、课程设计的目的与要求2二、题目说明42.1程序开发背景42.2开发工具介绍4三、总体设计63.1系统开发平台:63.2 .系统流程图:73.3功能结构图:8四、详细说明94.1 系统实施9五、遇到的问题和解决方法17六、课程设计总结19七、参考文献20附录(源程序代码)21一、 课程设计的目的与要求一、课程设计的目的与要求目的:应用所学C语言知识完成相对复杂的任务,进一步巩固C语言。理解并将其应用到实际问题中去。 要求:(1)整个程序用C 语言来实现 (2)利用指针等来实现学生信息管理的数据结构设计 (3)系统具有查询、输入、输出、修改、排序、删除、退出基本功能 (4)系统的各个功能模块都用函数的形式来实现 (5)可以将学生信息从文件中读取出来 1课程设计步骤:(1)对系统进行功能需求分析;(2)设计合理的数据结构和系统框架;(3)编程简练,程序功能齐全,能正确运行;(4)说明书、流程图要清楚;(5)课题完成后必须按要求提交课程设计说明书;在课程设计过程中要求学生:重视课程设计环节,用严谨、科学和踏实的工作态度对待课程设计的每一项任务;按照课程设计的题目要求,独立地完成各项任务,不允许相互抄袭;按时到机房上机,并接受教师的检查。认真编写课程设计报告。课程设计可以由24名同学合作完成一个课题。全体成员应共同协作完成选题,确定设计思想,进行功能模块划分,然后由组长为各成员分配任务。整个设计期间,组长负责协调工作。各小组成员明确自己的任务后,应独立完成各自模块的设计、编码和调试,独立完成课程设计说明书。小组成员要理解同组其他成员设计的模块,熟练操作本组设计。2 考核方式和成绩评定考核分为两个部分:(1)程序运行情况:按规定时间到机房运行程序,由老师检查运行情况(2)课程设计报告:是否按规定书写课程设计要求的各项内容课程设计成绩采用百分制:100%=平时(20)上机检查(30%)+课程设计报告(50%)二、题目说明题目说明学生信息包括:学号,姓名。试设计一学生信息管理系统,使之能提供以下功能:系统以菜单方式工作学生信息录入功能(学生信息用文件保存)-输入学生信息浏览功能-输出查询、排序功能-算法按学号查询按姓名查询输出最大值,最小值,平均值学生信息的删除与修改(可选项) 2.1程序开发背景随着社会发展,近年来大学不断扩招,大学生人数不断的增加,因此如此庞大的人 如果不进行有效的管理就大大的增加了工作人员的工作强度,现在电子计算机技术和软件业的日趋完善给现代办公带来了极大的便利,利用软件就很容易的解决了这种问题从而帮助工作人员高效的合理的管理。本学生信息管理系统就是本着这个目的,帮助老师进行有效的管理,减轻工作强度和提高工作效率,使管理更方便快捷。2.2开发工具介绍 C语言发展如此迅速,而且成为最受欢迎的语言之一,主要因为它具有强大的功能。C语言具有以下特点: (1) C语言是结构式语言 结构式语言的显著特点是代码级数据的分隔化,即程序的各个部分除了必要的信息交流外彼此独立。(2) C语言功能齐全 C语言具有各种各样的数据类型,并引入了指针概念,可是程序效率更高,另外C语言具有强大的图形功能,支持多种显示器和驱动。(3) C语言适用范围大 C语言还有一个突出的特点就是适合于多种操作系统。通过C语言,我们能够实现学生的成绩的基本管理,完成对其成绩的各种操作。三、总体设计3.1系统开发平台:学生成绩管理系统是为了方便用户根据需要对学生的各科成绩信息进行管理的系统。在如今的现代化信息理念下,一个学生管理系统在国际各大高校的教育机构中是一个必不可少的应用程序,他可以方便的对学生信息进行查询,删除,修改,排序等功能,大大提高工作效率。学生成绩管理系统包括人员信息的录入,信息查询,删除,添加,排序等操作。内容比较庞大复杂。通过以上说明,我们可以总结得到如下的系统结构图。3.2 .系统流程图:开始结束成绩录入录入成绩插入成绩处理成绩查询查询处理插入菜单选择 图 3-13.3功能结构图: 学生成绩管理系统菜单选择成绩录入成绩查询成绩处理成绩插入成绩保存成绩排序计算平均分各科平均成绩最高分最低分 图 3-2四、详细说明4.1 系统实施#include#include(1)定义个结构体代码:struct student int number; /*学号*/ char name10; /*姓名*/ int score4; /*score1: 应用数学score2: 大学英语score3: Jave程序设计 score4: 计算机应用基础*/ float ave; /*每个学生平均成绩*/ struct student STU input();(2) 学生信息输入(学号、姓名、各科成绩)代码:函数功能:输入学生的学号、姓名、各科成绩,函数参数:结构体指针head,指向存储学生信息的结构体数组的首地址。整形变量n表示学生数。函数返回值:没有。void Appscore(STU *head,int n) int j; STU *p; for(p=head;pnumber); printf(input name); scanf(%s,p-name); for(j=0;jscore+j); 图 4-1 图 4-2此函数功能是:学校从键盘上输入学生学号、姓名、各科成绩等数据。(3)输出学生学号、姓名、各科成绩等信息代码:函数功能:输出学生学号、姓名、各科成绩等信息;函数参数:结构体指针head,指向存储学生信息的结构体组的首地址。整形变量n表示学生数,函数返回值:没有。void printscore(STU *head,int n) STU *p; int i,temp4; char str100=0; strcat(str,Number Name); for(i=1;i=4;i+) strcat(str, score); itoa(i,temp,10) ; strcat(str,temp); strcat(str, ); strcat(str, ave ); printf(%s,str); /*打印表头*/ for(p=head;pnumber,p-name); for(i=0;iscorei); printf(%9.2f,p-ave); 函数功能:为打印出学生学号、姓名、各科成绩等信息(4)计算学生个人平均分并按个人平均分排名A: 计算学生个人平均分代码:函数功能:计算学生个人平均分;函数参数:结构体指针head,指向存储学生信息的结构体组的首地址。整形变量n表示学生数。函数返回值:没有。void avescore(STU *head,int n) STU *p; int i,sum; for(p=head;phead+n;p+) sum=0; for(i=0;iscorei; p-ave=(float)sum/4; B: )按个人平均分排名代码:函数功能:按个人平均分排名;函数参数:结构体指针head,指向存储学生信息的结构体组的首地址。整形变量n表示学生数。函数返回值:没有。void sortscore(STU *head,int n int i,j,k; STU temp; for(i=0;in-1;i+) k=i; for(j=i;jave(head+k)-ave) k=j; if(k!=i) temp=*(head+k); *(head+k)=*(head+i); *(head+i)=temp; (5)计算各科平均分函数功能:代码:计算学生各科平均分,函数参数:结构体指针head,指向存储学生信息的结构体组的首地址,整形变量n表示学生数,函数返回值。void av2score(STU *head,int n) STU *p; int i,sum; float ave4; for(i=0;i4;i+) sum=0; for(p=head;pscorei); avei=sum/10; for(i=0;i4;i+) printf(%7d,avei);(6)统计各科成绩最高分和最低分。函数功能:统计各科成绩最高分和最低分函数参数:结构体指针head,指向存储学生信息的结构体组的首地址。整形变量n表示学生数,函数返回值:没有。void maxmin(STU *head,int n) STU *p; int i,max,min; for(i=0;iscorei; min=p-scorei; for(p=head;pscoreimax) max=p-scorei; if(p-scoreiscorei; printf(score%d max is:%d,i,max); printf(score%d min is:%d,i,min); (7)学生查询成绩:函数功能:查找学生姓名;函数参数:结构体指针head,指向存储学生信息的结构体组的首地址。整形变量n表示学生数,字符数组变量ming10:要查找的学生的姓名。函数返回值:学生成绩名次。A:int searchname(STU *head,char ming10,int n) int i; for(i=0;iname,ming)=0) return i; return -1;B:函数功能:找到学生的信息并输出;函数参数:结构体指针head,指向存储学生信息的结构体组的首地址。整形变量n表示学生数。函数返回值:没有。void searchscore(STU *head,int n) char ming10; int find; printf(please input the name you want to search:); scanf(%s,ming); find=searchname(head,ming10,n); if(find=(-1) printf(not find!n); else printscore(head+find,1); printf(pai ming is:%7d,find); 图 4-3(8)函数功能:显示菜单并获得学生键盘输入的选项,函数参数:没有;函数返回值:学生输入的选项。char menu(void) char ch; printf(#=#n); printf(# students score manage system #n); printf(#=#n); printf(# 1.pai xu houjie guo #n); printf(# 2.ge kezuigaofenyuzidifen #n); printf(# 3.search scor #n); printf(# 0.end program #n); printf(#=#n); printf(please input the num); scanf(%c,&ch); return ch;main程序:main()char ch; int n=10; STU stu10; Appscore(stu,n); /*先输入学生成绩*/ while(1) ch=menu(); /*实现菜单的显示*/ switch(ch) case1:avescore()stu,n ; printscore(stu,n); /*平均成绩降序输出成绩表*/ break; case2:maxmin(stu,n); /*各科最高分和最低分*/ break; case3:avescore(stu,n); /*输入姓名查询成绩*/ searchscore(stu,n); break;case0:exit(0); printf(end of program); break; 五、遇到的问题和解决方法(1)刚开始编写程序,对各个函数的运用不熟练,因此在开始的时候,总是出错,在看书查看资料后,慢慢的好了起来。也没有一开始出错的。(2)刚开始执行输入函数,按学号顺序输入十个学生的成绩,输完后执行显示功能,学生信息记录是按学号的反顺序显示的,所以在输入信息时只能按学号反顺序输入,最后就按学号正常顺序输出了。(3)刚开始行输入函数时,在学号输“0”后,不能一下子退出返回菜单,仍弹出需要输入的信息。但不影响输入结果。所以在学号输“0”后,输入的学生信息是无效的。(4)输入太多个学生的信息时,屏幕显示不能控制为一页一页显示,所以为了方便起见,不要输入太多记录,十七左右为最佳。(5)在没有输入任何信息的情况下,去执行其他功能,显示“没有任何学生资料,请先建立链表!”(6)在输入选项时不能输入字母,否则会死循环,建议不要乱输字母。(7)学生初始信息模块:其中包括学生的姓名、学号和性别以及学生的语文、数学、英语和计算机等相关信息;可用函数cin(stu *p1)来实现此操作。当正确输入存在的学生学号,系统进行判断时,提示不存在此学生。解决办法及步骤:a.一个个输出所有的学生的学号,检查文件中是否有此学生,发现有。b .既然有此学生,那么检查循环判断是否有此学生的语句发现没有错c.输出用于循环检查语句中的学生信息,发现乱码d.仔细分析乱码的原因,最后发现是变量的类型错误,错将学生类型的结构体指针变量定义为了其他类型的指针变量。问题三、插入模块:(8)可用insert( )函数来实现。其中通过学号的大小来比较的,并且以此来排序。当我们输入插入信息时,系统却提示插入不进数据。解决办法及步骤:a、检查所编写的程序代码是否完全正确,若不是,则改之,然后再继续正确输入插入信息看能否插入进去得到所要插入的学生信息以及学生的语文、数学、英语和计算机的成绩。 b、检查当我们在输入插入信息时,看是否我们输入的插入信息有错误的地方。六、课程设计总结这次课程设计,我感慨颇多,从理论到实践,在整整一星期的日子里,我学到很多很多的东西,真的验证了:只有坚持不懈才能更接近成功。没有人生来什么东西都会,只要努力你一定不会比别人差。这次实训不仅巩固了以前所学过的知识,而且学到了很多在书本上所没有学到过的内容。通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才是真正的知识,才能提高自己的实际动手能力和独立思考的能力。在设计的过程遇到了各种各样的问题,例如,有的程序会出现各种错误,要通过调试和修改,同时在设计的过程中发现了自己的不足之处,对以前所学过的知识理解得不够深刻,掌握得不够牢固,通过这次课程设计,把以前所学过的知识重新温故,巩固了所学的知识。使自己由原来的对c语言的迷茫和恐惧变成了理解和乐观。七、参考文献(1)C程序设计;谭浩强著;清华大学出版社出版。(2)C语言入门经典(原书第3版);张欣译;Apress出版社出版。(3)C语言程序设计;秀峰,黄倩译;人民电出版社出版。(4)实用C语言简明教程;顾小晶著;.中国电力出版社出版。(5)C语言程序设计; 廖雷著;北京:高等教育出版社出版。(6)附录(源程序代码)#include#includestruct student int number; char name10; int score4; float ave;struct student STU input();void Appscore(STU *head,int n) int j; STU *p; for(p=head;pnumber); printf(input name); scanf(%s,p-name); for(j=0;jscore+j); void printscore(STU *head,int n) STU *p; int i,temp4; char str100=0; strcat(str,Number Name); for(i=1;i=4;i+) strcat(str, score); itoa(i,temp,10) ; strcat(str, temp); strcat(str, ); strcat(str, ave ); printf(%s,str); for(p=head;pnumber,p-name); for(i=0;iscorei); printf(%9.2f,p-ave); void avescore(STU *head,int n) STU *p; int i,sum; for(p=head;phead+n;p+) sum=0; for(i=0;iscorei; p-ave=(float)sum/4; void av2score(STU *head,int n) STU *p; int i,sum; float ave4; for(i=0;i4;i+) sum=0; for(p=head;pscorei); avei=sum/10; for(i=0;i4;i+) printf(%7d,avei);void maxmin(STU *head,int n) STU *p; int i,max,min; for(i=0;iscorei); min=(p-scorei); for(p=head;pscoreimax) max=p-scorei; if(p-scoreiscorei; printf(score%d max is:%d,i,max); printf(score%d min is:%d,i,min); void sortscore(STU *head,int n) int i,j,k; STU temp; for(i=0;in-1;i+) k=i; for(j=i;jave(head+k)-ave) k=j; if(k!=i) temp=*(head+k); *(head+k)=*(head+i); *(head+i)=temp; int searchname(STU *head,char ming10,int n) int i; for(i=0;iname,ming)=0) return i;
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 安阳市2024-2025学年八年级下学期语文期中模拟试卷
- 阿拉善盟2025-2026学年八年级下学期语文月考模拟试卷
- 安徽省滁州市南谯区2023-2024学年高三上学期第二次月考化学考题及答案
- PSH的识别与护理课件
- 2025 年小升初清远市初一新生分班考试数学试卷(带答案解析)-(人教版)
- 广东省广州市2025年高中“古诗文积累与阅读竞赛”初赛试题(语文)
- 教师教学2025工作总结
- 社区消防知识培训课件信息
- 2024-2025学年山东省潍坊市寒亭区青岛版五年级下册期中测试数学试卷(含答案)
- 房子首付合同范本
- 主变压器安装施工方案完整版本
- 深度学习教学改进丛书 深度学习:走向核心素养(理论普及读本)
- 人民医院整形外科临床技术操作规范2023版
- 脚手架搭拆施工方案
- 高等教育新论复习提纲-czy
- 汽车风窗刮水器机构设计
- 重庆某广场高边坡喷锚支护施工方案(脚手架设计)
- 用友ERP沙盘大赛推演工具表(模板)
- 传染病学总论(英文稿)
- 教师师德师风专题培训讲座《润物细无声》
- GB/T 5118-2012热强钢焊条
评论
0/150
提交评论