团队项目——工大助手界面(查询部分)

工大助手

基本内容

  • 工大助手(桌面版)
  • 实现登陆、查成绩、计算加权平均分等功能

团队人员

界面设计(查询部分)

  使用VS2013 C# WPF制作界面。

查询界面包括若干Label显示文字,4个ComboBox分别用于选择学年,学期,课程性质和学分,两个TextBox分别用于输入想要查找的课程的名称(支持模糊查询)和显示所查询的课程的加权平均分,一个DataGrid用于显示查询到的课程信息(用户可以对查询到的信息进行不同条件的排序),两个Button“查询”“退出”分别用于查询符合用户选择条件的课程和退出登录返回登陆界面。

界面代码如下:

<Window x:Class="WpfApplication2.Window1"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        Title="Window1" Height="600" Width="800">
    <Grid>
        <Label Content="北工大easy教务" HorizontalAlignment="Left" VerticalAlignment="Top" Margin="10,10,0,0" Height="49" Width="251" FontSize="36" FontFamily="STLiti"/>
        <Button x:Name="exit" Content="退出" HorizontalAlignment="Left" Height="25" Margin="706,29,0,0" VerticalAlignment="Top" Width="50" Click="exit_Click"/>
        <ComboBox x:Name="schoolYear" HorizontalAlignment="Left" Height="25" Margin="80,64,0,0" VerticalAlignment="Top" Width="100">
            <ComboBoxItem IsSelected="True" Height="19.2" Margin="0,0,0,0"></ComboBoxItem>
            <ComboBoxItem>2015-2016</ComboBoxItem>
            <ComboBoxItem>2014-2015</ComboBoxItem>
            <ComboBoxItem>2013-2014</ComboBoxItem>
        </ComboBox>
        <ComboBox x:Name="credit" HorizontalAlignment="Left" Height="25" Margin="235,114,0,0" VerticalAlignment="Top" Width="100">
            <ComboBoxItem IsSelected="True" Height="19.2" Margin="0,0,0,0"></ComboBoxItem>
            <ComboBoxItem>0.5</ComboBoxItem>
            <ComboBoxItem>1.0</ComboBoxItem>
            <ComboBoxItem>1.5</ComboBoxItem>
            <ComboBoxItem>2.0</ComboBoxItem>
            <ComboBoxItem>2.5</ComboBoxItem>
            <ComboBoxItem>3.0</ComboBoxItem>
            <ComboBoxItem>3.5</ComboBoxItem>
            <ComboBoxItem>4.0</ComboBoxItem>
            <ComboBoxItem>4.5</ComboBoxItem>
            <ComboBoxItem>5.0</ComboBoxItem>
            <ComboBoxItem>5.5</ComboBoxItem>
        </ComboBox>
        <ComboBox x:Name="courseType" HorizontalAlignment="Left" Height="25" Margin="410,64,0,0" VerticalAlignment="Top" Width="150">
            <ComboBoxItem IsSelected="True" Height="19.2" Margin="0,0,0,0"></ComboBoxItem>
            <ComboBoxItem>公共必修课</ComboBoxItem>
            <ComboBoxItem>实践环节</ComboBoxItem>
            <ComboBoxItem>基础必修课</ComboBoxItem>
            <ComboBoxItem>学科基础必修课一</ComboBoxItem>
            <ComboBoxItem>学科基础必修课二</ComboBoxItem>
            <ComboBoxItem>本专业选修课</ComboBoxItem>
            <ComboBoxItem>本、跨专业选修课</ComboBoxItem>
            <ComboBoxItem>校选修课</ComboBoxItem>
            <ComboBoxItem>计算机基础选修课</ComboBoxItem>
            <ComboBoxItem>专业认知</ComboBoxItem>
            <ComboBoxItem>实践环节选修课</ComboBoxItem>
            <ComboBoxItem>公共基础必修课</ComboBoxItem>
            <ComboBoxItem>学科基础必修课</ComboBoxItem>
            <ComboBoxItem>学科基础选修课</ComboBoxItem>
            <ComboBoxItem>专业限选课</ComboBoxItem>
            <ComboBoxItem>专业任选课</ComboBoxItem>
            <ComboBoxItem>实践环节必修课</ComboBoxItem>
            <ComboBoxItem>创新实践环节</ComboBoxItem>
            <ComboBoxItem>通识教育选修课</ComboBoxItem>
            <ComboBoxItem>学科基础必修课(辅)</ComboBoxItem>
            <ComboBoxItem>专业必修课(辅)</ComboBoxItem>
            <ComboBoxItem>实践环节(辅)</ComboBoxItem>
        </ComboBox>
        <ComboBox x:Name="semester" HorizontalAlignment="Left" Height="25" Margin="235,64,0,0" VerticalAlignment="Top" Width="100">
            <ComboBoxItem IsSelected="True" Height="19.2" Margin="0,0,0,0"></ComboBoxItem>
            <ComboBoxItem>1</ComboBoxItem>
            <ComboBoxItem>2</ComboBoxItem>
            <ComboBoxItem>3</ComboBoxItem>
        </ComboBox>

        <Label Content="学    年:" HorizontalAlignment="Left" Height="25" Margin="10,64,0,0" VerticalAlignment="Top" Width="65"/>
        <Label Content="学期:" HorizontalAlignment="Left" Height="25" Margin="185,64,0,0" VerticalAlignment="Top" Width="45"/>
        <Label Content="课程性质:" HorizontalAlignment="Left" Height="25" Margin="340,64,0,0" VerticalAlignment="Top" Width="65"/>
        <Label Content="学分:" HorizontalAlignment="Left" Height="25" Margin="185,114,0,0" VerticalAlignment="Top" Width="45"/>
        <Label Content="课程名称:" HorizontalAlignment="Left" Height="25" Margin="10,114,0,0" VerticalAlignment="Top" Width="65"/>
        <TextBox x:Name="courseName" HorizontalAlignment="Left" Height="25" Margin="80,114,0,0" TextWrapping="Wrap" Text="" VerticalAlignment="Top" Width="100"/>
        <Button Content="查询" HorizontalAlignment="Left" Height="25" Margin="631,113,0,0" VerticalAlignment="Top" Width="70" Click="Button_Click"/>
        <DataGrid x:Name="dataGrid1" HorizontalAlignment="Left" Height="372" Margin="92,161,0,0" VerticalAlignment="Top" Width="609" IsReadOnly="True">
         </DataGrid>
        <Label Content="加权:" HorizontalAlignment="Left" Height="25" Margin="422,113,0,0" VerticalAlignment="Top" Width="43"/>
        <TextBox x:Name="weighting" HorizontalAlignment="Left" Height="25" Margin="470,114,0,0" TextWrapping="Wrap" Text="" VerticalAlignment="Top" Width="90" IsReadOnly="True"/>
    </Grid>
</Window>

按钮代码如下:

查询:

            string queryString = "";
            string course_Name = courseName.Text;
            string school_Year = schoolYear.Text;
            string _Semester = semester.Text;
            string course_Type = courseType.Text;
            string _Credit = credit.Text;
            DataTable dt = new DataTable();
            bool flag = false;
            if (!school_Year.Equals(""))
            {
                queryString += "学年=‘" + school_Year+"‘";
                flag = true;
            }
            if (!course_Name.Equals(""))
            {
                if (flag)
                    queryString += " and 课程名称 like ‘%" + course_Name + "%‘";
                else
                {
                    queryString += "课程名称 like ‘%" + course_Name + "%‘";
                    flag = true;
                }
            }
            if (!_Semester.Equals(""))
            {
                if (flag)
                    queryString += " and 学期=‘" + _Semester + "‘";
                else
                {
                    queryString += "学期=‘" + _Semester + "‘";
                    flag = true;
                }
            }
            if (!course_Type.Equals(""))
            {
                if (flag)
                    queryString += " and 课程性质=‘" + course_Type + "‘";
                else
                {
                    queryString += "课程性质=‘" + course_Type + "‘";
                    flag = true;
                }
            }
            if (!_Credit.Equals(""))
            {
                if (flag)
                    queryString += " and 学分=‘" + _Credit + "‘";
                else
                {
                    queryString += "学分=‘" + _Credit + "‘";
                    flag = true;
                }
            }
            if(!flag)
                queryString = "*";
            flag = false;
            GradeHandler.LoadDataFromExcel();
            if(GradeHandler.QueryData(queryString,out dt))
            {
                dataGrid1.ItemsSource = dt.DefaultView;
            }
            double _weight;
            if(GradeHandler.CalculateWeightedMean(dt,out _weight))
                weighting.Text = Convert.ToString(Math.Round(_weight,2));
            else
                weighting.Text = "";

查询部分制作一个string queryString 用于在调用查询函数GradeHandler.QueryData(该函数详见张帆的博客)时传递用户选择的查询条件,之后查询结果返回到DataTable dt中,随后将dt中的数据显示在dataGrid中。

退出:

        private void exit_Click(object sender, RoutedEventArgs e)
        {
            MainWindow myWindow = new MainWindow();
            myWindow.Show();
            this.Close();
        }

程序查询效果图:

查询课程名称有计算机的1.0学分的课:

查询所有课程:

查询课程名称中有计算机的课程,查询结果按学分排序。

时间: 2024-10-09 23:22:19

团队项目——工大助手界面(查询部分)的相关文章

工大助手--数据查询

工大助手--数据查询 实现功能 1)用户可选择获取入学以来所有已修课程的相关信息:课程代号.课程名.课程属性.学分.成绩等信息. 2)用户可选择获取特定已修课程的相关信息:课程代号.课程名.课程属性.学分.成绩等信息. 3)用户可获得特定时间段内的加权平均分(1学期.1学年.全部). 团队成员 13070003 张   帆 13070046 孙宇辰 13070004 崔   巍 13070006 王   奈 13070002 张雨帆 13070045 汪天米 数据查询 由于有了DataTable

团队项目选题——地铁信息查询

项目选题:地铁信息查询 [问题描述] 当今的北京,地铁已经成为绝大多数人出行的首选.截至2014年1月,北京地铁共有17条运营线路.组成覆盖北京市11个市辖区,拥有231座运营车站.总长467千米运营线路的轨道交通系统,工作日均客流约1000万人次,峰值日客运量1155.92万人次.目前,北京地铁票价由原来的2元通票变为浮动票价,具体的票价计算方式见下表: 表 1 地铁票价计算表 里程(公里) 票价(元) 0~6 3 6~12 4 12~22 5 22~32 6 32~52 7 52~72 8

团队项目简介-电梯演讲

一.团队介绍 我们是一个四人组,多谢这次团队开发的机会走的了一起.一起学习共同进步,每个人的性格不同,但都能够在这次合作中发挥出自己的长处. 团队成员: 王世强,高逸凡,肖兴堂,徐少凯. 成员介绍: 王世强:有很活跃的逻辑性思维,提出好的见解,能够协调成员间的关系,在团队中起领导作用. 高逸凡:擅长编程,掌握并可灵活运用各种算法,可以对团队中出现的问题提出有效的解决办法. 肖兴堂:做事比较认真,编程高手,对项目开发细节提出建设性意见和各模块代码的拼写. 徐少凯:幽默风趣,擅长挖掘用户的需求,对于

工大助手--项目总结

工大助手--项目总结 实现功能 1)用户可选择获取入学以来所有已修课程的相关信息:课程代号.课程名.课程属性.学分.成绩等信息. 2)用户可选择获取特定已修课程的相关信息:课程代号.课程名.课程属性.学分.成绩等信息. 3)用户可获得特定时间段内的加权平均分(1学期.1学年.全部). 团队成员 13070003 张   帆 13070046 孙宇辰 13070004 崔   巍 13070006 王   奈 13070002 张雨帆 13070045 汪天米 总结 整个团队项目从策划到完成过程可

工大助手--C#之DataGrid

工大助手 基本内容 工大助手(桌面版) 实现登陆.查成绩.计算加权平均分等功能 团队人员 13070002 张雨帆 13070003 张帆 13070004 崔巍 13070006 王奈 13070045 汪天米 13070046 孙宇辰 C#之DataGrid 我在团队项目中负责的部分是客户端的界面制作.其中我需要在用户查询信息时把用户需要的信息展现出来.这里我使用了DataGrid,我认为使用DataGrid显示数据是十分方便的,所以在此我来总结一下DataGrid的使用. DataGrid

工大助手--C#之DataTable

工大助手--C#之DataTable 实现功能 1)用户可选择获取入学以来所有已修课程的相关信息:课程代号.课程名.课程属性.学分.成绩等信息. 2)用户可选择获取特定已修课程的相关信息:课程代号.课程名.课程属性.学分.成绩等信息. 3)用户可获得特定时间段内的加权平均分(1学期.1学年.全部). 团队成员 13070003 张   帆 13070046 孙宇辰 13070004 崔   巍 13070006 王   奈 13070002 张雨帆 13070045 汪天米 C#之DataTab

团队项目个人总结

团队项目个人总结 基本内容 工大助手(桌面版) 实现登陆.查成绩.计算加权平均分等功能 团队人员 13070002 张雨帆 13070003 张帆 13070004 崔巍 13070006 王奈 13070045 汪天米 13070046 孙宇辰 总结 经过此次的软件工程团队项目,我对团队软件开发有了更深入的认识.一个团队,想要高效的运转需要组长良好的组织和组内每个人的通力合作,统筹规划十分重要.我们组一开始就遇到了这样的问题.没有良好的组织,大家不知道自己应该做哪些方面的内容,也不知道其他成员

团队项目选题讨论

我们小组的成员有:张帆.张雨帆.崔巍.王奈.汪天米.孙宇辰. 下面分别是我们初次讨论的意见.(持续更新) 张帆:由于我们团队有6个人,所以我觉得在做团队项目时,可以有1~2个人负责前端的部分,实现良好的用户接口.然后有2~3个人负责后端的算法.实现等.最后有1~2个人负责程序的测试工作,以保证代码的高效性以及有效性.测试人员虽然不参与实际书写代码的过程,但仍要对两个模块的实现方法要非常熟悉,我认为测试人员甚至要参与到项目的设计过程中. 张雨帆: 崔巍:类似北航7组合力完成的“学霸”网站就挺好,其

工大助手--加权平均分计算

工大助手--加权平均分计算 实现功能 1)用户可选择获取入学以来所有已修课程的相关信息:课程代号.课程名.课程属性.学分.成绩等信息. 2)用户可选择获取特定已修课程的相关信息:课程代号.课程名.课程属性.学分.成绩等信息. 3)用户可获得特定时间段内的加权平均分(1学期.1学年.全部). 团队成员 13070003 张   帆 13070046 孙宇辰 13070004 崔   巍 13070006 王   奈 13070002 张雨帆 13070045 汪天米 加权平均分计算 在计算加权平均