C#编程_学生成绩管理系统_第1页
C#编程_学生成绩管理系统_第2页
C#编程_学生成绩管理系统_第3页
C#编程_学生成绩管理系统_第4页
C#编程_学生成绩管理系统_第5页
已阅读5页,还剩6页未读 继续免费阅读

下载本文档

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

文档简介

1、C#语言编程实训报告系部:*班级:*学号:*姓名:*指导教师:*评语:一、 设计题目:学生成绩管理系统二、 设计目的:通过编写学生成绩管理系统:掌握循环结构、数组结构、结构体的设计和应用;熟练方法的调用、选择结构的具体应用、排序检索功能的设计;最终提高面向对象编程、分析与解决实际问题的能力。三、 项目实现的功能:(1)实现学生信息的输入、输出、查询和删除;(2)计算学生的总成绩和平均成绩;(3)按总成绩排序并显示;(4)检索功能,按姓名、学号进行检索;(5)能够正常退出程序。四、 设计原理:根据学生成绩管理系统使用要求,程序要实现添加、删除、查询、正确退出功能,而这就用到了数组结构、循环结构、

2、结构类型、检索方法和退出程序的方法。因为功能要选择性实现,用到了选择结构的Switch语句,首先计算Switch后表达式的值,然后判断是否等于case常量表达式的值,以决定程序功能的执行。Student结构体的应用方便了学生不同信息的输入;在整个程序中用循环结构和数组结构实现信息的输入、输出、计算和检索;数组实现储存,但是删除信息时要注意数组长度和元素的改变;整个程序中结构、信息的删除和方法的调用是重点。选择数字3选择数字4选择数字5选择数字6While(ture);选择数字2调用searchno()查询信息;break;调用searchname()查询信息;break;调用score()查询

3、成绩信息;break;Environment.Exit(0)退出;break;调用Delete()删除信息;break;调用Add()添加信息;break;选择数字1从Main()方法中调用Check()方法开始程序的运行执行do循环体中的语句,进行选择数字的输入通过Switch语句计算输入的选择数字五、 程序流程图: 开始 是 否 是 否 是 否 是 否 是 否 是 真 结束六、 使用及调试说明:运行程序出现控制台界面后,按照界面显示的功能选项,根据需求进行选择,每次选择后按Enter键:1、选择1进入添加信息界面,按提示输入各项信息;2、选择2进入删除信息界面,按提示输入要删除的学生信息;

4、3、选择3进入查询界面,按学号进行查询;4、选择4进入查询界面,按姓名进行查询;5、选择5显示排序后的成绩单;6、选择6退出程序;七、 源程序代码:using System;using System.Collections.Generic;using System.Linq;using System.Text;namespace 学生信息管理 public struct Student /定义名为student的结构 public int no; /学号 public double chnese, math;/各科成绩public double english, csharp;public d

5、ouble ave, all; /平均成绩、总成绩 public string name; /学生姓名 public void ShowStuInfo() /该方法用于显示学生信息 /输出学生信息 Console.WriteLine("n学生信息:"); Console.Write("学号:0",no,);Console.Write("t姓名:0",name);Console.Write("t语文:0",chnese);Console.Write("t数学:0",math);Console.Wr

6、ite("t英语:0",english);Console.Write("tC#:0",csharp);Console.Write("t平均:0",ave);Console.Write("t总成绩:0",all);Console.WriteLine(); class Smanage /学生管理类 int x = 0;/声明数组stud Student stud = new Student10; public void Add() /用Add()方法添加学生信息 /学生信息的输入并以student的结构中定义的数组储存

7、 Console.WriteLine("请输入要添加的学生信息:"); Console.WriteLine("n请输入学号:"); studx.no =int.Parse(Console.ReadLine(); Console.WriteLine("n请输入姓名:"); = Console.ReadLine(); Console.WriteLine("n语文成绩:"); studx.chnese=double.Parse(Console.ReadLine(); Console.WriteLin

8、e("n数学成绩:"); studx.math=double.Parse(Console.ReadLine( ); Console.WriteLine("n英语成绩:"); studx.english=double.Parse(Console.ReadLine(); Console.WriteLine("n C #成绩:");studx.csharp=double.Parse(Console.ReadLine();/定义数组对输入成绩储存 doubleinfom=new doublestudx.chnese, studx.math,s

9、tudx.english, studx.csharp ; /以循环计算总成绩、平均成绩 for (int i = 0; i < infom.Length; i+) studx.all += infomi; studx.ave = studx.all / 4; studx.ShowStuInfo();/显示计算后学生信息 x= x+1; public void Delete() /删除信息 int n = -1; int no = int.Parse(Console.ReadLine();/用循环对获取的no进行判断 for (int i = 0; i < x; i+) if (no

10、 = studi.no) n = i; for (int c = n + 1; c < x; c+) /交换数组索引值对指定元素进行删除 studc - 1 = studc; x=x- 1; break; Console.WriteLine("学号为0的学生已删除!", no); if (n = -1) Console.WriteLine("输入信息有误,请重新输入!"); public void Searchno() /信息查询(按学号) int n = -1; int no = int.Parse(Console.ReadLine();/用循环

11、对获取的no进行判断 for (int i = 0; i < x; i+) /对输入的no判断 if (no = studi.no) n = i; /判断后输出显示 studi.ShowStuInfo(); break; if (n = -1) Console.WriteLine("输入信息有误,请重新输入!"); public void Searchname() /信息查询(按姓名) int n = -1; string name = Console.ReadLine();/用循环对获取的字符串进行判断 for (int i = 0; i < x; i+) /

12、对输入的字符串判断 if (name = ) n = i; /判断后输出显示 studi.ShowStuInfo(); break; if (n = -1) Console.WriteLine("输入信息有误,请重新输入!"); public void score() /信息查询(成绩单) /用循环对成绩进行排序 for (int i = x - 1; i >= 0; i-) for (int j = 0; j <= i; j+) if (studj.all < studj + 1.all) /用冒泡排序法对学生成绩排序 studx =

13、 studj; studj = studj + 1; studj + 1 = studx; break; int mc = new intx; /用循环输出排序后成绩 for (int i = 0; i < x; i+) mci = i + 1; Console.Write(mci+"t" ); Console.Write(studi.no+"t" ); Console.Write(+"t" ); Console.Write(studi.chnese+"t" ); Console.Writ

14、e(studi.math+"t" ); Console.Write(studi.english+"t" ); Console.Write(studi.csharp+"t" );Console.Write(studi.ave+"t" );Console.Write(studi.all +"t" );Console.WriteLine(); public void Check() /操作模块 do Console.WriteLine("请选择:n1、添加学生信息 n2、删除学生信息 n3、

15、查询(按学号) n4、查询(按姓名)n5、查询(成绩单)n6、退出"); /输入number int number=int.Parse(Console.ReadLine(); if (number > 6 | number < 1) /对输入的number判断 Console.WriteLine("输入有误请重新输入"); switch (number) case 1: Add(); /调用Add()方法添加学生信息 break; case 2: Console.WriteLine("请输入要删除学生的学号:"); Delete()

16、; /调用Delete()方法删除学生信息 break; case 3: Console.WriteLine("请输入学号:"); Searchno(); /调用该方法按学号查询学生信息 break; case 4: Console.WriteLine("请输入姓名:"); Searchname(); /调用该方法按姓名查询学生信息 break; case 5: Console.WriteLine("成绩单:"); Console.WriteLine("名次t学号t姓名t语文t数学t英语t C #t平均t总成绩")

17、; score(); /调用该方法显示排序后的成绩单break; case 6: Environment.Exit(0); /调用该方法退出程序break; Console.WriteLine("n是否继续!"); while (true); / class Test public static void Main(string args) /在主程序中对Check()方法调用 Smanage myuser = new Smanage(); myuser.Check(); 八、 设计总结:这是进入大学的第一次编程实训,两周的时间编出一个学生成绩管理的控制台应用程序,因为以前

18、上机练习的时间很少,再加上对学习到的知识点没有系统的认识,所以刚开始编写起来比较困难,感觉每一天都是很茫然的过,不过这只是开始,谁都会有这种心理。编程靠的就是毅力,不能因为困难就放弃。接下来的时间里,通过同学之间的讨论对这次编程所需要的程序结构逐渐明白了,结构虽然有了,但是细节更重要,在编程是因为一个字母的不同都会影响到整个程序的运行,因此每一次编写程序都要有细心和耐心。编出的程序一定要有自己的想法,这样才能达到锻炼自己的目的,并且能让自己在熟练掌握所学的知识的同时收获成功的喜悦。这一次两周的编程实训过程中,让我收获了不少:编程过程中最为重要的是我对细心谨慎也理解深,每次调试程序出现错误时会感到很苦恼,可能是一个符号一个字母或者,程序就会出错,而这样的错误又很小还不容易找到,这时我们就要有耐心和细心的去找,因为程序都是我们辛苦编出来的,不能轻易的就放弃。在这为期两周的实训中掌握并理解了方法的调用和循环

温馨提示

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

评论

0/150

提交评论