以下是一个简单的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; }
    }
}
你是一个程序员请用C#写一个学生信息的桌面工具输入学号、姓名选择性别选择专业选择出生日期。保存预览、列表选择回显修改保存导出根据word模版中的字符替换生成新的word文件

原文地址: https://www.cveoy.top/t/topic/HEm 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录