c语言下学生成绩管理系统程序设计报告.docx

上传人:飞****2 文档编号:60200012 上传时间:2022-11-15 格式:DOCX 页数:17 大小:64.36KB
返回 下载 相关 举报
c语言下学生成绩管理系统程序设计报告.docx_第1页
第1页 / 共17页
c语言下学生成绩管理系统程序设计报告.docx_第2页
第2页 / 共17页
点击查看更多>>
资源描述

《c语言下学生成绩管理系统程序设计报告.docx》由会员分享,可在线阅读,更多相关《c语言下学生成绩管理系统程序设计报告.docx(17页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、信息技术学院本科课程设计报告课程设计题目学 生 姓 名: 黄海兰 学 院: 信息技术学院 专 业: 信息管理与信息系统 班 级: B11203 学 号: 指 导 教 师: 尹剑伟 完 成 日 期: 2013 .7.12 辽 东 学 院Eastern Liaoning University一、题目描述模拟学校学生成绩管理系统。 设计一个简单的学生成绩管理系统,实现对成绩管理的各种信息进行日常管理,如查询、修改、排序、增加、删除。二、功能分析通过体验并分析后得出中主要功能包括:1) 学生信息输入2) 学生信息输出3) 按照学号查询4) 学生信息修改5) 学生成绩排序6) 学生数据导入7) 学生数据

2、保存8) 推出系统三、系统设计1程序总体结构程序中由主模块负责协调各功能模块的工作。运行程序成功后,根据输入操作,执行相应的输入、输出、查询、修改。排序、导入、保存、退出等功能。 图1 学生成绩管理系统结构图2界面设计如图2,运行程序,然后输入密码进入学生成绩管理系统。 图2 学生成绩管理的界面3输入方式设计此系统为dos下程序,因此简化为键盘控制。主要用到字母键,数字键,空格,退格,回车。搜狗拼音输入汉字。4重要数据的数据结构设计1) 全局变量int choice;int check=0;int loop=0;int a=12;2) 宏定义#define N 33) 结构体struct gr

3、adefloat math;/数学float chinese;/语文float english;/英语 float computer;/计算机struct studentint num;/学号char name7;/姓名char sex3;/性别int age;/年龄 struct grade score;struct student studN;5函数设计文件中函数的功能如下:文件名函数原形 函数功能函数处理描述 学生成绩管理系统.cvoid denglu();登陆函数;用for语句控制密码输入次数。void xuanze();选择要进入的选项;输入序号选择进入模块;void inputin

4、fo();输入学生信息;用if语句判断能否继续输入学生信息,根据提示输入学生信息及各科成绩;void outputinfo();输出学生信息用for循环输出学生基本信息、各科成绩和平均成绩;void find();按学号查询学生信息;利用for循环进行查找,用if 语句判断是否找到要找的信息,然后显示。void sortscore();按平均成绩对学生信息进行排序;首先输入信息,然后利用排序子函数进行排序从而实现插;void modify();创建学生信息;利用for循环把要删除的结构体变量用后面的覆盖,且从此处以后后面的变量覆盖前面的,以此完成删除任务;void writetofile();

5、按姓名删除学生信息;用if判断文件是否创建成功,利用for循环实现信息保存void readfile();按学号查询学生信息;用if判断文件是否能打开,利用for循环实现信导入6、函数调用图main() modify() find()outputInfo()inputInfo()exit(0) witetofile()sortscore() readfile()四、关键技术、难点及其解决方五、测试方法1、输入密码,回车;2、进入界面; 3、输入选项1,回车;按提示输入数据;4、回到主菜单; 输入选项7,回车;输入文件名:abc.txt,回车; 出现成功提示,则读入文件操作成功。 4、回到主菜单

6、,输入2,回车 每10个暂停显示数据 5、回到主菜单,输入3,回车 出现排序成功信息。 6、回到主菜单,输入4,回车 按提示插入一组数据 7、回到主菜单,输入5,回车 按提示输入姓名,删除数据 出现删除成功的信息 8、回到主菜单,输入6,回车 输入姓名进行查询 9、回到主菜单,输入7,回车 出现统计信息 10、回到主菜单,输入9,回车 输入result.txt,回车 出现成功写入文件的信息 11、回到主菜单,输入0,回车退出系统六、总结通过这次课程设计的学习,我对c语言有了更深的认识。作为一门语言他也能根据我们的需要编写出相应的程序。在不断地修改、调试和添加中我对程序的结构和层次方面有了进一步

7、的了解,这次学习让我深知程序设计不是想象中的那么简单,能够准确灵活的运用c语言我还得再下一些苦功夫。附一 使用说明:功能说明. 此程序分为8个选项,输入,输出、查询、修改、排序、退出等几个部分,进入1程序后,按提示输入学生信息;进入2程序后,输出1输入的学生信息;进入程序3后,输入学号,查找出学生信息;进入程序4后,输入学号修改学生信息;进入程序5后,对学生成绩排序;进入6后,进行学生数据导入;进入程序7后,保存已修改学生信息。附2、代码清单/*程序设计语言课程设计题目:学生成绩管理系统制作人:黄海兰完成日期:2012-7-11版本号:*/以下为文件包含#include #include #i

8、nclude /宏定义#define N 3/以下为函数提前声明void denglu(int a);void xuanze();void inputInfo(); void outputInfo();void find();void sortscore();void modify();void writetofile();void readfile();/以下是全局变量int choice;int check=0;int loop=0;int a=12;/*类型:结构体名称:grade用途:描述学生成绩信息*/struct gradefloat math;/数学float chinese;/

9、语文float english;/英语 float computer;/计算机 float ave;/平均成绩;/*类型:结构体名称:student用途:描述学生基本信息*/struct studentint num;/学号char name7;/姓名char sex3;/性别int age;/年龄 struct grade score;struct student studN;/*类型:函数名称:main用途:主函数形参:无返回值:无*/void main()printf(-n);printf(*欢迎使用学生成绩管理系统* n); printf(*技术支持 黄海兰* n );printf(*

10、联系方式QQ* * n );printf(*01256 65* n);printf(-n);denglu(a);readfile(); system(cls); while(1) xuanze(); scanf(%d,&choice);switch(choice)case 1: inputInfo();break; case 2: if(loop=0)printf(没有输入或导入有效数据!n);outputInfo(); break; case 3: find(); break;case 4: modify(); break;case 5: sortscore();break;case 6:

11、printf(警告!导入数据将覆盖现有未保存的数据n);printf(要继续吗?(输入1继续,输入0取消操作):);int r;scanf(%d,&r);if(r=1)readfile();break;elsebreak;case 7: writetofile();if(check=loop)printf(*数据输出成功*n);elseprintf(*数据输出失败*n);break;case 8: exit(0);default: printf(请正确选择服务项目n);/*类型:函数名称:denglu用途:登陆函数形参:a为进入此程序的密码返回值:无*/void denglu(int a)in

12、t mima,count=0;for(int i=0;i3;i+)printf(请输入密码: n);scanf(%d,&mima);if(mima=a)printf(登陆成功 n);break;else count+; switch(count)case 1: printf(对不起你输入的密码错误(还有两次机会)n);break;case 2: printf(对不起你输入的密码错误(还有一次机会)n);break;case 3: printf(非法用户n);exit(0); /*类型:函数名称:xuanze用途:选择函数形参:无返回值:无*/void xuanze() printf(-n);p

13、rintf (1.学生信息输入 );printf (2.学生信息输出 n);printf (3.按照学号查询 );printf (4.学生信息修改 n);printf (5.学生成绩排序 );printf (6.学生数据导入 n);printf (7.学生数据保存 );printf (8.退出系统nn);printf(-n);printf (请选择操作项目(1-8):);void inputInfo()char cha=y;while (cha=y) if(loop=N)printf(达到额定学生数目n);return;printf(请输入学号:n);scanf(%d,&studloop.nu

14、m);printf(请输入年龄:n);scanf(%d,&studloop.age);printf(请输入姓名:n);scanf(%s,&studloop.name);printf(请输入性别:n);scanf(%s,&studloop.sex);printf(请输入数学成绩:n);scanf(%f,&studloop.score.math);printf(请输入语文成绩:n);scanf(%f,&studloop.score.chinese);printf(请输入英语成绩:n); scanf(%f,&studloop.score.english);printf(请输入计算机成绩:n);sca

15、nf(%f,&studloopputer);printf(如果要输入下一个学生信息请按Y;结束输入请按N:);getchar(); cha=getchar();loop+; writetofile(); /*类型:函数名称:inputInfo用途:输出函数形参:无返回值:无*/ void outputInfo()for (int j=0;jloop;j+)printf (学生的成绩stud%d:n,j);printf (学号:);printf (%dn,studj.num);printf (年龄:);printf (%dn,studj.age);printf (姓名:);printf (%sn

16、,studj.name);printf (性别:);printf (%sn,studj.sex);printf (数学:);printf (%fn,studj.score.math);printf (语文:);printf (%fn,studj.score.chinese);printf (英语:);printf (%fn,studj.score.english);printf (计算机:);printf (%fn,studjputer);printf (平均:);printf (%fn,(studjputer+studj.score.chinese+studj.score.math+stud

17、j.score.chinese)/4);/*类型:函数名称:find用途:学生信息查询函数形参:无返回值:无*/void find()int findnum ;printf(请输入你要查找的学号:);scanf(%d,&findnum);for(int k=0;kloop;k+)if(studk.num)=findnum) printf (学生的成绩stud%d:n,k);printf (学号:);printf (%dn,studk.num);printf (年龄:);printf (%dn,studk.age);printf (姓名:);printf (%sn,studk.name);pri

18、ntf (性别:);printf (%sn,studk.sex);printf (数学:);printf (%fn,studk.score.math);printf (语文:);printf (%fn,studk.score.chinese);printf (英语:);printf (%fn,studk.score.english);printf (计算机:);printf (%fnnn,studkputer);printf (平均:); printf (%fn,(studkputer+studk.score.chinese+studk.score.math+studk.score.chine

19、se)/4);elseprintf(无此学号,请确认后重新输入n); /*类型:函数名称:modfy用途:学生信息修改函数形参:无返回值:无*/void modify()int modifynum ;printf(请输入你要修改的学生学号:);scanf(%d,&modifynum);for(int k=0;kloop;k+) if(studk.num)=modifynum) printf(请输入新的年龄:n);scanf(%d,&studk.age);printf(请输入新的姓名:n);scanf(%s,&studk.name);printf(请输入新的性别:n);scanf(%s,&stu

20、dk.sex);printf(请输入新的数学成绩:n);scanf(%f,&studk.score.math);printf(请输入新的语文成绩:n);scanf(%f,&studk.score.chinese);printf(请输入新的英语成绩:n);scanf(%f,&studk.score.english);printf(请输入新的计算机成绩:n);scanf(%f,&studkputer); writetofile();elseprintf (对不起没有你要找的学生信息n); /*类型:函数名称:writetofile用途:信息保存函数形参:无返回值:无*/void writetofi

21、le()int c;FILE *fp;char ch=y;fp=fopen(StuInfo.txt,wb) ;if(fp=NULL)printf(n文件创建失败n);exit(0);for(int w=0;wloop;w+)c=fwrite(&studw,sizeof(studw),1,fp);check+=c;fclose(fp);/*类型:函数名称:readfile用途:信息导入函数形参:无返回值:无*/void readfile()int count=0;FILE * fptr;if(fptr=fopen(StuInfo.txt,rb)!=NULL)printf(文件读取成功!n);wh

22、ile(!feof(fptr)fread(&studcount,sizeof(studcount),1,fptr);count+;loop=count-1;elseprintf(文件打开失败!n);/*类型:函数名称:sortscore用途:成绩排序函数形参:无返回值:无*/void sortscore() readfile();int j,k; struct student temp; for(k=0;kloop;k+) for(j=0;jstudk+1.score.ave) temp=studk; studk=studk+1; studk+1=temp; printf (学生成绩由高到低依次是:n); printf (n); for (j=0;jk;j+) printf (第%d名:%s 成绩:%fn,j+1,studloop.name,studloop.score.ave); printf (n);

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

当前位置:首页 > 教育专区 > 教案示例

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁