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

下载本文档

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

文档简介

1、课程实验报告课程13 新能源实验日期2013年8月 1C 语言程序设计班级2 班号名称姓6实验成绩许鑫学号名实验学生成绩记录簿系统名称本程序是非数值计算型算法设计, 我设计出了学生成绩记录簿系统的基实 本功能,并设计了简单的界面。本程序主要考察对自定义函数的熟悉程度,验 本程序主要使用的是链表的相关操作, 包括结构体链表的创建、 输入、输出、题 查找、删除等。我设计的这个成绩记录簿系统也初步实现了学生成绩信息的目 显示、输入、删除、查找等必要的功能。描1. 建立一个主界面述2. 用 switch 语句进行分类讨论3. 分别进入录入,查询,删除,等子函数。4. 将子函数与主函数相连即可。该程序可

2、以建立学生的成绩记录。可以方便老师和同学方便的查阅成绩;这个程序有录入和删除的功能;还可以求出平均成绩,并排序成绩记录簿中记录以下数据:学号、姓名、课程编号、课程名称、成绩、学分添加成绩:需要输入学生的学号或姓名、课程编号及成绩,如已有该门课程成绩给出提示;查询(班级或个人)成绩:查询个人成绩:以学号或姓名作为关键字,可查询一个学生的所有成绩,和已完成的总学分。查询班级成绩:以课程编号为关键字,成绩表后面要统计平均分、及格率及全班同学不同课程在不同分数段分布的人数及百分比。拓展功能:a) 程序启动时先从文件读入数据,如果文件中没有数据则给出提示;b) 每次修改的数据写入文件以自己的电脑为主要的

3、实验平台,运用Visual C+这个软件进行反复的编写实验。实验环境实验界面截图1、开始时2、添加3、查询4、查询成绩5、写文本6、读取主程序提供一个界面,允许用户选择。使用switch 语句,用时直接输入数字即可。算增加函数,功能是插入学生成绩。使用一个无穷循环,直到录入”n”法时结束。描删除函数,功能是删除,分为两步,先找后删。找,用 strcmp 函数来述做如果找到记录 i 值,反之记为 -1 ;删除可以从 i 项开始将数组的后一项赋及值给前一项。前一项自动被删掉。这样完成删除。实查询函数与之类似,将删除改为输出即可;验求平均值函数与查询类似只是输出时只输出平均值而已。步按平均值排序只要

4、加一个排序函数即可。骤退出函数什么都不写,即可。程序流程图添加成绩添添添添加加加加学学课学生生程生查询学生成绩学姓号名查查调试过程及实查询成绩查查询询学班生级查询班级成绩课程编验结果经过一个多星期的编译原理课程设计, 在我的努力下, 顺利完成该课程总 设计。通过该课程设计, 掌握了编译程序工作的基本过程及其各阶段的基本任务,熟悉了编译程序总流程框图,了解了编译程序的生成过程及其相关的技结术,对课本上的知识也有了更深的理解。 老师常说,课本上的知识是机械的,表面的,要学会去运用,要举一反三。现在终于深刻的了解了这句话。经过这次的课程设计,发现书本上很深奥的知识变的更为简单,同样,对实验原理也了有

5、更深的理解。知道和理解了该理论在计算机中是怎样执行的, 对该理论在实践中的应用有深刻的理解 。通过该课程设计,把死板的课本知识变得生动有趣, 激发了学习的积极性。 能够把课堂上学的知识通过自己设计的程序表示出来,加深了对理论知识的理解。课程设计中程序比较复杂,在调试时应该仔细,在程序调试时,注意指针,将不必要的命令去除。除了课堂外,课程设计是最能学到东西的,最考验人的。在做课程设计的这段时间,时刻都感到自己学的知识有多么的贫瘠。经过这次课程设计,让我对 C+这门语言有了更深的认识,操作能力有了提高要想是写出的代码能运行,需要耐心细心,毅力以及充沛的体力。只有经过多次编辑,多次编译,再多次运行,

6、才能编写出更好的程序,有时候需要多次的更正才能达到所要的运行结果。#include 附 #include 录 #include #define MAX 1000struct Lessonchar LessonName100;char LessonNumber100;int LessonMark;float LessonCredit;struct Studentchar Name100;char Number100;int LessonCount;struct Lesson L100;struct Student SMAX;int StudentCount = 0;void PrintInter

7、face();int Student_Insert();int Student_Delete();void Student_Select();void Class_Select();void WriteFile();void ReadFile();int main()int n;PrintInterface();scanf(%d, &n);void PrintInterface()int n;while (1)printf(n -欢迎使用学生成绩记录簿系统 - );printf(n| 1、添加|n);printf(n| 2、删除|n);printf(n| 3、查学生成绩|n);printf(n

8、| 4、查班成绩表|n);printf(n| 5、写入文本文件|n);printf(n| 6、读取文本文件|n);printf(n| 0、退出|n);printf(n - );printf(n选择操作 :);scanf(%d,&n);switch(n)case 1:if (Student_Insert()printf(n添加成功 .回车继续 n);elseprintf(n添加失败 .回车继续 n);break;case 2:Student_Delete();break;case 3:Student_Select();break;case 4:Class_Select();break;case

9、5:WriteFile();break;case 6:ReadFile();break;case 0:exit(1);break;default:printf(无此功能 , 请重新选择 , 按回车确定 n);return 0;int Student_Insert()int i,j,n;printf(n请输入所添加的学生人数:);scanf(%d, &n);if (StudentCount + n = MAX)return 0;for (i = StudentCount; i StudentCount + n; +i)printf(nt第 %d个学生: n, i - StudentCount +

10、 1);printf(nt学生学号: );scanf(%s, &Si.Number);if(strlen(Si.Number)!=8)printf(输入错误 , 请重新输入 );return 0;printf(nt学生姓名: );scanf(%s, Si.Name);printf(nt该学生所修课程数:);scanf(%d, &Si.LessonCount);for (j = 0; j Si.LessonCount; +j)printf(nt第 %d门课: n, j + 1);printf(ntt课程编号: );scanf(%s, Si.Lj.LessonNumber);if(strlen(S

11、i.Lj.LessonNumber)!=5)printf(输入错误 , 请重新输入 !);return 0;printf(ntt课程名称: );scanf(%s,Si.Lj.LessonName);printf(ntt课程成绩: );scanf(%d, &Si.Lj.LessonMark);if(Si.Lj.LessonMark100)printf(输入错误 , 请重新输入 !);return 0;printf(ntt课程学分: );scanf(%f, &Si.Lj.LessonCredit);if(Si.Lj.LessonCredit5)printf(输入错误 , 请重新输入 !);retu

12、rn 0;if (Si.Lj.LessonMark 60)Si.Lj.LessonCredit = 0;StudentCount += n ;return 1;int Student_Delete()char a100;char b100;int i, j;printf(n删除学生: n);printf(n学生姓名: );scanf(%s,a);printf(n学生学号: );scanf(%s,b);if(strlen(b)!=8)printf(输入错误请重新输入);return 0;for (i = 0; i StudentCount; i+)if (0=strcmp(Si.Name, a)

13、 & 0=strcmp(Si.Number, b)printf(n找到,删除 n);for (j = i + 1; j StudentCount)printf(n未找到该学生nn);return 0;elseStudentCount-;return 1;void Student_Select()int x;char y100;char a100;int i, j;printf(n输入所查学生信息(1. 姓名2.学号)选择:);scanf(%d, &x);if (x = 1 | x = 2)if (x = 1)printf(n姓名: );fflush(stdin);gets(a);for (i

14、= 0; i StudentCount; i+)if (0=strcmp(Si.Name,a)printf(n学 号 : %st姓 名 : %sn,Si.Number,Si.Name);printf(n课程编号 t课程名称 t课程成绩 t课程学分 n);printf(-n);for (j = 0; j Si.LessonCount; j+)printf(%stt%stt%dtt%fn,Si.Lj.LessonNumber,Si.Lj.LessonName,Si.Lj.LessonMark,Si.Lj.LessonCredit);printf(-n);printf(nn);elseprintf(

15、n学号: );fflush(stdin);gets(y);for (i = 0; i StudentCount; i+)if (strcmp(Si.Number,y)=0)printf(n学 号 : %st姓 名 : %sn,Si.Number,Si.Name);printf(n课程编号 t课程名称 t课程成绩 t课程学分 n);printf(-n);for (j = 0; j Si.LessonCount; j+)printf(%stt%stt%dtt%fn,Si.Lj.LessonNumber,Si.Lj.LessonName,Si.Lj.LessonMark,Si.Lj.LessonCr

16、edit);printf(-n);printf(nn);break;printf(查找完毕 .回车继续 n);getchar();elseprintf(选择错误 .回车继续 n);getchar();return;void Class_Select()char a100;double x=0,y=0,z=0;int i, j;printf(n请输入课程编号:);fflush(stdin);scanf(%s,a);printf(学号 t姓名 t课程名称 t课程成绩 t课程学分 n);printf(-n);for (i = 0; i StudentCount; i+)for (j = 0; j =

17、 60)y+;break;printf(n平均分: %ft及格率: %f%nn, z/x, y/x*100);printf(n查找完毕 .回车继续 n);getchar();void WriteFile()FILE *fp;int i, j;char a100;printf(n请输入写入的文件地址:nn地址输入格式:例如: );scanf(%s,&a);printf(n写入中 .n);if (fp = fopen(a,w)fprintf(fp,%dn,StudentCount);for (i = 0; i StudentCount; i+)fprintf(fp,%st%st%dn,Si.Num

18、ber,Si.Name,Si.LessonCount);for (j = 0; j Si.LessonCount; j+)fprintf(fp,%st%st%dt%fn,Si.Lj.LessonNumber,Si.Lj.LessonName,Si.Lj.LessonMark,Si.Lj.LessonCredit);printf(n写入完成 .回车继续 n);fclose(fp);elseprintf(n写入失败 .回车继续 n);getchar();void ReadFile()FILE *fp;int i, j;char a100;printf(n请输入读取的文件地址:nn地址输入格式:例如: );scanf(%s,&a);printf(n读取中 .n);if (fp = fopen(a,r)fscanf(fp,%d,&StudentCo

温馨提示

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

评论

0/150

提交评论