C语言程序设计学生成绩记录簿_第1页
C语言程序设计学生成绩记录簿_第2页
C语言程序设计学生成绩记录簿_第3页
C语言程序设计学生成绩记录簿_第4页
C语言程序设计学生成绩记录簿_第5页
已阅读5页,还剩10页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

课程实验报告课程名称C语言程序设计班级13新能源2班实验日期2013年8月1号姓名许鑫学号130370236实验成绩实验名称学生成绩记录簿系统实验题目描述本程序是非数值计算型算法设计,我设计出了学生成绩记录簿系统的基本功能,并设计了简单的界面。本程序主要考察对自定义函数的熟悉程度,本程序主要使用的是链表的相关操作,包括结构体链表的创建、输入、输出、查找、删除等。我设计的这个成绩记录簿系统也初步实现了学生成绩信息的显示、输入、删除、查找等必要的功能。建立一个主界面用switch语句进行分类讨论分别进入录入,查询,删除,等子函数。将子函数与主函数相连即可。该程序可以建立学生的成绩记录。可以方便老师和同学方便的查阅成绩;这个程序有录入和删除的功能;还可以求出平均成绩,并排序成绩记录簿中记录以下数据:学号、姓名、课程编号、课程名称、成绩、学分添加成绩:需要输入学生的学号或姓名、课程编号及成绩,如已有该门课程成绩给出提示;查询(班级或个人)成绩:查询个人成绩:以学号或姓名作为关键字,可查询一个学生的所有成绩,和已完成的总学分。查询班级成绩:以课程编号为关键字,成绩表后面要统计平均分、及格率及全班同学不同课程在不同分数段分布的人数及百分比。拓展功能:a)程序启动时先从文件读入数据,如果文件中没有数据则给出提示;b)每次修改的数据写入文件

实验环境以自己的电脑为主要的实验平台,运用VisualC++6.0这个软件进行反复的编写实验。1、开始时实验界面截图2、添加-E:\Ci=言字^-■Debug\tE5t5.ei(e,-一翅便用学生成绩i己录簿系统-一tii,wiI2.删除,"查学生成绩I、查班成绩表J孔写入文本文样!6、读取交本文件10、退出选择操侑J陷输的学生人妙第1个学生宅隹学号;1111(14127—::吉舌字习\pebu卯estXwxe第诗学生:学生学号,11104127学生姓名:许鑫该学生所修课程数;2第[门课:课程煽号;网?翦课程名称:C语言课程成琦:100课程学分,4期门课:课程褊号:54&8?课程名称:物理半:'EV:借言学^\Debuc\:est5.exe"课程编号:54687课程名称:物理课程成绩f柄课程学分:3陈加成功…回车继续TOC\o"1-5"\h\z---欢迎使用学生成绩记录簿系统-一HK添加;|iL删除Ji|3、查学生成绩1I嘲、萱班成绩表I5、写入文本文件!"6%读成文本文件;.半二3、查询

主程序提供一个界面,允许用户选择。使用switch语句,用时直接输入数字即可。法增加函数,功能是插入学生成绩。使用一个无穷循环,直到录入”n”时描结束。述删除函数,功能是删除,分为两步,先找后删。找,用strcmp函数来及做如果找到记录i值,反之记为-1;删除可以从i项开始将数组的后一项赋实值给前一项。前一项自动被删掉。这样完成删除。验查询函数与之类似,将删除改为输出即可;步求平均值函数与查询类似只是输出时只输出平均值而已。骤按平均值排序只要加一个排序函数即可。退出函数什么都不写,即可。程序流程图

经过一个多星期的编译原理课程设计,在我的努力下,顺利完成该课程设计。通过该课程设计,掌握了编译程序工作的基本过程及其各阶段的基本任务,熟悉了编译程序总流程框图,了解了编译程序的生成过程及其相关的技术,对课本上的知识也有了更深的理解。老师常说,课本上的知识是机械的,表面的,要学会去运用,要举一反三。现在终于深刻的了解了这句话。经过这次的课程设计,发现书本上很深奥的知识变的更为简单,同样,对实验原理也了有更深的理解。知道和理解了该理论在计算机中是怎样执行的,该理论在实践中的应用有深刻的理解。通过该课程设计,把死板的课本知识变得生动有趣,激发了学习的积极性。能够把课堂上学的知识通过自己设计的程序表示出来,加深了对理论知识的理解。课程设计中程序比较复杂,在调试时应该仔细,在程序调试时,注意指针,将不必要的命令去除。除了课堂外,课程设计是最能学到东西的,最考验人的。在做课程设计的这段时间,时刻都感到自己学的知识有多么的贫瘠。经过这次课程设计,让我对C++这门语言有了更深的认识,操作能力有了提高要想是写出的代码能运行,需要耐心细心,毅力以及充沛的体力。只有经过多次编辑,多次编译,再多次运行,才能编写出更好的程序,有时候需要多次的更正才能达到所要的运行结果。#include<stdio.h>#include<stdlib.h>#include<string.h>#defineMAX1000structLesson{charLessonName[100];charLessonNumber[100];intLessonMark;floatLessonCredit;};structStudent{charName[100];charNumber[100];intLessonCount;structLessonL[100];};structStudentS[MAX];intStudentCount=0;voidPrintInterface。;intStudent_Insert();intStudent_Delete();voidStudent_Select();voidClass_Select();voidWriteFile();voidReadFile();intmain。{intn;{PrintInterface。;scanf("%d",&n);}}voidPrintInterface。{intn;wh=e(1)p=.mf(=\n:舞S54F曲株HFJSBfii知潇醐溶;--?prirnfcxn-尸湖&M-);primfcxn-B?=)“primfcxn-3,|«牌HFaB-\n=);primfcxn-4,Mm用B湖?盘primfcxn-y1mAXH>4寺_\n盘primfcxn-6,嫌招>4并>4席?))“Primfc\n-FilEE_\n=);PMf(=\n=);primfc\n^»*^=)」scanfcwsmswishsHcase1:if(sr+udentjnsertsprirnf(=/n^MJSS…回#醵瀚/rr);e-seprimfcs瑚…回#醵我n#break-case2:sr+udenr+IDe-er+eobreak-case3:sr+udenr+lse-ecs;break-case4:c-asslse-esQbreak」case5:wmeF=eobreak」case6:ReadF=eobreak」case0:exAl);break;default:printf("无此功能,请重新选择,按回车确定\n");}}return0;}intStudent_Insert(){inti,j,n;printf("\n请输入所添加的学生人数:");scanf("%d",&n);if(StudentCount+n>=MAX)return0;for(i=StudentCount;i<StudentCount+n;++i){printf("\n\t第%d个学生:\n",i-StudentCount+1);printf("\n\t学生学号:");scanf("%s",&S[i].Number);if(strlen(S[i].Number)!=8){printf("输入错误,请重新输入");return0;}printf("\n\t学生姓名:");scanf("%s",S[i].Name);printf(-\n\t该学生所修课程数:");scanf("%d”,&S[i].LessonCount);for(j=0;j<S[i].LessonCount;++j){printf("\n\t第%d门课:\n",j+1);printf("\n\t\t课程编号:");scanf("%s",S[i].L[j].LessonNumber);if(strlen(S[i].L[j].LessonNumber)!=5){printf("输入错误,请重新输入!");return0;}printf("\n\t\t®程名称:");scanf("%s",S[i].L[j].LessonName);printf("\n\t\t®程成绩:");scanf("%d”,&S[i].L[j].LessonMark);if(S[i].L[j].LessonMark<0||S[i].L[j].LessonMark>100)(printf("输入错误,请重新输入!");return0;}printf("\n\t\t®程学分:");scanf("%f",&S[i].L[j].LessonCredit);if(S[i].L[j].LessonCredit<1||S[i].L[j].LessonCredit>5)(printf("输入错误,请重新输入!");return0;}if(S[i].L[j].LessonMark<60)S[i].L[j].LessonCredit=0;}}StudentCount+=n;return1;}intStudent_Delete()(chara[100];charb[100];inti,j;printf("\n删除学生:\n");printf("\n学生姓名:");scanf("%s",a);printf("\n学生学号:");scanf("%s",b);if(strlen(b)!=8)(printf("输入错误请重新输入");return0;}for(i=0;i<StudentCount;i++){if(0==strcmp(S[i].Name,a)&&0==strcmp(S[i].Number,b)){printf("\n找到,M除\n");for(j=i+1;j<StudentCount;j++)(S[j-1]=S[j];}break;}}if(i==StudentCount||i>StudentCount)(printf("\n未找到该学生\n\n");return0;}else{StudentCount--;return1;}}voidStudent_Select(){intx;chary[100];chara[100];inti,j;printf(-\n输入所查学生信息(1.姓名2.学号)选择:");scanf("%d",&x);if(x==1||x==2){if(x==1){printf("\n姓名:");fflush(stdin);gets(a);for(i=0;i<StudentCount;i++){if(0==strcmp(S[i].Name,a)){printf("\n学号:%s\t姓名:%s\n",S[i].Number,S[i].Name);printf(-\n课程编号\七课程名林课程成绩t课程学分时);printf("\n");for(j=0;j<S[i].LessonCount;j++){printf("%s\t\t%s\t\t%d\t\t%f\n",S[i].L[j].LessonNumber,S[i].L[j].LessonName,S[i].L[j].LessonMark,S[i].L[j].LessonCredit);printf("\n");}printf("\n\n");}}}else{printf("\n学号:");fflush(stdin);gets(y);for(i=0;i<StudentCount;i++){if(strcmp(S[i].Number,y)==0){printf("\n学号:%s\t姓名:%s\n",S[i].Number,S[i].Name);printf(-\n课程编号\七课程名林课程成绩t课程学分侦“);printf("\n");for(j=0;

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论