学生信息管理系统程序设计报告_第1页
学生信息管理系统程序设计报告_第2页
学生信息管理系统程序设计报告_第3页
学生信息管理系统程序设计报告_第4页
学生信息管理系统程序设计报告_第5页
已阅读5页,还剩19页未读, 继续免费阅读

下载本文档

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

文档简介

1、HUNAN UNIVERSITY程序设计训练 报告学生姓名李乐平学 生学号20110602212专业班级市场营销二班指导老师 贺再红院长(百田 马超群2012年 7 月 2 日1 系统功能简介32 本人完成的主要工作33 实训分析 44 实训设计 55 实训源程序代码和调试过程76 实训总结 11附录 112附录 2 12-22一 系统功能简介.学生信息管理系统1, 进入主界面:要求输入密码,输入三次错误系统锁定。2,输入记录: 将学生的基本信息包括学号,姓名,性别,地区,分数等数据作为一个记录写入文件。3,显示记录: 显示学生的各项信息。4,增加记录:增加多个学生的基本信息,位于之前的学生后

2、面。5,删除记录:删除学生信息。6,修改记录:可以修改学生的任何一项基本信息。7,查找记录:可以根据学生的学号查找并显示出学生的信息。8,统计记录:统计全班通过情况和不及格情况。9,退出系统经过逐层逐块、不断细化、求精过程,编写程序并进行测试、验证,可以逐个模块地分开调试,并通过文件包含或用工程文件的形式进行逐步联合调试。二 本人完成的主要工作学生信息管理系统由我和龚晨同学共同完成。主程序的编写由我们两个共同完成。我负责的是:1、修改记录:可以修改学生的任何一项基本信息。2、查找记录: 可以根据学生的学号查找并显示出学生的信息。3、统计记录: 统计全班通过情况和不及格情况。4、退出系统三 实训

3、分析1、用结构化程序设计思想进行C 环境下程序设计。2、设计一个管理系统,上机编程、调试并通过该管理系统中的各功能模块。3、设计完成后,每人必须提交程序清单及关于程序设计、维护和使用方面 的图文材料即程序设计说明书各一份。4、基于结构化程序设计思想和所使用的 C语言开发环境与开发工具,并运 用“软件工程”和“数据结构”中的有关概念和方法,针对具体设计题目和要求, 分析功能要求,划分功能模块,用链表结构设计功能模块函数,以菜单方式调用 相应功能模块来实现信息和数据处理四实训设计1、系统功能模块结构图本图书管理系统理由输入记录,显示记录,增加记录,删除记录,修改 记录,统计数据,查找记录,七个大模

4、块组成,其总体结构图如下:学生信息管理系输入记录模块显示记录模块增加记录模块修改记录模块删除记录模块查找记录模块退出系统2核心数据结构设计:1.头文件说明如:#include<string.h>#include<stdio.h> #include<stdlib.h>#include<conio.h>2,函数的编写 定义结构类型;定义全局变量;定义、编写记录(数据)输入函数; 定义、编写记录(数据)显示函数; 定义、编写记录(数据)增加函数; 定义、编写记录(数据)删除函数; 定义、编写记录(数据)修改函数; 定义、编写记录(数据)统计函数; 定义

5、、编写记录(数据)查找函数;函数名称函数功能enter()进入函数input();输入函数display。显示函数add ()增加函数delet()删除函数amend()修改函数preside ();统计函数fint ();查找函数output();退出函数3.核心算法描述(程序流程图)主函数结构流程判断键值并弹出对应菜单根据按键执行菜单选项对应的函数从被调用函数中返回并转移退出管理系统五 实训源程序代码和调试过程(包括截图)1.1进入界面topD e bu gxu es h e ng.exer,欢迎进入学生信息管理系统请输入密码二图一输入密码进行身份验证,输入三次则系统锁定1.2选择菜单图二

6、主菜单接界面,选择数字执行相应功能'C:' J5er5hpDe5l-±opDebu,cliengxu exe'学生信息的录入.请输入第1个学生的信息.学号: 91 姓名二lining性别二 n地区:hunan三门成绩工1语文.2 .锹学.3英语. 鸵99 78是否要继续输入学生信息.如果是请按,不是请按图三依次输入学生的各项基本信息1.4显示信息2:U&白rskh p Deslcto pDe bugch en gxu.e3ce *学生信息显示二学号姓名性别地区语文数学英语平均分总分11 in in g(bun an8S9878882649号姓名性别地区

7、语文数学英语平均分总分2liJiom9-fhe he i78778981244卜号姓名性别地区诘文数学英语平均分总分3linanaRbe ij ins78678?232按任意键返回.图四 可以显示录入及增加的各项信息1.5增加信息'C:LJ serVh p D-e skto p D e bu g ',< h gxu .ex e,F增加学生信息.请输入第4个学生的信息.住匚二H4地区二liai rt?in三门成绩± L谱文.2 .数学门.英语.7ft S& 79是否要继续输入学生信息,如果是请按年不是请按n.图五根据需要添加新的学生信息。1.6删除记录图六

8、删除信息1.7修改记录"C AUa er, h p De5 kto pD e b ugch e ngxu .exe'清福人要修改学生的学号士修改学生信息簿修鬻彖生%地区 语文数学 英语平均分总分2llhong fliebel 88787981245是否要修改学号:是请接5不是请按-h是否要修改姓名,是请按y;不是请按n,是否要修改性别:是请按“;不是请按n-是否要修改地区:是请按内不是请按n-可修改任何学生的任何一项纪录1.8统计信息"CiUser5h p D e5kto p' De bu gcfi en gxu exe'学生信息斜.学号1牛名性别地

9、区语文数学英语平均分总分1liningmHunan 8日9987912742lihangfhe be i887897872t33linanafheiJing 45655655166子=姓名性别地区 语文数学英语平均分总分3linanAfbeijing 456巧5655以上为不及格的同学,全班不及格的人数为;1 A-统计完成.请按任意键返回图八对所有的信息进行统计显示不及格人数查找学生信息信输入要查找的学生学号:3你要查找的学生为:偿号 姓名 性别 地区 语文 数学英语 平均分总分linana fbeijiny 45655655166查找完成.请按任意键返回.图九根据学号查找出需要的学生信息。六

10、实训结论通过C语言实训I,让我加深了对C语言的了解,而不只是单单的在课本中学到的 那些理论,平时乏味的课程,通过自己动手亲自编写,变的生动有趣,而在自己 动手的过程中,出现的问题很多,比理论要难的多,当一个程序写完以后,经常 会有很多错误而没法解决。不过,通过几天的实训I,逐渐积攒了一些经验,有些 错误可以较快看出来。这次实训有很大的收获,让我对C语言有了更深的认识,平时在课堂上学到的东 西可以自己动手编写,将其转化成一些实用的技能。如果是一个程序写完一处错 误也没有,会有种成就感,于是兴趣就来了,兴趣来了,自然学的东西也就多了, 能把理论变成实际的技能,让我对 C语言有了浓厚的兴趣和更深层的

11、认识。C语言是一个有序的学习,条理很清楚,不是一个零散的知识,实际上所有的课 程都如此,要从整体上把握。不过通过实训我也知道了自己的不足,存在的很多问题。希望能在以后的学习中,不断提高自己的能力,让问题越来越少。附录1参考文献1 刘振安等.C程序设计课程设计.北京:机械工业出版社,2004.92谭浩强等.c语言程序设计.(第二版).清华大学出版社,2002,.83张引等著C程序设计设计基础课程设计浙江大学出版社20075曹哲等 C程序设计课程设计 机械工业出版社 2010.7附录 2源程序代码#include <stdio.h>#include <stdlib.h>#i

12、nclude <conio.h>#include <string.h>#define N 20 struct student long num;char name20;char sex2;char address20;int score3;int sum;int ave;struct student stuN;int t=1,pl=0;void enter();void input();void display();void add();void delet();void amend();void preside();void fint();void output();

13、void main()int password;/* 定义学生结构体 */int i;printf("nnnnttt 欢迎进入学生信息管理系统n");/* 初始界面输入验证密码*/for(i=1;i<=3;i+)printf("nnttt 请输入密码:");scanf("%d",&password);if(password=000000)enter();break; printf("error!please input again!");printf(" 密码输入三次有误!系统锁定! &qu

14、ot;);void enter()/*进入主菜单函数*/int choice,w;char k;system("cls");printf("ttt 学生信息管理系统nn");printf("tt1. 录入 .t2. 显示 .t3. 增项 .t4. 删项 .ntt5.修改.t6.统计.t7.查找.t8.退出.n");printf("n 输入序号执行相应功能:");scanf("%d",&choice);switch(choice)case 1: input();break;case 2:

15、display(); break;case 3: add();break;case 4: delet();break;case 5: amend();break;case 6: preside(); break;case 7: fint(); break;case 8: output();break;default: w=1;if(w=1)printf(" 输入有误 ,按任意键重新选怿.n");k=getchar();getch();enter();void input()/* 学生信息录入的函数*/int x,count=0,i;char w,r20,o;struct s

16、tudent *p;p=stu;system("cls");printf("ttt 学生信息的录入 .n");dopl+;printf(" 请输入第 %d 个学生的信息.nn",t);printf(" 学号 :n");scanf("%ld",&p->num);printf(" 姓名 :n");scanf("%s",&p->name);printf("n");printf(" 性别 :n")

17、;gets(r);gets(&p->sex);printf("n");printf(" 地区 :n");scanf("%s",&p->address);printf("n");printf(" 三门成绩:1.语文.2.数学.3.英语 .n");for(i=0;i<3;i+)scanf("%d",&p->scorei);p->sum = p->score0 + p->score1 + p->score2;p

18、->ave = p->sum/3;printf("nn 是否要继续输入学生信息 ,如果是请按y;不是 t# 按 n.n");o=getchar();w=getchar();if(w='y' | w='Y') t+;x=1;p+; elsex=0;while(x=1);if(w='n' | w='N')printf(" 按任意键返回 .n");getch(); enter();void display()/* 显示学生信息*/int i,j;system("cls&quo

19、t;);printf("ttt 学生信息显示.nn");for(j=0;j<t;j+) printf("%st%st%st%st%st%st%st%st%snn"," 学 号","姓名 ","性别 ","地区 ","语文 ","数学 ","英语 ","平 均分 "," 总分 ");printf("%ldt%st%st%st",stuj.num, stu

20、, stuj.sex,stuj.address); for(i=0;i<3;i+) printf("%dt", stuj.scorei);printf("%dt", stuj.ave);printf("%dt", stuj.sum);printf("nn");printf("n 按任意键返回 .n");getch();enter();void add()/* 学生信息的增加*/int i,x;char a, w;struct student *p;p=stu+t;system(

21、"cls");printf("nttt 增加学生信息.n");doprintf(" 请输入第 %d 个学生的信息.nn",t+1);printf(" 学号 :n");scanf("%ld",&p->num);printf("n");printf(" 姓名 :n");scanf("%s",p->name);printf("n");printf(" 性别 :n");scanf(&q

22、uot;%s",p->sex);printf("n");printf(" 地区 :n");scanf("%s",p->address);printf("n");printf(" 三门成绩:1.语文.2.数学.3.英语.n");for(i=0;i<3;i+)scanf("%d",&p->scorei);for(i=0;i<3;i+)p->sum = p->score0 + p->score1 + p->sc

23、ore2;p->ave = p->sum/3;a=getchar();printf("n 是否要继续输入学生信息,如果是请按y; 不是请按 n.nn");w=getchar();p+;t+;if(w='y'|w='Y')x=1;if(w='n'|w='N')x=0;break;while(x=1) ;if(x=0)printf("n");printf(" 按任意键返回 .n");getch();enter();void delet()/* 学生信息的删除*/l

24、ong b;int z,j;int r=t;char c,x;struct student *p;system("cls");printf("nttt 删除学生信息n");printf(" 请输入要删除学生的学号:nn");scanf("%ld",&b);for(p=stu;p<stu+t;p+)if(p->num=b)break;elser-;if(r=0)printf(" 你 要 删 除 的 学 生 不 存 在 , 请 按 任 意 键 返 回 .n");getch();e

25、nter();printf("n 你要删除的学生为:n");printf("%-8s%-8s%-8s%-8s%-8s%-8s%-8s%-8s%-8snn"," 学号 ","姓名 ","性别 ","地区 ","语文 "," 数学 ","英语 ","平均分 "," 总分 ");printf("%-8ld%-8s%-8s%-8s",p->num,p->

26、name,p-> sex,p->address);for(j=0;j<3;j+)printf("%-8d",p->scorej);printf("%-8d",p->ave);printf("%-8d",p->sum);printf("n你确定要删除吗?如是请输入y;不是请输入 n.n");x=getchar();c=getchar();if(c='y'|c='Y')for(p=stu;p<stu+t;p+)*p=*(p+1);t-;print

27、f(" 系统已为你删除信息,请按任意键返 回 .n");getch();enter(); if(c='n'|c='N') printf(" 删除信息取消!按任意键返回 .n");getch(); enter(); void amend()/* 学生信息的修改*/ long j;int i,z,r=t;char c,d,e,f,q,u,l,v,m,k,h1,h2,h3,h4;struct student *p;system("cls");printf("nttt 修改学生信息n");p

28、rintf(" 请输入要修改学生的学号:nn");scanf("%ld",&j);for(p=stu;p<stu+t;p+)if(p->num=j)break;elser-;if(r=0) printf(" 你输入的学生不存在,请按任意键返回.n");getch();enter();printf("n 你要修改的学生为 :n");printf("%-8s%-8s%-8s%-8s%-8s%-8s%-8s%-8s%-8s nn"," 学号 ","姓名

29、 ","性别 ","地区 ","语文 ","数学 "," 英语 ","平均分 ","总分 ");printf("%-8ld%-8s%-8s%-8s",p->num,p->name,p->s ex,p->address);for(j=0;j<3;j+)printf("%-8d",p->scorej);printf("%-8d",p->ave);pr

30、intf("%-8d",p->sum);printf("nn是否要修改学号:是请按 y;不是请 按 n.nn");l=getchar();c=getchar();if(c='y'|c='Y')printf(" 请输入正确的学号: nn");scanf("%ld",&p->num);if(c='n'|c='N')z=1;printf(" 是否要修改姓名:是请按y; 不是请按n.nn");q=getchar();d=

31、getchar();m=getchar();if(d='y'|d='Y')printf(" 请输入正确的姓名: n");scanf("%s",p->name);u=getchar();if(d='n'|c='N')z+;printf("n是否要修改性别:是请按y;不是请按 n.nn");e=getchar();k=getchar();if(e='y'|e='Y')printf(" 请输入正确的性别: n");sca

32、nf("%s",p->sex);if(e='N'|e='n')z+;printf("n是否要修改地区:是请按 y;不是请 按 n.nn");h3=getchar();h4=getchar();if(h3='y'|h3='Y') printf(" 请输入正确的地区: n");scanf("%s",p->address);if(h3='N'|h3='n')z+;printf("n是否要修改三门成绩:是请

33、按y;不是 请按 n.nn");f=getchar();if(f='y'|f='Y') printf(" 请输入正确的三门成绩: ");for(i=0;i<3;i+)scanf("%d",&p->scorei);p->sum = p->score0 + p->score1 + p->score2;p->ave = p->sum/3;v=getchar();if(f='n'|f='N') printf(" 请按任意键返

34、回 .n");getch();enter();void preside()/* 学生信息的统计*/int i,j,o=0,b=10,r=60;struct student *p;system("cls");printf("nttt 学生信息统计.n");nn"," 学号 ","姓名 ","性别 ","地区 ","语文 ","数学 "," 英语 ","平均分 "," 总

35、分 ");for(p=stu;p<stu+t;p+)printf("%-8ld%-8s%-8s%-8s",p->num,p->name,p->se x,p->address);for(j=0;j<3;j+)printf("%-8d",p->scorej);printf("%-8d",p->ave);printf("%-8d",p->sum); printf("nn");printf("nnn");for(p=st

36、u;p<stu+t;p+)for(i=0;i<3;i+) if(p->scorei<r) b=b-1;o=o+1;nn"," 学号 ","姓名 ","性别 ","地区 ","语文 ","数学 "," 英语 ","平均分 "," 总分 ");printf("%-8ld%-8s%-8s%-8s",p->num,p->name,p->se x,p->address);for(j=0;j<3;j+)printf("%-8d"

温馨提示

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

评论

0/150

提交评论