C#控制台应用程序之选课系统
本程序以文本文件作为存储媒介,实现了一个简化版的选课系统,主要实现了以下功能
- 对学生信息的增删改查
- 对课程信息的增删改查
- 对学生选课的增删改查
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#控制台应用程序之选课系统的更多相关文章
- Python开发程序:选课系统-改良版
程序名称: 选课系统 角色:学校.学员.课程.讲师要求:1. 创建北京.上海 2 所学校2. 创建linux , python , go 3个课程 , linux\py 在北京开, go 在上海开3. ...
- Python开发程序:选课系统
本节作业: 选课系统 角色:学校.学员.课程.讲师要求:1. 创建北京.上海 2 所学校2. 创建linux , python , go 3个课程 , linux\py 在北京开, go 在上海开3. ...
- Python开发【项目】:选课系统-改良版
程序名称: 选课系统 角色:学校.学员.课程.讲师要求:1. 创建北京.上海 2 所学校2. 创建linux , python , go 3个课程 , linux\py 在北京开, go 在上海开3. ...
- python选课系统
程序名称: 选课系统 角色:学校.学员.课程.讲师 要求: 1. 创建北京.上海 2 所学校 2. 创建linux , python , go 3个课程 , linux\py 在北京开, go 在上海 ...
- python面向对象编程小程序- 选课系统
选课系统 花了一晚上写的,可能还存在不足 1.程序框架 2.文件夹建立 D:/选课系统 |___api | |___common_api.py |___bil | |___common.py |___ ...
- python基础-10 程序目录结构 学生选课系统面向对象练习
一 程序目录结构 1 bin文件夹 二进制文件.代码程序 2 conf 配置文件 3 帮助文档 4 头文件库文件等 二 学生选课系统部分代码 未完待续 1 包内的__init__.py文件 在包 ...
- 从零开始学Python06作业思路:学生选课系统
一,作业要求 选课系统: 管理员: 创建老师:姓名.性别.年龄.资产 创建课程:课程名称.上课时间.课时费.关联老师 学生:用户名.密码.性别.年龄.选课列表[].上课记录{课程1:[di,a,]} ...
- python之选课系统详解[功能未完善]
作业需求 思路:1.先写出大体的类,比如学校类,学生类,课程类-- 2.写出类里面大概的方法,比如学校类里面有创建讲师.创建班级-- 3.根据下面写出大致的代码,并实现其功能 遇到的困 ...
- vs 2013 Express 无法启动程序xxx.exe,系统找不到指定文件
由于实验室有人用了含病毒的软件,网管把实验室出口给封了,周末人家又不上班.看样子树莓派是玩不成了,所以昨天在宿舍写windows程序,最基本的窗口程序,听说这段代码初学者至少要自己敲5遍以上.代码如下 ...
随机推荐
- Cloudstack介绍(一)
云计算的出现 基本上,云计算只是一种把 IT 资源当作服务来提供的手段.几乎所有 IT 资源都可以作为云服务来提供:应用程序.计算能力.存储容量.联网.编程工具,以至于通信服务和协作工具. 云计算最早 ...
- linux查看tomcat日志
声明:以上内容均为转载,个人对这块知识搜罗之后放在一起,非原创,以后这块有问题还会继续添加. Tomcat 日志分为下面5类: catalina . 相当命令行输出日志 localhost . 相当于 ...
- java中的悲观锁和乐观锁实现
悲观锁就是认为并发时一定会有冲突发生,采用互斥的策略.比如java中的synchronized. 而乐观锁是假设并发时不会有冲突发生,如果发生冲突,则操作失败,并不断重试.乐观锁的机制就是CAS(Co ...
- Kafka 0.8 Producer处理逻辑
Kafka Producer产生数据发送给Kafka Server,具体的分发逻辑及负载均衡逻辑,全部由producer维护. 1.Kafka Producer默认调用逻辑 1.1 默认Partiti ...
- MySQL数据库应用 从入门到精通 学习笔记
以下内容是学习<MySQL数据库应用 从入门到精通>过程中总结的一些内容提要,供以后自己复现使用. 一:数据库查看所有数据库: SHOW DATABASES创建数据库: CREATE DA ...
- 华为mate 10 pro安装失败,提示没有未包含任何证书
原因: Android 7.0 引入一项新的应用签名方案 APK Signature Scheme v2,它能提供更快的应用安装时间和更多针对未授权 APK 文件更改的保护.在默认情况下,Androi ...
- Training Neural Networks: Q&A with Ian Goodfellow, Google
Training Neural Networks: Q&A with Ian Goodfellow, Google Neural networks require considerable t ...
- 用phpUnit入门TDD
用phpunit实战TDD系列 从一个银行账户开始 假设你已经 安装了phpunit. 我们从一个简单的银行账户的例子开始了解TDD(Test-Driven-Development)的思想. 在工程目 ...
- 基本控件文档-UIButton属性
CHENYILONG Blog 基本控件文档-UIButton属性 Fullscreen UIButton属性技术博客http://www.cnblogs.com/ChenYilong/ 新浪微博ht ...
- FPGA quartus开发中常见的错误处理
1.Warning: An incorrect timescale is selected for the Verilog Output (.VO) file of this PLL design. ...