vc大作业报告学生信息管理系统
C语言大作业——学生信息管理系统

《程序设计综合课程设计》报告学生姓名: ______ ______ ____________________________学生班级: __________________________________ ____________学生学号: ____________指导教师: ______2014年6 月22 日目录第1章Visual C++简介及其优点第5章总结附录源程序学生信息管理系统前言学生信息档案的管理对于学校的管理者来说至关重要,学生信息是高等学校非常重要的一项数据资源,是一个教育单位不可缺少一部分。
特别是近几年来,国家政策的调整,我国高等院校大规模的扩招,给高等院校的教学管理、学生管理、后勤管理等方面都带来不少的冲击。
其包含的数据量大,涉及的人员面广,而且需要及时更新,故较为复杂,难以单纯地依靠人工管理,而且传统的人工管理方式既不易于规范化,管理效率也不高,目前我国各类高等院校中还有相当一部分学生档案管理还停留在纸介质的基础上,尤其是中、小学对学生档案的管理更是落后,这样的管理机制已经不能适应时代发展的要求,其管理方法将浪费许多人力和物力。
随着科学技术的不断提高,日渐成熟,计算机应用的普及已进入人类社会生活的各个领域,并发挥着越来越重要的作用。
这种传统的手工管理模式必然被以计算机为物质基础的信息管理方法所取代。
作为计算机应用的一部分,使用计算机对学生档案进行管理,有着手工管理所无法比拟的优点,如:检索迅速、查找方便、可靠性高、大、保密性好、寿命长、成本低等。
这些优点能够极大地提高学生档案管理的效率,也是学校向科学化、正规化管理发展的必要条件,更是各个高等院校与世界接轨的重要条件。
第1章 Visual C++简介及其优点VC++是微软公司开发的一个IDE(集成开发环境),换句话说,就是使用c++的一个开发平台有些软件就是这个编来的...另外还有VB,VF.只是使用不同语言...但是, vc++是Windows平台上的C++编程环境,学习VC要了解很多Windows平台的特性并且还要掌握MFC、ATL、COM等的知识,难度比较大。
通过用c语言编写学生信息管理系统后的总结

通过用c语言编写学生信息管理系统后的总结学生信息管理系统是一种方便高效的工具,能够帮助学校和教育机构对学生信息进行统一管理和查询。
在我使用C语言编写学生信息管理系统的过程中,我深刻地意识到了该系统的重要性和优势。
首先,学生信息管理系统能够提高信息管理的效率和准确性。
传统的学生信息管理方式通常是使用纸质档案和表格进行记录,这样容易产生错误和混乱。
而学生信息管理系统通过自动化的方式进行数据存储和管理,大大降低了手工操作的错误率。
学校工作人员可以通过系统快速查询和更新学生信息,提高了工作效率。
此外,学生信息管理系统还具备数据安全性较高的特点。
通过对学生信息进行密码保护和权限设置,系统能够保证只有授权人员才能访问和修改学生信息。
同时,系统还提供数据备份和恢复功能,防止数据丢失或损坏。
在编写学生信息管理系统的过程中,我也遇到了一些挑战和问题。
首先,要对学生信息进行合理的数据库设计和数据结构设计,确保存储和查询的高效性和准确性。
其次,还要针对不同用户的需求进行系统界面的设计,使其易于操作和管理。
最后,还要注意系统的安全性和稳定性,避免数据泄露和系统崩溃等问题。
总结起来,通过使用C语言编写学生信息管理系统,我认识到该系统的重要性和优势。
它能够提高学校的信息管理效率、准确性和安全性,为学校提供全面的信息展示和查询功能。
在今后的学习和工作中,我将进一步完善系统的功能和性能,使其更好地服务于学校和教育机构,并尽可能地满足用户的需求。
C语言学生管理系统综合实验报告

编写一学生信息管理系统,用来管理学生基本信息及成绩信息试验目的本实验为学生提供了一个既动手又动脑,上机实践的机会。
学生通过分析和解决该实验, 将课本上的理论知识和实际有机地结合起来,锻炼学生分析、解决较复杂问题的能力,提高 学生编写综合系统程序的能力。
实验内容编写一个学生信息管理系统,主要用来管理学生基本信息及成绩信息。
系统功能模块如下图:具体要求为:实验名称 小型学生信息管理系统实验报告实验项目 专业班级 姓名XXX 学号指导教师成绩 日期数据数Lg 占据退出平均不及显1.建立学生信息,每个学生的信息应包括:学号、姓名、性别、班级、至少3门课程的成绩;2.数据输入:输入学生的各项信息;3.数据修改:根据输入学生的学号可以选择修改该学生的信息;4.数据处理:可以选择处理方式为:排序、查询、统计。
其中:a)排序:按学号排序b)查询:根据学号查询成绩C)统计:可以选择统计各学生的平均成绩或统计所有存在不及格科目的学生;5.数据输出:输出学生的相应结果信息;6.退出:退出整个学生信息管理系统。
7.输出结果截屏的第一条记录一定要反映出你自己的真实信息。
程序组织结构图、函数调用关系图四、程序清单#in cludevstdio.h>#in clude<iostream.h>#i ncludevstri ng.h> struct stude ntchar num[10];char n ame[10];char sex[4];char clas[20];int yw,sx,yy;float ave;}stu[100];inti,j;void Inp utDataOchar x;while(1)printf("\t 学号:");sca nf("%s",stu[i]. nu m);printf("\t 姓名:");sea nf("%s",stu[i]. name);printf("\t 性别: ");scan f("%s",stu[i].sex);prin tf("\t 班级: ");scan f("%s",stu[i].clas);prin tf("\t 语文: ");scan f("%d",&stu[i].yw);printf("\t 数学:");scan f("%d",&stu[i].sx);printf("\t 英语:");scan f("%d",&stu[i].yy);stu[i].ave=float((stu[i].yw+stu[i].sx+stu[i].yy)/3.0);i++;printf("\t 是否继续输入数据(Y.N)");cin>>x;if(x==' n'||x=='N') break;printf(" \n");void EditDataOint coun t=0;char str[1O];prin tf("\n 请输入学生学号:");cin> >str;while (co un t<i)if(strc mp (str,stu[co un t]. num )==0)printf("学号姓名性别班级语文数学英语\n");prin tf("%-11s",stu[cou nt], nu m);printf(" \n");Pl1nff(=%—13s-「)八p rinff(=%—8s-「n aPl1nff(=%—16s-「sucounq.c-as)八Pl1nff(=%—6crguaounq.yw=pri nff(=%—6空•Pl1m%—4crguaounq.yy=prinmvrxprin殳break-counf++八if(counfvHi)e-seprin tf("\n\t 修改数据:\n"); printf("\t 学号:");sea nf("%s",stu[i]. nu m);prin tf("\t 姓名:");sea nf("%s",stu[i]. name);prin tf("\t 性别: ");scan f("%s",stu[i].sex);printf("\t 班级: ");scan f("%s",stu[i].elas);printf("\t 语文: ");scan f("%d",&stu[i].yw);prin tf("\t 数学: ");scan f("%d",&stu[i].sx);scan f("%d",&stu[i].yy);prin tf("\t英语:");stu[co un t].ave=float((stu[co un t].yw+stu[co un t].sx+stu[co un t].yy)/3.0);void sx() struct stude nt temp;int a,b,c;for(a=0;a<i-1;a++)c=a;for(b=a+1;b<i;b++)if(stu[b].ave>stu[c].ave)c=b;temp=stu[b];stu[b]=stu[c];sfurc 一Hfemp八Pl1nff(= 盘E甸可璋;MR〔云)priw ——fo「(CHOqrc++)pl1mf(=%—1」s=guaLnum=pri nff(=%—l 3S= gurcLname)八Pl1mf(=%—8s=gus.sex)-prinm.%二6s=gus.cpl1mf(=%—6crguaLyw)-Pl1mf(=%—6crgus.sx)-Pl1mf(=%—4crgus.yy)-prinmvrxprintf("void cx()int coun t=0;char str[1O];prin tf("\n 请输入要查询的学生学号:");cin> >str;while (co un t<i)if(strc mp (str,stu[co un t]. num )==0)printf("学号姓名性别班级语文数学英语\n");prin tf("%-11s",stu[cou nt], nu m);prin tf("%-13s",stu[cou nt], name);prin tf("%-8s",stu[cou nt].sex);prin tf("%-16s",stu[cou nt].clas);prin tf("%-6d",stu[cou nt].yw);prin tf("%-6d",stu[cou nt].sx);prin tf("%-4d",stu[cou nt].yy);prin tf("\n");printf("break;coun t++;if(co un t>=i)printf("\n 无该学号学生");printf(" \n");elseprin tf("\n");void tjpjf()int coun t=0;stu[i].ave=float((stu[i].yw+stu[i].sx+stu[i].yy)/3.0);printf(" 学号姓名平均分\n");printf("for(j=0;j<i;j++)while(co un t<i)for(j=0;j<i;j++)prin tf("%-21s",stu[cou nt]. nu m);{prin tf("%-21s",stu[cou nt], name);prin tf("%-6.2f",stu[cou nt].ave);coun t++;prin tf("\n");}printf("void tjbhgrsOint j,co un t=0;printf(" for(j=0;j<i;j++)if(stu[j].yw<60||stu[j].sx<60||stu[j].yy<60)\n");printf(" 有不及格科目的学生是:\n");printf(" 学号姓名性别班级语文数学英语\n");\n");{{prin tf("%-11s",stu[cou nt], nu m);prin tf("%-13s",stu[cou nt].n ame);prin tf("%-8s",stu[cou nt].sex);prin tf("%-16s",stu[cou nt].clas);prin tf("%-6d",stu[cou nt].yw);prin tf("%-6d",stu[cou nt].sx);prin tf("%-4d",stu[cou nt].yy);prin tf("\n");coun t++;printf(" void tj()\n");char x;{while(1){prin tf("\t 1. 统计平均分 2. 统计不及格学生信息 3. 返回\n");prin tf("\n\t 请选择具体的统计内容:");cin>>x;prin tf("\n");switch(x){case '1':tjpjf();break;case 2:tjbhgrs();break;case 3:break;} if(x==3)prin tf("\t \n");prin tf("\t 1.按学号排序\n");prin tf("\t 2.查询printf("\t break;prin tf("\n");}}void Data Proc(){char x;while(1){printf("\t 处理数据\n");prin tf("\t \n");prin tf("\t 1.按学号排序\n"); prin tf("\t 2.查询printf("\tprin tf("\n\t 请选择具体的处理内容:");cin>>x;prin tf("\n"); switch(x)case '1':sx();break;case '2':cx();break;case 3:tj();break;case '4':break;if(x=='4')break;printf("\t 3.统计\n");printf("\t 4.返回主菜单\n");\n");prin tf("\n");void DataOut put()int coun t=0;printf(" 学号姓名性别班级语文数学英语\n");printf(" \n");while(co un t<i)prin tf("%-11s",stu[cou nt], nu m);prin tf("%-13s",stu[cou nt]. name);prin tf("%-8s",stu[cou nt].sex);prin tf("%-16s",stu[cou nt].clas);prin tf("%-6d",stu[cou nt].yw);prin tf("\t* *\n");prin tf("\t*学生信息管理系统*\n");prin tf("\t**\n");prin tf("%-6d",stu[cou nt].sx);prin tf("%-6d",stu[cou nt].yy);coun t++;prin tf("\n");printf(" void mai n()char x;while(1){ printf("\t********************************************\n");\n");prin tf("\t*输入数据*\n");1.prin tf("\t* 2. 修改数据*\n");prin tf("\t* 3. 处理数据*\n");prin tf("\t* 4. 输出数据*\n");prin tf("\t* 5. 退出*\n");prin tf("\t* *\n");printf("\t********************************************\n");prin tf("\n\t 请选择需要进行的操作:");cin> >x; prin tf("\n");switch(X){ case '1':I np utData();break;case 2:EditData();break;case 3:Data Proc();break;case '4':DataOut put();break;case '5':printf(" 谢谢使用!\n");break;if(x=='s') break;prin tf("\n");五、运行结果八、实验总结(调试分析、体会、致谢)从这一次的综合实验中,我感触很深可以这么说,为了这个实验花费比较的功夫。
c语言学生信息管理系统设计报告

c语言学生信息管理系统设计报告随着教学质量和教学管理的要求不断提高,校园管理系统对于诸多困难领域的改善服务开始发挥着重要作用,而学生信息技术系统设计是实现校园管理质量提升的重要手段之一。
实施学生信息管理系统可以提高人力资源管理的效率,降低办理各项业务的成本,将学校管理变得更加规范和有效。
本报告旨在设计一套C语言学生信息管理系统,用于学校信息管理与市场营销管理,实现数据的及时收集、存储和处理,同时,改善学校的教学管理,提高教学质量,提升学生的学习体验。
首先,系统设计将涉及到C语言的语法和结构,以便理解和实现学生信息的管理。
其次,关于系统的功能,可以从学生信息管理、任课管理、教学管理、学术科研、职位设置、绩效考核等方面进行完善。
针对关键管理系统,为了实现系统的可靠性和安全性,将采用多种数据库技术,包括SQL Server、Oracle、MySQL等数据库技术,以及主流计算机语言C++、Java等,实现数据库的操作、学生信息管理系统的开发、学习管理系统的开发等技术需求。
此外,本报告还将对相关技术以及软件测试等内容进行分析,以保证学生信息管理系统的可靠性和稳定性。
本报告的完成,必须充分考虑C语言的基本知识,以及C语言学生信息管理系统在实施过程中的可能风险。
在实施过程中,应该通过计算机技术的应用、软件测试、数据库技术的改进等多方面分析,以保证系统在实施过程中的高效稳定性。
综上所述,本报告将实施C语言学生信息管理系统,实现学校信息管理与市场营销管理,旨在收集、存储和处理数据,同时提高教学管理的质量,提升学生的学习体验,实现学校的管理变得更加规范和有效。
此外,本报告还将深入探讨如何利用计算机技术、数据库技术、软件测试等相关技术,保证学生信息管理系统的可靠性和安全性。
学生信息管理系统实验报告

一、实验目的1. 熟悉学生信息管理系统的基本功能和操作流程。
2. 掌握数据库设计的基本方法,能够根据需求设计合理的数据库结构。
3. 熟悉编程语言和开发工具,能够编写简单的数据库应用程序。
4. 提高团队合作能力和沟通能力。
二、实验环境1. 操作系统:Windows 102. 开发工具:Visual Studio 20193. 数据库:MySQL 5.74. 编程语言:C#三、实验内容1. 需求分析学生信息管理系统主要用于对学生信息进行管理,包括学生基本信息、成绩、课程、班级等。
系统应具备以下功能:(1)学生信息管理:增加、删除、修改、查询学生信息。
(2)成绩管理:录入、修改、查询学生成绩。
(3)课程管理:增加、删除、修改、查询课程信息。
(4)班级管理:增加、删除、修改、查询班级信息。
(5)统计分析:对学生成绩、课程等进行统计分析。
2. 数据库设计根据需求分析,设计如下数据库表:(1)学生信息表(student)字段名 | 数据类型 | 说明--- | --- | ---id | int | 学生编号(主键)name | varchar(50) | 学生姓名gender | varchar(10) | 性别age | int | 年龄class_id | int | 班级编号(外键)(2)成绩表(score)字段名 | 数据类型 | 说明--- | --- | ---id | int | 成绩编号(主键)student_id | int | 学生编号(外键)course_id | int | 课程编号(外键)score | float | 成绩(3)课程表(course)字段名 | 数据类型 | 说明--- | --- | ---id | int | 课程编号(主键)name | varchar(50) | 课程名称credit | int | 学分(4)班级表(class)字段名 | 数据类型 | 说明--- | --- | ---id | int | 班级编号(主键)name | varchar(50) | 班级名称3. 系统设计(1)界面设计采用Windows窗体应用程序,界面包括以下部分:- 主界面:展示系统功能菜单。
vc大作业报告学生信息管理系统)

高级程序设计项目训练报告指导教师:黄欢时间 2012 年 7 月 27 日专业年级: 姓名:学号:报告分程序功能:1) 学生基本信息录入功能2) 学生信息查询功能3)学生信息的删除学生信息包括:姓名、性别、学号、班级、出生年月、手机号码、已经获得学分等输入输出数据的说明:输入学生信息点击确定,在“学生信息查询”中输入姓名,就可以在“查询结果”中输出相应信息。
报告内容一、分析设计的是一个基于MFC对话框的C++应用程序,创建了一个主对话框,和一些必要的子对话框。
在主对话框中添加列表控件用来显示学生的基本信息。
主要用到了在MFC中运用编辑框的只是,还有插入位图。
二、操作运行后点击“学生信息录入”显示:输入相关信息在确定。
在选中信息点击删除,可进行删除操作。
点击“学生信息查询”显示:输入名字,若有信息储存,则在查询结果中显示,若无信息储存则显示:主代码:// zxyDlg.cpp : implementation file//#include "stdafx.h"#include "zxy.h"#include "zxyDlg.h"#ifdef _DEBUG#define new DEBUG_NEW#undef THIS_FILEstatic char THIS_FILE[] = __FILE__;#endif//////////////////////////////////////////////////////////////////// /////////// CAboutDlg dialog used for App Aboutclass CAboutDlg : public CDialog{public:CAboutDlg();// Dialog Data//{{AFX_DATA(CAboutDlg)enum { IDD = IDD_ABOUTBOX };//}}AFX_DATA// ClassWizard generated virtual function overrides//{{AFX_VIRTUAL(CAboutDlg)protected:virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support//}}AFX_VIRTUAL// Implementationprotected://{{AFX_MSG(CAboutDlg)//}}AFX_MSGDECLARE_MESSAGE_MAP()};CAboutDlg::CAboutDlg() : CDialog(CAboutDlg::IDD){//{{AFX_DATA_INIT(CAboutDlg)//}}AFX_DATA_INIT}void CAboutDlg::DoDataExchange(CDataExchange* pDX){CDialog::DoDataExchange(pDX);//{{AFX_DATA_MAP(CAboutDlg)//}}AFX_DATA_MAP}BEGIN_MESSAGE_MAP(CAboutDlg, CDialog)//{{AFX_MSG_MAP(CAboutDlg)// No message handlers//}}AFX_MSG_MAPEND_MESSAGE_MAP()//////////////////////////////////////////////////////////////////// /////////// CZxyDlg dialogCZxyDlg::CZxyDlg(CWnd* pParent /*=NULL*/): CDialog(CZxyDlg::IDD, pParent){//{{AFX_DATA_INIT(CZxyDlg)// NOTE: the ClassWizard will add member initialization here //}}AFX_DATA_INIT// Note that LoadIcon does not require a subsequent DestroyIcon in Win32m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME);}void CZxyDlg::DoDataExchange(CDataExchange* pDX){CDialog::DoDataExchange(pDX);//{{AFX_DATA_MAP(CZxyDlg)DDX_Control(pDX, IDC_BUTTON3, m_button_change);DDX_Control(pDX, IDC_BUTTON2, m_button_del);DDX_Control(pDX, IDC_BUTTON1, m_button_enter);DDX_Control(pDX, IDC_LIST4, m_list_ctrl);//}}AFX_DATA_MAP}BEGIN_MESSAGE_MAP(CZxyDlg, CDialog)//{{AFX_MSG_MAP(CZxyDlg)ON_WM_SYSCOMMAND()ON_WM_PAINT()ON_WM_QUERYDRAGICON()ON_BN_CLICKED(IDC_BUTTON1, OnButton1)ON_BN_CLICKED(IDC_BUTTON2, OnButton2)ON_BN_CLICKED(IDC_BUTTON3, OnButton3)//}}AFX_MSG_MAPEND_MESSAGE_MAP()//////////////////////////////////////////////////////////////////// /////////// CZxyDlg message handlersBOOL CZxyDlg::OnInitDialog(){CDialog::OnInitDialog();// Add "About..." menu item to system menu.// IDM_ABOUTBOX must be in the system command range.ASSERT((IDM_ABOUTBOX & 0xFFF0) == IDM_ABOUTBOX);ASSERT(IDM_ABOUTBOX < 0xF000);CMenu* pSysMenu = GetSystemMenu(FALSE);if (pSysMenu != NULL){CString strAboutMenu;strAboutMenu.LoadString(IDS_ABOUTBOX);if (!strAboutMenu.IsEmpty()){pSysMenu->AppendMenu(MF_SEPARATOR);pSysMenu->AppendMenu(MF_STRING, IDM_ABOUTBOX, strAboutMenu);}}// Set the icon for this dialog. The framework does this automatically// when the application's main window is not a dialogSetIcon(m_hIcon, TRUE); // Set big iconSetIcon(m_hIcon, FALSE); // Set small icon// TODO: Add extra initialization herem_list_ctrl.SetExtendedStyle(LVS_EX_FULLROWSELECT);CRect rect;m_list_ctrl.GetClientRect(&rect);int nColInterval=rect.Width()/16;m_list_ctrl.InsertColumn(0,_T("学号"),LVCFMT_LEFT,nColInterval*3);m_list_ctrl.InsertColumn(1,_T("姓名"),LVCFMT_LEFT,nColInterval*2);m_list_ctrl.InsertColumn(2,_T("性别"),LVCFMT_CENTER,nColInterval*1+5);m_list_ctrl.InsertColumn(3,_T("班级"),LVCFMT_LEFT,nColInterval*2);m_list_ctrl.InsertColumn(4,_T("出生日期"),LVCFMT_LEFT,nColInterval*3);m_list_ctrl.InsertColumn(5,_T("电话号码"),LVCFMT_LEFT,nColInterval*3);m_list_ctrl.InsertColumn(6,_T("已获学分"),LVCFMT_LEFT,nColInterval*2);return TRUE; // return TRUE unless you set the focus to a control }void CZxyDlg::OnSysCommand(UINT nID, LPARAM lParam){if ((nID & 0xFFF0) == IDM_ABOUTBOX){CAboutDlg dlgAbout;dlgAbout.DoModal();}else{CDialog::OnSysCommand(nID, lParam);}}// If you add a minimize button to your dialog, you will need the code below// to draw the icon. For MFC applications using the document/view model,// this is automatically done for you by the framework.void CZxyDlg::OnPaint(){if (IsIconic()){CPaintDC dc(this); // device context for paintingSendMessage(WM_ICONERASEBKGND, (WPARAM) dc.GetSafeHdc(), 0);// Center icon in client rectangleint cxIcon = GetSystemMetrics(SM_CXICON);int cyIcon = GetSystemMetrics(SM_CYICON);CRect rect;GetClientRect(&rect);int x = (rect.Width() - cxIcon + 1) / 2;int y = (rect.Height() - cyIcon + 1) / 2;// Draw the icondc.DrawIcon(x, y, m_hIcon);}else{CDialog::OnPaint();}}// The system calls this to obtain the cursor to display while the user drags// the minimized window.HCURSOR CZxyDlg::OnQueryDragIcon(){return (HCURSOR) m_hIcon;}#include "MyDialog_enter.h"void CZxyDlg::OnButton1(){// TODO: Add your control notification handler code hereCMyDialog_enter *pwd=new CMyDialog_enter(this);pwd->Create(IDD_DIALOG1,this);pwd->ShowWindow(1);}#include "student.h"void CZxyDlg::List_Show(void){m_list_ctrl.DeleteAllItems();int nItem = m_list_ctrl.GetItemCount();for (int i=0;i<people[0].AllNumber||i==people[0].AllNumber;i++,nItem++) {m_list_ctrl.InsertItem(nItem, people[i].sno);m_list_ctrl.SetItemText(nItem, 1,people[i].sname);m_list_ctrl.SetItemText(nItem, 2,people[i].sex);m_list_ctrl.SetItemText(nItem, 3,people[i].inst);m_list_ctrl.SetItemText(nItem, 4,people[i].brondata);m_list_ctrl.SetItemText(nItem, 5,people[i].phone);m_list_ctrl.SetItemText(nItem, 6,people[i].grade);}}void CZxyDlg::OnButton2(){// TODO: Add your control notification handler code hereint nItem=m_list_ctrl.GetSelectionMark();//AfxMessageBox(people[nItem].sname,MB_OK);if (nItem==-1){AfxMessageBox("您未选择任何内容!",MB_OK);}else{if (AfxMessageBox("确认删除学生"+people[nItem].sname+"的信息?",MB_YESNO)==IDYES){for (;nItem<people[0].AllNumber;nItem++){people[nItem].All_Copy(people[nItem+1]);}people[0].AllNumber--;List_Show();}}}#include "MyDialog_2.h"void CZxyDlg::OnButton3(){// TODO: Add your control notification handler code hereCMyDialog_2 *pwnd=new CMyDialog_2(this);pwnd->Create(IDD_DIALOG2,this);pwnd->ShowWindow(1);}BOOL CZxyDlg::PreTranslateMessage(MSG* pMsg) //屏蔽回车和ESC按键{// TODO: 在此添加专用代码和/或调用基类{// 屏蔽回车和ESC 键// 屏蔽ESC 键退出if (pMsg->message == WM_KEYDOWN && pMsg->wParam == 0x1b)return TRUE;// 回车if (pMsg->message == WM_KEYDOWN && pMsg->wParam == 0x0d )return TRUE;}return CDialog::PreTranslateMessage(pMsg);}遇到的问题及解决方法(编译错误提示及如何解决)1、主要遇到了一些成员变量添加错误的问题,在通过Ctrl+W操作显示窗口中重新添加后得以改正,是缺少成员变量的问题。
c语言程序设计大作业学生信息管理系统

一、概述随着信息技术的不断发展和应用,计算机程序设计作为重要的基础课程,对学生的综合能力有着重要的培养作用。
在C语言程序设计课程中,大作业是检验学生对知识的掌握和应用能力的重要环节。
学生信息管理系统作为一种常见的大作业题目,涉及到了文件操作、结构体、指针等多个知识点,对学生的理论知识掌握和实战能力都有一定的考验。
二、需求分析学生信息管理系统是一个管理学生基本信息的软件,具有录入、查找、删除、修改等功能。
在设计学生信息管理系统的时候,首先要明确系统的功能需求,并且考虑到系统的扩展性和健壮性。
1. 学生基本信息包括学号、尊称、性别、芳龄、专业等内容,系统应具备录入学生信息的功能,并且能够将信息保存在文件中,方便下次使用。
2. 用户可以通过查找功能根据学号或尊称查询学生信息,系统需要具备高效的查找算法。
3. 可以对学生信息进行删除和修改操作,需要保证操作的准确性和安全性。
4. 系统需要具备良好的用户界面,方便用户的操作和管理。
三、系统设计在进行学生信息管理系统的设计时,需要考虑到系统的模块化和扩展性,将整个系统划分为多个模块,进行单独设计和测试。
1. 学生信息录入模块:负责接收用户输入的学生信息,并将信息写入文件中。
2. 学生信息查找模块:通过学号或尊称进行查找操作,需要设计高效的查找算法。
3. 学生信息删除模块:实现对学生信息的删除功能。
4. 学生信息修改模块:实现对学生信息的修改功能。
5. 用户界面设计:设计友好的用户界面,方便用户的操作和管理。
四、系统实现在进行系统实现时,需要根据设计的模块进行逐一实现和测试,保证系统的稳定性和功能完整性。
1. 学生信息录入模块实现:接收用户输入的学生信息,并将信息写入文件。
2. 学生信息查找模块实现:设计高效的查找算法,并实现根据学号或尊称进行查找操作。
3. 学生信息删除模块实现:实现对学生信息的删除功能,并确保操作的准确性和安全性。
4. 学生信息修改模块实现:实现对学生信息的修改功能,保证信息的一致性。
基于VC++的学生信息管理系统课设报告

1 绪论随着信息技术在管理上越来越深入而广泛地应用,管理信息系统的实施在技术上已经逐步成熟。
管理信息系统是一个不断发展的新型学科,任何一个单位要生存要发展,要高效率地把内部活动有机的组织起来,就必须建立与自身特点相适应的管理信息系统。
随着学校的规模不断扩大,学生数量急剧增加,有关学生的各种信息量也成倍增长。
面对庞大的信息量学要有信息管理系统来提高学生信息管理系统的效率。
通过这样的系统可以做到信息的规范管理,科学统计和快速查询,修改,添加,删除等,从而减少管理方面的工作量。
本次课程设计的学生管理系统主要用于学校学生信息管理,其主要任务是用计算机对学生各种信息进行日常管理,如添加,修改,删除,查询和排序等等。
根据这些要求我通过在Visual C++6.0的环境下进行系统的设计,数据库设计,窗口及相应的程序设计来完成设计学生管理系统。
2 系统设计用SQL Sever 2008设计学生信息数据库,数据库表项中包括学号,姓名,年龄,性别,出生年月,地址,电话,E-mail。
连接数据库,编写VC++程序,实现以下功能:(1)学生信息的录入功能(2)学生信息的浏览功能(3)学生信息的查询功能(可以按学号,姓名进行查询)(4)学生信息的排序(可以按学号,姓名进行排序)(5)学生信息的删除和修改功能系统结构图如图1:图1 系统结构图说明:在主窗口可以直接排序、删除和浏览。
查询条件、修改信息和添加信息都需要在弹出的模态对话框中输入,在主窗口显示。
实现功能总程序流程图如图2:图2 程序流程图流程图说明:首先进行初始化,进入主窗口,在主窗口有进入各种操作的按钮,判断是什么功能的按钮按下,进入相应功能。
若是删除、排序或者浏览按钮,则直接在主窗口显示相应的结果;若是添加按钮被按下,则弹出对话框,在对话框中输入要添加的学生的信息,确定后保存;若是修改按钮被按下,则弹出对话框,在对话框中填写修改后希望保存的信息,确定后保存修改;若是查询按钮被按下,弹出对话框,输入查询条件,确认后在主窗口显示信息。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
高级程序设计项目训练报告指导教师:黄欢时间 2012 年 7 月 27 日专业年级: 姓名:学号:报告分程序功能:1) 学生基本信息录入功能2) 学生信息查询功能3)学生信息的删除学生信息包括:姓名、性别、学号、班级、出生年月、手机号码、已经获得学分等输入输出数据的说明:输入学生信息点击确定,在“学生信息查询”中输入姓名,就可以在“查询结果”中输出相应信息。
报告内容一、分析设计的是一个基于MFC对话框的C++应用程序,创建了一个主对话框,和一些必要的子对话框。
在主对话框中添加列表控件用来显示学生的基本信息。
主要用到了在MFC中运用编辑框的只是,还有插入位图。
二、操作运行后点击“学生信息录入”显示:输入相关信息在确定。
在选中信息点击删除,可进行删除操作。
点击“学生信息查询”显示:输入名字,若有信息储存,则在查询结果中显示,若无信息储存则显示:主代码:// zxyDlg.cpp : implementation file//#include "stdafx.h"#include "zxy.h"#include "zxyDlg.h"#ifdef _DEBUG#define new DEBUG_NEW#undef THIS_FILEstatic char THIS_FILE[] = __FILE__;#endif//////////////////////////////////////////////////////////////////// /////////// CAboutDlg dialog used for App Aboutclass CAboutDlg : public CDialog{public:CAboutDlg();// Dialog Data//{{AFX_DATA(CAboutDlg)enum { IDD = IDD_ABOUTBOX };//}}AFX_DATA// ClassWizard generated virtual function overrides//{{AFX_VIRTUAL(CAboutDlg)protected:virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support//}}AFX_VIRTUAL// Implementationprotected://{{AFX_MSG(CAboutDlg)//}}AFX_MSGDECLARE_MESSAGE_MAP()};CAboutDlg::CAboutDlg() : CDialog(CAboutDlg::IDD){//{{AFX_DATA_INIT(CAboutDlg)//}}AFX_DATA_INIT}void CAboutDlg::DoDataExchange(CDataExchange* pDX){CDialog::DoDataExchange(pDX);//{{AFX_DATA_MAP(CAboutDlg)//}}AFX_DATA_MAP}BEGIN_MESSAGE_MAP(CAboutDlg, CDialog)//{{AFX_MSG_MAP(CAboutDlg)// No message handlers//}}AFX_MSG_MAPEND_MESSAGE_MAP()//////////////////////////////////////////////////////////////////// /////////// CZxyDlg dialogCZxyDlg::CZxyDlg(CWnd* pParent /*=NULL*/): CDialog(CZxyDlg::IDD, pParent){//{{AFX_DATA_INIT(CZxyDlg)// NOTE: the ClassWizard will add member initialization here //}}AFX_DATA_INIT// Note that LoadIcon does not require a subsequent DestroyIcon in Win32m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME);}void CZxyDlg::DoDataExchange(CDataExchange* pDX){CDialog::DoDataExchange(pDX);//{{AFX_DATA_MAP(CZxyDlg)DDX_Control(pDX, IDC_BUTTON3, m_button_change);DDX_Control(pDX, IDC_BUTTON2, m_button_del);DDX_Control(pDX, IDC_BUTTON1, m_button_enter);DDX_Control(pDX, IDC_LIST4, m_list_ctrl);//}}AFX_DATA_MAP}BEGIN_MESSAGE_MAP(CZxyDlg, CDialog)//{{AFX_MSG_MAP(CZxyDlg)ON_WM_SYSCOMMAND()ON_WM_PAINT()ON_WM_QUERYDRAGICON()ON_BN_CLICKED(IDC_BUTTON1, OnButton1)ON_BN_CLICKED(IDC_BUTTON2, OnButton2)ON_BN_CLICKED(IDC_BUTTON3, OnButton3)//}}AFX_MSG_MAPEND_MESSAGE_MAP()//////////////////////////////////////////////////////////////////// /////////// CZxyDlg message handlersBOOL CZxyDlg::OnInitDialog(){CDialog::OnInitDialog();// Add "About..." menu item to system menu.// IDM_ABOUTBOX must be in the system command range.ASSERT((IDM_ABOUTBOX & 0xFFF0) == IDM_ABOUTBOX);ASSERT(IDM_ABOUTBOX < 0xF000);CMenu* pSysMenu = GetSystemMenu(FALSE);if (pSysMenu != NULL){CString strAboutMenu;strAboutMenu.LoadString(IDS_ABOUTBOX);if (!strAboutMenu.IsEmpty()){pSysMenu->AppendMenu(MF_SEPARATOR);pSysMenu->AppendMenu(MF_STRING, IDM_ABOUTBOX, strAboutMenu);}}// Set the icon for this dialog. The framework does this automatically// when the application's main window is not a dialogSetIcon(m_hIcon, TRUE); // Set big iconSetIcon(m_hIcon, FALSE); // Set small icon// TODO: Add extra initialization herem_list_ctrl.SetExtendedStyle(LVS_EX_FULLROWSELECT);CRect rect;m_list_ctrl.GetClientRect(&rect);int nColInterval=rect.Width()/16;m_list_ctrl.InsertColumn(0,_T("学号"),LVCFMT_LEFT,nColInterval*3);m_list_ctrl.InsertColumn(1,_T("姓名"),LVCFMT_LEFT,nColInterval*2);m_list_ctrl.InsertColumn(2,_T("性别"),LVCFMT_CENTER,nColInterval*1+5);m_list_ctrl.InsertColumn(3,_T("班级"),LVCFMT_LEFT,nColInterval*2);m_list_ctrl.InsertColumn(4,_T("出生日期"),LVCFMT_LEFT,nColInterval*3);m_list_ctrl.InsertColumn(5,_T("电话号码"),LVCFMT_LEFT,nColInterval*3);m_list_ctrl.InsertColumn(6,_T("已获学分"),LVCFMT_LEFT,nColInterval*2);return TRUE; // return TRUE unless you set the focus to a control }void CZxyDlg::OnSysCommand(UINT nID, LPARAM lParam){if ((nID & 0xFFF0) == IDM_ABOUTBOX){CAboutDlg dlgAbout;dlgAbout.DoModal();}else{CDialog::OnSysCommand(nID, lParam);}}// If you add a minimize button to your dialog, you will need the code below// to draw the icon. For MFC applications using the document/view model,// this is automatically done for you by the framework.void CZxyDlg::OnPaint(){if (IsIconic()){CPaintDC dc(this); // device context for paintingSendMessage(WM_ICONERASEBKGND, (WPARAM) dc.GetSafeHdc(), 0);// Center icon in client rectangleint cxIcon = GetSystemMetrics(SM_CXICON);int cyIcon = GetSystemMetrics(SM_CYICON);CRect rect;GetClientRect(&rect);int x = (rect.Width() - cxIcon + 1) / 2;int y = (rect.Height() - cyIcon + 1) / 2;// Draw the icondc.DrawIcon(x, y, m_hIcon);}else{CDialog::OnPaint();}}// The system calls this to obtain the cursor to display while the user drags// the minimized window.HCURSOR CZxyDlg::OnQueryDragIcon(){return (HCURSOR) m_hIcon;}#include "MyDialog_enter.h"void CZxyDlg::OnButton1(){// TODO: Add your control notification handler code hereCMyDialog_enter *pwd=new CMyDialog_enter(this);pwd->Create(IDD_DIALOG1,this);pwd->ShowWindow(1);}#include "student.h"void CZxyDlg::List_Show(void){m_list_ctrl.DeleteAllItems();int nItem = m_list_ctrl.GetItemCount();for (int i=0;i<people[0].AllNumber||i==people[0].AllNumber;i++,nItem++) {m_list_ctrl.InsertItem(nItem, people[i].sno);m_list_ctrl.SetItemText(nItem, 1,people[i].sname);m_list_ctrl.SetItemText(nItem, 2,people[i].sex);m_list_ctrl.SetItemText(nItem, 3,people[i].inst);m_list_ctrl.SetItemText(nItem, 4,people[i].brondata);m_list_ctrl.SetItemText(nItem, 5,people[i].phone);m_list_ctrl.SetItemText(nItem, 6,people[i].grade);}}void CZxyDlg::OnButton2(){// TODO: Add your control notification handler code hereint nItem=m_list_ctrl.GetSelectionMark();//AfxMessageBox(people[nItem].sname,MB_OK);if (nItem==-1){AfxMessageBox("您未选择任何内容!",MB_OK);}else{if (AfxMessageBox("确认删除学生"+people[nItem].sname+"的信息?",MB_YESNO)==IDYES){for (;nItem<people[0].AllNumber;nItem++){people[nItem].All_Copy(people[nItem+1]);}people[0].AllNumber--;List_Show();}}}#include "MyDialog_2.h"void CZxyDlg::OnButton3(){// TODO: Add your control notification handler code hereCMyDialog_2 *pwnd=new CMyDialog_2(this);pwnd->Create(IDD_DIALOG2,this);pwnd->ShowWindow(1);}BOOL CZxyDlg::PreTranslateMessage(MSG* pMsg) //屏蔽回车和ESC按键{// TODO: 在此添加专用代码和/或调用基类{// 屏蔽回车和ESC 键// 屏蔽ESC 键退出if (pMsg->message == WM_KEYDOWN && pMsg->wParam == 0x1b)return TRUE;// 回车if (pMsg->message == WM_KEYDOWN && pMsg->wParam == 0x0d )return TRUE;}return CDialog::PreTranslateMessage(pMsg);}遇到的问题及解决方法(编译错误提示及如何解决)1、主要遇到了一些成员变量添加错误的问题,在通过Ctrl+W操作显示窗口中重新添加后得以改正,是缺少成员变量的问题。