收藏 分销(赏)

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

上传人:人****来 文档编号:3012167 上传时间:2024-06-13 格式:DOC 页数:22 大小:2.32MB 下载积分:10 金币
下载 相关 举报
C控制台学生成绩管理系统实训报告含源代码.doc_第1页
第1页 / 共22页
C控制台学生成绩管理系统实训报告含源代码.doc_第2页
第2页 / 共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_Score[i]) + Convert.ToDouble(Math_Score[i]) + Convert.ToDouble(VisualCshap_Score[i])); Ave = (Convert.ToDouble(Sum) / 3); Console.WriteLine("学号:\t姓名:\t英语:\t数学:\tC#分:\t总分:\t平均分:\t"); Console.WriteLine("{0}\t{1}\t{2}\t{3}\t{4}\t{5}\t{6:#.00}\t", ID[i], Name[i], English_Score[i], Math_Score[i], VisualCshap_Score[i], Sum, Ave); } public void move_show() //输出排序后信息的函数 { for (int i = 0; i < ID.Count; i++) { double Sum; double Ave; Sum = (Convert.ToDouble(English_Score[i]) + Convert.ToDouble(Math_Score[i]) + Convert.ToDouble(VisualCshap_Score[i])); Ave = (Convert.ToDouble(Sum) / 3); Console.WriteLine("学号:\t姓名:\t英语:\t数学:\tC#分:\t总分:\t平均分:\t"); Console.WriteLine("{0}\t{1}\t{2}\t{3}\t{4}\t{5}\t{6:#.00}\t", ID[i], Name[i], English_Score[i], Math_Score[i], VisualCshap_Score[i], Sum, Ave); } } public void index_remove(int i) //删除学生信息的函数 { ID.RemoveAt(i); Name.RemoveAt(i); English_Score.RemoveAt(i); Math_Score.RemoveAt(i); VisualCshap_Score.RemoveAt(i); } public void move(ArrayList temp) //排序的函数 { for (int i = ID.Count - 1; i > 0; i--) //冒泡排序法 { for (int j = 0; j < i; j++) { if (Convert.ToDouble(temp[j]) < Convert.ToDouble(temp[j + 1])) { object Temp; Temp = ID[j]; ID[j] = ID[j + 1]; ID[j + 1] = Temp; Temp = Name[j]; Name[j] = Name[j + 1]; Name[j + 1] = Temp; Temp = English_Score[j]; English_Score[j] = English_Score[j + 1]; English_Score[j + 1] = Temp; Temp = Math_Score[j]; Math_Score[j] = Math_Score[j + 1]; Math_Score[j + 1] = Temp; Temp = VisualCshap_Score[j]; VisualCshap_Score[j] = VisualCshap_Score[j + 1]; VisualCshap_Score[j + 1] = Temp; } } } } public void move_Sum(ArrayList temp1, ArrayList temp2, ArrayList temp3) //按总成绩排序的函数 { for (int i = ID.Count - 1; i > 0; i--) { for (int j = 0; j < i; j++) { if (Convert.ToDouble(temp1[j]) + Convert.ToDouble(temp2[j]) + Convert.ToDouble(temp3[j]) < Convert.ToDouble(temp1[j + 1]) + Convert.ToDouble(temp2[j + 1]) + Convert.ToDouble(temp3[j + 1])) { object Temp; Temp = ID[j]; ID[j] = ID[j + 1]; ID[j + 1] = Temp; Temp = Name[j]; Name[j] = Name[j + 1]; Name[j + 1] = Temp; Temp = English_Score[j]; English_Score[j] = English_Score[j + 1]; English_Score[j + 1] = Temp; Temp = Math_Score[j]; Math_Score[j] = Math_Score[j + 1]; Math_Score[j + 1] = Temp; Temp = VisualCshap_Score[j]; VisualCshap_Score[j] = VisualCshap_Score[j + 1]; VisualCshap_Score[j + 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; }
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 应用文书 > 报告/总结

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服