学生籍贯信息管理系统C 实验报告

合集下载

学籍管理系统实验报告(C#语言)

学籍管理系统实验报告(C#语言)
usingSystem;
usingSystem.Data.SqlClient;
usingSystem.Collections.Generic;
ponentModel;
usingSystem.Data;
usingSystem.Drawing;
usingSystem.Text;
2、实验现象、数据及结果
(1).打开sql2005,新建数据库a,新建一个表“学籍”。
(2).新建一个Windows应用程序,建立表
(3).给各个表添加相应代码如下:
usingSystem;
usingSystem.Collections.Generic;
ponentModel;
DataSetthisDataSet =newDataSet();
thisAdapter.Fill(thisDataSet,"学籍");
DataColumn[] keys =newDataColumn[1];
keys[0] = thisDataSet.Tables["学籍"].Columns["StuNo"];
MessageBox.Show("please complete the information");
else
{
SqlConnectionthisConnection =newSqlConnection(@"Server=00b758efb68a400;Integrated Security=sspi;"+"Database=a");
thisDataSet.Tables["学籍"].PrimaryKey = keys;

c++实现学籍信息管理系统实训报告材料

c++实现学籍信息管理系统实训报告材料

实训任务书一、题目1、电话簿管理系统2、商品销售管理系统3、基于内存的学籍管理系统(以windows系统实现为主,尝试Linux平台下的程序实现)二、实训的性质和任务1、巩固和强化学生的程序设计基本知识和基本技能,尤其是C语言的基本数据类型、构造类型、函数、指针、文件等等方面的基本知识和技能。

2、培养和训练学生综合利用所学基本知识和基本技能进行小型应用程序开发的技能。

3、培养学生适应岗位需要,独立分析问题、解决问题的基本能力,以及团队合作精神。

三、实训的基本要求通过本次实训,学生应达到以下几个方面的要求:1、素质要求以积极认真的态度对待本次实训,遵章守纪,团队协作。

善于发现问题,分析问题,解决问题,努力培养自己的独立工作能力。

2、知识要求熟练账务C语言的集成开发环境的使用,以及C语言的数据类型、语法、基本结构等。

熟练掌握C语句的功能、用法以及函数的调用使用和头文件的使用等。

3、能力要求学生应具有一定的项目分析能力、任务分解能力、组织实施能力以及理论练习实际应用的能力。

学生应具有一定的查阅教材、各类相关资料及工具书的能力,进而养成自我学习的习惯。

通过本次实训使学生基本能够把握C语言的精髓,并能够熟练使用C语言编写简单的程序和通过实际的分析、理论练习实际能够编制出现实生活或模拟现实生活中简单的、常见的系统。

四、实训内容及要求五、考核指标及成绩评定实训成绩由下面构成:平时成绩(10%)+作品(70%)+实训报告(20%)=总评成绩作品成绩评定标准:1、全部完成90-1002、主要功能完成70-903、部分功能完成60-704、少部分完成40-605、几乎没做0-40完成期限:年月日指导教师签章:专业负责人签章:教学院长签章年月日目录1 实训简介1.1 实训任务1.2 题目介绍1.3 主要内容1.4 基本要求2 整体设计流程2.1 整体设计思路2.2 设计流程2.3 包含的模块3 详细设计以及设计的实现3.1.录入信息模块的设计与实现3.2.输出信息的设计与实现3.3.修改信息模块的设计与实现3.4.插入信息的设计与实现3.5 查询信息的设计与实现3.6 排序信息的设计与实现3.7 删除信息的设计与实现4 总结5 参考文献6 附录(源代码)正文1实训简介1.1实训任务对程序设计的基本知识与基本技能有进一步的掌握,能用基本的语言以自己的逻辑实现自定义的功能来进行小型应用程序开发。

c语言学籍管理系统实训报告

c语言学籍管理系统实训报告

目录1 实训目的 ........................................................................................... - 1 -2系统简介 ............................................................................................ - 1 -3 系统的需求分析 ............................................................................... - 1 -4 系统的概要设计 ............................................................................... - 2 -4.1系统功能结构图 (2)4.2数据结构设计 (2)4.3函数设计 (3)5 详细设计 ........................................................................................... - 5 -6 实现代码 ........................................................................................... - 9 -7程序测试 .......................................................................................... - 15 -8 个人总结 ......................................................................................... - 17 -1 实训目的(1)进一步掌握和利用C语言进行程设计的能力。

学生籍贯信息管理系统c++实验报告

学生籍贯信息管理系统c++实验报告

学生籍贯信息管理系统c++实验报告C++班级:学号:姓名:目录一(程序设计思路及步骤(一)程序设计步骤(二)程序设计思路二(流程图三、完整源程序四、运行界面五、存在问题六、心得体会学生籍贯信息管理系统一(程序设计思路及步骤 (一)程序设计思路涉及一个学生籍贯信息系统,能够对高校的学生籍贯进行管理,包括了登记籍贯,查询籍贯,以及籍贯信息管理系统等。

基本要求:1(实现对学生姓名、学号的录入2(实现对学生籍贯信息的录入3(计算并查询学生所对应的籍贯4(修改学生籍贯(二)程序设计步骤。

1(计学生界面。

2(建立类别:学生基本信息类,籍贯信息类3(合理使用继承和多态技术把各类组合起来。

二(流程图开始主界面输入查询增加删除修改三、完整源程序#include <iostream> #include <string> #include <fstream> #include<cstring> using std::string; using std::fstream; using std::cin;using std::cout; using std::endl; using std::ostream; usingstd::iostream; using std::ifstream; using std::ofstream; using std::ios;class STUDENT{private:static NO; //静态变量统计学生人数NOlong int IDno;string Name,JiGuan;public:STUDENT(){}friend ostream& operator<<(ostream& out,STUDENT& a);//运算符<<重载。

使<<直接按照自己的想要的格式自动输出void LR(){cout<<"-----------------学生信息录入------------------"<<endl; SETNAME();SETIDNO();SETJG();}void SETNAME(string name1)//函数重载{Name=name1;}void SETIDNO(int idno1)//函数重载{IDno=idno1;}void SETJG(string JG1)//函数重载{JiGuan=JG1;}string GETNAME()//得到NAME的值{return Name;}string GETJG(){return JiGuan;}long int GETIDNO()//得到学号的值{return IDno;}void SETJG()//函数重载{cout<<"请输入学生籍贯信息:";cin>>JiGuan;cin.clear();cin.sync();}void SHow_s(){cout<<*this;}void SETNAME()//函数重载{cout<<"请输入学生姓名:";cin>>Name;cin.clear();cin.sync();}void SETIDNO()//函数重载{long int id;cout<<"请输入学生证号码:";cin>>id;cin.clear();cin.sync(); if((id>=100000000)&&(id<=999999999)){IDno=id;}else{cout<<"您输入的学生证号码有误,请重新输入!"<<endl; SETIDNO();}}};ostream& operator<<(ostream& out,STUDENT& a1)//运算符<<重载{out<<a1.IDno<<"号"<<<<"学生"<<" "<<"籍贯"<<a1.JiGuan<<" ";return out;};int STUDENT::NO=0;//静态变量NO赋初值class MENU :public STUDENT{public:STUDENT S[100];void cd(){int i;cout<<"---------------学生籍贯信息管理系统-----------------"<<endl;cout<<""<<endl;cout<<"1.录入学生信息"<<endl;cout<<"2.读取学生信息"<<endl;cout<<"3.查询学生信息"<<endl;cout<<"4.修改学生信息"<<endl;cout<<"5.退出学生管理系统"<<endl;cout<<""<<endl;cout<<"----------------------------------------------------"<<endl; cin>>i;cin.clear();cin.sync();switch(i){case 1:Lr();break;case 2:Dr();break;case 3:Cx();break;case 4:Xg();break;case 5:{system("pause");exit(0);}}}void Lr()//录入函数{char m;int n=STUDENT::NO;for(n;n<100;n++){S[n].LR();ofstream fout("E:\\西安工业大学学生学籍表.txt",ios::app); if(!fout){cout<<"错误~~程序结束"<<endl;exit(0);}fout<<S[n].GETIDNO()<<" "<<S[n].GETNAME()<<""<<S[n].GETJG()<<" "<<endl;fout.close();cout<<"是否录入下一个学生的信息(Y/N)"<<endl;cin>>m;cin.clear();cin.sync();STUDENT::NO++;if(m=='N'||m=='n'){cout<<"即将返回主菜单....."<<endl;cd();} }}void Dr()//读取函数{string Name2,JiGuan2;int m;long int IDNO2;ifstream fin("E:\\西安工业大学学生学籍表.txt");if(!fin){cout<<"错误~~~~。

(完整word版)C学籍管理系统实验报告

(完整word版)C学籍管理系统实验报告

山东理工大学计算机学院课程设计(数据库设计实践)班级姓名学号指导教师二○一年月日课程设计任务书及成绩评定课题名称学生学籍管理系统Ⅰ、题目的目的和要求通过数据库设计实践的操作与实践,使学生了解关系数据库的相关理论知识和有关工具软件的使用技巧,在一定程度上提高应用程序的综合开发能力和创新意识、创新能力,具体掌握的基本能力有以下几方面:1、学习和巩固《数据库系统原理》的基本知识。

2、关系数据库管理系统的基本使用方法。

3、熟悉SQL语言的主要功能及SQL语句的使用操作。

4、熟悉数据库管理系统的设计过程,培养解决实际问题的能力。

5、小型数据库应用系统的设计方法。

要求独立完成该课题设计.Ⅱ、设计进度及完成情况Ⅲ、主要参考文献及资料[1]王珊,萨师煊主编。

数据库系统概论(第四版).北京:高等教育出版社,2006。

5[2]蒋文沛主编。

SQL Server 2005实用教程 .人民邮电出版社,2009.6 [3]罗福强,杨剑,张敏辉主编。

C#程序设计经典教程 .清华大学出版社,2011。

10学科部主任___________Ⅳ、成绩评定设计成绩:指导老师:二○一三年十二月六日(完整word版)C学籍管理系统实验报告目录第一章系统概述 (1)第二章系统分析 (2)第三章功能分析 (4)第四章系统实现 (6)第五章调试过程中的问题及系统测试情况 (14)第六章结束语 (17)第一章概述1。

前言学校大多要管理成千上万学生的信息,但仍有很多学校然传统的管理模式……使用计算机对学生信息进行管理,具有手工管理所无法比拟的优点.例如:出错可能性小、处理效率高、易于管理等等.本系统为学生学籍管理系统,是一个的信息管理系统,其开发主要包括数据库的建立和维护以及前端应用程序的开发两个方面.……经过分析,使用了VS2010开发工具,利用其提供的各种面向对象的开发工具,在短时间内建立系统应用原型,然后,对初始原型系统进行需求迭代,不断修正和改进,直到形成一个满意的可行系统.2.可行性研究①目的:可行性研究的目的是用最小的代价在尽可能的时间内确定问题是否能够解决。

C语言课程设计实验报告学生信息管理系统

C语言课程设计实验报告学生信息管理系统

C语言课程设计实验报告学生信息管理系统语言程序设计实验报告C报告人:孟凡超指导老师:姜林报告日期:XX年x月x日C语言程序设计实验报告C语言课程设计实验报告1设计目的:学生信息管理系统设计学生信息包括:学号,姓名,年龄,性别,出生年月,地址,电话,E-等试设计一学生信息管理系统,使之能提供以下功能: 1 系统以菜单方式工作 2 学生信息录入功能---输入 3 学生信息浏览功能---输出 4 查询、排序功能---算法按学号查询按姓名查询5 学生信息的删除与修改2总体设计:程序设计组成框图学生信息录入学生信息浏览主菜单学分查询信息编辑信息添加信息删除信息查询信息添加姓名查询信息编辑信息删除2C语言程序设计实验报告流程图开始清屏n=1判断n>0?NYpr输入选择chch1调用2 调用3 调用 pr24N=0结束3C语言程序设计实验报告3详细设计:1>函数入口说明 pr 输出主菜单pr2 输出检索菜单界面文件操作:打开文件操作:保存( n) 编辑子菜单:对姓名编辑 ( n) 编辑子菜单:对年龄编辑 ( n) 编辑子菜单:对性别编辑 ( n) 编辑子菜单:对出生年月编辑 ( n) 编辑子菜单:对住址编辑 ( n) 编辑子菜单:对电话进行编辑( n) 编辑子菜单:对电子邮件地址编辑 ( n) 显示翻页致末尾的信息 ( n) 信息编辑函数 ( n) 删除信息的函数 ( n) 输出编辑界面检索:按学号检索:按姓名录入、添加信息学生信息查看主函数 2>调用关系( n) ( n)pr( n)pr2( n)( n)( n)( n) (同上)( n)( n) ( n) ( n) ( n) ( n)3>参数说明( n)、( n)、( n) 、( n) 、( n) 、( n)、( n)、( n)、( n)、( n)、( n) 函数中的n都为检索中确定的学生数组下标4C语言程序设计实验报告4调试与测试:1>调用pr2函数一闪而过解决方法:添加语句使程序暂停2>无法有效的控制输出函数循环终止解决方法:添加全局变量“”使用该全局变量来记录学生总数,从而控制输出循环的次数3>查询函数数据量过多时同时输出,先输出的内容无法查看,或需用户自行查看解决方法:添加语句使程序暂停,当用户按时继续4>文件在打开和保存时有问题解决方法:调整文件的打开方式,从原来的单纯的w+修改为添加一个语句,当没有文件时执行w+的操作,否则执行r+避免了原存储文件被覆盖的问题5C语言程序设计实验报告5源程序清单和执行结果:#<> #<> #<> #<> =0; { id; [30]; ; [2]; [9]; [80]; [15];[25]; }[];pr { (""); ("******学生信息管理系统******"); ("\n----------V ----------"); ("\n您想要:"); ("\n 1录入学生信息"); ("\n 2浏览学生信息"); ("\n 3检索学生信息"); ("\n 4退出信息管理"); ("\n----- 孟凡超-----"); ("\n****************************\n"); }pr2 { ; ; a; ch; (a) { (""); ("******学生信息管理系统******"); ("\n----------检索----------"); ("\n您想要:"); ("\n 1按学号检索"); ("\n 2按姓名检索"); ("\n 3返回主菜单"); ("\n\n----- 孟凡超-----"); ("\n****************************\n"); ch=; (ch) { '1':;; '2':;; '3':a=0;; } } }{ *fp; n; ((fp=("""r+"))==) fp=("""w+"); (n=0;n<;n++) (&[n]( )1fp);(&41fp);(fp); }{ n; *fp; fp=("""r+");6C语言程序设计实验报告(n=0;n<;n++) (&[n]( )1fp); (&41fp); (fp); }( n) { ("\n新姓名:"); ("%s"[n]); }( n) { ("\n新年龄:"); ("%d"&[n]); }( n) { ("\n新性别:"); ("%s"[n]); }( n) { ("\n新出生年月"); ("%s"[n]); }( n) { ("\n新地址:"); ("%s"[n]); }( n) { ("\n新电话:"); ("%s"[n]); }( n) { ("\n新E-:"); ("%s"[n]); }( n) { (n==) (""); //清屏 ("******学生信息管理系统******"); ("\n----------检索----------"); ("\n已检索到末尾"); ("\ "); ("\n\n----- 孟凡超-----"); ("\n****************************\n"); }( n) { ch; a=1b; (a) { (""); ("******学生信息管理系统******"); ("\n----------修改----------"); ("\n请输入你想修改的内容:"); ("\n1姓名 2年龄 3性别 4出生年月 5地址 6电话 \n"); ("\n\n----- 孟凡超-----"); ("\n****************************\n"); ; ch=; (ch) {7C语言程序设计实验报告'1':(n);; '2':(n);; '3':(n);; '4':(n);; '5':(n);; '6':(n);; '7':(n);; } b=1; (b) { ("\n确认吗?(y/n)"); ; ch=; (ch) { 'Y': 'y':b=0;a=0;; 'N': 'n':b=0;; } } } }( n) { a; (a=n;a<;a++) { ([a][a+1]); [a]=[a+1]; ([a][a+1]); ([a][a+1]); ([a][a+1]); ([a][a+1]); ([a][a+1]); } --; ("删除成功!"); }( n) { a=1; ch; (a) { ; ("\n您想要:"); ("\n\n1修改学生信息"); ("\n2删除该条信息"); ("\n3返回上级菜单"); ("\n4查看下条信息"); ch=; (ch) { '1':(n)a=0;; '2':(n)a=0;; '3':a=0;(0);; '4':a=0;; } } }{ nij=0; (""); ("******学生信息管理系统******"); ("\n----------检索----------"); ("\n请输入想要检索的学号:"); ("%d"&n); (n<=) { n=n--; //拷贝后一个学生信息到前一个人上8C语言程序设计实验报告("学号姓名年龄性别出生年月\n"); ("%4d "[n]id); ("%12s "[n]); ("%4d "[n]); ("%4s "[n]); ("%8s \n"[n]); ("\n\n\n学号电话E- 地址\n"); ("%4d "[n]id); ("%15s "[n]); ("%15s "[n]); ("%s\n" [n]); j=(n); i++; } (i==0) { ("\:无此学生"); ("\n----- 孟凡超-----"); ("\n****************************\n"); } { (j==0) ; { (""); (n); ; } }:; }{ nji=0; m[30]; (""); ("******学生信息管理系统******"); ("\n----------检索----------"); ("\n请输入想要检索的姓名:"); ("%s"m); (n=0;n<;n++) { ((m[n])==0) { (""); ("学号姓名年龄性别出生年月\n"); ("%4d "[n]id); ("%8s "[n]); ("%4d "[n]); ("%4s "[n]); ("%8s \n"[n]); ("\n\n\n学号电话 E- 地址\n"); ("%4d "[n]id); ("%15s "[n]); ("%15s "[n]); ("%s\n" [n]); i++; ((j=(n))==0) ; } } (i==0) ("\:无此学生"); (j!=0) (n); ; ; }{ an=1m;9C语言程序设计实验报告ch; (n) { a=; (""); ("ID:"); [a]id=(a+1); ("%d"[a]id); ("\:"); ("%s"&[a]); ("\:"); ("%d"&[a]); ("\:"); ("%s"&[a]); ("\( ):"); ("%s"&[a]); ("\:"); ("%s"&[a]); ("\:"); ("%s"&[a]); ("\nE-:"); ("%s"&[a]); m=1; (m) //做一个循环,直到m=0时跳出{ (""); ("ID:"); ("%d"[a]id); ("\:"); ("%s"[a]); ("\:"); ("%d"[a]); ("\:"); ("%s"&[a]); ("\:"); ("%s"[a]); ("\:"); ("%s"[a]); ("\:"); ("%s"[a]); ("\nE-"); ("%s"[a]); ("\n请选择:1确认并继续 2重新填写 3放弃并返回 4确认并返回"); ch=; (ch) { '1':m=0;++;; '2':m=0;; '3':m=0n=0;; //选择此项时,m=0,循环终止 '4':m=0n=0;a=++;; } } } }{ =1in=1=1=/5+1; //设定变量控制翻页 ch; (n) { (""); ("学号姓名年龄性别出生年月\n"); (i=-1;i<+4&&i<;i++) { ("%4d "[i]id); ("%12s "[i]); ("%4d "[i]); ("%4s "[i]); ("%8s\n"[i]); } ("\n\n\n学号电话 E- 地址\n"); (i=-1;i<+4&&i<;i++)10C语言程序设计实验报告{ ("%4d "[i]id); ("%15s "[i]); ("%15s "[i]); ("%s\n" [i]); } ("\n1上一页 2下一页 0退出共学生%d人第%d页共%d页\n"); ch=; (ch) { '1':--; (==0) =(-1)*5+1=; =(-1)*5+1;; '2':++; (>) =1=1; =(-1)*5+1;; '0':n=0;; } } }。

学生学籍管理系统c++课程设计报告书

学生学籍管理系统c++课程设计报告书

《学生学籍管理系统》程序设计基础课程设计报告专业:班级:学号:姓名:指导教师:二OO八年六月二十六日C++课程设计——学籍管理系统实验报告1、对C++设计的《学生学籍管理系统》总体说明我这次做的课程设计是《学生学籍管理系统》,本程序采用C++程序语言编写,运用了基于对象和面向对象的程序设计。

它主要是完成对学生的基本信息和成绩进行录入、查询和删除功能。

实施起来简单快捷,虽然程序简单,但可以作为老师的辅助软件对学生的基本信息和各科成绩进行管理。

2、总体设计本程序的流程图如下:3、对《学生学籍管理系统》的介绍(1)具体功能:a)数据录入功能:对B.TXT进行数据录入,只录入每个学生的学号、课程编号、课程名称、学分、平时成绩、实验成绩、卷面成绩共7个数据. 综合成绩、学分由程序根据条件自动运算(2)查询功能:分为学生基本情况查询和成绩查询两种:A:学生基本情况查询:A1----输入一个学号或(可实现选择),查出此生的基本信息并显示输出。

A2---输入一个宿舍,可查询出本室所有的学生的基本信息并显示输出。

B:成绩查询:B1:输入一个学号时,查询出此生的所有课程情况,格式如下:学号:xx 姓名:xxxxx课程编号:xxx 课程名称:xxxxx 综合成绩:xxxx 实得学分: xx课程编号:xxx 课程名称:xxxxx 综合成绩:xxxx 实得学分: xx课程编号:xxx 课程名称:xxxxx 综合成绩:xxxx 实得学分: xx………………………共修:xx科,实得总学分为: xxxb)删除功能:当在A.TXT中删除一个学生时,自动地在B.TXT中删除此人所有信息。

c)排序功能:能实现选择按综合成绩或实得学分升序或降序排序并显示数据。

(2)源程序说明:源程序清单及注释如下:#include<iostream>#include<fstream>#include<iomanip>using namespace std;class Basic{public:virtual int input(ifstream &its)=0;virtual void input()=0;virtual void display(ofstream &its)=0;virtual void display()=0;virtual void display_1(){}friend class College;protected://把这些数放在这,方便调用Basic *next;//指针int number;//学号char name[40];//int dom_number;//宿舍号double mark; //综合成绩int credit; //实得学分};class Student:virtual public Basic{public:int input(ifstream &its)//输入流{its>>number;if(number==-1)return 0;else{its>>name>>sex>>dom_number>>phone_number;return 1;}}void input()//输入{cout<<"学号:";cin>>number;cout<<" :";cin>>name;cout<<"性别:";cin>>sex;cout<<"宿舍:";cin>>dom_number;cout<<":";cin>>phone_number;}void display(ofstream &its)//输出流{its<<number<<" "<<name<<" "<<sex<<" "<<dom_number<<" "<<phone_number<<endl;}void display()//输出{cout<<number<<setw(10)<<name<<setw(6)<<sex<<setw(10)<<dom_number<<setw(13)< <phone_number<<endl;}private:char sex[5];//性别char phone_number[20];//};class Course:virtual public Basic{public:int input(ifstream &its)//输入流函数{its>>number;if(number==-1)return 0;else{its>>chass_number>>chass_name>>chass_mark>>peacetime_mark>>experiment_mark>>txt_mark;account();return 1;}}void input()//输入函数{cout<<"学号=";cin>>number;cout<<"课程编号=";cin>>chass_number;cout<<"课程名称=";cin>>chass_name;cout<<"学分=";cin>>chass_mark;cout<<"平时成绩=";cin>>peacetime_mark;cout<<"实验成绩=";cin>>experiment_mark;cout<<"卷面成绩=";cin>>txt_mark;account();}void account()//计算综合成绩和实得学分{int i;if(experiment_mark==-1)mark=peacetime_mark*0.15+experiment_mark*0.15+txt_mark*0.7;else mark=peacetime_mark=peacetime_mark*0.3+txt_mark*0.7;i=mark/10;switch(i){case 10: credit=chass_mark;break;case 9: credit=chass_mark;break;case 8: credit=chass_mark*0.8;break;case 7: credit=chass_mark*0.7;break;case 6: credit=chass_mark*0.6;break;default:credit=0;break;}}void display(ofstream &its)//输出流函数{its<<number<<" "<<chass_number<<" "<<chass_name<<" "<<chass_mark<<" "<<peacetime_mark<<" "<<experiment_mark<<" "<<txt_mark<<endl;}void display()//输出函数{cout<<number<<setw(10)<<chass_number<<setw(11)<<chass_name<<setw(5)<<chass_ mark<<setw(7)<<peacetime_mark<<setw(10)<<experiment_mark<<setw(10)<<txt_mark<<setw(10)<<ma rk<<setw(10)<<credit<<endl;}void display_1(){cout<<"课程编号:"<<chass_number<<" "<<"课程名称:"<<chass_name <<" "<<"综合成绩:"<<mark<<" "<<"实得学分:"<<credit<<endl;}private:char chass_number[30];//课程编号char chass_name[30];//课程名称int chass_mark; //学分int peacetime_mark;//平时成绩int experiment_mark;//实验成绩int txt_mark; //卷面成绩};class College//链表类{public:College(int i)//构造函数建立初链,i=0建立Student链表,i=1建立Course 链表{ji=0;Basic *p;int t;PL=i;if(PL==0)//根据PL,打开相应的文件{f.open("A.txt",ios::in);head=new Student;p=new Student;}else{f.open("B.txt",ios::in);head=new Course;p=new Course;}if(!f)//判断f是否打开文件{cout<<"错误"<<endl;abort();}t=head->input(f);head->next=p;p->next=NULL;for(;;)//读入文件数据,并将数据插入链表中{if(i==0)p=new Student;else p=new Course;t=p->input(f);if(t==0)break;head=Build(p);}f.close();//关闭文件}~College(){save();}Basic *Build(Basic *p)//插入函数,将p有序的插入链表中{Basic *p1=head,*p2=head;int i;for(i=0;p1->next!=NULL;i++){if(i==0&&p->number<p1->number)//处理头链{p->next=p1;head=p;ji++;break;}else if(p->number<p1->number)//处理中间{p2->next=p;p->next=p1;ji++;break;}else if(i==ji)//处理尾{p2=p1;p1=p1->next;p2->next=p;p->next=p1;ji++;break;}p2=p1;p1=p1->next;}return head;}void display()//输出链表信息{Basic *a=head;for(;a->next!=NULL;a=a->next)a->display();}void find_number()//查找学号(student) {int i;Basic *h=head;cout<<"请输入你想找的学号:";cin>>i;for(;h->next!=NULL;h=h->next){if(h->number==i){h->display();break;}}}void find_name()//查找(student){char i[40];Basic *h=head;cout<<"请输入你想找的:";cin>>i;for(;h->next!=NULL;h=h->next){if(strcmp(h->name,i)==0){h->display();break;}}}void find_dom_number()//查找宿舍(student){int i;Basic *h=head;cout<<"请输入你想找的宿舍:";cin>>i;for(;h->next!=NULL;h=h->next)if(h->dom_number==i)h->display();}Basic *get_head(){return head;}void find(Basic *a)//输入一个学号时,查询出此生的所有课程情况(Course) {int i;Basic *h=head;cout<<"请输入你想查的学号:";cin>>i;for(;a->next!=NULL;a=a->next){if(a->number==i){cout<<"学号:"<<i<<" ";cout<<"姓名:"<<a->name<<endl;break;}}for(;h->next!=NULL;h=h->next)if(h->number==i)h->display_1();}void Delete(int j)//删除,j表示学号{Basic *p1=head,*p2=head;int i=0;for(;p1->next!=NULL;){if(i==0&&p1->number==j)//处理头{head=p1->next;i=-1;//保证下次还可以删除头链}else if(p1->number==j)//处理尾{p2->next=p1->next;}p2=p1;p1=p1->next;i++;}}void delete_student(College &b)//当在 A.TXT中删除一个学生时,自动地在B.TXT中删除此人所有信息(student){int i;cout<<"请输入你想删除的学生的学号:";cin>>i;Delete(i);b.Delete(i);}void taxis_mark()//综合成绩排序(Course){Basic *a=head;Basic *m[90],*t;int i,j,k,b;cout<<"升序-1 降序-2"<<endl;cin>>b;if(b==1)//升序{for(i=0;a->next!=NULL;i++){m[i]=a;a=a->next;}for(j=0;j<i;j++)for(k=j;k<i;k++){if(m[j]->mark>m[k]->mark){t=m[j];m[j]=m[k];m[k]=t;}}cout<<"按综合成绩升序排序为"<<endl;for(j=0;j<i;j++)m[j]->display();}else if(b==2)//降序{for(i=0;a->next!=NULL;i++){m[i]=a;a=a->next;}for(j=0;j<i;j++)for(k=j;k<i;k++){if(m[j]->mark<m[k]->mark){t=m[j];m[j]=m[k];m[k]=t;}}cout<<"按综合成绩降序排序为"<<endl;for(j=0;j<i;j++)m[j]->display();}}void taxis_credit()//学分排序(Course){Basic *a=head;Basic *m[90],*t;int i,j,k,b;cout<<"升序-1 降序-2"<<endl;cin>>b;if(b==1)//升序{for(i=0;a->next!=NULL;i++){m[i]=a;a=a->next;}for(j=0;j<i;j++)for(k=j;k<i;k++){if(m[j]->credit>m[k]->credit){t=m[j];m[j]=m[k];m[k]=t;}}cout<<"按学分升序排序为"<<endl;for(j=0;j<i;j++)m[j]->display();}else if(b==2)//降序{for(i=0;a->next!=NULL;i++){m[i]=a;a=a->next;}for(j=0;j<i;j++)for(k=j;k<i;k++){if(m[j]->credit<m[k]->credit){t=m[j];m[j]=m[k];m[k]=t;}}cout<<"按学分降序排序为"<<endl;for(j=0;j<i;j++)m[j]->display();}}void save() //保存函数{Basic *h=head;int i=-1;if(PL==0)s.open("A.txt",ios::out);else if(PL==1)s.open("B.txt",ios::out);for(;h->next!=NULL;h=h->next)h->display(s);s<<i<<endl;s.close();}private:ifstream f;ofstream s;Basic *head;//链表的头指针int ji;//计算插入的数int PL;//判断建立怎样的链表};int main(){int i,k[10];Course *c;College a(0),b(1);cout<<" ************************* 欢迎进入!**********************"<<endl;cout<<" *************************学籍管理系统**********************"<<endl;cout<<" ******** ********"<<endl;cout<<" ******** ********"<<endl;to:cout<<" ******** <1> 录入 <2> 查询 <3> 删除********"<<endl;cout<<" ******** ********"<<endl;cout<<" ******** <4> 排序 <5> 全部输出 <其他> 结束********"<<endl;cout<<" ******** ********"<<endl;cout<<"****************"<<endl;cout<<"***********************************************************"<<endl;cin>>i;if(i==1){c=new Course;c->input();b.Build(c);goto to;}else if(i==2){cout<<"1-学生基本情况查询 2-成绩查询"<<endl;cin>>k[0];if(k[0]==1){cout<<"1-学号查询 2-查询 3-宿舍查询"<<endl;cin>>k[1];if(k[1]==1)a.find_number();else if(k[1]==2)a.find_name();else if(k[1]==3)a.find_dom_number();goto to;}else if(k[0]==2)b.find(a.get_head());goto to;}else if(i==3){a.delete_student(b);goto to;}else if(i==4){cout<<"1-综合成绩排序 2-实得学分排序"<<endl;cin>>k[2];if(k[2]==2)b.taxis_credit();else if(k[2]==1)b.taxis_mark();goto to;}else if(i==5){cout<<"学号性别宿舍 "<<endl;a.display();cout<<endl;cout<<"学号课程编号课程名称学分平时成绩实验成绩卷面成绩综合成绩实得学分"<<endl;b.display();goto to;}return 0;}4、遇到问题及解决方案本程序是运用类编写但与平时作业不同的是难度较大,涉及容较广。

c语言学生信息管理系统实验报告

c语言学生信息管理系统实验报告

C语言学生信息管理系统实验报告C语言课程设计学生信息管理系统姓名洪伟生院系计算机学院日期年 7 月 5 日目录第一章设计要求………………………………………………第二章算法分析1.理论依据…………………………………………………2.主要实现方法……………………………………………2.1整体流程图………………………………………2.2函数功能和函数之间的调用关系………………第三章代码(源代码)………………………………………第四章分析说明………………………………………………第五章总结……………………………………………………第一章、设计要求1、利用所学的知识、理论和实际结合,利用资源,采用模块化的结构,使用模仿修改自主设计相结合的方法,锻炼学生综合分析解决实际问题的编程能力;2、经过C语言各个函数功能来实现对学生信息的管理,学生信息包括学生姓名,学号,各科成绩;管理方式包括对学生信息的录入,保存,排序,查找、修改、删除等功能。

第二章、算法分析1、程序理论依据经过C语言的程序设计基础的掌握,对学生成绩管理系统进行编写程序。

首先,经过链表这一数据结构来对学生的信息进行录入以及操作,在其过程中,经过各个功能语句以及选择结构,循环结构等方式的结合来达到所要实现的程序功能。

最后经过对C 语言中对文件的操作,对已有学生成绩的读取和新建学生成绩的录入保存。

2、主要实现方法2.1整体流程图2.2、函数功能和函数之间的调用关系2.2.1、函数功能:void Menu_1(); //主菜单void Menu_2(); //二级菜单学生信进退出学生信学生信学生信学生信学生信学生信返回主void swap(struct student * phead,struct student * pback);// 链表节点互换void Save(struct student * head); // 写入磁盘void Search(struct student * head); // 查找学生信息void Read(struct student * head); // 显示学生信息void Sort(struct student * head); // 链表节点排序struct student * Create(); //学生信息手动录入struct student * Readpoint(); //磁盘文件写入内存struct student * Modify(struct student * head); // 链表结构体成员修改struct student * Add(struct student * head); // 链表节点插入struct student * Delete(struct student * head); // 链表节点删除。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

{ return Name;
} string GETJG() {
return JiGuan; } long int GETIDNO()//得到学号的值 {
return IDno; } void SETJG()//函数重载 {
cout<<"请输入学生籍贯信息:"; cin>>JiGuan;cin.clear();cin.sync(); } void SHow_s() { cout<<*this; } void SETNAME()//函数重载 {
static NO; 变量 统计学生人数 NO
long int IDno; string Name,JiGuan;
//静态
public: STUDENT(){} friend ostream& operator<<(ostream& out,STUDENT& a);// 运
算符<<重ቤተ መጻሕፍቲ ባይዱ。使<<直接按照自己的想要的格式自动输出 void LR() { cout<<"-----------------学生信息录入------------------"<<endl; SETNAME();SETIDNO();SETJG(); } void SETNAME(string name1)//函数重载 { Name=name1; } void SETIDNO(int idno1)//函数重载 { IDno=idno1; } void SETJG(string JG1)//函数重载 { JiGuan=JG1; } string GETNAME()//得到 NAME 的值
C++课程设计报告
学生籍贯信息管理系统
班级: 学号: 姓名:
目录
一.程序设计思路及步骤 (一)程序设计步骤 (二)程序设计思路 二.流程图 三、完整源程序 四、运行界面 五、存在问题 六、心得体会
学生籍贯信息管理系统
一.程序设计思路及步骤 (一)程序设计思路
涉及一个学生籍贯信息系统,能够对高校的学生籍贯进行管理,包括了登记籍贯, 查询籍贯,以及籍贯信息管理系统等。 基本要求: 1.实现对学生姓名、学号的录入 2.实现对学生籍贯信息的录入 3.计算并查询学生所对应的籍贯 4.修改学生籍贯
if(S[m].GETIDNO()==n) {
cout<<" 请 修 改 "<<S[m].GETIDNO()<<" "<<S[m].GETNAME()<<"同学的信息"<<endl;
S[m].SETIDNO();S[m].SETNAME();S[m].SETJG(); } } cd(); }
};
void main() {
"<<a1.JiGuan<<" "; return out; };
int STUDENT::NO=0;//静态变量 NO 赋初值 class MENU :public STUDENT { public:
STUDENT S[100]; void cd()
{ int i; cout<<"--------------- 学 生 籍 贯 信 息 管 理 系 统
STUDENT::NO++; if(S[m].GETIDNO()==S[m-1].GETIDNO()) {
STUDENT::NO=STUDENT::NO-1; break; }
}
fin.close(); cout<<"导入成功"<<endl; cd(); }
void Cx()//查询函数 {
cout<<"目前注册了"<<STUDENT::NO<<"位学生"<<endl; long int n;int k; cout<<" 请 输 入 查 询 学 生 的 学 号:";cin>>n;cin.clear();cin.sync(); for(int m=0;m<STUDENT::NO;m++) {
MENU c1; c1.cd(); system("pause"); } 四、运行界面
五、存在问题
(一)水平有限,不能够完全的实现全部的功能。 (二)程序写的有点复杂。 (三)程序之间的衔接不是很好。
六、心得体会
这次课程设计中基本运用到了我们所学的所有知识点,这样不仅加深了对 C++的各个知识点有了更深的理解,而且从中我也感受到了编写这样的大程序给 我带来的无比的成就感,在这次课程设计中培养了我独立工作的能力,树立了对 自己工作能力的信心,相信会对今后的学习工作生活有非常重要的影响。而且大 大提高了动手的能力,使我充分体会到了在创造过程中的探索的艰难和成功的喜 悦。虽然这个项目还不是很完善,但是在设计过程中所学到的东西是这次课程设 计的最大收获和财富,使我终身受益。
cout<<"请输入学生姓名:"; cin>>Name;cin.clear();cin.sync(); } void SETIDNO()//函数重载 { long int id; cout<<"请输入学生证号码:";cin>>id;cin.clear();cin.sync(); if((id>=100000000)&&(id<=999999999)) {
if(S[m].GETIDNO()==n) {
k=1; S[m].SHow_s(); } } if(k!=1) { cout<<"查无此人"<<endl;
} cd();
} void Xg()//修改函数 {
long int n; cout<<" 请 输 入 修 改 学 生 的 学 号:";cin>>n;cin.clear();cin.sync(); for(int m=0;m<100;m++) {
(二)程序设计步骤。
1.计学生界面。 2.建立类别:学生基本信息类,籍贯信息类 3.合理使用继承和多态技术把各类组合起来。
二.流程图
开始
主界面
输入 查询 增加 删除 修改
三、完整源程序 #include <iostream> #include <string> #include <fstream> #include <cstring> using std::string; using std::fstream; using std::cin; using std::cout; using std::endl; using std::ostream; using std::iostream; using std::ifstream; using std::ofstream; using std::ios; class STUDENT { private:
IDno=id; } else {
cout<<"您输入的学生证号码有误,请重新输入!"<<endl; SETIDNO(); } } }; ostream& operator<<(ostream& out,STUDENT& a1)// 运 算 符 << 重 载 { out<<a1.IDno<<"号"<<<<"学生"<<" "<<"籍贯
switch(i) {
case 1:Lr();break; case 2:Dr();break; case 3:Cx();break; case 4:Xg();break; case 5:{system("pause");exit(0);} } } void Lr()//录入函数 { char m; int n=STUDENT::NO; for(n;n<100;n++) {
"<<endl; cout<<"5. 退 出 学 生 管 理 系 统 "<<endl;
cout<<" "<<endl; cout<<"----------------------------------------------------"<<endl; cin>>i;cin.clear();cin.sync();
-----------------"<<endl; cout<<" "<<endl; cout<<"1. 录 入 学 生 信 息 "<<endl; cout<<"2. 读 取 学 生 信 息 "<<endl; cout<<"3. 查 询 学 生 信 息 "<<endl; cout<<"4. 修 改 学 生 信 息
S[n].LR(); ofstream fout("E:\\ 西 安 工 业 大 学 学 生 学 籍 表.txt",ios::app); if(!fout)
{ cout<<"错误!!程序结束"<<endl; exit(0);
相关文档
最新文档