本程序以文本文件作为存储媒介,实现了一个简化版的选课系统,主要实现了以下功能

  1. 对学生信息的增删改查
  2. 对课程信息的增删改查
  3. 对学生选课的增删改查
 using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.IO;
using System.Diagnostics; namespace curricula_Variable
{
//课程类
class course
{
public course()
{
ID = null; namOfCourse = null;
}
public course(string id, string nam)
{
ID = id; namOfCourse = nam;
}
public string namOfCourse; //课程名称
private string ID; //课程ID,课程的唯一标示
public string id
{
set { ID = value; }
get { return ID; }
}
} //学生类;包含学生基本信息和选课内容
class student
{
public course[] COUR = new course[]; //所选的课(最多3门)
public string name; //姓名
private string num; //学号,对学生唯一的标示
public string _num
{
get { return num; }
set { num = value; }
}
public string placeNative; //籍贯
public string tel; //电话
public string dormitoryRoom; //宿舍
} class Program
{
//给定一个学生数组(最多100人)
static student[] stu = new student[];
static int countStudent = -; //给定一个课程数组(最多10门课)
static course[] cour = new course[];
static int countCourse = -; static void Main(string[] args)
{
//readStuInforFromTxt();
//readCourInfoFromTxt();
//readStuCourSelectInforFromTxt();
homePage();
HomePage:
Console.Write("请选择你想使用的功能:");
int iInput;
//输入一个数字,如果是0到12,就进行相应操作,否则重新输入
Input:
string str = Console.ReadLine();
if ((Int32.TryParse(str, out iInput)) == false)
{
Console.Write("输入的不是整数,请重新输入:");
goto Input;
}
if (iInput >= && iInput < )
switch (iInput)
{
case :
stuInforAdd();
goto HomePage; case :
stuInforDel();
goto HomePage; case :
stuInforAlter();
goto HomePage; case :
stuInforSelect();
goto HomePage;
case :
courseInforAdd();
goto HomePage; case :
courseInforDel();
goto HomePage; case :
courseInforAlter();
goto HomePage; case :
courseInforSelect();
goto HomePage; case :
courseSelectAdd();
goto HomePage; case :
courseSelectDel();
goto HomePage; case :
courseSelectAlter();
goto HomePage; case :
courseSelectSelect();
goto HomePage; case :
Environment.Exit();
return;
}
else
{
Console.Write("输入数据超出范围,请重新输入:");
goto Input;
}
Console.ReadKey();
Environment.Exit();
} //主页
static void homePage()
{
for (int i = ; i < ; i++)
{
Console.Write("*");
}
Console.WriteLine();
for (int i = ; i < ; i++)
Console.Write(" ");
Console.WriteLine("欢迎使用选课系统");
for (int i = ; i < ; i++)
Console.Write(" ");
Console.WriteLine("1、 增加学生信息");
for (int i = ; i < ; i++)
Console.Write(" ");
Console.WriteLine("2、 删除学生信息");
for (int i = ; i < ; i++)
Console.Write(" ");
Console.WriteLine("3、 修改学生信息");
for (int i = ; i < ; i++)
Console.Write(" ");
Console.WriteLine("4、 查询学生信息");
for (int i = ; i < ; i++)
Console.Write(" ");
Console.WriteLine("5、 增加课程信息");
for (int i = ; i < ; i++)
Console.Write(" ");
Console.WriteLine("6、 删除课程信息");
for (int i = ; i < ; i++)
Console.Write(" ");
Console.WriteLine("7、 修改课程信息");
for (int i = ; i < ; i++)
Console.Write(" ");
Console.WriteLine("8、 查询课程信息");
for (int i = ; i < ; i++)
Console.Write(" ");
Console.WriteLine("9、 增加选课内容");
for (int i = ; i < ; i++)
Console.Write(" ");
Console.WriteLine("10、删除已选课程");
for (int i = ; i < ; i++)
Console.Write(" ");
Console.WriteLine("11、修改课程信息");
for (int i = ; i < ; i++)
Console.Write(" ");
Console.WriteLine("12、查询选课信息");
for (int i = ; i < ; i++)
Console.Write(" ");
Console.WriteLine("0、 退出选课系统");
for (int i = ; i < ; i++)
{
Console.Write("*");
}
Console.WriteLine();
} //判断手机号是否合法
public static bool isPhone(string str_handset)
{
return System.Text.RegularExpressions.Regex.IsMatch(str_handset, @"^[1]+[3,5,7,8]+\d{9}");
} //判断学号是否合法
public static bool isNumber(string str_handset)
{
return System.Text.RegularExpressions.Regex.IsMatch(str_handset, @"^[1]+[2,3,4,5,6]+[0,1]+\d{6}");
} /* 学生信息管理
* 1、添加学生信息
* 2、删除学生信息
* 3、修改学生信息
* 4、查询学生信息 */ //学生信息添加,添加学号、姓名
static void stuInforAdd()
{
readStuInforFromTxt();
Console.Clear();
student stud = new student();
Console.Write("请输入学生学号:");
Input:
string str = Console.ReadLine();
if (!isNumber(str) || str.Length != )
{
Console.Write("学号格式不正确,请重新输入:");
goto Input;
}
else
{
int ct = , isExit = ;
while (stu[ct] != null)
{
if (stu[ct]._num == str)
{
isExit = -;
break;
}
else
ct++;
}
if (isExit == -)
{
Console.Clear();
homePage();
Console.WriteLine("该学生信息已存在!");
return;
}
else
stud._num = str;
}
Console.Write("请输入学生姓名:");
Input1:
string str1 = Console.ReadLine();
if (str1 == "")
{
Console.Write("姓名不能为空,请重新输入:");
goto Input1;
}
else
stud.name = str1;
Console.Write("请输入籍贯:");
Input2:
string str2 = Console.ReadLine();
if (str2 == "")
{
Console.Write("籍贯不能为空,请重新输入:");
goto Input2;
}
else
stud.placeNative = str2; Console.Write("请输入学生联系电话:");
Input3:
str = Console.ReadLine();
if (!(isPhone(str)) || str.Length != )
{
Console.Write("联系电话格式不正确,请重新输入:");
goto Input3;
}
else
stud.tel = str; Console.Write("请输入学生宿舍号:");
Input4:
int m;
str = Console.ReadLine();
if (!(Int32.TryParse(str, out m)))
{
Console.Write("宿舍号格式不正确,请重新输入:");
goto Input4;
}
else
stud.dormitoryRoom = str;
stu[++countStudent] = stud;
Console.Clear();
homePage();
saveStuInforToTxt();
Console.WriteLine("添加成功!");
} //学生信息删除,删除个人所有信息
static void stuInforDel()
{
readStuInforFromTxt();
Console.Clear();
Console.Write("请输入您想删除的学生学号:");
string i = Console.ReadLine();
Input:
string str = Console.ReadLine();
if (!isNumber(i) || i.Length != )
{
Console.Write("学号格式不正确,请重新输入:");
goto Input;
}
int n = ;
homePage();
while (stu[n] != null)
{
if (stu[n]._num == i)
{
List<student> list = stu.ToList();
list.RemoveAt(n);
student[] newarr = list.ToArray();
stu = newarr;
countStudent--;
Console.WriteLine("删除成功!");
saveStuInforToTxt();
return;
}
else
n++;
}
Console.WriteLine("查无此人!");
} //学生信息修改,修改除学号以外的信息
static void stuInforAlter()
{
readStuInforFromTxt();
Console.Clear();
Console.Write("请输入您想修改的学生的学号:");
Input:
string i = Console.ReadLine();
if (!isNumber(i) || i.Length != )
{
Console.Write("学号格式不正确,请重新输入:");
goto Input;
}
string str = "";
int n = ;
homePage();
while (stu[n] != null)
{
if (stu[n]._num == i)
{
Console.Write("请输入修改后的姓名:");
Input1:
str = Console.ReadLine();
if (str == "")
{
Console.Write("姓名不能为空,请重新输入:");
goto Input1;
}
else
stu[n].name = str; Console.Write("请输入修改后的籍贯:");
Input2:
str = Console.ReadLine();
if (str == "")
{
Console.Write("籍贯不能为空,请重新输入:");
goto Input2;
}
else
stu[n].placeNative = str; Console.Write("请输入修改后的联系电话:");
Input3:
str = Console.ReadLine();
if (!isPhone(str) || str.Length != )
{
Console.Write("联系电话格式不正确,请重新输入:");
goto Input3;
}
else
stu[n].tel = str; Console.Write("请输入修改后的宿舍号:");
Input4:
int m;
str = Console.ReadLine();
if (!(Int32.TryParse(str, out m)))
{
Console.Write("宿舍号格式不正确,请重新输入:");
goto Input4;
}
else
stu[n].dormitoryRoom = str;
Console.Clear();
homePage();
saveStuInforToTxt();
Console.WriteLine("修改成功!");
return;
}
else
n++;
}
Console.WriteLine("查无此人!");
} //学生信息查询,通过学号查询姓名
static void stuInforSelect()
{
readStuInforFromTxt();
Console.Clear();
Console.Write("请输入您想查询的学生学号:");
Input:
string i = Console.ReadLine();
if (!isNumber(i))
{
Console.Write("学号格式不正确,请重新输入:");
goto Input;
}
int n = ;
homePage();
while (stu[n] != null)
{
if (stu[n]._num == i)
{
Console.WriteLine("您所查询的学生的姓名为:{0}", stu[n].name);
Console.WriteLine("您所查询的学生的籍贯为:{0}", stu[n].placeNative);
Console.WriteLine("您所查询的学生的电话为:{0}", stu[n].tel);
Console.WriteLine("您所查询的学生的宿舍号:{0}", stu[n].dormitoryRoom);
saveStuInforToTxt();
return;
}
else
n++;
}
Console.WriteLine("查无此人!");
} /* 课程信息管理
* 1、增加课程信息
* 2、删除课程信息
* 3、修改课程信息
* 4、查询课程信息 */ //课程信息添加,通过添加课程ID添加课程
static void courseInforAdd()
{
readCourInfoFromTxt();
if (countCourse == )
{
Console.Clear();
homePage();
saveCourseInforToTxt();
Console.WriteLine("课程已满!若要继续添加,请先删除部分课程!");
return;
}
Console.Clear();
course Cour = new course();
Console.Write("请输入课程ID:");
Input:
string str = Console.ReadLine();
int m;
if (!(Int32.TryParse(str, out m)))
{
Console.Write("课程ID格式不正确,请重新输入:");
goto Input;
}
else
{
int ct = , isExit = ;
while (cour[ct] != null)
{
if (cour[ct].id == str)
{
isExit = -;
break;
}
else
ct++;
}
if (isExit == -)
{
Console.Clear();
homePage();
saveCourseInforToTxt();
Console.WriteLine("该课程信息已存在!");
return;
}
else
Cour.id = str;
}
Console.Write("请输入课程名称:");
Input1:
string str1 = Console.ReadLine();
if (str1 == "")
{
Console.Write("课程名称不能为空,请重新输入:");
goto Input1;
}
else
Cour.namOfCourse = str1;
cour[++countCourse] = Cour;
Console.Clear();
homePage();
Console.WriteLine("添加成功!");
saveCourseInforToTxt();
} //课程信息删除,通过课程ID删除相关课程
static void courseInforDel()
{
readCourInfoFromTxt();
Console.Clear();
Console.Write("请输入您想删除的课程ID:");
string i = Console.ReadLine();
int n = ;
homePage();
Console.Clear();
while (n<&&cour[n] != null)
{
if (cour[n].id == i)
{
List<course> list = cour.ToList();
list.RemoveAt(n);
course[] newarr = list.ToArray();
cour = newarr;
countCourse--;
homePage();
Console.WriteLine("删除成功!");
for (int k = ; k < countStudent; k++)
{
for (int j = ; stu[k].COUR[j] != null; j++)
{
if (stu[k].COUR[j].id == i)
{
List<course> list1 = stu[k].COUR.ToList();
list1.RemoveAt(j);
course[] newarr1 = list1.ToArray();
stu[k].COUR = newarr1;
}
}
}
saveCourseInforToTxt();
return;
}
else
n++;
}
homePage();
saveCourseInforToTxt();
Console.WriteLine("查无此课程!");
} //课程信息修改,通过ID删除除ID以外的信息
static void courseInforAlter()
{
readCourInfoFromTxt();
Console.Clear();
Console.Write("请输入您想修改的课程的ID:");
Input1:
string i = Console.ReadLine();
int n = ;
while (cour[n] != null)
{
if (cour[n].id == i)
{
Console.Write("请输入修改后的课程名称:");
string str1 = Console.ReadLine();
if (str1 == "")
{
Console.Write("课程名称不能为空,请重新输入:");
goto Input1;
}
else
cour[n].namOfCourse = str1;
homePage();
saveCourseInforToTxt();
Console.WriteLine("修改成功!");
return;
}
else
n++;
}
homePage();
saveCourseInforToTxt();
Console.WriteLine("查无此课程!");
} //课程查询,通过ID查询课程
static void courseInforSelect()
{
readCourInfoFromTxt();
Console.Clear();
Console.Write("请输入您想查询的课程ID:");
string i = Console.ReadLine();
int n = ;
homePage();
while (cour[n] != null)
{
if (cour[n].id == i)
{
saveCourseInforToTxt();
Console.WriteLine("您所查询的课程名称为:{0}", cour[n].namOfCourse);
return;
}
else
n++;
}
saveCourseInforToTxt();
Console.WriteLine("查无此课程!");
} /* 选课管理
* 1、增加所选课程
* 2、取消已选课程
* 3、修改已选课程
* 4、查询已选课程 */ //通过学号和课程ID增加个人选的课程
static void courseSelectAdd()
{
readCourInfoFromTxt();
readStuInforFromTxt();
readStuCourSelectInforFromTxt();
if (stu[] == null)
{
Console.Clear();
homePage();
Console.WriteLine("暂无学生信息!");
saveCourseInforToTxt();
saveStuCourSelectInforToTxt();
saveStuInforToTxt();
return;
}
if (cour[] == null)
{
Console.Clear();
homePage();
Console.WriteLine("暂无课程信息!");
saveCourseInforToTxt();
saveStuCourSelectInforToTxt();
saveStuInforToTxt();
return;
}
Console.Clear();
Console.Write("请输入您的学号:");
Input:
string str = Console.ReadLine();
if (!isNumber(str) || str.Length != )
{
Console.Write("学号格式不正确,请重新输入:");
goto Input;
}
else
{
int i = ;
while(stu[i]._num != str)
{
i++;
if (i >countStudent)
{
Console.Clear();
homePage();
Console.WriteLine("查无此人!");
saveCourseInforToTxt();
saveStuCourSelectInforToTxt();
saveStuInforToTxt();
return;
}
}
Console.Write("请输入您想选的课程名称:");
str = Console.ReadLine();
int l = ;
for (; l<&&cour[l] != null; l++) { }
int j = ;
here:
if (cour[j] != null && cour[j].namOfCourse != str)
{
if (j < l )
{
j++;
goto here;
}
else
{
Console.Clear();
homePage();
Console.WriteLine("查无此课程!");
saveCourseInforToTxt();
saveStuCourSelectInforToTxt();
saveStuInforToTxt();
return;
}
}
else
{
if (cour[j] == null)
{
Console.Clear();
homePage();
Console.WriteLine("查无此课程!");
saveCourseInforToTxt();
saveStuCourSelectInforToTxt();
saveStuInforToTxt();
return;
}
if ((stu[i].COUR[]!=null&&stu[i].COUR[].id == cour[j].id) || (stu[i].COUR[]!=null&&stu[i].COUR[].id== cour[j].id) || (stu[i].COUR[]!=null&&stu[i].COUR[].id == cour[j].id))
{
Console.Clear();
homePage();
Console.WriteLine("该门课已选,不能重复提交!");
saveCourseInforToTxt();
saveStuCourSelectInforToTxt();
saveStuInforToTxt();
return;
}
if (stu[i].COUR[] == null)
stu[i].COUR[] = cour[j];
else if
(stu[i].COUR[] == null)
stu[i].COUR[] = cour[j];
else if
(stu[i].COUR[] == null)
stu[i].COUR[] = cour[j];
else
{
homePage();
Console.WriteLine("您所选课程已达最大数额!");
saveCourseInforToTxt();
saveStuCourSelectInforToTxt();
saveStuInforToTxt();
return;
}
Console.Clear();
homePage();
Console.WriteLine("选课成功!");
saveCourseInforToTxt();
saveStuCourSelectInforToTxt();
saveStuInforToTxt();
}
}
} //删除选课,通过学号和课程ID删除个人选的课程
static void courseSelectDel()
{
readStuInforFromTxt();
readCourInfoFromTxt();
readStuCourSelectInforFromTxt();
if (stu[] == null)
{
Console.Clear();
homePage();
Console.WriteLine("暂无学生信息!");
saveCourseInforToTxt();
saveStuCourSelectInforToTxt();
saveStuInforToTxt();
return;
}
if (cour[] == null)
{
Console.Clear();
homePage();
Console.WriteLine("暂无课程信息!");
saveCourseInforToTxt();
saveStuCourSelectInforToTxt();
saveStuInforToTxt();
return;
}
Console.Clear();
Console.Write("请输入您的学号:");
Input:
string str = Console.ReadLine();
if (!isNumber(str) || str.Length != )
{
Console.Write("学号格式不正确,请重新输入:");
goto Input;
}
else
{
int l = ;
for (; stu[l] != null; l++) { }
int i = ;
Judge:
if (stu[i]._num != str)
{
if (i < l - )
{
i++;
goto Judge;
}
else
{
homePage();
Console.WriteLine("查无此人!");
}
saveCourseInforToTxt();
saveStuCourSelectInforToTxt();
saveStuInforToTxt();
return;
}
else
Console.Write("请输入您想取消的课程名称:");
str = Console.ReadLine();
l = ;
for (; l<&&cour[l] != null; l++) { }
int j = ;
Here:
if (cour[j]!=null&&cour[j].namOfCourse != str)
{
if (j < l)
{
j++;
goto Here;
}
else
{
Console.Clear();
homePage();
Console.Write("查无此课程!");
saveCourseInforToTxt();
saveStuCourSelectInforToTxt();
saveStuInforToTxt();
return;
}
}
else
{
if (stu[i].COUR[] == null)
{
Console.Clear();
homePage();
Console.WriteLine("您尚未选该门课!");
saveCourseInforToTxt();
saveStuCourSelectInforToTxt();
saveStuInforToTxt();
return;
}
else if (stu[i].COUR[] == null)
{
if (stu[i].COUR[].namOfCourse == str)
{
stu[i].COUR[] = null;
Console.Clear();
homePage();
Console.WriteLine("取消成功!");
saveCourseInforToTxt();
saveStuCourSelectInforToTxt();
saveStuInforToTxt();
return;
}
else
{
Console.Clear();
homePage();
Console.WriteLine("您尚未选该门课!");
saveCourseInforToTxt();
saveStuCourSelectInforToTxt();
saveStuInforToTxt();
return;
}
}
else if (stu[i].COUR[] == null)
{
if (stu[i].COUR[].namOfCourse == str)
{
stu[i].COUR[] = stu[i].COUR[];
stu[i].COUR[] = null;
Console.Clear();
homePage();
Console.WriteLine("取消成功!");
saveCourseInforToTxt();
saveStuCourSelectInforToTxt();
saveStuInforToTxt();
return;
}
else if (stu[i].COUR[].namOfCourse == str)
{
stu[i].COUR[] = null;
Console.Clear();
homePage();
saveCourseInforToTxt();
saveStuCourSelectInforToTxt();
saveStuInforToTxt();
Console.WriteLine("取消成功!");
return;
}
else
{
Console.Clear();
homePage();
Console.WriteLine("您尚未选该门课!");
saveCourseInforToTxt();
saveStuCourSelectInforToTxt();
saveStuInforToTxt();
return;
}
}
else
{
if (stu[i].COUR[].namOfCourse == str)
{
stu[i].COUR[] = stu[i].COUR[];
stu[i].COUR[] = stu[i].COUR[];
stu[i].COUR[] = null;
Console.Clear();
homePage();
Console.WriteLine("取消成功!");
saveCourseInforToTxt();
saveStuCourSelectInforToTxt();
saveStuInforToTxt();
return;
}
else if (stu[i].COUR[].namOfCourse == str)
{
stu[i].COUR[] = stu[i].COUR[];
stu[i].COUR[] = null;
Console.Clear();
homePage();
Console.WriteLine("取消成功!");
saveCourseInforToTxt();
saveStuCourSelectInforToTxt();
saveStuInforToTxt();
return;
}
else if (stu[i].COUR[].namOfCourse == str)
{
stu[i].COUR[] = null;
Console.Clear();
homePage();
Console.WriteLine("取消成功!");
saveCourseInforToTxt();
saveStuCourSelectInforToTxt();
saveStuInforToTxt();
return;
}
else
{
Console.Clear();
homePage();
Console.WriteLine("您尚未选该门课!");
saveCourseInforToTxt();
saveStuCourSelectInforToTxt();
saveStuInforToTxt();
return;
}
}
}
}
} //修改选课,通过学号和课程ID修改所选的课程
static void courseSelectAlter()
{
readStuInforFromTxt();
readCourInfoFromTxt();
readStuCourSelectInforFromTxt();
if (stu[] == null)
{
Console.Clear();
homePage();
Console.WriteLine("暂无学生信息!");
saveCourseInforToTxt();
saveStuCourSelectInforToTxt();
saveStuInforToTxt();
return;
}
if (cour[] == null)
{
Console.Clear();
homePage();
Console.WriteLine("暂无课程信息!");
saveCourseInforToTxt();
saveStuCourSelectInforToTxt();
saveStuInforToTxt();
return;
}
Console.Clear();
Console.Write("请输入您的学号:");
string str1 = "";
Input:
string str = Console.ReadLine();
if (!isNumber(str) || str.Length != )
{
Console.Write("学号格式不正确,请重新输入:");
goto Input;
}
else
{
int l = ;
for (; stu[l] != null; l++) { }
int i = ;
hERe:
if (stu[i]._num != str)
{
if (i < l - )
{
i++;
goto hERe;
}
else
{
homePage();
Console.WriteLine("查无此人!");
saveCourseInforToTxt();
saveStuCourSelectInforToTxt();
saveStuInforToTxt();
return;
}
}
else
Console.Write("请输入您想修改之后的课程名称:");
str = Console.ReadLine();
l = ;
for (; cour[l] != null; l++) { }
int j = ;
hEre:
if (cour[j].namOfCourse != str)
{
if (j < l - )
{
j++;
goto hEre;
}
else
Console.Write("查无此课程!");
saveCourseInforToTxt();
saveStuCourSelectInforToTxt();
saveStuInforToTxt();
return;
}
else
{
//输入不想要的课,判断已选课中是否存在,若存在进行替换,反之函数结束
Console.Write("请输入您不想要的课程名称:");
str1 = Console.ReadLine(); if (stu[i].COUR[] == null)
{
Console.Clear();
homePage();
Console.Write("您尚未选门课,不能进行修改操作!");
saveCourseInforToTxt();
saveStuCourSelectInforToTxt();
saveStuInforToTxt();
return;
}
else if (stu[i].COUR[] == null)
{
if (stu[i].COUR[].namOfCourse == str1)
{
stu[i].COUR[] = cour[j];
Console.Clear();
homePage();
Console.WriteLine("修改成功!");
saveCourseInforToTxt();
saveStuCourSelectInforToTxt();
saveStuInforToTxt();
return;
}
else
{
Console.Clear();
homePage();
Console.WriteLine("您尚未选该门课!");
saveCourseInforToTxt();
saveStuCourSelectInforToTxt();
saveStuInforToTxt();
return;
}
}
else if (stu[i].COUR[] == null)
{
if (stu[i].COUR[].namOfCourse == str1)
{
stu[i].COUR[] = cour[j];
Console.Clear();
homePage();
Console.WriteLine("修改成功!");
saveCourseInforToTxt();
saveStuCourSelectInforToTxt();
saveStuInforToTxt();
return;
}
else if (stu[i].COUR[].namOfCourse == str1)
{
stu[i].COUR[] = cour[j];
Console.Clear();
homePage();
Console.WriteLine("修改成功!");
saveCourseInforToTxt();
saveStuCourSelectInforToTxt();
saveStuInforToTxt();
return;
}
else
{
Console.Clear();
homePage();
Console.WriteLine("您尚未选该门课!");
saveCourseInforToTxt();
saveStuCourSelectInforToTxt();
saveStuInforToTxt();
return;
}
}
else
{
if (stu[i].COUR[].namOfCourse == str1)
{
stu[i].COUR[] = cour[j];
Console.Clear();
homePage();
Console.WriteLine("修改成功!");
saveCourseInforToTxt();
saveStuCourSelectInforToTxt();
saveStuInforToTxt();
return;
}
else if (stu[i].COUR[].namOfCourse == str1)
{
stu[i].COUR[] = cour[j];
Console.Clear();
homePage();
Console.WriteLine("修改成功!");
saveCourseInforToTxt();
saveStuCourSelectInforToTxt();
saveStuInforToTxt();
return;
}
else if (stu[i].COUR[].namOfCourse == str1)
{
stu[i].COUR[] = cour[j];
Console.Clear();
homePage();
Console.WriteLine("修改成功!");
saveCourseInforToTxt();
saveStuCourSelectInforToTxt();
saveStuInforToTxt();
return;
}
else
{
Console.Clear();
homePage();
Console.WriteLine("您尚未选该门课!");
saveCourseInforToTxt();
saveStuCourSelectInforToTxt();
saveStuInforToTxt();
return;
}
}
}
}
} //查找选课,通过学号查找所选的课程
static void courseSelectSelect()
{
readStuInforFromTxt();
readCourInfoFromTxt();
readStuCourSelectInforFromTxt();
int i = ;
if (stu[] == null)
{
Console.Clear();
homePage();
Console.WriteLine("暂无学生信息!");
saveCourseInforToTxt();
saveStuCourSelectInforToTxt();
saveStuInforToTxt();
return;
}
if (cour[] == null)
{
Console.Clear();
homePage();
Console.WriteLine("暂无课程信息!");
saveCourseInforToTxt();
saveStuCourSelectInforToTxt();
saveStuInforToTxt();
return;
}
Console.Clear();
Console.Write("请输入您的学号:");
Input:
string str = Console.ReadLine();
if (!isNumber(str) || str.Length != )
{
Console.Write("学号格式不正确,请重新输入:");
goto Input;
}
else
{
int l = ;
for (; stu[l] != null; l++) { }
HERE:
if (stu[i]!=null&&stu[i]._num != str)
{
if (i < l - )
{
i++;
goto HERE;
}
else
{
saveCourseInforToTxt();
saveStuCourSelectInforToTxt();
saveStuInforToTxt();
homePage();
Console.WriteLine("查无此人!");
return;
}
}
else
{
homePage();
if (stu[i].COUR[] != null)
Console.WriteLine("您所查找的学生的选课内容为:{0}、{1}、{2}", stu[i].COUR[].namOfCourse, stu[i].COUR[].namOfCourse, stu[i].COUR[].namOfCourse);
else if (stu[i].COUR[] != null)
Console.WriteLine("您所查找的学生的选课内容为:{0}、{1}", stu[i].COUR[].namOfCourse, stu[i].COUR[].namOfCourse);
else if (stu[i].COUR[] != null)
Console.WriteLine("您所查找的学生的选课内容为:{0}", stu[i].COUR[].namOfCourse);
else
Console.WriteLine("该生尚未选课!");
}
}
saveCourseInforToTxt();
saveStuCourSelectInforToTxt();
saveStuInforToTxt();
} /* 文件流操作
* 1、读取学生信息
* 2、写入学生信息
* 3、读取课程信息
* 4、写入课程信息
* 5、读取选课信息
* 6、写入选课信息*/ //从txt文件中读取原始学生数据
static void readStuInforFromTxt()
{
FileStream mFile = new FileStream("stuInfor.txt", FileMode.OpenOrCreate);
mFile.Close();
mFile.Dispose();
int countLinesInTxt = File.ReadAllLines("stuInfor.txt").Length;
FileStream aFile = new FileStream("stuInfor.txt", FileMode.OpenOrCreate); StreamReader sr = new StreamReader(aFile, Encoding.Default); //没有Encoding.Default,读取到的汉字会乱码
string[] data;
string strReadFromTxt = "";
for (int i = ; i < countLinesInTxt; i++)
{
strReadFromTxt = sr.ReadLine();
data = strReadFromTxt.Split(' ');
if (data[] == "")
continue;
student studFromTxt = new student();
studFromTxt._num = data[];
studFromTxt.name = data[];
studFromTxt.placeNative = data[];
studFromTxt.tel = data[];
studFromTxt.dormitoryRoom = data[];
for (int j = ; j < data.Length - ; j += )
{
course Cour = new course();
Cour.id = data[j / ];
Cour.namOfCourse = data[j / + ];
studFromTxt.COUR[j / ] = Cour;
Cour = null;
}
stu[++countStudent] = studFromTxt;
studFromTxt = null;
}
sr.Close();
sr.Dispose();
aFile.Close();
aFile.Dispose();
} //将学生数据保存到txt文件中
static void saveStuInforToTxt()
{
FileStream saveFile = new FileStream("stuInfor.txt", FileMode.Truncate);
StreamWriter sw = new StreamWriter(saveFile, Encoding.Default); int m = -;
do
{
m++;
}
while (stu[m] != null);
for (int i = ; i < m; i++)
{
string str = stu[i]._num + " " + stu[i].name + " " + stu[i].placeNative + " " + stu[i].tel + " " + stu[i].dormitoryRoom;
sw.WriteLine(str);
countStudent--;
}
sw.Close();
saveFile.Close();
} //从txt文件中读取原始课程数据
static void readCourInfoFromTxt()
{
FileStream mFile = new FileStream("courseInfor.txt", FileMode.OpenOrCreate);
mFile.Close();
int countLinesInTxt = File.ReadAllLines("courseInfor.txt").Length;
FileStream aFile = new FileStream("courseInfor.txt", FileMode.OpenOrCreate); StreamReader sr = new StreamReader(aFile, Encoding.Default); //没有Encoding.Default,读取到的汉字会乱码
string[] data;
string strReadFromTxt = "";
for (int i = ; i < countLinesInTxt; i++)
{
strReadFromTxt = sr.ReadLine();
data = strReadFromTxt.Split(' ');
if (data[] == "")
continue;
course courseFromTxt = new course();
courseFromTxt.id = data[];
courseFromTxt.namOfCourse = data[];
cour[++countCourse] = courseFromTxt;
courseFromTxt = null;
}
sr.Close();
aFile.Close();
} //将课程数据保存到txt文件中
static void saveCourseInforToTxt()
{
FileStream saveFile = new FileStream("courseInfor.txt", FileMode.Truncate);
StreamWriter sw = new StreamWriter(saveFile, Encoding.Default); int m = -;
do
{
m++;
if (m == )
break;
}
while (cour[m] != null);
for (int i = ; i < m; i++)
{
string str = cour[i].id + " " + cour[i].namOfCourse;
sw.WriteLine(str);
countCourse--;
}
sw.Close();
saveFile.Close();
} //从txt文件中读取原始选课数据
static void readStuCourSelectInforFromTxt()
{
FileStream mFile = new FileStream("CourSelect.txt", FileMode.OpenOrCreate);
mFile.Close();
mFile.Dispose();
int countLinesInTxt = File.ReadAllLines("CourSelect.txt").Length;
FileStream aFile = new FileStream("CourSelect.txt", FileMode.Open); StreamReader sr = new StreamReader(aFile, Encoding.Default); //没有Encoding.Default,读取到的汉字会乱码
string strReadFromTxt = "";
for (int i = ; i < countLinesInTxt; i++)
{
strReadFromTxt = sr.ReadLine();
string[] strData = strReadFromTxt.Split(' ');
if (strData[] == "")
continue;
student STU = new student();
STU._num = strData[];
STU.name = strData[];
STU.placeNative = strData[];
STU.tel = strData[];
STU.dormitoryRoom = strData[];
for (int k = ; k < strData.Length - ; k += )
{
course Cou = new course();
Cou.id = strData[+k];
Cou.namOfCourse = strData[+k];
STU.COUR[k / ] = Cou;
Cou = null;
} //在已导入的数据中查找该学生信息,并补充其选课信息
for (int j = ; j <= countStudent; j++)
{
if (stu[j]._num == STU._num)
stu[j] = STU;
}
STU = null;
}
aFile.Close();
aFile.Dispose();
} //将学生数据保存到txt文件中
static void saveStuCourSelectInforToTxt()
{
FileStream saveStuCourFile = new FileStream("CourSelect.txt", FileMode.Truncate);
StreamWriter sw = new StreamWriter(saveStuCourFile, Encoding.Default);
int m = -;
do
{
m++;
}
while (stu[m] != null);
for (int i = ; i < m; i++)
{
string str = "";
if (stu[i].COUR[] != null)
{
str = stu[i]._num + " " + stu[i].name + " " + stu[i].placeNative + " " + stu[i].tel + " "
+ stu[i].dormitoryRoom;
for (int j = ; j < &&stu[i].COUR[j] != null; j++)
str += " " + stu[i].COUR[j].id + " " + stu[i].COUR[j].namOfCourse;
sw.WriteLine(str);
}
}
sw.Close();
saveStuCourFile.Close();
}
}
}

作者:耑新新,发布于  博客园

转载请注明出处,欢迎邮件交流:zhuanxinxin@aliyun.com

C#控制台应用程序之选课系统的更多相关文章

  1. Python开发程序:选课系统-改良版

    程序名称: 选课系统 角色:学校.学员.课程.讲师要求:1. 创建北京.上海 2 所学校2. 创建linux , python , go 3个课程 , linux\py 在北京开, go 在上海开3. ...

  2. Python开发程序:选课系统

    本节作业: 选课系统 角色:学校.学员.课程.讲师要求:1. 创建北京.上海 2 所学校2. 创建linux , python , go 3个课程 , linux\py 在北京开, go 在上海开3. ...

  3. Python开发【项目】:选课系统-改良版

    程序名称: 选课系统 角色:学校.学员.课程.讲师要求:1. 创建北京.上海 2 所学校2. 创建linux , python , go 3个课程 , linux\py 在北京开, go 在上海开3. ...

  4. python选课系统

    程序名称: 选课系统 角色:学校.学员.课程.讲师 要求: 1. 创建北京.上海 2 所学校 2. 创建linux , python , go 3个课程 , linux\py 在北京开, go 在上海 ...

  5. python面向对象编程小程序- 选课系统

    选课系统 花了一晚上写的,可能还存在不足 1.程序框架 2.文件夹建立 D:/选课系统 |___api | |___common_api.py |___bil | |___common.py |___ ...

  6. python基础-10 程序目录结构 学生选课系统面向对象练习

    一 程序目录结构 1 bin文件夹 二进制文件.代码程序  2 conf 配置文件  3 帮助文档  4 头文件库文件等 二 学生选课系统部分代码 未完待续 1 包内的__init__.py文件 在包 ...

  7. 从零开始学Python06作业思路:学生选课系统

    一,作业要求 选课系统: 管理员: 创建老师:姓名.性别.年龄.资产 创建课程:课程名称.上课时间.课时费.关联老师 学生:用户名.密码.性别.年龄.选课列表[].上课记录{课程1:[di,a,]} ...

  8. python之选课系统详解[功能未完善]

    作业需求 思路:1.先写出大体的类,比如学校类,学生类,课程类--   2.写出类里面大概的方法,比如学校类里面有创建讲师.创建班级-- 3.根据下面写出大致的代码,并实现其功能       遇到的困 ...

  9. vs 2013 Express 无法启动程序xxx.exe,系统找不到指定文件

    由于实验室有人用了含病毒的软件,网管把实验室出口给封了,周末人家又不上班.看样子树莓派是玩不成了,所以昨天在宿舍写windows程序,最基本的窗口程序,听说这段代码初学者至少要自己敲5遍以上.代码如下 ...

随机推荐

  1. Java入门:Java中获取键盘输入值的三种方法

    Java程序开发过程中,需要从键盘获取输入值是常有的事,但Java它偏偏就没有像c语言给我们提供的scanf(),C++给我们提供的cin()获取键盘输入值的现成函数!Java没有提供这样的函数也不代 ...

  2. label和fieldset标签

    一.label标签 作用:可以通过for属性关联input标签的 id 属性,这样可以实现在点击label标签的内容时,可以使input文本框中获取输入的光标. <body> <la ...

  3. Pymongo--极简使用指南

    1.简介及安装 pymongo是Python中用来操作MongoDB的一个库.而MongoDB是一个基于分布式文件存储的数据库,旨在为WEB应用提供可扩展的高性能数据存储解决方案.其文件存储格式类似于 ...

  4. 《Spring实战》 1-2

    第1章 Spring之旅 Spring容器 Spring中bean的生命周期 Spring框架中的模块 Spring Portfolio 第2章 装配Bean 自动化装配bean 通过Java代码装配 ...

  5. Chapter One:数据结构和算法-解压序列赋值给多个变量

    一.问题: 现在有一个包含 N 个元素的元组或者是序列,怎样将它里面的值解压后同时赋值给 N 个变量? 二.解决方案: 代码示例: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 1 ...

  6. Date时间格式比较大小

    方法一: 两个Date类型的变量可以通过compareTo方法来比较.此方法的描述是这样的:如果参数 Date 等于此 Date,则返回值 0:如果此 Date 在 Date 参数之前,则返回小于 0 ...

  7. 如何使用vuejs过滤器

    大家再使用vue做项目时,查询功能当然必不可少,这就得使用vue强大的filter啦.其实vue内置的两个属性filterBy和orderBy已经能满足部分需求了,但是她更大的的魅力在于自定义filt ...

  8. Dubbo学习笔记2:Dubbo服务提供端与消费端应用的搭建

    Demo结构介绍 Demo使用Maven聚合功能,里面有三个模块,目录如下: 其中Consumer模块为服务消费者,里面TestConsumer和consumer.xml组成了基于Spring配置方式 ...

  9. bzoj千题计划149:bzoj2527: [Poi2011]Meteors

    http://www.lydsy.com/JudgeOnline/problem.php?id=2527 整体二分 区间加,单点查,树状数组维护差分序列 注意 累积可能会爆long long,所以一满 ...

  10. noi题库(noi.openjudge.cn) 3.9数据结构之C++STL T1——T2

    T1 1806:词典 描述 你旅游到了一个国外的城市.那里的人们说的外国语言你不能理解.不过幸运的是,你有一本词典可以帮助你. 输入首先输入一个词典,词典中包含不超过100000个词条,每个词条占据一 ...