欢迎来到沃文网! | 帮助中心 分享知识,传播智慧!
沃文网
全部分类
  • 教学课件>
  • 医学资料>
  • 技术资料>
  • 学术论文>
  • 资格考试>
  • 建筑施工>
  • 实用文档>
  • 其他资料>
  • ImageVerifierCode 换一换
    首页 沃文网 > 资源分类 > DOC文档下载
    分享到微信 分享到微博 分享到QQ空间

    c语言课程设计学生信息管理系统.doc

    • 资源ID:865396       资源大小:368.59KB        全文页数:38页
    • 资源格式: DOC        下载积分:10积分
    快捷下载 游客一键下载
    账号登录下载
    微信登录下载
    三方登录下载: QQ登录 微博登录
    二维码
    微信扫一扫登录
    下载资源需要10积分
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP,下载更划算!
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    c语言课程设计学生信息管理系统.doc

    1、 目录1 课程设计目的与要求11.1课程设计目的11.2课程设计要求11.3课程设计的评价22 问题描述33总体设计43.1 功能分析45 功能测试156 程序设计调试情况分析197 课程设计小结20参考文献21附录 系统源程序22学生信息管理系统1 课程设计目的与要求1.1课程设计目的本课程设计是在学习C+基本理论之后的实践教学环节。该实践教学是软件设计的综合训练,包括问题分析、总体结构设计、用户界面设计、程序设计基本技能和技巧。要求学生在设计中逐步提高程序设计能力,培养科学的软件工作方法。学生通过课程设计在下述各方面得到锻炼:1能根据实际问题的具体情况,结合C+的基本理论和基本技巧,正确分

    2、析问题,并能设计出解决问题的有效算法与程序。2提高程序设计和调试能力。学生通过上机实习,验证自己设计的算法和程序的正确性。学会有效利用基本调试方法,迅速找出程序代码中的错误并且修改,进一步提高程序设计水平。1.2课程设计要求通过一个学期的学习,我认为要学好C语言程序这门课程,不仅要认真阅读课本知识,更重要的是要通过上机实践才能增强和巩固我的知识。特别是作为本科生,更要注重实践这一环节,只有这样我们才能成为合格的计算机人材。通过这次课程设计,进一步巩固所学的语句,如语句嵌套等;加深对循环,分支等结构的运用。具体如下:(1)数据组织方面尽量使用到:数组、链表、结构体、文件;(2)程序结构方面做到函

    3、数调用,尽量采用指针运算;(3)代码编写规范,形成良好的编程习惯;(4)程序须有一定的健壮性和必要的提示信息,考虑问题的多种可能和边界数据。(5)课设完成须进行答辩,提交课设报告电子稿、装订的打印稿。课设报告内容包括以下几个方面:l 程序的总体设计和算法分析。l 程序流程图、函数说明l 源程序代码清单l 测试数据和测试过程记录l 遇到的问题及解决方法分析l 课程设计小结1.3课程设计的评价通过此次课程设计,我的知识面得到了扩展,发现课本上的东西是远远不够的,需要上网找资料寻找补充,而且小组合作的形式可以互相交流知识,弥补自己的不足。通过课程设计,加深对结构化程序设计思想的理解,能进行一个系统功

    4、能需求分析,并设计合理的模块化结构。提高程序开发能力。2 问题描述设计一个学生信息管理系统,其中包括:学生基本信息:如学号、姓名、性别、年龄、地址、电话等。功能包括:1. 系统菜单形式显示2.学生信息录入功能输出3.学生信息浏览功能输出4.查询、排序功能算法 按学号查询 按姓名查询5.学生信息的删除与修改3总体设计3.1 功能分析3.1.1菜单模块通过while语句给出信息提示;清屏;绘制菜单(包含输入,浏览,查询,修改,删除,排序,保存,退出);提示菜单选择并读入到变量;根据读入变量的值调用不同的模块函数;3.1.2信息录入模块打开文件While() 清屏; 按照提示输入各种信息; Whil

    5、e 显示各种信息;通过选择1.确认并继续 2.重新填写 3.放弃并返回 4.确认并返回 选择四种功能;3.1.3信息浏览模块打开文件While() 清屏; 用for语句依次按照顺序输出学生信息 通过选择可以翻页 1.上一页 2.下一页 0.退出3.1.4信息查询While() 通过菜单式的选择 是学号查询 还是姓名 printf(*学生信息管理系统*);printf(n-检 索-);printf(n您想要:);printf(n 1.按学号检索);printf(n 2.按姓名检索);printf(n 3.返回主菜单);printf(n*n);如果选择学号进入学号模块通过输入学号 If( 学号存在

    6、继续) 输出学生信息Else 输出无此学生如果选择姓名进入姓名模块If(根据比较姓名判断学生是否存在) 输出学生信息Else 输出无此学生3.1.5删除模块 while( 继续删除 ) 提示并读入待删除的学生的学生号;显示要删除的信息删除成功3.1.6信息修改模块输入要修改学生信息的学号:If (判断是否有此学生) 菜单形式显示要修改的项目printf(n1.姓名 2.年龄 3.性别 4.出生年月 5.地址 6.电话 7.E-mail n); printf(n8.数学 9.英语 n);Swich() 选择要修改的项目进行修改3.1.7打开文件模块 void fileopen()FILE *fp

    7、;int n;if(fp=fopen(data,r+)=NULL)fp=fopen(data,w+);for(n=0;n100;n+)fread(&stun,sizeof(struct student),1,fp);fread(&stunum,4,1,fp);fclose(fp);3.1.8保存文件模块void filesave()int n;FILE *fp;fp=fopen(data,r+);for(n=0;n100;n+)fwrite(&stun,sizeof(struct student),1,fp);fwrite(&stunum,4,1,fp);fclose(fp); printf(

    8、保存成功!press Enter to continue.);getch();3.1.9退出模块case 8:ma=0;break; 用的是跳出while语句 回到安全模块3.1.10排序模块通过 冒泡排序法 for(m=0;my-1;m+) for(x=m+1;xy;x+) if(stum.sumstux.sum) stu99=stum; stum=stux; stux=stu99; stu99.id=stux.id ; stux.id =stum.id; stum.id =stu99.id ; printf(排序后的顺序为:n);然后显示排序好后的学生信息;3.2系统主要函数 多功能计算器

    9、采用结构化程序设计思想,程序中除主函数外,共设计了23个函数,函数原型 及功能说明如表3.2.1所示。 表3.2.1 函数原型及功能说明序号函数原型功能说明1void calculate1()调用整数运算的相关函数2void zhengshu()整数的运算的头文件3void calculate2()调用实数运算的相关函数4void shishu()实数的运算的头文件5void calculate3()调用分数运算的相关函数6void fenshu()分数的运算的头文件7typedef struct fushu抽象数据类型定义8float real数据对象9float image定义构造复数的函

    10、数10fushu ComplexNumberInput(float a,float b)构造复数二元组11fushu ComplexNumberAdd(fushu c1,fushu c2)复数的求和运算12fushu ComplexNumberSub(fushu c1,fushu c2)复数的求差运算13fushu ComplexNumberMul(fushu c1,fushu c2)复数的求积运算14fushu ComplexNumberDiv(fushu c1,fushu c2)复数的求商运算15void ComplexNumberOutput(fushu c)输出复数的运算结果16voi

    11、d fushi()复数的运算的头文件17typedef struct Linknode定义链表节点的数据类型为Node18struct Linknode *next定义链表节点的数据类型为Node19Node * createlink()创建链表并读入多项式的指数和系数20void Sum(Node *pa, Node *pb) 两个一元多项式相加21void mus(Node *pa, Node *pb)两个一元多项式相减22void print(Node * p)输出程序中所有的项23void yiyuanduoxiangshi()一元多项式的运算的头文件4 详细设计主模块学生基本信息管理

    12、系统信息录入信息浏览信息查询信息排序信息删除信息修改信息添加退出系统输入学生的相关信息显示学生的相关信息按姓名查询按学号查询更新保存的学生信息对新加的学生进行信息录入菜单选择开始菜单选择信息输入浏览信息输入信息浏览查询按学号按姓名删除修改信息删除信息修改添加信息添加排序保存文件结束4.1 程序总体结构图开始主函数显示主页菜单功能选择退出信息管理查询学生信息保存学生信息删除学生信息浏览学生信息修改学生信息按照总成绩排序录入学生信息结束4.2 主函数流程图各部分模块4.3 信息的录入流程图开始Y打开文件N文件中有无信息YN输出所有信息返回主菜单结束4.4 学生信息浏览流程图4.5 按姓名或学号查询

    13、流程图4.6信息的删除流程图5 功能测试5.1系统主界面5.1系统主界面5.2录入学生信息功能5.2.1录入学生信息界面5.2.2录入学生信息界面 5.2信息浏览功能5.2信息浏览界面5.3信息修改功能5.3.1信息修改界面5.4信息检索功能5.4.1信息检索界面5.4.2按学号检索界面5.4.4按姓名检索界面6 程序设计调试情况分析1.问题:c程序运行不出来,几个头文件中出现了相同的函数;解决方法:改变头文件中相同名字的函数名。2.问题:调用检索函数一闪而过。解决方法:添加getchar()语句使程序暂停。3.问题:无法有效的控制输出函数循环终止。解决方法:添加全局变量“stunum”,使用

    14、该全局变量来记录学生总数,从而控制输出循环的次数4.问题:查询函数数据量过多时同时输出,先输出的内容无法查看,或需用户自行查看。解决方法:添加getchar()语句使程序暂停,当用户按Enter时继续。5.问题:调试时,有的时候编译后没什么问题,就是在点击连接link时出现了错误;解决方法: 将源程序保存,然后关掉Microsoft Visual C+ 6.0,重新启动Microsoft Visual C+ 6.0。7 课程设计小结通过此次课程设计,我基本上对制作一个相对来说比较完整的程序有了一定的认识和了解。这一周多来的制作,不但对C语言的知识有了一定的巩固,还增加了我们的动手能力。学生信息

    15、管理系统,涉及到结构体,链表,文件和循环的知识,所以尤其对这几个方面有所加深和巩固。其中又包括结构体的赋值,写到文件中。从文件中赋值给结构体。等等。还能够通过编译时出现的出错提示信息,进行初步的纠错。完成一个程序的一般步骤为设计,录入,编译,如果出错,则修改,然后再编译,编译成功后,看看结果是否正确,如果结果不正确,则再重复以上步骤。小组成员分工组长:王彬冰 负责信息浏览、信息删除模块和总流程图组员:汤璞君 负责信息排序模块组员:刘帅 负责信息录入模块参考文献1C程序设计教程与实验吉顺如 清华大学出版社2C程序习题集与课程设计吉顺如 计春雷 电子工业出版社3C程序设计思想与方法 尹宝林 机械工

    16、业出版社4 百度文库附录 系统源程序#include#include#include#includeint stunum=0;struct student / 结构体int id;char name30;int age;char sex6;char birthday12;char add80;char tel15;char email25;int math; int english;int sum;stu100 ;void check() /查询函数 void jsid(); void jsname();int a;char ch;while (a)system(cls);printf(*学生

    17、信息管理系统*);printf(n-检 索-);printf(n您想要:);printf(n 1.按学号检索);printf(n 2.按姓名检索);printf(n 3.返回主菜单); printf(n*n);ch=getchar();switch(ch)case 1:jsid();break;case 2:jsname();break;case 3:a=0;break;void fileopen() /打开文件FILE *fp;int n;if(fp=fopen(data,r+)=NULL)fp=fopen(data,w+);for(n=0;n100;n+)fread(&stun,sizeo

    18、f(struct student),1,fp);fread(&stunum,4,1,fp);fclose(fp);void filesave() /保存文件int n;FILE *fp;fp=fopen(data,r+);for(n=0;n100;n+)fwrite(&stun,sizeof(struct student),1,fp);fwrite(&stunum,4,1,fp);fclose(fp); printf(保存成功!press Enter to continue.);getch();void editname(int n) /按照名字修改printf(n新姓名:);scanf(%s

    19、,stun.name);void editage(int n) /修改年龄函数printf(n新年龄:);scanf(%d,&stun.age);void editsex(int n) / 修改性别函数printf(n新性别:);scanf(%s,stun.sex);void editbir(int n) /修改生日printf(n新出生年月);scanf(%s,stun.birthday);void editadd(int n)printf(n新地址:); /修改地址scanf(%s,stun.add);void edittel(int n) /修改电话printf(n新电话:); scan

    20、f(%s,stun.tel);void editemail(int n)printf(n新E-mail:); /修改邮箱scanf(%s,stun.email);void editmath(int n) /修改数学成绩 printf(n新数学:);scanf(%d,&stun.math); stun.sum=stun.math+stun.english;void editenglish(int n) / 修改经与成绩printf(n新英语:); scanf(%d,&stun.english);stun.sum=stun.math+stun.english;void last(int n)if(

    21、n=stunum)system(cls); printf(*学生信息管理系统*);printf(n-检 索-);printf(n已检索到末尾。);printf(nPress any key to continue.);printf(n*n);void edit() /修改函数char ch ;int a=1,b; int n; while(a)system(cls);printf(n请输入你想修改的人的学号:n); scanf(%d,&n); if(n=stunum) n=n-; printf(学号 姓 名 年龄 性别 出生年月n); printf(%4d ,stun.id); printf(

    22、%12s ,stun.name); printf(%4d ,stun.age); printf(%4s ,stun.sex); printf(%8s n,stun.birthday); printf(nnn学号 电 话 E-mail 地址n); printf(%4d ,stun.id); printf(%15s ,stun.tel); printf(%15s ,stun.email); printf(%sn, stun.add); printf(nnn 数学 英语 总分n); printf(%4d,stun.math); printf(%15d,stun.english); printf(%1

    23、5dn,stun.sum); printf(n请输入你想修改的内容:); printf(n1.姓名 2.年龄 3.性别 4.出生年月 5.地址 6.电话 7.E-mail n); printf(n8.数学 9.英语 n); printf(n*n); getchar(); ch=getchar(); switch(ch) case 1:editname(n);break; case 2:editage(n);break; case 3:editsex(n);break; case 4:editbir(n);break; case 5:editadd(n);break; case 6:editte

    24、l(n);break; case 7:editemail(n);break; case 8:editmath(n);break; case 9:editenglish(n);break; b=1; while (b)printf(n确认吗?(y/n);ch=getchar();switch(ch)case Y:b=0;a=0;break;case y:b=0;a=0;break;case N:b=0;break;case n:b=0;break;void delect() /删除函数 int n, a; system(cls); printf(n请输入想要删除人的学号:n); scanf(%d

    25、,&n); n=n-;for(a=n;a=stunum;a+) strcpy(stua.name,stua+1.name); stua.age=stua+1.age;strcpy(stua.sex,stua+1.sex);strcpy(stua.birthday,stua+1.birthday);strcpy(stua.add,stua+1.add);strcpy(stua.tel,stua+1.tel);strcpy(stua.email,stua+1.email); stua.math=stua+1.math; stua.english=stua+1.english; stua.sum=s

    26、tua+1.sum;stunum-;printf(删除成功!press Enter to continue.);void jsid() /按照学号查询int n,i=0;system(cls);printf(*学生信息管理系统*);printf(n-检 索-);printf(n请输入想要检索的学号:);scanf(%d,&n);if(n=stunum)n=n-;printf(学号 姓 名 年龄 性别 出生年月n);printf(%4d ,stun.id);printf(%12s ,stun.name);printf(%4d ,stun.age);printf(%4s ,stun.sex);pr

    27、intf(%8s n,stun.birthday);printf(nnn学号 电 话 E-mail 地址n);printf(%4d ,stun.id);printf(%15s ,stun.tel);printf(%15s ,stun.email);printf(%sn, stun.add); printf(nnn 数学 英语 总分n); printf(%4d,stun.math); printf(%15d,stun.english); printf(%15dn,stun.sum);i+;if(i=0)printf(nError:无此学生。);printf(n*n);getch(); elses

    28、ystem(cls);last(n);getch();void jsname() /按照姓名查询int n,i=0;char m30;system(cls);printf(*学生信息管理系统*);printf(n-检 索-);printf(n请输入想要检索的姓名:);scanf(%s,m);for(n=0;nstunum;n+)if(strcmp(m,stun.name)=0)system(cls);printf(学号 姓 名 年龄 性别 出生年月n);printf(%4d ,stun.id);printf(%8s ,stun.name);printf(%4d ,stun.age);print

    29、f(%4s ,stun.sex);printf(%8s n,stun.birthday);printf(nnn学号 电 话 E-mail 地址n);printf(%4d ,stun.id);printf(%15s ,stun.tel);printf(%15s ,stun.email);printf(%sn, stun.add);printf(nnn 数学 英语 总分n); printf(%4d,stun.math); printf(%15d,stun.english); printf(%15dn,stun.sum);i+;getch();if(i=0)printf(nError:无此学生。);

    30、elselast(n);void write() /录入函数int a,n=1,m;char ch;while (n)a=stunum;system(cls);printf(学号:);stua.id=(a+1);printf(%d,stua.id);printf(n名字:);scanf(%s,stua.name);printf(n年龄:);scanf(%d,&stua.age);printf(n性别:);scanf(%s,stua.sex);printf(n出生年月日:);scanf(%s,stua.birthday);printf(n地址:);scanf(%s,stua.add);print

    31、f(n电话:);scanf(%s,stua.tel);printf(nE-mail:);scanf(%s,stua.email); printf(n数学:);scanf(%d,&stua.math);printf(n英语:);scanf(%d,&stua.english); stua.sum=stua.math+stua.english; printf(%d,stua.sum);m=1;while (m)/做一个循环,直到m=0时跳出system(cls);printf(学号:);printf(%d,stua.id);printf(n名字:);printf(%s,stua.name);prin

    32、tf(n年龄:);printf(%d,stua.age);printf(n性别:);printf(%s,stua.sex);printf(n出生年月日:);printf(%s,stua.birthday);printf(n地址:);printf(%s,stua.add);printf(n电话:);printf(%s,stua.tel);printf(nE-mail);printf(%s,stua.email);printf(n数学);printf(%d,stua.math);printf(n英语);printf(%d,stua.english);printf(n总分);printf(%d,st

    33、ua.sum);printf(n请选择:1.确认并继续 2.重新填写 3.放弃并返回 4.确认并返回);ch=getchar();switch(ch)case 1:m=0;stunum+;break;case 2:stunum,m=0;break;case 3:m=0,n=0;break;/选择此项时,m=0,循环终止case 4:m=0,n=0;a=stunum+;break;void view() /浏览函数int count=1,i,n=1,pagenum=1,page=stunum/5+1;/设定变量控制翻页char ch;while (n)system(cls);printf(学号 姓 名 年龄 性别 出生年月n);for(i=count-1;icount+4&istunum;i+)printf(%4d ,stui.id);printf(%8s ,stui.name);printf(%4d ,stui.age);printf(%7s ,stui.sex);printf(%12s n,stui.birthday);printf(nnn学号 电 话 E-mail 地址n);for(i=count-1;icount+4&istunum;i+)printf(%4d ,stui.id);printf(%15s ,stui.tel);printf(%1


    注意事项

    本文(c语言课程设计学生信息管理系统.doc)为本站会员(精***)主动上传,沃文网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知沃文网(点击联系客服),我们立即给予删除!




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服点击这里,给沃文网发消息,QQ:2622162128 - 联系我们

    版权声明:以上文章中所选用的图片及文字来源于网络以及用户投稿,由于未联系到知识产权人或未发现有关知识产权的登记,如有知识产权人并不愿意我们使用,如有侵权请立即联系:2622162128@qq.com ,我们立即下架或删除。

    Copyright© 2022-2024 www.wodocx.com ,All Rights Reserved |陕ICP备19002583号-1

    陕公网安备 61072602000132号     违法和不良信息举报:0916-4228922