C语言课程设计实验报告-学生信息管理系统_第1页
C语言课程设计实验报告-学生信息管理系统_第2页
C语言课程设计实验报告-学生信息管理系统_第3页
C语言课程设计实验报告-学生信息管理系统_第4页
C语言课程设计实验报告-学生信息管理系统_第5页
已阅读5页,还剩9页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、C语言程序设计实验报告wn I报告人:09114115孟凡超指导老师: 空 林报告口期:2009年12月26 口C语言程序设计实验报告C语言课程设计实验报告1 设计目的:学生信息管理系统设计学生信息包括:学号,姓名,年龄,性别,出生年月,地址,电话,E-mail等。 试设计一学生信息管理系统,使之能提供以下功能:1. 系统以菜单方式工作2. 学生信息录入功能输入3. 学生信息浏览功能输出4. 查询、排序功能-算法按学号查询按姓名查询5. 学生信息的删除与修改(可选项)2 总体设计:程序设计组成框图学生信息录入主菜单学生信息浏览f信息添加 学分查询信息编辑S信息删除信息查询f信息添加 姓名查询f

2、信息编辑信息删除3C语言程序设计实验报告#C语言程序设计实验报告流程图#C语言程序设计实验报告3 详细设计:1函数入口说明 pr()输出主菜单 pr2()输出检索菜单界面 fileopen()文件操作:打开 filesave()文件操作:保存 editname(int n)编辑子菜单:对姓名编辑 editage(int n)编辑子菜单:对年龄编辑 editsex(int n)编辑子菜单:对性别编辑 editbir(int n)编辑子菜单:对出生年月编辑 editaddfint n)编辑子菜单:对住址编辑 edittelfint n)编辑子菜单:对电话进行编辑 editemail(int n)编

3、辑子菜单:对电子邮件地址编辑 last(int n)显示翻页致末尾的信息 edit(int n)信息编辑函数 del(int n)删除信息的函数 editpr(int n)输出编辑界面 jsid()检索:按学号 jsname()检索:按姓名 writeinfo()录入、添加信息 viewinfo()学生信息查看 main()主函数2调用关系fileopen()writeinfo()main(),pr()filesave()viewinfo()Pr2()jsid()jsname()'edit(int n)Aeditpr(int n) «editpr(int n>del(i

4、nt n)'edit(int n) 侗上) del(int n)editname(int n) editage(int n) editsex(int n) editbir(int n) editadd(int n) edittel(int n) editemail(int n)3参数说明editname(intn)、editage(int n)> editsex(int n) 、editbir(int n) 、editadd(int n) 、edittel(int n)、editemail(intn)、last(intn)、edit(intn)、del(intn)、editpr(

5、int n)函数中的 n 都为检索中 确定的学生数组下标。4 调试与测试:1调用“2()函数(检索界面)一闪而过。 解决方法:添加getchar()语句使程序暂停。2无法有效的控制输出函数循环终止。解决方法:添加全局变量“stunum”,使用该全局变量来记录学生总数,从而控制输出 循坏的次数。3查询函数数据量过多时同时输出,先输出的内容无法查看,或需用户自行查看。 解决方法:添加getchar()语句使程序暂停,当用户按Enter时继续。4文件在打开和保存时有问题。解决方法:调整文件的打开方式,从原来的单纯的W+修改为添加一个if语句,当没有 文件时执行W+的操作,否则执行r+。避免了原存储文

6、件被覆盖的问题。5C语言程序设计实验报告7C语言程序设计实验报告5 源程序清单和执行结果:# include<stdio.h># include<conio.h># include<stri ngh> #include<stdlib.h> int stunum=O; struct studentint id;char name30;int age; char sex; char birthday9; char add80; char tel15; char email25;stu100;void pr)system(,clsH);V 1.0.0p

7、rintf(*m学生信息管理系统*); printf(HnprintfC'Xn 您想要:“);printf(Hn1 隶入学生信息");printf(An2 浏览学生信息J;printf(Hn3 检索学生信息J;printf(An4 退出信息管理冷;printf(Hn一By 09114115 孟凡超 printf( ”nvoid pr2()void jsid(); void jsname(); int a;char ch; while (a)system(,clsH);printffm 拿学生信息管理系统時I"叫 printf(Mn检 索'*);printfC

8、'Xn 您想要:“); printf(Mn1按学号检索”);printf(Mn2 按姓名检索”);printf(Mn3 返回主菜单H);拿車水*拿拿車*拿車水*拿車水*拿車*拿車車* n”)printfC'WBy 09114115 孟凡超 printf(Hn ch=getchar();switch(ch)case T:jsid();break; case 'jsnameOjbreak; case '3':a=0;break;void fileopen()FILE *fp; int n;if(fp=fopen(udata,/,r+,)=NULL)fp二fo

9、pen(“dataTw+“);forn=0;n<100;n+)f read(&stu nLsizeof(struct student)丄 fp);fvad(&stunum4:Ufp);fclose(fp); void filesave()int n;FILE *fp;fp二fopen(” dataTr+J;for(n=0;n<100;n+)fwrite( &stun,sizeof(struct student)丄 fp);fwritej&stunum,4,l,fp); fclose(fp);void editname(int n) printf(Mn

10、 新姓名:”); scanf(,%s,l/);void editage(int n) printf(Mn 新年龄:”);scanfC,%cT,&stun.age);void editsex(int n) printf(Mn 新性别:”);scanf(,%s,l/stun.sex);void editbir(int n) printf(Mn新出生年月J; scanf(,%s,l/stun.birthday);void editadd(int n)' printf(Hn 新地址:”); scanf(,%s,l/stun.add);void edittel(int

11、n)'printf(Hn 新电话:”); scanf(,%s,l/stun.tel);void editemail(int n) .printf(Hn 新 E-mail:"); scanf(,%s,l/stun.email);void last(int n)if(n=stunum) system(,clsH); 清屏 printfC1*学生信息管理系统*J>*M); printf(Hn检 索");printf(Hn已检索到末尾");printf(HnPress any key to continue."); printf(Hnn一一By 0

12、9114115 孟凡超一H); ,void edit(int n) char ch; int a=l,b;while (a)system 化 Is”); printf(M*学生信息管理系统*H); printf(Mn修 改");printfn请输入你想修改的内容:printf(Mnl.姓名2年龄3性别4出生年月5地址6电话7.E-mailn,); printf(MnnBy 09114115 孟凡超”);getcharf); ch=getchar(); switch(ch)prin tf(H门車拿p*拿戶水水拿拿p*拿pp*拿戶*n”)case T:editname(n);break;

13、 case 2:editage(n);break;case 3:editsex(n);byak; case '4':editbir(n);break;case '5':editadd(n);break; case '6':edittel(n);break;case ,7':editemail(n);break; b=l;while (b)printf(Mn 确认吗? (y/n)H); getchar);ch=getchar(); switch(ch)case V:case V:b=O;a=O;break; case 'N1:cas

14、e 'n*:b=O;break;void del(int n)int a;for(a=n;a<st un um;a+)拷贝后一个学生信息到前一个人上。strcpy(stuaname,stua+); stuaj.age=stua+lj.age; strcpy(stua.sex,stua+l.sex); strcpy(stuaj.birthday, stua+l.birthday); strcpyjstujaj.addtuja+lj.acld); strcpyjstujaj.teLstuIa+lbtel); strcpyjstujaj.emaiLstula+l.email

15、); stunum-;printf("删j除成功! press Enter to continue."); int editpr(int n)int a=l; char ch;while(a)getcharf);printf(Hn 您想要:”); printf(Hnnl.修改学生信息“); printf(Hn2.删除该条信息”); printf(Hn3.返回上级菜单”); printf(Hn4.査看下条信息J; ch=getchar();switch(ch)case T:edit(n),a=O;break;case '2':del(n),a=0;break;

16、 case *3':a=O;return(O);break;case *4':a=0;break;void jsid()int nj=O;system(HclsH);学生信息管理系统*'); printf(Hn检 索H);printfO 请输入想要检索的学号:"); scanf(“cn&n);if(n<=stunum)n-;9C语言程序设计实验报告#C语言程序设计实验报告printf(M学号姓 名年龄性别出生年月¥); printf("%4d stug.id);printf(M%12s >a,); pr

17、intf("%4d 舄stunage); printf("%4s 舄stun.sex);话 E-mailprintf("%8s Xnstufn.birthday); printf(Hnnn 学号 电地址W);printf("%4d 舄stunid); printf(M%15s stulnj.tel);printf(H%15s stujnj.email); printf$%sn舄 stun.add); j=editpr(n);i+;if(i=O)printf(HnError:无此学生o "); printf(Hn一By 09114115 孟凡超&

18、quot;); printf( ”nn'1), ,elseif(j=O) goto end;elsesystemC'cls"); last(n); getchar();en d:getchar(); void jsname()int ni二0; char m30;system(” cis”);学生信息管理系统*'); printf(Hn检 素H);printf(Hn请输入想要检索的姓名:“); scanfC's'm);forn=0;n<st un um;n+) if(strcmp(m/)=O) system 化 Is”)

19、; printf(H学号姓 名年龄性别出生年月n“); printf("%4d ”,stunid);printf("%8s 舄); printf("%4d 舄stunage);printf("%4s stufnj.sex); printf("%8s Xnstuln.birthday);printf(Hnnn 学号电话 E-mailprintf("%4d ”,stunid);printf(M%15s 舄stuntel); printf(M%15s stujnj.email);printfsn舄 stun.add); i

20、+;if(j=editpr(n)=O)break;地址W);if(i=0) printf(HnError:无此学生。"); if(j!=O) last(n);getchar();getchar();void writeinfo()int a/n=l/m;11C语言程序设计实验报告char ch;while (n)a=stunum;system 化 Is”);printfC'ID:");stua.id=(a+l); printf(M%d':stuaid);printfinName:'1);scanf(”s 笃&);printf

21、CAnAge:11);scanf("%d,l/&stu .age);printf(MnSex:M);scanf(”s 笃&stuasex);pnntf(MnBirthday(E.g 20090101):1'); scanf(,%s*'/&stua.birthday);printf(MnAddress:");scanf(,%sH/&stua.add);printf(”nTel:J;scanf(,%sH/&stu a.tel);printf(”nEmail:”);scanf(,%sH/&stu .email);m=

22、l;while (m)做一个循环,宜到m=0时跳出system(”cls”); printf(”ID:J; printfj”cT,stuaid);printfinName:1');printff');printf(HnAge:H);printff'dstulaj.age);printfCAnSex:'1);prlntfj”s 舄&stua.sex);printfCnBirthday:1'); printff'sstula.birthday);printfC'XnAddress:'1); printf

23、f'sstulaj.add);printtjAnTel:11);printff'sstulaj.tel);printf(,nE-mair,);printff'sstula.email);printfCAn请选择:1 确认并继续2重新填写3放弃并返回4确认并返回”); ch=getchar();switch(ch)case ,l':m=O;stunum+;break;case 2:stunum,m=0;break;case Smngbreak;选择此项时,m=0>循环终止case ,4':m=0/n=0;a=stunum+;break;void vi

24、ewinfo()设定变筮控制翻页E-mail 地址n“);int cou nt=l,i,n=l,page nu m=lzpage=stunum/5+l; char ch;while (n)system 化 Is”); printf(H学号姓名年龄性别出生年月¥);for(i=count-l;i<count+4&&i<stu nu m;i+)printf("%4d 舄stuiid); printf(H%12s );printf("%4d 舄stui.age);printf("%4s :stui.sex); printf("%8s Xnstuli.birthday);printf(Mnnn 学号电话for(i=count-l;i<count+4&&i<stunum;i+)#C语言程序设计实验报告13C语言程序设计实验报告printf("%4d »stuiid); printf(M%15s 舄stuitel); printf(H%15s stujij.email)

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论