c语言——课程设计实验报告网页未完版

上传人:油条 文档编号:28519599 上传时间:2018-01-17 格式:DOC 页数:28 大小:246KB
返回 下载 相关 举报
c语言——课程设计实验报告网页未完版_第1页
第1页 / 共28页
c语言——课程设计实验报告网页未完版_第2页
第2页 / 共28页
c语言——课程设计实验报告网页未完版_第3页
第3页 / 共28页
c语言——课程设计实验报告网页未完版_第4页
第4页 / 共28页
c语言——课程设计实验报告网页未完版_第5页
第5页 / 共28页
点击查看更多>>
资源描述

《c语言——课程设计实验报告网页未完版》由会员分享,可在线阅读,更多相关《c语言——课程设计实验报告网页未完版(28页珍藏版)》请在金锄头文库上搜索。

1、中南大学C 语言程序设计实践报告题 目 学 生 成 绩 管 理 系 统 学生姓名 木雕小象 指导教师 学 院 信 息 科 学 与 工 程 学 院 专业班级 电 气 0900 班 完成时间 2010 年 7 月 8 日 系统描述 功能模块结构数据结构设计 主要模块的算法说明运行结果课程设计总结附录(源代码)一、系统描述1. 学生成绩管理系统对日常学生的基本成绩信息进行管理,能实现对学生多种信息的存储,可以对多种数据进行各种各样的操作。2. 管理系统首先能实现数据的输入。学生的各种信息(比如:班级,学号,姓名,性别,年龄,选修课程编号,名称,考试成绩,平时成绩,综合成绩)能正确的输入,从而可以进行

2、处理。3. 待所有学生信息输入以后,如果发现输入有误或者需要修改一些学生的信息,可以利用修改函数进行修改,并且可以修改任意需要修改的信息。4. 同时当学生管理系统需要进行学生的添加时(比如:新生转学时),利用添加函数能及时的补充所需要的信息。5. 当所需的学生信息正确而完整的输入后,该信息系统可以进行信息的查询(本系统可按学生姓名和学号查询) ,当输入正确的查询信息后,该管理系统可以显示出该生的所有信息。当输入信息不正确时,系统会提示错误,并允许重新输入。6. 此系统同时可以进行信息的删除,当有学生退学或休学时,利用删除函数可以删除特定的学生信息,从而减少冗余的信息。7. 该系统可以显示输入的

3、所有信息。8. 利用该系统可以同时计算每个同学的平均成绩,并对所有的学生按平均成绩高低进行排序,同时输出排序后的成绩表。9. 此系统同时还可以列出不及格学生的学号,姓名,课程和成绩,便于进行统一的管理。二、功能模块结构1. 该系统的模块设计清晰,各模块的算法简单,高效,整个系统由主函数调用各个模块而组成。可以把函数分为数据录入模块,数据修改模块,数据添加模块,数据查询模块(可分文姓名和学号查询) ,数据删除模块,数据统计模块(成绩显示模块,成绩计算及排序模块,成绩分类模块) ,文件保存模块共七大模块,其中主函数中包含界面模块2. 主要模块的结构图如下: 主控函数数据录入数据修改数据统计退出系统

4、数据删除数据查询数据添加 姓名查询学号查询全部显示平均分不及格模块功能描述1. 主控模版:主控模版是整个系统的模块交汇点,使用者使用系统时先进入主控模版,通过主控模版可以调用任意的模块,达到预期的功能。2. 数据录入模块:该模块可以实现学生多种数据的录入,录入的信息储存在数组中,其他模块能够调用。3. 数据模块修改:该模块可以实现数据的修改。当输入修改的学生信息时,模块会自动找寻,未找到则显示不存在,若找到则进入下级列表,操作者可以根据界面标号进行任意的修改4. 数据添加模块:该模块将学生的信息完整的存入一个结构体数组中,其他模块可以调用。5. 数据模块查询:该模块可以对信息进行检索,挑选出符

5、合要求的信息,并显示列表,如果没有搜索的信息,则显示未找到。 (1)按姓名查询(2)按学号查询6. 数据删除模块:该模块可以删除任意指定学生的信息,模块首先会提醒操作者输入特定的学号,数据输入后进行搜寻,若无此学生的信息,则显示不能找到,若找到此生信息,则显示删除成功。7. 数据统计模块(1)成绩显示模块:输入选择号后,该模块可以显示已经输入系统的学生信息。(2)成绩计算及排序模块:该模块可以利用平均成绩函数计算每位学生的平均成绩,并按学生平均成绩的高低进行排序,然后将学生姓名列表显示。(3)成绩分类模块:该模块可以查找系统中不及格学生的信息,然后将该生的学号,姓名,不及格科目及分数显示出来。

6、8、退出系统模块三、数据结构设计学生成绩管理系统在使用中用到了众多的数据,数据多,数据类型复杂,给数据的管理和使用带来了很大的麻烦。所以我使用了数组来存放数据。定义了结构体来存放学生的各种类型的数据,使存放更合理,便于管理。为避免学生基本信息结构体 stu 太长,嵌套定义了一个选修课程结构体 coursestruct course课程编号 整型 int num;课程名 字符串 char name10;考试成绩 浮点型 float score;平时成绩 浮点型 float usual;综合成绩 浮点型 float integral;struct stu 专业班级 整型 int class;学生编

7、号 整型 int num;学生姓名 字符串 char name10;性别 字符串 char sex2;年龄 整型 int age;嵌套定义课程信息 struct course course2;平均成绩 浮点型 float avescore;程序后面的模块都会要用到以上结构体的信息,控制好循环结构,能随时调用结构体中的信息。四:数据模块结构说明本系统的功能都是由主函数调用各个模块来实现,每个模块都是一个特定的自定义函数,能分别实现不同的功能。采用的思想也就是“化整为零” ,将一个问题分解为一个个的小问题,各自来攻破。下面将分写介绍每个模块的实现过程及功能。在最开始,定义了一个全局变量 m,m 是

8、结构体数组 stu 的有效长度,能够对后面的插入,删除等范围进行控制。1. void menu()改函数为主控函数,起到功能菜单的作用,每个功能从这个界面选择,实现功能后返回改界面,进而选择其他功能。2. void input();此函数实现最开始数据的输入功能。在屏幕的提示下,操作者能输入相应学生的信息,采用的是双重循环:外层循环for(i=0;i#includestdlib.h#define COURSENUM 2 /*宏定义课程数目*/void menu();void input();void delet();void insert();void modify();void search

9、();void tongji();void output();void average();void unpassed();void anykey();static int m=3; /*全局变量*/struct course /*定义课程结构体*/int num;char name10; float credit;float score;float usual;float integral;struct stu /*定义学生结构体*/int class;int num;char name10;char sex2;int age;struct course course2;float aves

10、core; stu50;void input() /*输入函数*/int i,j,sum;for(i=0;im;i+)printf(请输入学生基本信息:n);printf(班级:n);scanf(%d,printf(学号:n);scanf(%d,printf(姓名:n);scanf(%s,stui.name);printf(性别:n);scanf(%s,printf(年龄:n);scanf(%d,printf(请输入课程基本信息:n);for(j=0,sum=0;jCOURSENUM;j+)printf(课程编号:n);scanf(%d,printf(课程名称:n);scanf(%s,stui

11、.coursej.name); printf(学分:n);scanf(%f,printf(考试成绩:n);scanf(%f,printf(平时成绩:n);scanf(%f,stui.coursej.integral=stui.coursej.usual*0.3+stui.coursej.score*0.7; /*计算综合分*/sum=sum+stui.coursej.integral; stui.avescore=sum/COURSENUM; /*求平均成绩*/anykey();void modify() /*数据修改函数*/int i,j,q,p=0,sum;char name15;prin

12、tf(-n);printf(| 1.修改基本信息: |n);printf(| 2.修改课程信息: |n);printf(-n);scanf(%d,switch(q) /*选择项目*/case 1:printf(输入被修改者姓名:n);scanf(%s,name);printf(请输入学生基本信息:n);for(i=0;im;i+)if(strcmp(stui.name,name)=0)printf(班级:n);scanf(%d,printf(学号:n);scanf(%d,printf(姓名:n);scanf(%s,stui.name);printf(性别:n);scanf(%s,stui.se

13、x); printf(年龄:n);scanf(%d,printf(修改成功n);p=1;if(p=0) printf(不存在);break;case 2: printf(输入被修改者姓名:n);scanf(%s,name);for(i=0;im;i+)if(strcmp(stui.name,name)=0) printf(请输入课程基本信息:n);for(j=0,sum=0;jCOURSENUM;j+)printf(课程编号:n);scanf(%d,printf(课程名称:n);scanf(%s,stui.coursej.name);printf(学分:n);scanf(%f,printf(考试成绩:n);scanf(%f,printf(平时成绩:n);scanf(%f,stui.coursej.integral=stui.coursej.usual*0.3+stui.coursej.score*0.7;sum=sum+stui.coursej.integral;p

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 行业资料 > 其它行业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号