C#学生管理系统课程设计报告.doc

上传人:精*** 文档编号:865423 上传时间:2023-10-05 格式:DOC 页数:35 大小:333.06KB
下载 相关 举报
C#学生管理系统课程设计报告.doc_第1页
第1页 / 共35页
C#学生管理系统课程设计报告.doc_第2页
第2页 / 共35页
C#学生管理系统课程设计报告.doc_第3页
第3页 / 共35页
C#学生管理系统课程设计报告.doc_第4页
第4页 / 共35页
C#学生管理系统课程设计报告.doc_第5页
第5页 / 共35页
点击查看更多>>
资源描述

1、通用学生信息管理系统一、题目分析1、基本功能要求:(1)创建相应的成员变量保存学生基本信息;(2)创建相应属性和索引以实现对成员变量访问的封装;(3)创建相应的方法以实现对学生基本信息的管理;(4)创建相应的方法以实现对学生成绩的管理;(5)构造函数和析构函数;(6)由学生类派生出小学生、中学生以及大学生;(7)尽量用上继承、多态、重载、覆盖、接口、抽象类、代理、事件等知识。2、设计思路:本题目要求学生设计一个通用学生信息管理系统,能够分别实现对小学生、中学生以及大学生信息及成绩的管理。定义学生类Student,在学生类中定义学生的公共属性,比如学号、姓名以及平均分等。由学生类Student派

2、生出三个子类,即小学生类xiaoxue、中学生类zhongxue和大学生类daxue。再分别在各个子类中定义其独有属性,编写函数进行各种操作, 主要包括对学生信息的增、删、改、查及显示全部等操作,以及对学生的成绩进行管理,主要是求平均分操作并按从高到低降序排列输出。本系统采用文件存储数据,代码中有对应的文件操作,能够实现对输入的数据的保存。二、系统设计小学生管理界面大学生管理界面中学生管理界面登录主界面增加信息修改信息 删除信息 查找信息 增加信息 修改信息 删除信息 查找信息 增加信息 修改信息 删除信息 查找信息 排 序 排 序 排 序 退出系统2、界面设计:(1)用户选择界面:(2子类界

3、面:(3)增加学生信息:(4)修改学生信息:(5)删除学生信息:(6)查找学生信息:(7)显示全部信息:(8)按平均分排序:三、知识清单1、定义了相应的成员变量来保存学生的基本信息,如学号、姓名、科目成绩等;2、定义了相应属性以来获取学生基本信息;3、定义了相应的方法实现了对学生基本信息的管理,如Add()、Order()、Delete()等方法实现对学生信息的增删改查;4、定义了相应的方法Order()对学生成绩信息进行管理;5、定义了构造函数进行初始化并且有默认的析构函数;6、定义学生类Student,由Student类派生出三个子类分别对小学生、中学生、大学生信息进行管理;7、本实验程序

4、没有连接数据库,所用数据都存在相应的文件操作中,有相应的方法实现文件相关操作;8、重载了操作符小于和大于号五、实验程序代码using System;using System.IO;using ConsoleApplication1;public class Student public string no; public string name; public int average; public static bool operator (Student s1, Student s2) /重载 if (s1.average s2.average) return true; else ret

5、urn false; public static bool operator (Student s1, Student s2) if (s1.average s2.average) return true; else return false; ;class StudentManageSystem static ConsoleApplication1.xiaoxue sd; public static void show() int cases = 0; bool flag = true; while (flag) Console.Clear(); Console.WriteLine(tt*

6、欢迎进入学生信息管理系统!*); Console.WriteLine(tt 1. 小学生界面); Console.WriteLine(tt 2. 中学生界面); Console.WriteLine(tt 3. 大学生界面); Console.WriteLine(tt*); Console.Write(tt请输入选择(数字1-3):); cases = Convert.ToInt32(Console.ReadLine(); if (cases = 1) flag = false; switch (cases) case 1: Menu1(); break; case 2: Menu2(); br

7、eak; case 3: Menu3(); break; public static void Menu1() /小学主菜单 xiaoxue s = new xiaoxue(); bool Flag = true; int selnumber = 0; while (Flag) Console.Clear(); Console.WriteLine(tt* 欢迎进入小学生信息管理系统!*); Console.WriteLine(tt 1. 增加数据); Console.WriteLine(tt 2. 修改数据); Console.WriteLine(tt 3. 删除数据); Console.Wr

8、iteLine(tt 4. 按姓名查找); Console.WriteLine(tt 5. 显示全部); Console.WriteLine(tt 6. 按平均分排序); Console.WriteLine(tt 7. 退出系统); Console.WriteLine(tt*); try Console.Write(tt请输入选择(数字1-7):); selnumber = Convert.ToInt32(Console.ReadLine(); catch (FormatException) Console.WriteLine(你输入的数据格式有误!); if (selnumber = 1)

9、Flag = false; switch (selnumber) case 1: s.Add(); break; case 2: s.Modify(); break; case 3: s.DeleteData(); break; case 4: s.Search(); break; case 5: s.Browse(); break; case 6: s.Order(); break; case 7: Environment.Exit(0); break; public static void Menu2() /中学主菜单 zhongxue s = new zhongxue(); bool F

10、lag = true; int selnumber = 0; while (Flag) Console.Clear(); Console.WriteLine(tt* 欢迎进入中学生信息管理系统!*); Console.WriteLine(tt 1. 增加数据); Console.WriteLine(tt 2. 修改数据); Console.WriteLine(tt 3. 删除数据); Console.WriteLine(tt 4. 按姓名查找); Console.WriteLine(tt 5. 显示全部); Console.WriteLine(tt 6. 按平均分排序); Console.Wr

11、iteLine(tt 7. 退出系统); Console.WriteLine(tt*); Console.Write(tt请输入选择(数字1-7):); selnumber = Convert.ToInt32(Console.ReadLine(); Console.WriteLine(你输入的数据格式有误!); if (selnumber = 1) Flag = false; switch (selnumber) case 1: s.Add2(); break; case 2: s.Modify2(); break; case 3: s.DeleteData2(); break; case 4

12、: s.Search2(); break; case 5: s.Browse2(); break; case 6: s.Order2(); break; case 7: Environment.Exit(0); break; public static void Menu3() /大学主菜单 daxue s = new daxue(); bool Flag = true; int selnumber = 0; while (Flag) Console.Clear(); Console.WriteLine(tt* 欢迎进入大学生信息管理系统!*); Console.WriteLine(tt 1.

13、 增加数据); Console.WriteLine(tt 2. 修改数据); Console.WriteLine(tt 3. 删除数据); Console.WriteLine(tt 4. 按姓名查找); Console.WriteLine(tt 5. 显示全部); Console.WriteLine(tt 6. 按平均分排序); Console.WriteLine(tt 7. 退出系统); Console.WriteLine(tt*); Console.Write(tt请输入选择(数字1-7):); selnumber = Convert.ToInt32(Console.ReadLine();

14、 Console.WriteLine(你输入的数据格式有误!); if (selnumber = 1) Flag = false; switch (selnumber) case 1: s.Add3(); break; case 2: s.Modify3(); break; case 3: s.DeleteData3(); break; case 4: s.Search3(); break; case 5: s.Browse3(); break; case 6: s.Order3(); break; case 7: Environment.Exit(0); break; public stat

15、ic void Save(int n) /保存N个学生信息 FileStream fs = null; BinaryWriter bw = null; FileInfo fi = null; DirectoryInfo di = new DirectoryInfo(.); try string s = di.Root.ToString(); /获取当前文件的根目录 s = s + 1.dat; fi = new FileInfo(s); if (fi.Exists) /判断文件是否存在,存在则追加,不存在则创建 fs = new FileStream(s, FileMode.Append, F

16、ileAccess.Write); bw = new BinaryWriter(fs); else fs = new FileStream(s, FileMode.Create, FileAccess.Write); bw = new BinaryWriter(fs); catch (IOException) Console.WriteLine(操作文件失败!); return; try for (int i = 0; i n; i+) bw.Write(sdi.no); bw.Write(sdi.name); bw.Write(sdi.english); bw.Write(sdi.chine

17、se); bw.Write(sdi.math); bw.Write(sdi.average); catch (IOException) Console.WriteLine(写文件失败!); return; finally bw.Close(); fs.Close(); Console.WriteLine(数据已保存!请按任意键继续); Console.ReadKey(true); Menu1(); public static void SaveToArray(ref int len) /将数据保存至数组中 sd = new xiaoxuelen; for (int j = 0; j len;

18、j+) sdj = new xiaoxue(); try FileStream fs = null; BinaryReader br = null; DirectoryInfo di = new DirectoryInfo(.); String s = di.Root.ToString(); /获取当前文件的根目录 s = s + 1.dat; fs = new FileStream(s, FileMode.Open, FileAccess.Read); br = new BinaryReader(fs); int i = 0; try for (i = 0; i len; i+) sdi.n

19、o = br.ReadString(); sdi.name = br.ReadString(); sdi.english = br.ReadInt32(); sdi.chinese = br.ReadInt32(); sdi.math = br.ReadInt32(); sdi.average = br.ReadInt32(); catch (EndOfStreamException) len = i - 1; finally br.Close(); fs.Close(); catch return; public static void SaveToFile(int len) /将数据保存至

20、文件中 FileStream fs1 = null; BinaryWriter bw = null; DirectoryInfo di; string s; try di = new DirectoryInfo(.); s = di.Root.ToString(); /获取当前文件的根目录 s = s + 1.dat; fs1 = new FileStream(s, FileMode.Create, FileAccess.Write); bw = new BinaryWriter(fs1); for (int i = 0; i len; i+) if (sdi.no != ) bw.Write

21、(sdi.no); bw.Write(sdi.name); bw.Write(sdi.english); bw.Write(sdi.chinese); bw.Write(sdi.math); bw.Write(sdi.average); catch (IOException) Console.WriteLine(写入数据错误!); Console.ReadKey(true); return; finally bw.Close(); fs1.Close(); Console.WriteLine(修改数据成功!); Console.WriteLine(请按任意键继续!); Console.Read

22、Key(true); Menu1(); public static void Main() /主函数 show(); Menu1(); using System;using System.Collections.Generic;using System.Linq;using System.IO;using System.Text;namespace ConsoleApplication1 class xiaoxue:Student static ConsoleApplication1.xiaoxue sd; public int chinese; public int english; pub

23、lic int math; public int getchinese get return chinese; set chinese = value; public int getenglish get return english; set english = value; public int getmath get return math; set math = value; public void Input(int i) /输入某一学生信息 Console.WriteLine(n请输入第0学生的信息:, i + 1); while (true) /这个循环用来控制学号不能相同 Co

24、nsole.Write(n 学号); sdi.no = Console.ReadLine(); int j = 0; for (j = 0; j i; j+) if (sdi.no != sdj.no) break; if (i = 0 | j != i) break; Console.WriteLine(您输入的学号重复,请重输!); Console.Write( 姓名); sdi.name = Console.ReadLine(); try Console.Write( 语文成绩); sdi.english = Convert.ToInt32(Console.ReadLine(); Con

25、sole.Write( 英语成绩); sdi.chinese = Convert.ToInt32(Console.ReadLine(); Console.Write( 数学成绩); sdi.math = Convert.ToInt32(Console.ReadLine(); sdi.average = (sdi.english + sdi.chinese + sdi.math) / 3; catch (FormatException e) Console.WriteLine(您输入的数据有误! + e.Message); public static void SaveToArray(ref i

26、nt len) ./将数据保存至数组中 public static void Save(int n) . /保存N个学生信息 public static void SaveToFile(int len) Menu1(); /将数据保存至文件中 private static void Menu1() public void Add() /添加模块 int n = 0; try Console.WriteLine(n请输入您需添加的学生记录的个数:); n = Convert.ToInt32(Console.ReadLine(); catch (FormatException) Console.WriteLine(您输入的数据格式有误!); sd = new xiaoxuen; for (int i = 0; i n; i+) sdi = new xiaoxue(); for (int i = 0; i

展开阅读全文
相关资源
相关搜索
资源标签

当前位置:首页 > 技术资料 > 课程设计

版权声明:以上文章中所选用的图片及文字来源于网络以及用户投稿,由于未联系到知识产权人或未发现有关知识产权的登记,如有知识产权人并不愿意我们使用,如有侵权请立即联系:2622162128@qq.com ,我们立即下架或删除。

Copyright© 2022-2024 www.wodocx.com ,All Rights Reserved |陕ICP备19002583号-1 

陕公网安备 61072602000132号     违法和不良信息举报:0916-4228922