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

  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. linux join命令

    http://note.youdao.com/noteshare?id=151c4844cac74e9b08c5dc954a1a4967

  2. haproxy做TCP层的负载均衡

    最新项目中发现,大量游戏玩家访问登录服务器时出现延迟,导致玩家无法登录,愿意可能是登录服务器性能达到极限. 所以目前想通过proxy的方式访问登录服务器集群,避免登录延迟. 1.下载haproxy最新 ...

  3. python基础3--字符串

    字符串 1.大小写转换 >>> name 'bigberg' >>> name.capitalize() # 首字母大写 'Bigberg' >>> ...

  4. addEventListener() 事件监听

    addEventListener() 用于向指定元素添加事件. 可以向一个元素添加多次事件或者多次不同事件,后面的事件是不会覆盖前面的. 语法: element.addEventListener(ev ...

  5. day19 IO编程

    文件:文件是数据源(保存数据的地方)的一种. 文件在程序中是以流的形式来操作的 内存(程序)到文件是输出流,文件到内存(程序)是输入流. 字节流:可用于读写的二进制文件及任何类型文件. 字符流:可以用 ...

  6. python---django的模块简便使用

    一:登录操作 from django.contrib.auth import authenticate,login,logout #可以用来做登录验证 from django.contrib.auth ...

  7. Shell记录-Shell命令(文件权限)

    chmod命令用于改变linux系统文件或目录的访问权限.用它控制文件或目录的访问权限.该命令有两种用法.一种是包含字母和操作符表达式的文字设定法:另一种是包含数字的数字设定法. 1. 命令格式 ch ...

  8. 用 Love2D 实现法线贴图的例程(到最新版本 0.10.1)

    用 Love2D 实现法线贴图的例程(到最新版本 0.10.1) 概述 一般来说, 复杂的光照模型会被用在 3D 游戏中, 以产生逼真的效果, 不过也有些开发者研究出一些代码可以在 2D 游戏中使用这 ...

  9. stl第二级空间配置器详解(1)

    SGI STL考虑到小型内存区块的碎片问题,设计了双层级配置器,第一级配置直接使用malloc()和free():第二级配置器则视情况采用不同的策略,当配置区大于128bytes时,直接调用第一级配置 ...

  10. Web API: Security: Basic Authentication

    原文地址: http://msdn.microsoft.com/en-us/magazine/dn201748.aspx Custom HttpModule code: using System; u ...