C#控制台学生成绩管理系统实训报告(含源代码)

上传人:1777****777 文档编号:36369119 上传时间:2021-10-30 格式:DOC 页数:22 大小:2.32MB
返回 下载 相关 举报
C#控制台学生成绩管理系统实训报告(含源代码)_第1页
第1页 / 共22页
C#控制台学生成绩管理系统实训报告(含源代码)_第2页
第2页 / 共22页
C#控制台学生成绩管理系统实训报告(含源代码)_第3页
第3页 / 共22页
点击查看更多>>
资源描述
C#语言编程实训报告系部:电子信息系班级:计算机1201姓名:陈紫房学号:0602120134指导教师:邱文严项目报告1 设计题目:学生成绩管理系统。2 设计目的:1. 巩固C#语言编程知识,提高面向对象编程能力,提高分析与解决实际问题的能力。2. 掌握循环、子程序等结构的程序设计方法。3. 掌握数组、结构体等数据结构的设计方法。4. 掌握排序检索等程序设计技术。3 项目实现的功能:1. 学生类的实现;2. 输入10个学生的学号、姓名、各门课程的成绩;3. 计算学生的总成绩和平均成绩;4. 按总成绩排序并显示;5. 检索功能,可以按姓名、学号进行检索。6. 能够插入、修改和删除学生信息7. 能够正常退出程序。4 设计原理:1. 建立一个学生类,利用ArrayList动态数组存储学生的学号,姓名,数学成绩,英语成绩,C#成绩。2. 在学生类里面定义函数:operate()函数当做菜单,input()函数用来输入信息,insert()函数用来插入信息,index()函数用来检索并返回索引值,index_show()函数用来输出索引结果,index_remove()函数用来删除学索引处的生信息,move()函数用来排序,move_Sum()函数用来按总成绩排序,move_show()函数用来输出排序后的信息。3. operate()函数中用swish语句选择应用选项,用goto Return返回主菜单;input()函数中用Add添加信息;insert()函数中用insert插入信息;index()函数中用IndexOf来检索并返回索引值;index_show()函数中用for循环来输出索引结果;index_remove()函数中用RemoveAt来删除学索引处的生信息;move()函数中用嵌套式双重for循环来排序;4. 用Console.Clear();来清屏。5 程序流程图;Case1:编写学生信息Case5:安全退出Case2:查看学生信息Case3:删除学生信息主函数调用operate函数,开始主程序Operate函数调用各个小菜单开始Case4:生成学生成绩单1.添加学生信息。2.插入学生信息。1.按录入顺序输出成绩单1.按学号查询3.修改学生信息。1.按学号删除2.按姓名查询4.按数学成绩输出成绩单2.按姓名删除2.按总成绩排序输出成绩单3.按英语成绩输出成绩单goto :Return返回主菜单5.按C#成绩输出成绩单结束6 使用及调试说明;1开始调试程序2输入学生信息3.查看输入结果4.排序5.查询个人信息6.删除学生信息7.插入及修改学生信息7 源程序代码;using System;using System.Collections;using System.Collections.Generic;using System.Text;namespace Student_score_management public class Student /定义了一个学生类 ArrayList ID = new ArrayList(3); /把学生的学号,姓名,英语、数学、C#成绩分别放在动态数组中。 ArrayList Name = new ArrayList(3); ArrayList English_Score = new ArrayList(3); ArrayList Math_Score = new ArrayList(3); ArrayList VisualCshap_Score = new ArrayList(3); public void Menu() /主菜单 Console.WriteLine(主菜单:); Console.WriteLine(1.编写学生信息。); Console.WriteLine(2.查看学生信息。); Console.WriteLine(3.删除学生信息。); Console.WriteLine(4.生成学生成绩单。); Console.WriteLine(5.安全退出。); Console.WriteLine(_); Console.WriteLine(请选择(以回车键结束)。); public void Menu1() /小菜单1 Console.WriteLine(1.添加学生信息。); Console.WriteLine(2.插入学生信息。); Console.WriteLine(3.修改学生信息。); Console.WriteLine(_); Console.WriteLine(请选择(以回车键结束)。); public void Menu2() /小菜单2 Console.WriteLine(1.按学号查询); Console.WriteLine(2.按姓名查询); Console.WriteLine(_); Console.WriteLine(请选择(以回车键结束)。); public void Menu3() /小菜单3 Console.WriteLine(1.按学号删除); Console.WriteLine(2.按姓名删除); Console.WriteLine(_); Console.WriteLine(请选择(以回车键结束)。); public void Menu4() /小菜单4 Console.WriteLine(1.按录入顺序输出成绩单); Console.WriteLine(2.按总成绩排序输出成绩单); Console.WriteLine(3.按英语成绩输出成绩单); Console.WriteLine(4.按数学成绩输出成绩单); Console.WriteLine(5.按C#成绩输出成绩单); Console.WriteLine(_); Console.WriteLine(请选择(以回车键结束)。); public void input() /添加学生信息的函数 Console.Write(学号:t); ID.Add(Console.ReadLine(); Console.Write(姓名:t); Name.Add(Console.ReadLine(); Console.Write(英语成绩:t); English_Score.Add(Console.ReadLine(); Console.Write(数学成绩:t); Math_Score.Add(Console.ReadLine(); Console.Write(visual C#成绩:t); VisualCshap_Score.Add(Console.ReadLine(); public void insert(int i) /插入学生信息的函数,使用动态数组插入函数 Console.Write(学号:t); ID.Insert(i, Console.ReadLine(); Console.Write(姓名:t); Name.Insert(i, Console.ReadLine(); Console.Write(英语成绩:t); English_Score.Insert(i, Console.ReadLine(); Console.Write(数学成绩:t); Math_Score.Insert(i, Console.ReadLine(); Console.Write(visual C#成绩:t); VisualCshap_Score.Insert(i, Console.ReadLine(); public void index_show(int i) /输出索引结果的函数 double Sum; double Ave; Sum = (Convert.ToDouble(English_Scorei) + Convert.ToDouble(Math_Scorei) + Convert.ToDouble(VisualCshap_Scorei); Ave = (Convert.ToDouble(Sum) / 3); Console.WriteLine(学号:t姓名:t英语:t数学:tC#分:t总分:t平均分:t); Console.WriteLine(0t1t2t3t4t5t6:#.00t, IDi, Namei, English_Scorei, Math_Scorei, VisualCshap_Scorei, Sum, Ave); public void move_show() /输出排序后信息的函数 for (int i = 0; i 0; i-) /冒泡排序法 for (int j = 0; j i; j+) if (Convert.ToDouble(tempj) 0; i-) for (int j = 0; j i; j+) if (Convert.ToDouble(temp1j) + Convert.ToDouble(temp2j) + Convert.ToDouble(temp3j) Convert.ToDouble(temp1j + 1) + Convert.ToDouble(temp2j + 1) + Convert.ToDouble(temp3j + 1) object Temp; Temp = IDj; IDj = IDj + 1; IDj + 1 = Temp; Temp = Namej; Namej = Namej + 1; Namej + 1 = Temp; Temp = English_Scorej; English_Scorej = English_Scorej + 1; English_Scorej + 1 = Temp; Temp = Math_Scorej; Math_Scorej = Math_Scorej + 1; Math_Scorej + 1 = Temp; Temp = VisualCshap_Scorej; VisualCshap_Scorej = VisualCshap_Scorej + 1; VisualCshap_Scorej + 1 = Temp; public int index(ArrayList temp) /检索方法,返回索引值 int T; return T = temp.IndexOf(Console.ReadLine(); public void operate() /主程序方法 Student student = new Student(); /学生类初始化对象 Return: Console.Clear(); / goto Return;用于返回主菜单的语句的标签所在 student.Menu(); byte Number; Number = Convert.ToByte(Console.ReadLine(); switch (Number) case 1: /实现编写学生信息的代码 Console.Clear(); student.Menu1(); Number = Convert.ToByte(Console.ReadLine(); switch (Number) case 1: /实现添加学生信息的代码。 Console.Clear(); Console.WriteLine(请输入学生信息(以回车键结束)。); student.input(); Console.WriteLine(是否继续输入?是请输入y返回主菜单请输入n(以回车键结束!); char ch = char.Parse(Console.ReadLine(); while (ch = y) Console.Clear(); student.input(); Console.WriteLine(是否继续输入?是请输入y返回主菜单请输入n(以回车键结束!); ch = char.Parse(Console.ReadLine(); break; case 2: /实现插入学生信息的代码。 Console.Clear(); Console.WriteLine(1.按学号插入学生信息。); Console.WriteLine(2.按索引插入学生信息。); Console.WriteLine(_); Console.WriteLine(请选择(以回车键结束)。); Number = Convert.ToByte(Console.ReadLine(); switch (Number) case 1: Console.WriteLine(请输入要插入的学生的前一个人的学号); int j = student.index(student.ID); /没有找到时返回值是-1 if (j = -1) Console.WriteLine(查无此人!无法插入信息。); else Console.Clear(); Console.WriteLine(请输入要插入的学生信息。(以回车键结束。); student.insert(j + 1); Console.WriteLine(按回车键返回主菜单); Console.ReadLine(); break; case 2: Console.Clear(); Console.WriteLine(请输入要插入信息的位置(索引从0开始,以回车键结束!); int i = int.Parse(Console.ReadLine(); Console.WriteLine(请输入要插入的学生信息。(以回车键结束); student.insert(i); Console.WriteLine(按回车键返回主菜单); Console.ReadLine(); break; break; case 3: /实现修改学生信息的代码 Console.Clear(); Console.WriteLine(请输入要修改信息的学生学号); int n = index(student.ID); Console.WriteLine(请输入要修改的学生信息); student.index_remove(n); student.insert(n); Console.WriteLine(按回车键返回主菜单); Console.ReadLine(); break; default: Console.WriteLine(输入错误!请按回车键返回主菜单); Console.ReadLine(); break; goto Return; case 2: / 2.查看学生信息。 Console.Clear(); student.Menu2(); Number = Convert.ToByte(Console.ReadLine(); switch (Number) case 1: Console.Clear(); /实现按学号查询的代码 Console.WriteLine(请输入学生学号(以回车键结束)。); int j = student.index(student.ID); /没有找到时返回值是-1 if (j = -1) Console.WriteLine(查无此人!); else student.index_show(j); Console.WriteLine(按回车键返回主菜单); Console.ReadLine(); break; case 2: Console.Clear(); /实现按姓名查询的代码 Console.WriteLine(请输入学生姓名以回车键结束)。); j = student.index(student.Name); if (j = -1) Console.WriteLine(查无此人!); else student.index_show(j); Console.WriteLine(按回车键返回主菜单); Console.ReadLine(); break; goto Return; case 3: /3.删除学生信息。 Console.Clear(); Console.WriteLine(3.删除学生信息。); student.Menu3(); Number = Convert.ToByte(Console.ReadLine(); switch (Number) case 1: / 实现按学号删除的代码 Console.Clear(); Console.WriteLine(请输入学生学号(以回车键结束)。); int j = student.index(student.ID); /没有找到时返回值是-1 if (j = -1) Console.WriteLine(查无此人!无法删除!); else student.index_remove(j); Console.WriteLine(按回车键返回主菜单); Console.ReadLine(); break; case 2: /实现按姓名删除的代码 Console.Clear(); Console.WriteLine(请输入学生姓名(以回车键结束)。); j = student.index(student.Name); /没有找到时返回值是-1 if (j = -1) Console.WriteLine(查无此人!无法删除!); else student.index_remove(j); Console.WriteLine(按回车键返回主菜单); Console.ReadLine(); break; goto Return; case 4: /4.查看学生成绩单,学生成绩排序。 Console.Clear(); student.Menu4(); Number = Convert.ToByte(Console.ReadLine(); switch (Number) case 1: /实现按录入顺序输出成绩单的代码 Console.Clear(); student.move_show(); Console.WriteLine(按回车健返回主菜单); Console.ReadLine(); break; case 2: /实现按总成绩排序输出成绩单的代码 Console.Clear(); student.move_Sum(student.English_Score, student.Math_Score, student.VisualCshap_Score); student.move_show(); Console.WriteLine(按回车键返回主菜单); Console.ReadLine(); break; case 3: /实现按英语成绩输出成绩单的代码 Console.Clear(); student.move(student.English_Score); student.move_show(); Console.WriteLine(按回车键返回主菜单); Console.ReadLine(); break; case 4: /实现按数学成绩输出成绩单的代码 Console.Clear(); student.move(student.Math_Score); student.move_show(); Console.WriteLine(按回车键返回主菜单); Console.ReadLine(); break; case 5: / 实现按C#成绩输出成绩单的代码 Console.Clear(); student.move(student.VisualCshap_Score); student.move_show(); Console.WriteLine(按回车键返回主菜单); Console.ReadLine(); break; goto Return; case 5: /安全退出 Console.Clear(); Console.WriteLine(5.安全退出。); Environment.Exit(0); break; default: Console.WriteLine(输入错误!请重输。); goto Return; class Program static void Main(string args) Student stud = new Student(); stud.operate(); /调用主程序函数的语句 8 设计总结:这次实训是大学以来第一次实训,也是我第一次连续两周学习同一个内容,对我来说是个不小的挑战。在编写学生成绩管理系统的过程中总是出错在超出索引上,通过不断思考代码的意义和试验总算能不报错的运行了。不过程序本身还是有一些缺陷,我还会继续研究。这次实训过程中我还认识到在开始编写程序之前应该思考好实现功能的方案,可以用更好的方法代替笨方法。长时间做一件事确实能很快让人提高,独立思考能让我发现很多事,能让我独立找出问题所在。这次实训深化了我对类、对象、数组尤其是动态数
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸设计 > 任务书类


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


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