ImageVerifierCode 换一换
格式:DOCX , 页数:25 ,大小:225.52KB ,
资源ID:7836895      下载积分:12 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/7836895.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(C语言学生管理系统论文.docx)为本站会员(b****6)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

C语言学生管理系统论文.docx

1、C语言学生管理系统论文综合实验报告( 2008- 2009年度第1学期)实验名称: C语言课程设计 题 目: 学生籍贯信息记录簿 院 系:控制于计算机学院 班 级: 计算0802班 成员学号: 1101250224 成员姓名: 温裕青 指导教师: 郑玲 设计周数: 2 周 成 绩: 1本次课程设计目的通过一个企业人事管理系统,使学校档案管理工作系统化、规范化、自动化,从而达到提高学校管理效率。使学生掌握一门高级程序设计语言,了解面向对象程序设计的基本概念与方法,进而学会利用C+语言学会解决一般应用问题,并为后续的专业课程奠定程序设计基础。系统的基本模块:根据系统功能的要求,学生档案系统可以分为

2、新学生档案的输入,学生档案的修改、查询和删除等模块。2 系统需求分析2.1问题定义项目:学生管理应用软件。目的:让院校有效的管理体制学生信息,帮助学校老师掌握学生的情况。背景:根据当前某高校的学生管理出现异常问题,它浪费人力和其它资源。因此,这种缺陷而制定开发这个学生管理系统软件。2.2 可行性研究从技术方面,是通过C来做系统的前台,来实现整系统的功能;从操作方面,基本的录入、查询、修改等都能满足用户的需求;此次设计没有考虑经济可行性。经过这一阶段确定了该系统的粗略系统流程图。可行研究阶段的目标是:使工作人员从繁琐的填表,查表工作中解放出来;提高工作质量,使供需双方都获得满意的结果;促进报表,

3、提高工作效率。2.3 需求分析应该确定系统必须在Microsoft Visual C+ 6.0的环境下实现具有添加新学生、显示全部、删除、删除全部、修改、退出等功能的学生档案管理系统。通过以上可以知道该软件主要有以下功能模块:学生学籍异动管理奖惩情况管理档案管理成绩管理考勤管理其中本次课程设计实现的档案模块又分为如下子模块:登陆界面:主要是对用户权限的判断,.判断是否为合法用户,是合法用户的就可以对数据进行。新生录入:主要是将新生信息录入到数据库中;管理项目:对学生信息进行添加、删除、修改、查询等。3设计流程及算法3.1总体设计:1.设置输入输出流及将程序由磁盘文件保存,构件类stu,其主要包

4、括:学号,姓名,籍贯.2.构建无返回值main函数,输出由与程序相关操作构成的信息链表3.根据链表设置利用switch函数和循环函数将链表中的内容一一实现.3.2详细设计:设计流程图:目前程序已达到的功能档案管理添加修改查询删除系统 图3.1 系统设计流程图一信息链表内容如下: 请选择您需要的操作操作:(1)数据录入(2)增加人员(3)删除人员(4)修改数据查询:(5)按姓名查询(6)按学号查询(7)输出所有学生的籍贯信息(8)按籍贯查询二.选择相关操作请输入相对应的括号里的阿拉伯数字。三.设置do-while函数使输入序号与符号所需要求相对应。四.在do函数中设立switch语句,实现多分支

5、选择结构,并实现序号与相应内容的对应关系.SwitchCase 0数据录入case 1增加人员case 2删除人员case 3修改数据case 4按姓名查询case 5输出所有学生的籍贯信息case 6按籍贯查询 图3.23.3算法的实现与运行:在程序开始运行是既会出现一信息链表,按链表要求输入序号,若输入的数字不是在0-7这个范围之内则要求重新输入。而实现该过程需要利用到boor语句和if循环。1case 0 数据录入:以cin和cout形式输入学号,籍贯,姓名,以filej形式存入到数组si中,并将信息存 入到磁盘中.filej=new ofstream(d:document.txt,io

6、s:ate);其作用是将输入的数据存入到已有的文件,文件指针指向文件末尾。既是将录入的内容添加到文件的末尾。并在输入完成后将*filej和si中的i和j都自加1,既是自动使文件指针指向文件末尾。char c; char name20,bornplace50;int number; do cout请输入姓名name; cout请输入学号:number; cout请输入籍贯:bornplace; filej=new ofstream(d:document.txt,ios:ate);*filej姓名name学号number籍贯bornplace endl; j+; si=new stu(name,n

7、umber,bornplace); i+; 2case 1增加人员:定义字符型变量姓名,籍贯,学号,并根据其大小分配相应的内存空间。输入相关内容,利用指针使输入的数据直接存入到内存中。char name20,bornplace50;int number; char c; do cout请输入您要增加的学生的姓名:name; cout请输入学号:number; cout请输入籍贯:bornplace; filej=new ofstream(d:document,ios:ate); *filej姓名name学号number籍贯bornplacename中找到与输入name相同的数据后,使其在输出时

8、是不显示的。char name20;bool flag3=0;char c; do cout请输入您要删除的学生姓名:name; for(int h=0;hname)=0) flag3=1; i-; do sh=sh+1; h+; while(h=i); if(flag3=0) cout您要求删除的对象本来就不存在!请检查输入的正确性!; 3case 3 修改数据:定义字符型变量姓名,籍贯,整型变量学号和布尔型变量,在利用do-while函数进行控制,在函数内输入学生的姓名,并利用程序中的strcmp 函数改变原数据库中对应学生姓名下的各个信息。其原理即是寻找到需要修改的学生后用重新输入的数据

9、信息将原信息覆盖,从而实现文件的修改。char name20,born50;int num;flag2=0; char c; do cout请输入您要修改的学生的姓名:name; for(int h=0;hname)=0) flag2=1; cout请输入新的学号:num; cout请输入新的籍贯:born; sh-number=num; strcpy(sh-bornplace,born); cout数据修改成功!; case 4 按姓名查询:定义一字符型数组,输入要查询学生的姓名,利用指针和strcmp函数及for循环在数据库中寻找相应的数据,在找到后输出。其寻找的格式为(*sq).name

10、。在找到后依次输出同一个类中的其他的内容。char t20;char c; do int flag1=0; cout请输入你要查询学生的姓名t; for(int q=0;qi;q+) if(strcmp(*sq).name,t)=0) flag1=1; cout您要查询的学生是:(*sq).name学号是:(*sq).number籍贯是:(*sq).bornplaceendl; if(flag1=0) cout对不起!您要查询的学生不存在!endl; case 5按学号查询:其主要操作与按姓名查询相似。case7 按籍贯查询:其主要操作与按姓名查询相似。case 6输出所有学生的籍贯信息:利用

11、strcmp函数将数据库中与要查询的学生相对应的信息内容从数据库中调出。其输出的方式为循环方式,设置循环条件,利用if语句,设置变量k,使k从0进行自加,直到k的值为h,并依次将sk的值输出,从而达到输出所有学生的学籍信息的目的。cout本系统所有学生的籍贯信息如下:endl; if(i=0) cout管理系统中没有录入数据或者数据已经被删除!endl; for(int k=0;ki;k+) coutk+1 姓名: name 学号: number 籍贯: bornplace endl; break; 4 数据结构的设计数据字典:数据字典包括以下几种类型的条目: 数据流条目数据流条目给出某个数据

12、流和定义,它通常是列出该数据流的各组成数据元素。该系统中的数据流条目有:学生基本信息学生姓名学生学号学生籍贯班级信息班号年级 逻辑结构的设计如表5.1所示:表4.1学生基本信息结构设计列名数据类型可否为空说明namechar20NOT NULL学生姓名numberintNOT NULL学号bornplacechar50NOT NULL籍贯5软件的测试与调试登陆界面:图6.01)输入0后并输入相关数据呈现的界面:图6.12)输入1后并输入相关数据呈现的界面:图6.23)在第一步和第二步的基础上使用操作2后上呈现的界面:图6.34)在第一步,第二步的基础上使用操作3后上呈现的界面:图6.45)在第

13、一步,第二步和第四步的基础上使用操作4后上呈现的界面:图6.56)在前几步的基础上使用操作5后上呈现的界面:图6.67)在前几步的基础上使用操作6后上呈现的界面:图6.78)在前几步的基础上使用操作7后上呈现的界面:图6.86 课程设计心得在本次课程设计中,我利用到了本学期学到的大部分知识,而在次程序中,最主要运用是在数组和类及在指针的运用方面。同时明白只要充分的融会贯通在课堂上学会的东西并在课后积极的进行程序设计的训练,增加自己对C程序语言的了解,并应取尽早的熟练的使用这一门语言。通过此学期的学习我了解到了C作为一种面向对象的程序设计语言,它支持对类的抽象。而在此程序中,主要运用的知识为函数

14、的循环系统,类的组成,对象成员的应用等,而访问对象中的成员可以有三种方法,通过对象名和成员运算符访问对象中的成员,通过指向对象的指针访问对象中的成员,通过对象的引用变量访问对象中的成员。课程设计是培养学生综合运用所学知识,发现,提出,分析和解决实际问题,锻炼实践能力的重要环节,是对学生实际工作能力的具体训练和考察过程.随着科学技术发展的日新日异,当今计算机应用在生活中可以说得是无处不在。因此作为二十一世纪的大学来说掌握计算机开发技术是十分重要的。7附录:源程序清单:#include /输入输出流#include /类的运算#include /用来支持对磁盘文件的输出#includeclass

15、stu /构造一个类,类名为stu char name20; /名字int number; /学号char bornplace50; /出生地public: stu() stu(char n20,int num,char born50) /将n,num,born的内容复制给name,number,bornplace strcpy(name,n); number=num;strcpy(bornplace,born); friend void main(); /友元函数; void main() cout请选择您需要的操作!endl; /输出菜单页面cout 操作:endl; cout(0)数据录

16、入endl; cout(1)增加人员endl; cout(2)删除人员endl; cout(3)修改数据endl; cout 查询:endl; cout(4)按姓名查询endl; cout(5)按学号查询endl; cout(6)输出所有学生的籍贯信息endl; cout(7)按籍贯查询endl;cout选择相关操作请输入相对的括号里的阿拉伯数字!p; /命题为真时 if(p=0&p=7) flag2=1; else /命题为假时令重新输入 cout指令错误!请重新输入:endl; while(flag2=0); /构造while-do函数,使序号与内容之间实现对应关系do switch(p)

17、 /switch函数,利用case条件实现功能 case 0: /数据录入 char c; char name20,bornplace50;int number; /定义内容变量do /实现数据录入中的录入功能 cout请输入姓名name; cout请输入学号:number; cout请输入籍贯:bornplace; filej=new ofstream(d:document.txt,ios:ate); /将录入的内容存入磁盘中*filej姓名name学号number籍贯bornplace endl; /将指针指向下一个内存单元j+; si=new stu(name,number,bornpl

18、ace); i+; cout数据录入成功,想继续录入吗(y/n)c; flag2=0; do /控制输入内容为y或n if(c!=y&c!=n) /if语句为控制条件 cout指令错误!请重新输入!c; else flag2=1; while(flag2=0); while(c=y); break; case 1: /增加人员 char name20,bornplace50;int number; /定义变量char c; do /输入要增加的学生的相关内容cout请输入您要增加的学生的姓名:name; cout请输入学号:number; cout请输入籍贯:bornplace; filej=

19、new ofstream(d:document,ios:ate); /将输入的内容存入磁盘空间*filej姓名name学号number籍贯bornplaceendl; j+; si=new stu(name,number,bornplace); i+; cout数据录入成功,想继续录入吗(y/n)c; if(c!=y&c!=n) cout指令错误!请重新输入!c; while(c=y); break; case 2: /删除人员 char name20;bool flag3=0;char c; do cout请输入您要删除的学生姓名:name; for(int h=0;hname)=0) /通

20、过指针使要删除的学生信息被跳过,次删除方式为间接删除 flag3=1; /命题为真是学生总人数减1,并使指针跳过需要删除的人员i-; do sh=sh+1; /指针跳过需要删除的人员h+; while(h=i); if(flag3=0) /若输入的学生不存在则执行以下内容cout您要求删除的对象本来就不存在!请检查输入的正确性!; cout要继续删除吗?(y/n)c; if(c!=y&c!=n) cout指令错误!请重新输入!c; while(c=y); break; case 3: /修改数据 char name20,born50;int num;flag2=0; char c; do co

21、ut请输入您要修改的学生的姓名:name; for(int h=0;hname)=0) flag2=1; cout请输入新的学号:num; cout请输入新的籍贯:born; sh-number=num; strcpy(sh-bornplace,born); cout数据修改成功!; if(flag2=0) /确定输入的正确性 cout您要修改的学生本来就不存在!请检查重新输入!endl; cout想继续修改吗(y/n)c; if(c!=y&c!=n) cout指令错误!请重新输入!c; while(c=y); break; case 4: /按姓名查询 char t20;char c; do

22、 int flag1=0; cout请输入你要查询学生的姓名t; for(int q=0;qi;q+) if(strcmp(*sq).name,t)=0) flag1=1; cout您要查询的学生是:(*sq).name学号是:(*sq).number籍贯是:(*sq).bornplaceendl; if(flag1=0) cout对不起!您要查询的学生不存在!endl; cout您想继续查询吗?(y/n)c; if(c!=y&c!=n) cout指令错误!请重新输入!c; while(c=y); break; case 5: /按学号查询 int n ;int j=0;char c; do

23、int flag=0; cout请输入你要查询的学生学号:n; for(int j=0;ji;j+) int no=(*sj).number);if(no=n) flag=1; cout您要查询的学生是:(*sj).nameendl; cout籍贯是:(*sj).bornplaceendl; if(flag=0) cout对不起!您要查询的学生不存在!endl; cout您想继续查询吗?(y/n)c; if(c!=y&c!=n) cout指令错误!请重新输入!c; while(c=y); break; case 6: /输出所有学生的籍贯信息 cout本系统所有学生的籍贯信息如下:endl; if(i=0) cout管理系统中没有录入数据或者数据已经被删除!endl; for(int k=0;ki;k+) coutk+1 姓名: name 学号: number

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1