分享
分享赚钱 收藏 举报 版权申诉 / 24

类型c语言学生成绩管理系统.doc

  • 上传人:jw66tk88
  • 文档编号:6543930
  • 上传时间:2019-04-16
  • 格式:DOC
  • 页数:24
  • 大小:328.42KB
  • 配套讲稿:

    如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。

    特殊限制:

    部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。

    关 键  词:
    c语言学生成绩管理系统.doc
    资源描述:

    1、青 岛 农 业 大 学本 科 生 课 程 论 文论 文 题 目 学生成绩管理系统 学生专业班级 通信工程 1001 学生姓名(学号) 李庆坤(20101794) 指 导 教 师 于爱华 完 成 时 间 2011-09-06 2011 年 9 月 14 日学生成绩管理系统摘要21 世纪以来,人类经济高速发展,人们发生了日新月异的变化,特别是计算机的应用及普及到经济和社会生活的各个领域。为了适应现代社会人们高度强烈的时间观念,学校信息管理系统软件为学校的办公带来了极大的方便,而学生成绩管理系统更是这些软件中的佼佼者。本文详细给出了学习成绩管理系统的设计、功能、程序以及调试运行与显示情况。一、 任务

    2、与分析学习成绩管理系统功能要求:输入记录模块、查询记录模块、更新记录模块、统计记录模块、输出记录模块。程序中涉及结构体、单链表、文件等方面的知识。本系统由结构体、数组、函数、文件、指针等组成,通过调用各种函数,利用菜单实现了各项功能。程序将数据储存在.txt 文件中,可以方便的读取与写入。本程序增设密码功能防止被人窃取数据,此外由信息维护菜模块、信息查询模块、成绩统计模块、成绩排序模块共同组成,分为教师和学生用户共同完成对学习成绩的管理。其详细流程图如下:选择用户菜单教师学生信息维护信息查询成绩查询成绩排序返回主菜单用户名及密码修改用户名及密码修改个人成绩查询返回主菜单信息维护菜单下设子菜单:

    3、添加学生信息、修改学生信息、删除学生信息、复制账单信息、清空信息记录。信息查询菜单下设子菜单:查询文件总数、查询所有信息、按姓名查询信息、按学号查询信息。二、 程序设计1. 程序介绍此学习成绩管理系统分为两个用户,即教师用户和学生用户,教师用户可以用此程序完成学生成绩的维护、查询、统计等各项功能,而学生用户可以完成对学生本人信息的查询。程序自动将教师用户信息自动保存在 f1.txt 文件中,将学生用户信息自动保存在 f2.txt 文件中,将学生成绩信息自动保存在list.txt 文件中,数据不随程序的关闭而消失。2.函数调用 inputchoice() 教师用主菜单 inputchoice_s

    4、tu() 学生用主菜单 inputchoice1() 教师用信息维护菜单 inputchoice2() 教师用信息查询菜单 Enter() 用户登录 Modify() 密码及用户名修改 getlogcount() 获取文件记录总数 ListAllLog() 读取所有信息(教师使用) read_name() 按姓名查询信息(教师使用) read_num() 按学号查询信息(教师使用) find_stu() 个人信息查询(学生使用) Addnewlog() 添加学生信息(教师使用) change() 修改信息 del() 删除信息(教师使用) copy() 复制账单(教师使用) delet() 清

    5、空账单信息(教师使用) order() 账单信息排序(教师使用) sort() 排序关键字选择(教师使用) census1() 学生信息统计(教师使用) census() 学生信息统计选择菜单(教师使用) choice_user() 用户类型选择 choice1() 信息维护菜单选择操作(教师使用) choice2() 信息查询菜单选择操作(教师使用) choice() 主菜单选择操作3.功能模块分析(1)头文件、结构体定义#include“stdio.h“#include“stdlib.h“#include“string.h“#include“windows.h“#define M 20 /

    6、学生人数long size,Size; /结构体长度char ch15; /保存登陆的学生学号typedef struct LogData char logid10; /记录学号char name10; /姓名double Xinhao; /信号double Modian; /模电double English; /英语ListNode;typedef struct node char pass10; /密码char name10; /用户名Node;(2)菜单选择模块以信息维护菜单(教师使用)为例:通过调用函数 inputchoice1(),在屏幕上显示void inputchoice1()

    7、printf(“ # 信息维护菜单#n“ # 0:退出信息维护 #n“ # 1:返回信息维护菜单 #n“ # 2:添加学生信息 #n“ # 3:修改学生信息 #n“ # 4:删除学生信息 #n“ # 5:复制账单信息 #n“ # 6:清空信息记录 #n“ #nn“);用 switch 选择菜单选项,再调用函数void choice2(FILE *fp)int choice;while (choice!=0) printf(“ 请选择信息查询所需功能:“);scanf(“%d“,switch(choice)case 1: /返回信息查询菜单inputchoice2(); break; case

    8、2: /查询文件记录总数getlogcount(fp);break;case 3: /查询所有信息ListAllLog(fp); break; case 4: /按姓名查询信息read_name(fp); break; case 5: /按学号查询信息read_num(fp);break;default:printf(“ 输入序号错误或则你选择了退出查询功能,程序将自动返回主菜单选择功能!n“); inputchoice();break;(3)用户名及密码模块此模块有力的保证了系统用户数据的安全性。用户登录时,密码验证:printf(“ 请输入用户名:“);scanf(“%s“,a);getc

    9、har();printf(“ 请输入密码:“);scanf(“%s“,b);for(int t=0;t0fscanf(cfptr,“%s%s%lf%lf%lf“,log.name,if( (strcmp(log.name,a)=0printf(“ 姓名 学号 信号 模电 英语n“);printf(“ %10s %10s %3.1lf %3.1lf %3.1lfn“,log.name,log.logid,log.Xinhao,log.Modian,log.English);printf(“ 0.修改所有关键字,,修改语文,修改数学,修改英语“);scanf(“%d“,if(b=1)printf(

    10、“ 请输入修改后的信号成绩:“);scanf(“%lf“,else if(b=2)printf(“ 请输入修改后的模电成绩:“);scanf(“%lf“, else if(b=3)printf(“ 请输入修改后的英语成绩:“);scanf(“%lf“,else if(b=0)printf(“ 请输入修改后的信息n“);printf(“ -请依次输入 姓名 学号 信号 模电 英语-n“);scanf(“%s%s%lf%lf%lf“,log.name,elseprintf(“ 您输入的指令符错误,程序自动返回信息维护界面!n“);return;fseek(cfptr,-size+1,SEEK_CU

    11、R);fprintf(cfptr,“%10s %8s %3.1lf %3.1lf %3.1lfn“,log.name,log.logid,log.Xinhao,log.Modian,log.English); success=1;printf(“ * 信息修改成功 *n“);fclose(cfptr);if(success=0)printf(“ * 信息修改失败 *n“);删除学生信息:void del(FILE *fp)FILE *fp1; long count,n; int i=0,j=0;char a20,b100=“ 姓名 学号 信号 模电 英语n“;ListNode logM;cha

    12、r c; int m=0;if(fp=fopen(“list.txt“,“r“)=NULL) printf(“ can not open file list.txt!n“);exit(0);if(fp1=fopen(“copy.txt“,“w“)=NULL) printf(“ can not open file list.txt!n“);exit(0);while(!feof(fp)c=fgetc(fp);fputc(c,fp1);fclose(fp);fclose(fp1);if(fp=fopen(“list.txt“,“w“)=NULL) printf(“ can not open fil

    13、e list.txt!n“);exit(0);if(fp1=fopen(“copy.txt“,“r“)=NULL) printf(“ can not open file list.txt!n“);exit(0);count=getlogcount(fp1); n=count; fseek(fp1,size,SEEK_SET); while (count0fscanf(cfptr,“%s%s%lf%lf%lf“,log.name,log.logid,printf(“ %10s %10s %3.1lf %3.1lf %3.1lfn“,log.name,log.logid,log.Xinhao,lo

    14、g.Modian,log.English);按姓名查询信息:void read_name(FILE *cfptr) char a20;ListNode log;long count;printf(“ 请输入姓名:n“);scanf(“%s“,count=getlogcount(cfptr);fseek(cfptr,size,SEEK_SET); while (count0) count-;fscanf(cfptr,“%s%s%lf%lf%lf“,log.name,if (strcmp(log.name,a)=0)printf(“ 姓名 学号 信号 模电 英语n“);printf(“ %10s

    15、%10s %3.1lf %3.1lf %3.1lfn“,log.name,log.logid,log.Xinhao,log.Modian,log.English);return; printf(“ * 格式输入错误或记录不存在!*n“);按学号查询成绩:void read_num(FILE *cfptr) char a20;ListNode log;long count;printf(“ 请输入学号:n“);scanf(“%s“,count=getlogcount(cfptr);fseek(cfptr,size,SEEK_SET); while (count0) count-;fscanf(c

    16、fptr,“%s%s%lf%lf%lf“,log.name,log.logid,if (strcmp(log.logid,a)=0)printf(“ 姓名 学号 信号 模电 英语n“);printf(“ %10s %10s %3.1lf %3.1lf %3.1lfn“,log.name,log.logid,log.Xinhao,log.Modian,log.English);return; printf(“ * 格式输入错误或记录不存在!*nn“);(6)成绩统计模块此模块可以显示各科目的各分数段的学生名单,并且还可以统计最高分,最低分,及格人数,优秀人数以及及格率和优秀率,很方便教师的统计工

    17、作。选择科目菜单:void census (FILE *cfptr)long count,n; int i=0;int choice;ListNode logM;printf(“ * 学生信息统计界面:*n“);count=getlogcount(cfptr); n=count; fseek(cfptr,size,SEEK_SET); while (count0a=b;b=c;/如果a大于b将ab交换if(a100|b100)printf(“ 分数段输入错误,程序自动返回!n“);return;for(i=0;i=0;i-) if(choice=1) if(logi.Xinhao =a ) /

    18、统计分数段内的人数mj=i;j+;if (logi.Xinhao =60)/统计及格人数k+;if (logi.Xinhao =80)/统计优秀(大于八十分)人数l+;if(logi.Xinhao logi-1.Xinhao ) /统计信号最高分max=log1i.Xinhao; log1i.Xinhao=log1i-1.Xinhao; log1i-1.Xinhao=max;if(choice=2) if(logi.Modian =a ) mj=i;j+;if (logi.Modian =60)/统计及格人数k+;if (logi.Modian =80)/统计优秀(大于八十分)人数l+;if(

    19、logi.Modian logi-1.Modian ) /统计模电最高分max=log1i.Modian; log1i.Modian=log1i-1.Modian; log1i-1.Modian=max;if(choice=3) if(logi.English =a ) mj=i;j+;if (logi.English =60)/统计及格人数k+;if (logi.English =80)/统计优秀(大于八十分)人数l+;if(logi.English logi-1.English ) /统计英语最高分max=log1i.English; log1i.English=log1i-1.Engli

    20、sh; log1i-1.English=max;p=(double)k/count;/统计及格率q=(double)l/count;/统计优秀率printf(“ %s学科最高分为%2.1f,最低分为%2.1f.n“,schoice-1,max,min);printf(“ %s学科及格人数为%d,及格率为百分之%2.1f;优秀人数为%d,优秀率为百分之%2.1f.n“,schoice-1,k,p*100,l,q*100);printf(“n %s学科在%3.1f到%3.1f分数段共有%d名同学,详细信息如下:n“,schoice-1,a,b,j);printf(“ _n“);printf(“ |

    21、 姓名 | 学号 | 信号 | 模电 | 英语 |n“);for(i=j-1;i=0;i-)printf(“ _n“);printf(“ |%8s |%10s | %5.1lf | %5.1lf | %5.1lf |n“,logmi.name,logmi.logid,logmi.Xinhao,logmi.Modian,logmi.English);printf(“ _n“);printf(“n“);(7)成绩排序模块此模块可以显示各科成绩,并按照从小到大或者从大到小排序。选择科目菜单:void sort(FILE *cfptr)long count,n; int i=0;int choice;

    22、ListNode logM;printf(“ # 学生信息排序界面:#n“);count=getlogcount(cfptr); n=count; fseek(cfptr,size,SEEK_SET); while (count0i-) if(choice=1) if(logi.Xinhao logindex.Xinhao ) index=i;if(choice=2) if(logi.Modian logindex.Modian ) index=i;if(choice=3) if(logi.English logindex.English ) index=i; temp = logindex;

    23、 logindex=logk;logk=temp;if(m!=1return ;printf(“ * 按关键字%s排序后:*n“,achoice-1);printf(“ _n“);printf(“ | 姓名 | 学号 | 信号 | 模电 | 英语 |n“);for(i=0;icount;i+)printf(“ _n“);printf(“ |%8s |%10s | %5.1lf | %5.1lf | %5.1lf |n“,logi.name,logi.logid,logi.Xinhao,logi.Modian,logi.English);printf(“ _n“);printf(“n“);三、系

    24、统调试进入 VC+6.0,运行程序 。1.登录界面教师用户登录初始账户 00,密码 00。学生用户登录初始账户 00,密码 00。2.信息维护菜单运行界面3.信息查询菜单运行界面4.成绩统计菜单运行界面5.成绩排序菜单运行界面6.学生用户运行界面四、 总结对各个部分功能进行测试后,各部分功能都很好,能够较好的完成各项功能的需要,并且运行流畅。 此程序可以较好的完成学生成绩的各种管理工作,如学生信息的维护更新,学生成绩的查询,以及学生成绩的统计与排序。可以说,是教师的一个很好的管理工具。但是,程序本身也存在许多的问题。如不能够按学期分类、查询学生成绩;无法进行清屏操作,不能随菜单跳转,难免显得屏

    25、幕有点乱;程序较为繁琐,有些功能仍旧可以合并简化,以加强程序的可读性。通过此次程序设计实习,自己对程序设计有了深刻的认识,从一开始的不了解,不清楚,经过不断地思考、犯错、调试,最后终于体会到成功的喜悦。而且深深体会到程序开发的关键不只是在于编程,更是在于思想。只有好的算法,才能缔造好的程序。我发现自己在学习 C/C+方面还有很多不足,在此程序中肯定还有一些不足和错误,我们将在以后的学习过程中不断努力。五、 参考文献1. 谭浩强: C 程序设计(第三版) 清华大学出版社 2005.72. 郑莉:C+程序设计语言(第三版) 清华大学出版社 2005.06 3.陈清华:Visual C+课程设计案例精选与编程指导 东南大学出版社 2003.06 课 程 论 文 成 绩 评 定 表学生姓名 李庆坤 专业班级 通信工程 1001论文题目 学生成绩管理系统指导教师评语及意见:成绩: 指导教师签字 年 月 日

    展开阅读全文
    提示  道客多多所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
    关于本文
    本文标题:c语言学生成绩管理系统.doc
    链接地址:https://www.docduoduo.com/p-6543930.html
    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    道客多多用户QQ群:832276834  微博官方号:道客多多官方   知乎号:道客多多

    Copyright© 2025 道客多多 docduoduo.com 网站版权所有世界地图

    经营许可证编号:粤ICP备2021046453号    营业执照商标

    1.png 2.png 3.png 4.png 5.png 6.png 7.png 8.png 9.png 10.png



    收起
    展开