学生信息管理系统c语言程序设计报告(完美)23页_第1页
学生信息管理系统c语言程序设计报告(完美)23页_第2页
学生信息管理系统c语言程序设计报告(完美)23页_第3页
学生信息管理系统c语言程序设计报告(完美)23页_第4页
学生信息管理系统c语言程序设计报告(完美)23页_第5页
已阅读5页,还剩17页未读 继续免费阅读

下载本文档

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

文档简介

1、 学生信息管理系统HUNAN UNIVERSITY程序设计训练报 告学生姓名 学生学号 专业班级 指导老师 院长 (系主任) 2013 年5 月 25 日目 录一 系统功能简介.3二 本人完成的主要工作 .3三 实训分析 . .4四 实训设计 . .5五 实训源程序代码和调试过程 .7六 实训总结 .11附录1.12附录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. 核心算法描述(程序流程图) 主函数结构流程程序开始初始化、定义主菜单、分支菜单指针数组及变量读键盘按键的键值判断键值并弹出对应菜单N用户按了1-8键吗? N根据按键执行菜单选项对应的函数 Y从被调用函数中返回并转移退出管理系统 五 实训源程序代码和调试过程(包括截图)1.1进入界面 图一 输入密码进行身份验证

6、,输入三次则系统锁定。1.2选择菜单图二 主菜单接界面,选择数字执行相应功能。1.3输入信息图三 依次输入学生的各项基本信息。1.4 显示信息图四 可以显示录入及增加的各项信息。1.5 增加信息图五 根据需要添加新的学生信息。1.6 删除记录图六 删除信息。1.7修改记录图七 可修改任何学生的任何一项纪录。1.8 统计信息图八 对所有的信息进行统计显示不及格人数。1.9 查找信息图九 根据学号查找出需要的学生信息。六 实训结论通过C语言实训,让我加深了对C语言的了解,而不只是单单的在课本中学到的那些理论,平时乏味的课程,通过自己动手亲自编写,变的生动有趣,而在自己动手的过程中,出现的问题很多,

7、比理论要难的多,当一个程序写完以后,经常会有很多错误而没法解决。不过,通过几天的实训,逐渐积攒了一些经验,有些错误可以较快看出来。这次实训有很大的收获,让我对C语言有了更深的认识,平时在课堂上学到的东西可以自己动手编写,将其转化成一些实用的技能。如果是一个程序写完一处错误也没有,会有种成就感,于是兴趣就来了,兴趣来了,自然学的东西也就多了,能把理论变成实际的技能,让我对C语言有了浓厚的兴趣和更深层的认识。C语言是一个有序的学习,条理很清楚,不是一个零散的知识,实际上所有的课程都如此,要从整体上把握。不过通过实训我也知道了自己的不足,存在的很多问题。希望能在以后的学习中,不断提高自己的能力,让问

8、题越来越少。附录1参考文献1 刘振安等.C程序设计课程设计.北京:机械工业出版社,2004.92 谭浩强等.c语言程序设计.(第二版).清华大学出版社,2002,.83 张引等著C程序设计设计基础课程设计浙江大学出版社 20075 曹哲等 C程序设计课程设计 机械工业出版社 2010.7附录2源程序代码#include <stdio.h>#include <stdlib.h>#include <conio.h>#include <string.h>#define N 20struct student /*定义学生结构体*/long num;cha

9、r 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(); void main() int password;int i;printf("nnnnttt欢迎进入学生信息管理系统n"); /

10、*初始界面 输入验证密码*/for(i=1;i<=3;i+)printf("nnttt请输入密码:");scanf("%d",&password);if(password=000000)enter();break;printf("error!please input again!");printf("密码输入三次有误!系统锁定!");void enter() /*进入主菜单函数*/ int choice,w;char k;system("cls");printf("ttt

11、学生信息管理系统nn"); printf("tt1. 录入.t2. 显示.t3. 增项.t4. 删项.ntt5. 修改.t6. 统计.t7. 查找.t8.退出.n");printf("n 输入序号执行相应功能:"); scanf("%d",&choice); switch(choice) case 1: input();break; case 2: display(); break;case 3: add();break;case 4: delet();break;case 5: amend();break;case

12、 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 student *p;p=stu;system("cls");printf("ttt 学生信息的录入.n"); dopl

13、+;printf("请输入第%d 个学生的信息.nn",t);printf("学号:n"); scanf("%ld",&p->num);printf("姓名:n"); scanf("%s",&p->name); printf("n"); printf("性别:n");gets(r); gets(&p->sex); printf("n");printf("地区:n");scan

14、f("%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->ave = p->sum/3;printf("nn 是否要继续输入学生信息,如果是请按 y;不是请按 n.n"); o=getcha

15、r(); w=getchar(); if(w='y' | w='Y') t+;x=1;p+; else x=0; while(x=1); if(w='n' | w='N') printf("按任意键返回.n");getch();enter(); void display() /*显示学生信息*/int i,j;system("cls"); printf("ttt 学生信息显示.nn"); for(j=0;j<t;j+) printf("%st%st%st%

16、st%st%st%st%st%snn","学号","姓名","性别","地区","语文","数学","英语","平均分","总分"); printf("%ldt%st%st%st",stuj.num, , stuj.sex,stuj.address); for(i=0;i<3;i+) printf("%dt", stuj.scorei); pr

17、intf("%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("cls"); printf("nttt增加学生信息.n"); do printf("请输入第%d 个学生的信息

18、.nn",t+1); printf("学号:n"); scanf("%ld",&p->num); printf("n"); printf("姓名:n"); scanf("%s",p->name); printf("n"); printf("性别:n"); scanf("%s",p->sex); printf("n"); printf("地区:n"); scanf

19、("%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->score2; p->ave = p->sum/3; a=getchar(); printf("n 是否要继续输入学生信息,如果

20、是请按 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() /*学生信息的删除*/ long b; int z,j; int r=t; char c,x; struct student *p; sy

21、stem("cls"); printf("nttt删除学生信息n"); printf(" 请输入要删除学生的学号:nn"); scanf("%ld",&b); for(p=stu;p<stu+t;p+) if(p->num=b) break; else r-; if(r=0) printf("你要删除的学生不存在,请按任意键返回.n"); getch(); enter(); printf("n 你要删除的学生为:n"); printf("%-8s

22、%-8s%-8s%-8s%-8s%-8s%-8s%-8s%-8snn","学号","姓名","性别","地区","语文 ","数学","英语","平均分","总分"); printf("%-8ld%-8s%-8s%-8s",p->num,p->name,p->sex,p->address); for(j=0;j<3;j+) printf("%-8d

23、",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-; printf("系统已为你删除信息,请按任意键返回.n"); getch(); enter(); i

24、f(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"); printf(" 请输入要修改学生的学号:nn"); scanf("%ld&

25、quot;,&j); for(p=stu;p<stu+t;p+) if(p->num=j) break; else r-; if(r=0) printf("你输入的学生不存在,请按任意键返回.n"); getch(); enter(); printf("n 你要修改的学生为:n"); printf("%-8s%-8s%-8s%-8s%-8s%-8s%-8s%-8s%-8snn","学号","姓名","性别","地区","语文

26、","数学","英语","平均分","总分"); printf("%-8ld%-8s%-8s%-8s",p->num,p->name,p->sex,p->address); for(j=0;j<3;j+) printf("%-8d",p->scorej); printf("%-8d",p->ave); printf("%-8d",p->sum); printf("nn

27、是否要修改学号:是请按 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=getchar(); m=getchar(); if(d='y'|

28、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"); scanf("%s",p->sex); i

29、f(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 是否要修改三门成绩:是请按 y;不是请按 n.nn");

30、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("请按任意键返回.n"); getch

31、(); enter(); void preside() /*学生信息的统计*/int i,j,o=0,b=10,r=60; struct student *p; system("cls");printf("nttt 学生信息统计.n");printf("%-8s%-8s%-8s%-8s%-8s%-8s%-8s%-8s%-8snn","学号","姓名","性别","地区","语文 ","数学","英语&quo

32、t;,"平均分","总分"); for(p=stu;p<stu+t;p+) printf("%-8ld%-8s%-8s%-8s",p->num,p->name,p->sex,p->address); for(j=0;j<3;j+) printf("%-8d",p->scorej); printf("%-8d",p->ave); printf("%-8d",p->sum); printf("nn"); p

33、rintf("nnn"); for(p=stu;p<stu+t;p+) for(i=0;i<3;i+) if(p->scorei<r) b=b-1;o=o+1; printf("%-8s%-8s%-8s%-8s%-8s%-8s%-8s%-8s%-8snn","学号","姓名","性别","地区","语文 ","数学","英语","平均分","总分"); printf("%-8ld%-8s%-8s%-8s",p->num,p->name,p->sex,p->address); for(j=0;j<3;j+) printf("%-8d",p->scorej); printf("%-8d",p->ave); printf("%-8d",p->sum); printf("nn&q

温馨提示

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

评论

0/150

提交评论