你是一个程序员请用C#写一个学生信息的桌面工具输入学号、姓名选择性别选择专业选择出生日期。保存预览、列表选择回显修改保存导出根据word模版中的字符替换生成新的word文件
以下是一个简单的C#程序,实现了学生信息的输入、保存、修改和导出功能。请注意,这只是一个示例,实际应用中还需要进行更多的错误处理和用户交互设计。
using System;
using System.Collections.Generic;
using System.IO;
using System.Windows.Forms;
namespace StudentInfoTool
{
public partial class MainForm : Form
{
// 学生信息列表
private List<StudentInfo> studentList;
public MainForm()
{
InitializeComponent();
// 初始化学生信息列表
studentList = new List<StudentInfo>();
}
// 点击保存按钮
private void saveButton_Click(object sender, EventArgs e)
{
// 检查输入是否合法
if (string.IsNullOrWhiteSpace(idTextBox.Text) ||
string.IsNullOrWhiteSpace(nameTextBox.Text) ||
string.IsNullOrWhiteSpace(majorComboBox.Text) ||
string.IsNullOrWhiteSpace(birthdayDateTimePicker.Text))
{
MessageBox.Show("请输入完整的学生信息!");
return;
}
// 创建新的学生信息对象
StudentInfo newStudent = new StudentInfo();
newStudent.ID = idTextBox.Text;
newStudent.Name = nameTextBox.Text;
newStudent.Gender = maleRadioButton.Checked ? "男" : "女";
newStudent.Major = majorComboBox.Text;
newStudent.Birthday = birthdayDateTimePicker.Value;
// 添加到学生信息列表中
studentList.Add(newStudent);
// 清空输入框
idTextBox.Clear();
nameTextBox.Clear();
maleRadioButton.Checked = true;
majorComboBox.SelectedIndex = -1;
birthdayDateTimePicker.Value = DateTime.Now;
// 刷新学生信息列表
RefreshStudentList();
}
// 刷新学生信息列表
private void RefreshStudentList()
{
studentListBox.Items.Clear();
foreach (StudentInfo student in studentList)
{
studentListBox.Items.Add(student.ID + " " + student.Name);
}
}
// 选择学生信息列表中的某个学生
private void studentListBox_SelectedIndexChanged(object sender, EventArgs e)
{
if (studentListBox.SelectedIndex >= 0)
{
// 显示该学生的详细信息
StudentInfo selectedStudent = studentList[studentListBox.SelectedIndex];
idTextBox.Text = selectedStudent.ID;
nameTextBox.Text = selectedStudent.Name;
maleRadioButton.Checked = selectedStudent.Gender == "男";
femaleRadioButton.Checked = selectedStudent.Gender == "女";
majorComboBox.Text = selectedStudent.Major;
birthdayDateTimePicker.Value = selectedStudent.Birthday;
}
}
// 点击修改按钮
private void modifyButton_Click(object sender, EventArgs e)
{
if (studentListBox.SelectedIndex < 0)
{
MessageBox.Show("请先选择要修改的学生!");
return;
}
// 更新选择的学生的信息
StudentInfo selectedStudent = studentList[studentListBox.SelectedIndex];
selectedStudent.ID = idTextBox.Text;
selectedStudent.Name = nameTextBox.Text;
selectedStudent.Gender = maleRadioButton.Checked ? "男" : "女";
selectedStudent.Major = majorComboBox.Text;
selectedStudent.Birthday = birthdayDateTimePicker.Value;
// 清空输入框
idTextBox.Clear();
nameTextBox.Clear();
maleRadioButton.Checked = true;
majorComboBox.SelectedIndex = -1;
birthdayDateTimePicker.Value = DateTime.Now;
// 刷新学生信息列表
RefreshStudentList();
}
// 点击导出按钮
private void exportButton_Click(object sender, EventArgs e)
{
// 检查是否有学生信息
if (studentList.Count == 0)
{
MessageBox.Show("没有学生信息可供导出!");
return;
}
try
{
// 打开word模版文件,并读取其中的文本内容
string templateFile = "template.docx";
string templateText = File.ReadAllText(templateFile);
// 逐个替换模版中的占位符
string outputText = templateText.Replace("{date}", DateTime.Now.ToString("yyyy年M月d日"))
.Replace("{count}", studentList.Count.ToString());
int i = 1;
foreach (StudentInfo student in studentList)
{
outputText = outputText.Replace("{id" + i + "}", student.ID)
.Replace("{name" + i + "}", student.Name)
.Replace("{gender" + i + "}", student.Gender)
.Replace("{major" + i + "}", student.Major)
.Replace("{birthday" + i + "}", student.Birthday.ToString("yyyy年M月d日"));
i++;
}
// 保存为新的word文件
string outputFile = "output.docx";
File.WriteAllText(outputFile, outputText);
MessageBox.Show("导出成功!");
}
catch (Exception ex)
{
MessageBox.Show("导出失败:" + ex.Message);
}
}
}
// 学生信息类
public class StudentInfo
{
public string ID { get; set; }
public string Name { get; set; }
public string Gender { get; set; }
public string Major { get; set; }
public DateTime Birthday { get; set; }
}
}
原文地址: https://www.cveoy.top/t/topic/HEm 著作权归作者所有。请勿转载和采集!