版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、 学生信息管理系统1课程设计的目的 本课程设计的目的就是要通过一次集中的强化训练,使学生能及时巩固已学的C语言知识,补充未学的但又必要的内容。进行课程设计目的在于加深对程序设计基础中基础理论和基本知识的理解,促进理论与实践的结合,进一步提高程序设计的能力。具体目的如下:1使学生更深入地理解和掌握C语言中的有关基本概念,程序设计思想和方法。2培养学生综合运用所学知识独立完成课题的能力。3培养学生勇于探索、严谨推理、实事求是、有错必改,用实践来检验理论,全方位考虑问题等科学技术人员应具有的素质。4提高学生对工作认真负责、一丝不苟,对同学团结友爱,协作攻关的基本素质。5培养学生从资料文献、科学实验中
2、获得知识的能力,提高学生从别人经验中找到解决问题的新途径的悟性,初步培养工程意识和创新能力。6对学生掌握知识的深度、运用理论去处理问题的能力、实验能力、课程设计能力、书面及口头表达能力进行考核。2设计方案论证2.1设计思路我们组所设计的这个学生信息管理系统,是用来管理学生的个人基本信息的。功能包括: (1)录入学生信息:输入学生的学号,姓名,年龄,性别,出生日期,住址,电话,邮箱等个人信息。(2)显示学生信息:显示已输入和排序后学生的学号,姓名,年龄,性别,出生日期,住址,电话,邮箱等个人信息。(3)查寻记录:包含根据学号查询和根据姓名查询这两种查询。根据学号或姓名查寻需要的学生记录。(4)修
3、改记录:更改已有的学生的学号,姓名,年龄,性别,出生日期,住址,电话,邮箱等个人信息。 (5)删除记录:删除一个学生的记录。 (6)排序学生信息:包含两种排序。对年龄和学号从小到大进行排序学生的各项个人信息。 (7)文件保存:将输入的学生信息保存到一个文件中。年级成绩的功能包括: (8)文件读取:将保存到文件中的数据重新导入。 我所负责的是(3)、(4)、(5)这三项功能的设计2.2设计方法2.2.1 创建工程框架(1)创建工程:单击菜单“文件->新建”命令,打开“新建”对话框,单击“工程”选项卡,选择“Win32 Console Application”,输入工程名,设置路径。“Win
4、32 Console Application”对话框已经打开,点击创建一个新工程“新建工程信息”对话框已经打开,点击确定。 (2)新建文件:单击菜单“文件->新建”命令,打开“新建”对话框,单击“文件”选项卡,选择“C+ Source File”,输入文件名。2.2.2 创建表Student 结构体说明表编号字段名称数据类型字段大小字段含义1id数组10学生学号2name数组30学生姓名3ageint学生年龄4sex数组3学生性别5birthday数组9出生日期6add数组20学生地址7tel数组15电话号码8email数组15邮箱地址程序设计组成框图主菜单学生信息录入学生信息浏览信息查
5、询学号查询 姓名查询信息编辑信息修改信息删除信息编辑 信息修改信息删除学号排序年龄排序信息排序文件操作文件保存文件读取2.2.4 流程图流程图2.2.5模块设计(1)查询学生记录模块用函数 pr2(),cxid(),cxname(),last()四个函数完成此功能。主要功能用来对学生的信息进行查询。在主菜单中选择“3”,进入查询界面,有两种查询供选择。选择“1”,按学号进行查询,输入要查询的学生学号,即可显示有关该学生的所有信息包括学号,姓名,年龄,性别等。选择“2”,按姓名查询,输入要查询的学生姓名,即可显示有关该学生的所有信息包括学号,姓名,年龄,性别等。选择“3”,返回主菜单。在本操作中
6、用变量i判断是否找到要找的学生,i值为1表示一直查询到找到要找的学生,i值为0查无此学生。当在第一页查询不到要找的学生调用函数last()一直查询到最后一页。本模块代码:void pr2()void cxid();void cxname();int a;char ch;while (a)system("cls");printf("tt*学生信息管理系统*");printf("tt-查 询-");printf("n您想要:");printf("ntt 1.按学号查询");printf("
7、ntt 2.按姓名查询");printf("ntt 3.返回主菜单");printf("ntt*n");ch=getchar();switch(ch)case '1':cxid();break;case '2':cxname();break;case '3':a=0;break;void last(int n)if(n=stunum)system("cls"); /清屏printf("tt*学生信息管理系统*");printf("ntt-查 询 -
8、");printf("ntt已查询到末尾。");printf("nttPress any key to continue.");printf("ntt*n");void cxid()int n,j,i=0;char num10;system("cls");printf("tt*学生信息管理系统*");printf("ntt-查 询-");printf("n请输入想要查询的学号:");scanf("%s",num);for(n=
9、0;n<stunum;n+)if(strcmp(num,stun.id)=0)system("cls");printf("学 号tt姓 名t年 龄t性 别t出生年月n");printf("%st",stun.id);printf("%st ",);printf("%dt ",stun.age);printf("%st ",stun.sex);printf("%sn",stun.birthday);printf("nnn学
10、号tt电 话tE-mailttt地址n");printf("%st",stun.id);printf("%st",stun.tel);printf("%st",stun.email);printf("%sn", stun.add);i+;if(j=editpr(n)=0)break;if(i=0)printf("nError:无此学生。");if(j!=0)last(n);getchar();getchar();void cxname()int n,j,i=0;char m30;sys
11、tem("cls");printf("tt*学生信息管理系统*");printf("ntt-查 询-");printf("n请输入想要查询的姓名:");scanf("%s",m);for(n=0;n<stunum;n+)if(strcmp(m,)=0)system("cls");printf("学 号tt姓 名t年 龄t性 别t出生年月n");printf("%st",stun.id);printf("
12、%st ",);printf("%dt ",stun.age);printf("%st ",stun.sex);printf("%sn",stun.birthday);printf("nnn学 号tt电 话tE-mailttt地址n");printf("%st",stun.id);printf("%st",stun.tel);printf("%st",stun.email);printf("%sn", stu
13、n.add);i+;if(j=editpr(n)=0)break;if(i=0)printf("nError:无此学生。");if(j!=0)last(n);getchar();getchar();(2)删除学生记录模块用函数 void del(),editpr()两个函数实现这个功能。功能是用来删除学生信息。在查询界面进行查询后进入到下面这个界面选择“2”可以删除该生的信息。代码如下:int editpr(int n)int a=1;char ch;while(a)getchar(); printf("n您想要:");printf("ntt1
14、.修改学生信息");printf("ntt2.删除该条信息");printf("ntt3.返回上级菜单");printf("ntt4.查看下条信息");ch=getchar();switch(ch)case '1':edit(n),a=0;break;case '2':del(n),a=0;break;case '3':a=0;return(0);break;case '4':a=0;break;void del(int n)int a;for(a=n;a<
15、;stunum;a+) strcpy(stua.id,stua+1.id);strcpy(,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);stunum-;printf("删除成功!press Enter t
16、o continue."); (3)修改学生记录模块用editpr(),edit()以及editid(),editname(),editid()等相关函数实现该功能。在查询界面查询一个学生信息后进入到信息编辑页面,选择“1”,进入修改信息界面,有编号18 这8个选项分别对应“学号”、“姓名”、“性别”、“年龄”、“出生年月”、“地址”、“电话”、“E-mail”可供选择修改。代码如下:void edit(int n) /*编辑函数*/char ch;int a=1,b;while (a)system("cls");printf("tt*学生信息管理系统*
17、");printf("ntt-修 改-");printf("n请输入你想修改的内容:");printf("n1.学号 2.姓名 3.年龄 4.性别 5.出生年月 6.地址 7.电话 8.E-mailn");printf("ntt*n");getchar();ch=getchar();switch(ch)case '1':editid(n);break;case '2':editname(n);break;case '3':editage(n);break;c
18、ase '4':editsex(n);break;case '5':editbir(n);break;case '6':editadd(n);break;case '7':edittel(n);break;case '8':editemail(n);break;b=1;while (b)printf("n确认吗?(y/n)");getchar();ch=getchar();switch(ch)case 'Y':case 'y':b=0;a=0;break;case
19、 'N':case 'n':b=0;break;void del(int n) /*删除函数*/int a;for(a=n;a<stunum;a+) strcpy(stua.id,stua+1.id);strcpy(,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,st
20、ua+1.tel);strcpy(stua.email,stua+1.email);stunum-;printf("删除成功!press Enter to continue."); 3设计结果与分析1.主菜单 主菜单2.查询菜单 查询菜单3.查询学号为f1059001的学生的信息查询学号为f1059001的学生的信息4.查询姓名为张强的学生的信息 查询姓名为张强的学生的信息5.将学生杨蕾的年龄变为20将学生杨蕾的年龄变为206.删除学生张强的信息删除学生张强的信息4设计体会经过将近的一个星期的课程设计,在我们小组共同不竭的努力下,简单的学生信息管理系统基本完成,系统基本功能
21、基本实现,测试运行也基本正常。该系统基本上完成了对学生信息录入,查看,查询,排序,修改,删除,保存成文件和从文件中读取数据这些基本的功能。在这个课程设计中,我主要负责查询,删除和修改这三个模块。其中包括对学生姓名和学号这两种方式查询,修改学生姓名,学号等信息,删除学生信息等功能。在查阅部分资料逐渐了解系统需求后,我参照李牧老师给我们发的需求分析规格说明书、系统总体设计说明书和详细设计说明书,编写了一个简单的总体设计和详细设计说明书。接着便进入了系统详细设计和编码阶段,在这个阶段,由于自己动手不足和对开发工具的陌生,最主要的是,对知识还不是熟练地掌握,系统遇到了很多大大小小的问题,如如何使用结构
22、体,对各个自定义函数的调用。身为组长,我独自做了三个模块的设计。虽然工作分量比较大,但我还是按时完成了,内心感到很欣慰。通过本次课程设计,我更深刻的认识到了教学实践在大学课程中的重要性,同时也发觉到了自己在学习方面存在的不足之处,在以后的学习中我会努力改进这些不足,不断提高自己的动手实践能力。老师认真负责的工作态度、严谨的治学风格,使我深受启发;同时也很感谢同学、朋友以及小组成员给我的指导和帮助,使我能够完成我的模块工作。再次感谢所有给予了我帮助的老师、同学们! 5参考文献1 王敬华, 林 萍,陈 静. C语言程序设计教程M. 北京: 清华大学出版社, 2005.10:1411672 谭浩强.
23、 C程序设计语言M,. 北京: 机械工业出版社, 2003.4:205-2563李邦几 胡金桂 王敬华 . 最新C语言实用教程M. 北京: 化学工业出版社, 1996.3:3543 6697 1321484 李军民. 新编C语言程序设计教程(第二版)M. 西安: 西安电子科技大学出版社, 2005.08:6893 148171附录:部分源程序#include<stdio.h>#include<conio.h>#include<string.h>#include<stdlib.h>#define MAX 100int stunum=0;struct
24、 student /定义一个结构体char id10;char name30;int age;char sex3;char birthday9;char add20;char tel15;char email15;stu100;void pr()/*输出主菜单函数*/system("cls"); /清屏printf("tt*学生信息管理系统*");printf("ntt-V 1.0.0 -");printf("n您想要:");printf("ntt 1.录入学生信息");printf("
25、;ntt 2.浏览学生信息");printf("ntt 3.查询学生信息"); printf("ntt 4.排序学生信息"); printf("ntt 5.保存数据"); printf("ntt 6.读入数据"); printf("ntt 7.退出信息管理");printf("ntt*n");void pr2()/*输出查询菜单函数*/void cxid();void cxname();int a;char ch;while (a)system("cls&
26、quot;);printf("tt*学生信息管理系统*");printf("tt-查 询-");printf("n您想要:");printf("ntt 1.按学号查询");printf("ntt 2.按姓名查询");printf("ntt 3.返回主菜单");printf("ntt*n");ch=getchar();switch(ch)case '1':cxid();break;case '2':cxname();break
27、;case '3':a=0;break;void pr3()/*输出排序菜单函数*/void sort1();void sort2();int a;char ch;while (a)system("cls");printf("tt*学生信息管理系统*");printf("tt-排 序-");printf("n您想要:");printf("ntt 1.按学号排序");printf("ntt 2.按年龄排序");printf("ntt 3.返回主菜单&q
28、uot;);printf("ntt*n");ch=getchar();switch(ch)case '1':sort1();break;case '2':sort2();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;n<100;n+)frea
29、d(&stun,sizeof(struct student),1,fp);fread(&stunum,4,1,fp);fclose(fp);void editid(int n) /*编辑学号函数*/printf("n新学号:");scanf("%s",stun.id);void editname(int n) /*编辑姓名函数*/printf("n新姓名:");scanf("%s",);void editage(int n) /*编辑年龄函数*/printf("n新年龄:
30、");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&quo
31、t;,stun.add);void edittel(int n) /*编辑电话函数*/printf("n新电话:");scanf("%s",stun.tel);void editemail(int n) /*编辑邮箱地址函数*/printf("n新E-mail:");scanf("%s",stun.email);void last(int n) /*显示翻页至末尾函数*/if(n=stunum)system("cls"); /清屏printf("tt*学生信息管理系统*");
32、printf("ntt-查 询 -");printf("ntt已查询到末尾。");printf("nttPress any key to continue.");printf("ntt*n");void edit(int n) /*编辑函数*/char ch;int a=1,b;while (a)system("cls");printf("tt*学生信息管理系统*");printf("ntt-修 改-");printf("n请输入你想修改的内容:
33、");printf("n1.学号 2.姓名 3.年龄 4.性别 5.出生年月 6.地址 7.电话 8.E-mailn");printf("ntt*n");getchar();ch=getchar();switch(ch)case '1':editid(n);break;case '2':editname(n);break;case '3':editage(n);break;case '4':editsex(n);break;case '5':editbir(n);b
34、reak;case '6':editadd(n);break;case '7':edittel(n);break;case '8':editemail(n);break;b=1;while (b)printf("n确认吗?(y/n)");getchar();ch=getchar();switch(ch)case 'Y':case 'y':b=0;a=0;break;case 'N':case 'n':b=0;break;void del(int n) /*删除函数
35、*/int a;for(a=n;a<stunum;a+) strcpy(stua.id,stua+1.id);strcpy(,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);stunum-;printf("
36、;删除成功!press Enter to continue."); int editpr(int n) /*输出编辑菜单函数*/int a=1;char ch;while(a)getchar(); printf("n您想要:");printf("ntt1.修改学生信息");printf("ntt2.删除该条信息");printf("ntt3.返回上级菜单");printf("ntt4.查看下条信息");ch=getchar();switch(ch)case '1':ed
37、it(n),a=0;break;case '2':del(n),a=0;break;case '3':a=0;return(0);break;case '4':a=0;break;void cxid()/*查询学生学号函数*/int n,j,i=0;char num10;system("cls");printf("tt*学生信息管理系统*");printf("ntt-查 询-");printf("n请输入想要查询的学号:");scanf("%s",
38、num);for(n=0;n<stunum;n+)if(strcmp(num,stun.id)=0)system("cls");printf("学 号tt姓 名t年 龄t性 别t出生年月n");printf("%st",stun.id);printf("%st ",);printf("%dt ",stun.age);printf("%st ",stun.sex);printf("%sn",stun.birthday);printf(
39、"nnn学 号tt电 话tE-mailttt地址n");printf("%st",stun.id);printf("%st",stun.tel);printf("%st",stun.email);printf("%sn", stun.add);i+;if(j=editpr(n)=0)break;if(i=0)printf("nError:无此学生。");if(j!=0)last(n);getchar();getchar();void cxname()/*查询学生姓名函数*/i
40、nt n,j,i=0;char m30;system("cls");printf("tt*学生信息管理系统*");printf("ntt-查 询-");printf("n请输入想要查询的姓名:");scanf("%s",m);for(n=0;n<stunum;n+)if(strcmp(m,)=0)system("cls");printf("学 号tt姓 名t年 龄t性 别t出生年月n");printf("%st"
41、,stun.id);printf("%st ",);printf("%dt ",stun.age);printf("%st ",stun.sex);printf("%sn",stun.birthday);printf("nnn学 号tt电 话tE-mailttt地址n");printf("%st",stun.id);printf("%st",stun.tel);printf("%st",stun.email);prin
42、tf("%sn", stun.add);i+;if(j=editpr(n)=0)break;if(i=0)printf("nError:无此学生。");if(j!=0)last(n);getchar();getchar();void sort1()/*学号排序数据函数*/ struct student temp; int i,j; for(i=1;i<stunum;i+) for(j=1;j<=stunum-i;j+) if(strcmp(stuj-1.id,stuj.id)>0) temp=stuj; stuj=stuj-1; stu
43、j-1=temp; printf("排序以完成进入主菜单功能2可进行显示n"); system("pause"); system("cls"); void sort2()/*年龄排序数据函数*/ struct student temp; int i,j; for(i=1;i<stunum;i+) for(j=1;j<=stunum-i;j+) if(stuj-1.age>stuj.age) temp=stuj; stuj=stuj-1; stuj-1=temp; printf("排序以完成进入主菜单功能2可
44、进行显示n"); system("pause"); system("cls"); void writeinfo() /*录入数据函数*/ int a,n=1,m;char ch;while (n) a=stunum;system("cls");printf("nID:");scanf("%s",stua.id);printf("nName:");scanf("%s",);printf("nAge:");sca
45、nf("%d",&stua.age);printf("nSex:");scanf("%s",stua.sex);printf("nBirthday(E.g 20090101):");scanf("%s",stua.birthday);printf("nAddress:");scanf("%s",stua.add);printf("nTel:");scanf("%s",stua.tel);printf(&quo
46、t;nE-mail:");scanf("%s",stua.email);m=1;while (m) /做一个循环,直到m=0时跳出system("cls");printf("nID");printf("%s",stua.id);printf("nName:");printf("%s",);printf("nAge:");printf("%d",stua.age);printf("nSex:"
47、;);printf("%s",stua.sex);printf("nBirthday:");printf("%s",stua.birthday);printf("nAddress:");printf("%s",stua.add);printf("nTel:");printf("%s",stua.tel);printf("nE-mail");printf("%s",stua.email);printf("n请
48、选择: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 viewinfo() /*查看数据函数*/int count=1,i,n=1,pagenum=1,page=stunum/5+1;/设定变量控制翻页c
49、har ch;while (n)system("cls");printf("学 号tt姓 名t年 龄t性 别t出生年月n");for(i=count-1;i<count+4&&i<stunum;i+) printf("%st",stui.id);printf("%st ",);printf("%dt",stui.age);printf("%st ",stui.sex);printf("%sn",stui.birthday);printf("nnn学 号tt电 话tE-mailttt地址n");for(i=count-1;i<count+4&&i<stunum;i+)printf("%st",stui.id);printf("%st",stui.tel);printf("%st",stui.email);printf("%sn", stui.add
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年厦门兴才职业技术学院单招综合素质考试题库附答案详解(满分必刷)
- 2026年内蒙古能源职业学院单招职业倾向性考试题库带答案详解(a卷)
- 2026年南通职业大学单招职业倾向性测试题库及答案详解(基础+提升)
- 2026年南京旅游职业学院单招职业适应性测试题库附答案详解(基础题)
- 2026年兰州外语职业学院单招职业技能考试题库带答案详解(综合卷)
- 2026年南京科技职业学院单招职业倾向性测试题库及完整答案详解
- 2026年内蒙古机电职业技术学院单招职业适应性测试题库及答案详解(夺冠)
- 2026年内蒙古电子信息职业技术学院单招职业适应性考试题库含答案详解(研优卷)
- 2026年内蒙古北方职业技术学院单招职业技能测试题库带答案详解(综合卷)
- 2026年内江卫生与健康职业学院单招职业倾向性测试题库及一套答案详解
- DB11∕T 1191.1-2025 实验室危险化学品安全管理要求 第1部分:工业企业
- 2026年宁波职业技术学院单招综合素质考试必刷测试卷附答案
- 2025版过敏性休克抢救指南(医护实操版)
- 刮板流量计课件
- 城乡环卫一体化特许经营项目技术方案
- 海尔业务流程再造案例
- 地震灾害警示教育基地参观心得体会
- 特殊作业许可管理制度
- 国家开放大学《人文英语3 》期末机考题库
- 2025年湖南铁路科技职业技术学院单招职业技能测试题库参考答案
- 人教版英语五年级(上)-听力训练专项练习题
评论
0/150
提交评论