学生管理系统-c语言课程设计-华南理工大学

上传人:第*** 文档编号:34213693 上传时间:2018-02-22 格式:DOC 页数:20 大小:359KB
返回 下载 相关 举报
学生管理系统-c语言课程设计-华南理工大学_第1页
第1页 / 共20页
学生管理系统-c语言课程设计-华南理工大学_第2页
第2页 / 共20页
学生管理系统-c语言课程设计-华南理工大学_第3页
第3页 / 共20页
学生管理系统-c语言课程设计-华南理工大学_第4页
第4页 / 共20页
学生管理系统-c语言课程设计-华南理工大学_第5页
第5页 / 共20页
点击查看更多>>
资源描述

《学生管理系统-c语言课程设计-华南理工大学》由会员分享,可在线阅读,更多相关《学生管理系统-c语言课程设计-华南理工大学(20页珍藏版)》请在金锄头文库上搜索。

1、C 语言程序设计课程设计报告设计题目:学生成绩管理系统学 号 班 级 姓 名 完成方式:(单选) 自我评分:(单选) 独立完成 优秀 参考他人工作的基础上完成 良好 在他人的帮助下完成 中等 完整拷贝他人成果 及格 不及格2011 年 5 月 11 日C 语言课程设计任务书 3题目:学生成绩管理系统功能:学生成绩管理系统,每个学生是一个 记录,包括学号,姓名,性别, 3 门课程成绩。系统要求实现以下功能:1、信息录入:录入学生成绩信息(包括学生学号、姓名、各门课程的成绩等);2、信息查询:输入学号,查询学生各门课程的成绩,并显示。3、排序:按各门课程的成绩平均分进行排序,并显示。4、信息删除与

2、修改输入学号,删除该学生的成绩信息。分步实施:1、初步完成总体设计,搭好框架,确定人机对话的界面,确定函数个数。2、建立一个文件,将每位学生的信息写入文件中并能显示于屏幕上。3、完成上述信息查询(学生学号、姓名等)、排序、信息删除与修改功能。要求:1、用 C 语言实现程序设计;2、利用结构体数组实现学生信息的数据 结构设计;3、系统的各个功能模块要求用函数的形式 实现;4、界面友好(良好的人机交互),程序加必要的注 释。课程设计实验报告要求:一、总体设计1程序的总体设计数据导入模块 操作面板显示 查找排序 添加条目删除条目 编辑条目数据分析统计数据导出模块程序总框架不及格名单基本功能 分析功能

3、 条目操作2. 数据结构结构体数组struct student /*定义结构体变量 student*/int num;char name10;int gen;int ch,en,math,tot;Struct student Stu100;3. 函数原型声明的说明(功能,参数,返回值)1).输出不及格名单:void failsbj(int n,struct student stu) /*输出不及格的名单,只要有一科不及格即进入名单*/2).计算平均分void sumup(int *n,struct student (*stu) /*计算每个人各科平均分的函数*/3).打印所有数据void di

4、splay(int n,struct student stu) /*输出所有数据*/4).检索void search(int n,struct student stu) /*依照名字或者数字搜索条目*/5).排序void assort(int n,struct student (*stu) /*排序模块*/6).增加条目void add(int *n,struct student (*stu) /*加入条目模块*/7).删除条目void del(int *n,struct student (*stu) /*删除条目模块*/8).编辑条目void edit(int *n,struct stude

5、nt (*stu) /*编辑条目模块*/9).导出列表void save(int *n,struct student (*stu) /*将结果另存为*/10).统计分析void anlz(int *n,struct student (*stu) /*统计全班成绩,包括求出各分数段人数,各科班平均分*/4. 流程图计算平均分数据导入显示所有数据根据读入的指令com 进行选择显示操作面板退出系统 显示所有数据 不及格名单 查找信息 对数据排序 添加条目 删除条目 编辑条目 导出文件 统计分析结束开始二、详细设计1.主程序如上图。2.功能之“输出不及格名单”:用 for 循环扫描每个同学的信息,如果

6、某同学的语文、英语或数学成绩不及格(#include#includestruct student /*定义结构体变量 student*/int num;char name10;int gen;int ch,en,math,av; /*语文、英语、数学、平均分 */;void sumup(int *n,struct student (*stu) /*计算每个人各科平均分的函数*/int i;for (i=1;i );scanf(%d,switch (j)case 1: /*寻找与某数字匹配的条目*/printf(please type in the information you want to

7、 search: );scanf(%d,printf(-n);for (i=1;i );scanf(%d,printf(-n);for (i=1;i );scanf(%d,switch (num)case 0: /*根据学号排序 */for (i=1;i(*stu)j.num)stt=(*stu)i; (*stu)i=(*stu)j;(*stu)j=stt;break;case 1: /*根据个人各科总分排序*/for (i=1;i(*stu)j.av)stt=(*stu)i;(*stu)i=(*stu)j;(*stu)j=stt;break;case 2: /*根据语文成绩排序*/for (

8、i=1;i(*stu)j.ch)stt=(*stu)i;(*stu)i=(*stu)j;(*stu)j=stt;break;case 3: /*根据英语成绩排序*/for (i=1;i(*stu)j.en)stt=(*stu)i;(*stu)i=(*stu)j;(*stu)j=stt;break;case 4: /*根据数学成绩排序*/for (i=1;i(*stu)j.math)stt=(*stu)i;(*stu)i=(*stu)j;(*stu)j=stt;break; case 5: /*根据性别排序*/for (i=1;i(*stu)j.gen)stt=(*stu)i;(*stu)i=(

9、*stu)j;(*stu)j=stt;break;case 6: /*根据姓名排序*/for (i=1;i0)stt=(*stu)i;(*stu)i=(*stu)j;(*stu)j=stt;break;default:;display(n,*stu);void add(int *n,struct student (*stu) /*加入条目模块*/struct student stn;printf(nPlease type the new item here:);printf(nThe student number is );scanf(%d,printf(nWhat is the name?)

10、;scanf(%s,printf(nWhat is the gender?);scanf(%d,printf(nThe marks of Chinese is:);scanf(%d,printf(nThe marks of English is:);scanf(%d,printf(nThe marks of Mathematics is:);scanf(%d,(*n)+;(*stu)*n=stn;sumup(n,stu); /*修改后重新计算平均分*/ display(*n,*stu);void del(int *n,struct student (*stu) /*删除条目模块*/int i,

11、j,k,b,m;struct student stnul=0;b=0;printf(nWhich student number do you want to delete?);scanf(%d,for (i=1;i );scanf(%d,switch (j) /*修改哪一项*/ case 1:scanf(%d,break;case 2:scanf(%s,break;case 3:scanf(%d,break;case 4:scanf(%d,break;case 5:scanf(%d,break;case 6:scanf(%d,break;default:;sumup(n,stu);displa

12、y(*n,*stu);void save(int *n,struct student (*stu) /*将结果另存为 */int i,j;FILE *fp1;if (fp1=fopen(output.txt,w+)=NULL)printf(Can not open the output file!);elsefor (i=1;i=90) ch90+;if (*stu)i.ch=80) ch80+;if (*stu)i.ch=70) ch70+;if (*stu)i.ch=60) ch60h+;if (*stu)i.ch=90) en90+;if (*stu)i.en=80) en80+;if

13、(*stu)i.en=70) en70+;if (*stu)i.en=60) en60h+;if (*stu)i.en=90) ma90+;if (*stu)i.math=80) ma80+;if (*stu)i.math=70) ma70+;if (*stu)i.math=60) ma60h+;if (*stu)i.math=0)&(com=9)switch (com)case 0:break;case 1:display(n,stu); /*显示所有数据*/break;case 2:failsbj(n,stu); /*列出所有不及格的学生*/break;case 3:search(n,stu); /*以某种方式查找条目*/break;case 4:assort(n, /*排序*/break;case 5:add( /*添加条目*/break;case 6:del( /*删除条目*/break;case 7:edit( /*编辑条目*/break;case 8:save( /*保存数据*/break;case 9:anlz( /*分析数据,统计、求平均 */break;default: com=0;elseprintf(nError! Please type in a number.nn); /*输入不合法,要求重输*/;

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

当前位置:首页 > 办公文档 > 解决方案

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