施逸楠成绩管理系统.doc
《施逸楠成绩管理系统.doc》由会员分享,可在线阅读,更多相关《施逸楠成绩管理系统.doc(36页珍藏版)》请在沃文网上搜索。
1、课 程 设 计 报 告课程名称 C语言课程设计 课题名称 学生成绩管理系统 专 业 机械设计制造及其自动化 班 级 0783班 学 号 200713090301 姓 名 施逸楠 指导教师 王 颖 2008年 07月 11日湖南工程学院课 程 设 计 任 务 书课程名称 C语言课程设计 课 题 学生成绩管理系统 专业班级 机械设计及其自动化0783班 学生姓名 施逸楠 学 号 200713090301 指导老师 王 颖 审 批 王 颖 任务书下达日期 2008 年 06 月 20 日任务完成日期 2008 年 07 月 11 日C程序课程设计任务书一 课程设计性质与目的: C 语言程序设计是一门
2、实践性很强的课程。 C程序课程设计是学习C语言程序设计的非常重要的实践环节,通过本课程设计使学生进一步巩固课堂所学,全面熟悉、掌握C语言程序设计的基本方法和技巧,进一步提高编写程序、阅读分析程序及上机操作、调试程序的能力,让学生加深理解书本上所学的知识,提高动手操作的能力以及分析问题和解决问题的能力。加深对C语言课程所学知识的理解,进一步巩固C语言语法规则。学会编制结构清晰、风格良好、数据结构适当的语言程序,从而具备解决综合性实际问题的能力。二 课程设计包含知识点: 1,掌握并熟练运用C语言的基本数据类型与各种表达式,程序的流程控制语句。 2,掌握数组的基本概念。熟练掌握一维数组和二维数组的使
3、用,掌握字符数组与字符串的关系以及字符串的简单处理,会分析、编写利用数组进行数据存储和处理的简单程序。 3,熟练掌握指针、地址、指针类型、void指针类型、空指针等概念,熟练掌握指针变量的定义和初始化、指针的间接访问、指针的加减运算和指针表达式,掌握指针与数组、函数、字符串、自由空间等的联系,了解引用变量、值传送、引用传送的概念,掌握引用参数的使用。 4,掌握函数的定义,函数的返回值,函数的调用,函数的形式参数和实际参数之间的关系;掌握变量的作用域与生存期,了解函数的作用域。 5,掌握结构的概念,结构类型的定义,结构变量的定义和初始化,结构成员的表示,结构的赋值含义,结构与指针、函数的关系。三
4、 课程设计要求: 1,学生从以下八个题目中任意选择并完成一个题目。要求每个学生能独立思考认真并按时完成本课程设计所包含的所有内容。2,要求学生必须按照课程设计报告的完整格式说明设计内容,设计任务分析过程和算法,给出程序流程图和全部源程序,并做出总结。3设计报告的完整格式应包括以下部分的内容:l 设计总体思路l 主程序及各个模块说明l 总体模块框图l 各个程序模块说明l 程序流程图l 程序清单l 总结与体会四 时间安排:7月7日到7月11日上午(8:0012:00)下午(14:0018:00)晚上(6:30-10:30)7月7日7月8 日上机编程与调试7月9 日上机编程与调试7月10 日7月11
5、 日上机调试与课题答辩五 课程设计考核办法: 根据学生所完成课程设计报告的完整性,准确性,和算法实现质量,分为优,良,中, 及格,和不及格 五个等级。六 课程设计指导老师:王颕七 课程设计题目:学生成绩管理系统一、设计内容与设计要求1设计内容:课题名称:学生成绩管理系统1、问题描述:对一个有N个学生的班级,每个学生有M门课程。该系统实现对班级成绩的录入、显示、修改、排序等操作的管理。2、功能要求:本程序利用数组和指针完成对学生成绩的动态管理,其基本功能模块图如图所示:主程序初始化录入显示保存查找修改计算排序退出基本功能模块1)采用一个结构体数组,每个数据的结构应当包括:学号、姓名、M门课程名称
6、。2)本系统显示这样的菜单:请选择系统功能项:a、 成绩录入b、 成绩显示c、 成绩保存d、 成绩查找(要求先输入密码)e、 成绩修改f、 成绩计算g、 成绩排序h、 退出系统3)执行一个具体的功能之后,程序将重新显示菜单。3、算法提示:1)数据结构:结构体类型数组。2)数据库结构:该系统的基本数据库如下姓名学号课程名称1课程名称2 总分名次CharCharfloatFloat4、测试数据:学生人数N=10、课程门数M=4、课程名:数学、语文、英语、计算机对该系统有兴趣的同学可以在实现上述基本功能后,完善系统的其它功能。2设计要求:1,学生从四个题目中选择并完成一个题目。通过本次课程设计,掌握
7、结构化程序设计的主体思想,以自顶向下逐步求精的方法编制程序解决一些实际的问题,为将来编写软件积累一些典型的案例处理经验。要求每个学生能独立思考认真并按时完成本课程设计所包含的所有内容。2,要求学生必须按照课程设计报告的完整格式说明设计内容,设计任务分析过程和算法,给出程序流程图和全部源程序,并做出总结。3按本任务书的要求,编写课程设计报告(Word文档格式)。并用A4的复印纸打印并装订;设计报告的完整格式应包括以下部分的内容:l 设计总体思路l 主程序及各个模块说明l 总体模块框图l 各个程序模块说明l 程序流程图l 程序清单l 总结与体会 42008年7月5日之前,请各班学习委员收齐课程设计
8、报告交余新宇老师。二、进度安排第 十七周 星期一 14:3018:30 星期三14:3018:30 星期五14:3018:30 目 录1、 课题的主要功能62、 需求分析73、 概要设计8 3、1 程序的抽象数据类型的定义 3、2 程序的模块组成以及各个模块的功能8 3、3 课题的总体数据结构和数据库结构94、 详细设计10 4、1 采用C语言定义相关的数据类型104、2 各模块的类C码算法105、 函数的调用关系图166、 程序调试176、1 创建文件菜单176、2 程序主菜单176、3 成绩输入调试图及流程图187、 总结228、 附件229、 评分表35一、 课题的主要功能:对一个有学生
9、的班级学生的成绩进行计算机管 理,通过该系统实现对该班级学生成绩的基本功能的管理。二、 需求分析l 输入输出的要求系统显示这样的菜单:请选择系统功能项:1. Add2. Delete3. Question4. Modify5. Save0Escape三、 概要设计a) 程序的抽象数据类型的定义课程数据结构:课程 英语;数学;C语言;b) 程序的模块组成以及各个模块的功能程序的模块组成: 主函数 void main(); 学生成绩输入函数:Add(); 学生成绩显示函数:Disp();删除学生资料函数:Del(); 查询学生资料函数:Qur(); 修改学生资料函数:Modify(); 保存学生资
10、料函数:Save(); 统计学生成绩函数:Tongji(); 学生成绩排序函数:Sort();各函数的主要功能描述如下: 成绩输入函数Add(): 用于输入本班级学生的各门成绩,要求对应学生学号,学生的相应课程名称。学生成绩显示函数Disp ():用于实现对本班级学生的各门成绩及平均成绩、总成绩的输出显示。学生学号、学生姓名、性别、学生相应课程的成绩相对应。删除学生资料函数Del():用于实现对本班级学生的成绩资料的删除。资料包括学生学号、学生姓名、性别、学生相应课程的成绩及平均成绩、总成绩。 查询学生资料函数Qur(): 用于实现对本班级学生的成绩资料的查询。资料包括学生学号、学生姓名、性别
11、、学生相应课程的成绩及平均成绩、总成绩。 修改学生资料函数Modify():用于实现对本班级学生的成绩资料的修改。资料包括学生学号、学生姓名、性别、学生相应课程的成绩及平均成绩、总成绩。保存学生资料函数Save():用于实现对本班级学生的成绩资料的保存。资料包括学生学号、学生姓名、性别、学生相应课程的成绩及平均成绩、总成绩。统计学生成绩函数Tongji():用于实现对本班级学生的成绩资料的统计。主要统计学生成绩总分、平均分及各科成绩最高分。学生成绩排序函数Sort(): 用于实现对本班级学生的成绩进行排序。c) 课题的总体数据结构和数据库结构由于是班级数据,数据多、数据结构相似的特点,很自然的
12、会用数组实现数据的存储。该课题操纵的总体数据结构是文件类型的数据,文件的记录为结构体数据,数据库结构用文件来实现。需要存储的数据有:输入的成绩,各科成绩最高分,每位同学的总分和平均分。四、 详细设计a) 采用C语言定义相关的数据类型学生数据结构:Struct student Char num10; Char name20; Char sex4; int cgrade; int mgrade; int egrade; int totle; int ave; Char neartime10; 链接结构: Typedef struct node struct student data; struct
13、 node*next; Node,*Link;b) 各模块的类C码算法定位函数:Node*LocateNode*Locate()定义定位指针r;if(与学号一致)指针指向链表下以 内容;While(指针没有指到链表尾)if(与要查询的号码一致)返回指针r; R链接到r链表的下一内容; Else if(与姓名一致) 指针指向链表下以 内容; While(指针没有指到链表尾) if(与要查询的姓名一致)返回指针r; r指向r链表的下一内容; 返回0; 成绩输入函数:Add():void Add()定义3个定位指针p、r、s;定义字符型数组num; r=l; 将l指向链表的下个内容赋值给s; Whi
14、le(指针没有指到链表尾) 将指针置于最末尾; While(1) Printf(“输入学号(以0返回上一级菜单:)”); 给字符型变量num赋值; If(输入为0) 结束; While(s)If(输入的号码与已存在的号码比较结果为0) printf(=提示:学号为%s的学生已经存在,若要修改请你选择4 修改!n,num); 调用函数printstart(); printc(); printe(s); printstart(); printf(n); 返回; S链接到s 链表的下一内容; 将(Node *)malloc(sizeof(Node)赋值给p; 使p链接到data的num,并将num的
15、值赋值给p; 输入姓名;输入性别;输入c语言成绩;输入数学成绩;输入英语成绩;使p链接到data的totle,将c语言成绩、数学成绩、英语成绩累加并赋值给totle,使p连接到data的totle;使p链接到data的ave,将totle除以3得到的值赋值给ave;使p链接到链表尾;使r链接到p;r=p;shoudsave=1; 成绩查询函数:Qur(): void Qur() 定义整型变量 Sel;定义字符型数组Findmess;定义定位指针p;If(l不指向下一内容) printf(n=提示:没有资料可以查询!n); 返回; printf(n=1按学号查找n=2按姓名查找n); 给变量Se
16、l赋值; If(按学号查找) printf(请你输入要查找的学号:);给变量Findmess赋值;将Locate(l,findmess,num)赋值给p;If(p)printf(tttt查找结果n);调用函数printstart(); printc(); printe(p); printstart();else Nofind(); else if(按姓名查找) printf(请你输入要查找的姓名:); 给变量Findmess赋值;将Locate(l,findmess,num)赋值给p;If(p)printf(tttt查找结果n);调用函数printstart(); printc(); prin
17、te(p); printstart();else Nofind(); else Wrong(); 成绩删除函数:Del (): void Del() 定义整型变量 Sel;定义字符型数组Findmess;定义定位指针p、r;If(l不指向下一内容) printf(n=提示:没有资料可以删除!n);返回; printf(n=1按学号删除n=2按姓名删除n);给变量Sel赋值; If(按学号删除) printf(请你输入要删除的学号:);给变量Findmess赋值;将Locate(l,findmess,num)赋值给p;If(p)r=l;while(r链接到下一个内容不为p)r链接到r链表的下一内
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
10 积分
下载 | 加入VIP,下载更划算! |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 施逸楠 成绩管理系统