C#学生管理系统课程设计报告.docx
- 文档编号:24662869
- 上传时间:2023-05-30
- 格式:DOCX
- 页数:50
- 大小:226.71KB
C#学生管理系统课程设计报告.docx
《C#学生管理系统课程设计报告.docx》由会员分享,可在线阅读,更多相关《C#学生管理系统课程设计报告.docx(50页珍藏版)》请在冰豆网上搜索。
C#学生管理系统课程设计报告
C#程序设计期末作业
通用学生信息管理系统
计算机科学与工程学院
班级:
123456
姓名:
张三儿
学号:
12345678
2014年5月
一、题目分析
1、基本功能要求:
(1)创建相应的成员变量保存学生基本信息;
(2)创建相应属性和索引以实现对成员变量访问的封装;
(3)创建相应的方法以实现对学生基本信息的管理;
(4)创建相应的方法以实现对学生成绩的管理;
(5)构造函数和析构函数;
(6)由学生类派生出小学生、中学生以及大学生;
(7)尽量用上继承、多态、重载、覆盖、接口、抽象类、代理、事件等知识。
2、设计思路:
本题目要求学生设计一个通用学生信息管理系统,能够分别实现对小学生、中学生以及大学生信息及成绩的管理。
定义学生类Student,在学生类中定义学生的公共属性,比如学号、姓名以及平均分等。
由学生类Student派生出三个子类,即小学生类xiaoxue、中学生类zhongxue和大学生类daxue。
再分别在各个子类中定义其独有属性,编写函数进行各种操作,主要包括对学生信息的增、删、改、查及显示全部等操作,以及对学生的成绩进行管理,主要是求平均分操作并按从高到低降序排列输出。
本系统采用文件存储数据,代码中有对应的文件操作,能够实现对输入的数据的保存。
二、系统设计
2、界面设计:
(1)用户选择界面:
(2子类界面:
(3)增加学生信息:
(4)修改学生信息:
(5)删除学生信息:
(6)查找学生信息:
(7)显示全部信息:
(8)按平均分排序:
三、知识清单
1、定义了相应的成员变量来保存学生的基本信息,如学号、姓名、科目成绩等;
2、定义了相应属性以来获取学生基本信息;
3、定义了相应的方法实现了对学生基本信息的管理,如Add()、Order()、Delete()等方法实现对学生信息的增删改查;
4、定义了相应的方法Order()对学生成绩信息进行管理;
5、定义了构造函数进行初始化并且有默认的析构函数;
6、定义学生类Student,由Student类派生出三个子类分别对小学生、中学生、大学生信息进行管理;
7、本实验程序没有连接数据库,所用数据都存在相应的文件操作中,有相应的方法实现文件相关操作;
8、重载了操作符小于和大于号
五、实验程序代码
usingSystem;
usingSystem.IO;
usingConsoleApplication1;
publicclassStudent
{
publicstringno;
publicstringname;
publicintaverage;
publicstaticbooloperator>(Students1,Students2)//重载
{
if(s1.average>s2.average)
returntrue;
else
returnfalse;
}
publicstaticbooloperator<(Students1,Students2)
{
if(s1.average returntrue; else returnfalse; } }; classStudentManageSystem { staticConsoleApplication1.xiaoxue[]sd; publicstaticvoidshow() { intcases=0; boolflag=true; while(flag){ Console.Clear(); Console.WriteLine("\t\t******欢迎进入学生信息管理系统! ******"); Console.WriteLine("\t\t1.小学生界面"); Console.WriteLine("\t\t2.中学生界面"); Console.WriteLine("\t\t3.大学生界面"); Console.WriteLine("\t\t***************************************"); Console.Write("\t\t请输入选择(数字1-3): "); cases=Convert.ToInt32(Console.ReadLine()); if(cases<=3&&cases>=1){ flag=false; switch(cases){ case1: Menu1(); break; case2: Menu2(); break; case3: Menu3(); break; } } } } publicstaticvoidMenu1()///小学主菜单 { xiaoxues=newxiaoxue(); boolFlag=true; intselnumber=0; while(Flag){ Console.Clear(); Console.WriteLine("\t\t******欢迎进入小学生信息管理系统! ******"); Console.WriteLine("\t\t1.增加数据"); Console.WriteLine("\t\t2.修改数据"); Console.WriteLine("\t\t3.删除数据"); Console.WriteLine("\t\t4.按姓名查找"); Console.WriteLine("\t\t5.显示全部"); Console.WriteLine("\t\t6.按平均分排序"); Console.WriteLine("\t\t7.退出系统"); Console.WriteLine("\t\t***************************************"); try{ Console.Write("\t\t请输入选择(数字1-7): "); selnumber=Convert.ToInt32(Console.ReadLine()); } catch(FormatException){ Console.WriteLine("你输入的数据格式有误! ! "); } if(selnumber<=7&&selnumber>=1){ Flag=false; switch(selnumber){ case1: s.Add(); break; case2: s.Modify(); break; case3: s.DeleteData(); break; case4: s.Search(); break; case5: s.Browse(); break; case6: s.Order(); break; case7: Environment.Exit(0); break; } } } } publicstaticvoidMenu2()///中学主菜单 { zhongxues=newzhongxue(); boolFlag=true; intselnumber=0; while(Flag){ Console.Clear(); Console.WriteLine("\t\t******欢迎进入中学生信息管理系统! ******"); Console.WriteLine("\t\t1.增加数据"); Console.WriteLine("\t\t2.修改数据"); Console.WriteLine("\t\t3.删除数据"); Console.WriteLine("\t\t4.按姓名查找"); Console.WriteLine("\t\t5.显示全部"); Console.WriteLine("\t\t6.按平均分排序"); Console.WriteLine("\t\t7.退出系统"); Console.WriteLine("\t\t***************************************"); Console.Write("\t\t请输入选择(数字1-7): "); selnumber=Convert.ToInt32(Console.ReadLine()); Console.WriteLine("你输入的数据格式有误! ! "); if(selnumber<=7&&selnumber>=1){ Flag=false; switch(selnumber){ case1: s.Add2(); break; case2: s.Modify2(); break; case3: s.DeleteData2(); break; case4: s.Search2(); break; case5: s.Browse2(); break; case6: s.Order2(); break; case7: Environment.Exit(0); break; } } } } publicstaticvoidMenu3()///大学主菜单 { daxues=newdaxue(); boolFlag=true; intselnumber=0; while(Flag){ Console.Clear(); Console.WriteLine("\t\t******欢迎进入大学生信息管理系统! ******"); Console.WriteLine("\t\t1.增加数据"); Console.WriteLine("\t\t2.修改数据"); Console.WriteLine("\t\t3.删除数据"); Console.WriteLine("\t\t4.按姓名查找"); Console.WriteLine("\t\t5.显示全部"); Console.WriteLine("\t\t6.按平均分排序"); Console.WriteLine("\t\t7.退出系统"); Console.WriteLine("\t\t***************************************"); Console.Write("\t\t请输入选择(数字1-7): "); selnumber=Convert.ToInt32(Console.ReadLine()); Console.WriteLine("你输入的数据格式有误! ! "); if(selnumber<=7&&selnumber>=1){ Flag=false; switch(selnumber){ case1: s.Add3(); break; case2: s.Modify3(); break; case3: s.DeleteData3(); break; case4: s.Search3(); break; case5: s.Browse3(); break; case6: s.Order3(); break; case7: Environment.Exit(0); break; } } } } publicstaticvoidSave(intn)///保存N个学生信息 { FileStreamfs=null; BinaryWriterbw=null; FileInfofi=null; DirectoryInfodi=newDirectoryInfo("."); try{ strings=di.Root.ToString();//获取当前文件的根目录 s=s+"1.dat"; fi=newFileInfo(s); if(fi.Exists){//判断文件是否存在,存在则追加,不存在则创建 fs=newFileStream(s,FileMode.Append,FileAccess.Write); bw=newBinaryWriter(fs); } else{ fs=newFileStream(s,FileMode.Create,FileAccess.Write); bw=newBinaryWriter(fs); } } catch(IOException){ Console.WriteLine("操作文件失败! "); return; } try{ for(inti=0;i bw.Write(sd[i].no); bw.Write(sd[i].name); bw.Write(sd[i].english); bw.Write(sd[i].chinese); bw.Write(sd[i].math); bw.Write(sd[i].average); } } catch(IOException){ Console.WriteLine("写文件失败! "); return; } finally{ bw.Close(); fs.Close(); Console.WriteLine("数据已保存! 请按任意键继续"); Console.ReadKey(true); Menu1(); } } publicstaticvoidSaveToArray(refintlen)///将数据保存至数组中 { sd=newxiaoxue[len]; for(intj=0;j sd[j]=newxiaoxue(); } try{ FileStreamfs=null; BinaryReaderbr=null; DirectoryInfodi=newDirectoryInfo("."); Strings=di.Root.ToString();//获取当前文件的根目录 s=s+"1.dat"; fs=newFileStream(s,FileMode.Open,FileAccess.Read); br=newBinaryReader(fs); inti=0; try{ for(i=0;i sd[i].no=br.ReadString(); sd[i].name=br.ReadString(); sd[i].english=br.ReadInt32(); sd[i].chinese=br.ReadInt32(); sd[i].math=br.ReadInt32(); sd[i].average=br.ReadInt32(); } } catch(EndOfStreamException) {len=i-1;} finally{ br.Close(); fs.Close(); } } catch{return;} } publicstaticvoidSaveToFile(intlen)///将数据保存至文件中 { FileStreamfs1=null; BinaryWriterbw=null; DirectoryInfodi; strings; try{ di=newDirectoryInfo("."); s=di.Root.ToString();//获取当前文件的根目录 s=s+"1.dat"; fs1=newFileStream(s,FileMode.Create,FileAccess.Write); bw=newBinaryWriter(fs1); for(inti=0;i if(sd[i].no! =""){ bw.Write(sd[i].no); bw.Write(sd[i].name); bw.Write(sd[i].english); bw.Write(sd[i].chinese); bw.Write(sd[i].math); bw.Write(sd[i].average); } } } catch(IOException){ Console.WriteLine("写入数据错误! "); Console.ReadKey(true); return; } finally{ bw.Close(); fs1.Close(); } Console.WriteLine("修改数据成功! "); Console.WriteLine("请按任意键继续! "); Console.ReadKey(true); Menu1(); } publicstaticvoidMain(){//主函数 show(); Menu1(); } } usingSystem; usingSystem.Collections.Generic; usingSystem.Linq; usingSystem.IO; usingSystem.Text; namespaceConsoleApplication1 { classxiaoxue: Student { staticConsoleApplication1.xiaoxue[]sd; publicintchinese; publicintenglish; publicintmath; publicintgetchinese { get{returnchinese;} set{chinese=value;} } publicintgetenglish { get{returnenglish;} set{english=value;} } publicintgetmath { get{returnmath;} set{math=value;} } publicvoidInput(inti)///输入某一学生信息 { Console.WriteLine("\n请输入第{0}学生的信息: ",i+1); while(true)//这个循环用来控制学号不能相同 { Console.Write("\n学号"); sd[i].no=Console.ReadLine(); intj=0; for(j=0;j if(sd[i].no! =sd[j].no){ break; } } if(i==0||j! =i) break; Console.WriteLine("您输入的学号重复,请重输! "); } Console.Write("姓名"); sd[i].name=Console.ReadLine(); try{ Console.Write("语文成绩"); sd[i].english=Convert.ToInt32(Console.ReadLine()); Console.Write("英语成绩"); sd[i].chinese=Convert.ToInt32(Console.ReadLine()); Console.Write("数学成绩"); sd[i].math=Convert.ToInt32(Console.ReadLine()); sd[i].average=(sd[i].english+sd[i].chinese+sd[i].math)/3; } catch(FormatExceptione){ Console.WriteLine("您输入的数据有误! "+e.Message); } } publicstaticvoidSaveToArray(refintlen){...}///将数据保存至数组中 publicstaticvoidSave(intn){...}///保存N个学生信息 publicstaticvoidSaveToFile(intlen){Menu1();}///将数据保存至文件中 privatestaticvoidMenu1(){} publicvoidAdd()///添加模块 { intn=0; try{ Console.WriteLine("\n请输入您需添加的学生记录的个数: "); n=Convert.ToInt32(Console.ReadLine()); } catch(FormatException){ Console.WriteLine("您输入的数据格式有误! "); } sd=newxiaoxue[n]; for(inti=0;i sd[i]=newxiaoxue(); } for(inti=0;i Input(i); } if(n! =0) Save(n); else Menu1(); } publicvoidModify()///修改模块 { intlen=0; BrowseAll(reflen); SaveToArray(reflen); xiaoxuetemp=newxiaoxue(); try{ Console.WriteLine("请输入要修改学生的学号(学号不可改): "); temp.no=Console.ReadLine(); Console.Write("\n姓名: "); temp.name
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- C# 学生 管理 系统 课程设计 报告