logo资料库

学生信息管理系统 一个详细的实验报告.doc

第1页 / 共11页
第2页 / 共11页
第3页 / 共11页
第4页 / 共11页
第5页 / 共11页
第6页 / 共11页
第7页 / 共11页
第8页 / 共11页
资料共11页,剩余部分请下载后查看
青岛理工大学 《C 语言程序设计》 题目 学生信息管理程序 指导教师: 李 兰 姓名: 杨立禄 200807150 学号: 班级: 计算机工程学院 08 级 4 班 专业: 计算机科学与技术专业 地点: 2 号实验楼计算中心 401 室 时间: 2009-6-22 至 2009-6-26
一、内容(学生信息管理程序) 学生信息管理程序功能介绍:学生信息管理程序采用 C 语言编译,可以实现简单的学生 信息的输入、查找、删除、修改等功能。 使用说明:(1)双击打开学生信息管理程序,程序会自动进入主菜单。 2)进入主菜单后,屏幕上会出现 5 个选项:1 学生信息.输入 2.学生信息删除 3.学生信 息修改 4.学生信息查询 0.退出学生信息管理程序。根据您的需要完成相应功能 学生信息管理程序功能简介: 1 学生信息及成绩输入:输入学生信息,包括学生姓名、学号、地址、电话、班级、性别、 年龄和高数、英语、计算机、物理、体育的五门成绩,并自动计算五门课的总成绩、平均分; 2 学生信息查询:可以通过输入学生的学号,查找到相应的学生信息; 3 学生信息删除:可以通过这个功能,实现对某一个同学信息的删除; 4 学生信息修改:可以通过输入学号,修改学生的信息; 0 退出 :这个选项实现的功能是退出学生信息管理程序。 二、上机环境: 操作程序:windows xp 开发工具:VC6.0 三、函数调用关系图 main 学生信息输入 *creat( ) 学 生 信 息 修 改 rework(head,del_name) 学生信息删除 del(head,del_name) 学 生 信 息 查 询 find(head,num) 四、各函数功能说明 1. main 2. struct student 3. struct student *creat( ) 4.struct student *rework(struct student *head,char num[] ) 5.struct student *find(struct student *head,char num[] ) 6.struct student *del(struct student *head,char number[] ) 主函数 声明新的类型名 学生信息的输入 学生信息修改 学生信息查询 学生信息删除
五 、算法描述或流程图 开始 head==NULL n y 输出 “ 无 此 人 信 息 ”return(hea while(strcmp(number,p1->number)&&(p1->next!=NULL)) p2=p1; p1=p1->next !strcmp(number,p1->number) y head==p1 n 无此人信息 head=p1->next p2->next=p1->next 已被删除 结束 图 1 删除程序流程图
开始 head==NULL n p1=head y 输出“无数据” return head while(strcmp(number,p1->number)&&(p1->next!=NULL)) p2=p1; p1=p1->next strcmp(num,p1->number)==0 y n 输出“找到学生信息” 无此学生信息 结束 图 2 查找程序流程图 六、程序运行效果图
图 1-1-主菜单 图 1-2 学生信息及成绩输入
图 1-3 学生信息修改图 图 1-4 学生信息查询图
1-5 学生信息删除 图 1-6 学生信息管理程序退出 七、体会 经过一学期的 C 语言的学习,原来对编程毫无了解的我,逐渐掌握了初步编程的方 法,提高了自己的思维能力和细心,而这将近一周的课程设计,让我对编程知识有了更深层 次的了解,以前上课学都是一些枯燥的东西,感觉没多大用处,但是通过课程设计把所学的 东西用在了实践上,设计出来一些有用的东西,尽管有好多次总是运行不了,找来找去总是 是一些小小的错误,深深地感到自己上机编程能力很不足,编的程序可读性不太好。但通过 上网查找资料,到图书馆借阅图书,解决了许多难题,最终编成了这个学生信息管理程序, 提高了程序的可读性。这个程序可以实现简单的学生信息的管理,包括输入、删除、修改、 查询等。然而程序仍然存在许多可以拓展的地方,比如可以增加安全密码设置,将性别相同 的同学或者所在省市相同的同学统计到一起等等。我会在今后用更多的知识去完善它。 许多自己掌握不牢的知识通过这次一个周的编程设计得到了提高,我了解到了编程的知 识无穷无尽,自己所掌握的只是皮毛,以后还需要查阅大量的资料来完善自己的程序,丰富 自己的头脑。再次还要感谢老师的悉心指导帮助,我才能顺利完成这个程序。 八、参考文献 [1] 李凤霞. C 语言程序设计教程. 北京理工大学出版社 [2] 谭浩强.C 程序设计(第三版). 清华大学出版,2005 [3] 谭浩强.C 程序设计题解与上机指导(第三版). 清华大学出版,2005
九\程序清单 #include #include #include "cstdlib" #include #define LEN sizeof(struct student) struct student { char name[20],address[40],telephone[12], classed[10],number[10],sex[10],age[4]; int math,English,Computer,physics, PE,sum,aver,score[5]; struct student *next; } stu[45]; struct student *creat( ) {int i,j; int s; struct student *p0,*p1,*p2,*head; for (i=0;i<1;i++) { p0=(struct student*)malloc(LEN); printf("请输入学生信息:\n"); printf("学号:"); scanf("%s",p0->number); printf("姓名:"); scanf("%s",p0->name); printf("地址:"); scanf("%s",p0->address); printf("电话:"); scanf("%s",p0->telephone); printf("班级:"); scanf("%s",p0->classed); printf("性别:"); scanf("%s",p0->sex); printf("年龄:"); scanf("%d",&p0->English); printf("高数:"); scanf("%s",&p0->age); printf("英语:"); scanf("%d",&p0->math); printf("机算机:"); scanf("%d",&p0->computer); printf("物理:"); scanf("%d",&p0->physics); printf("体育:"); scanf("%d",&p0->PE); printf("请再输一次学生成绩\n"); s=0; for(j=0;j<5;j++) { scanf("%d",&p0->score[i]); s+=p0->score[i]; } p0->sum=s; p0->aver=s/5; if(i==0) {head=p0;p0->next=NULL;} else {p1=p2=head; while((p0->sumsum)>0&&(p1->next!=NULL)) {p2=p1; p1=p1->next;} if(p0->sum>=p1->sum) { if(head==p1) {head=p0; p0->next=p1;} else {p2->next=p0; p0->next=p1; } } else {p1->next=p0; p0->next=NULL;} } } return head; } struct student *del(struct student *head,char number[]) {struct student *p1,*p2; if(head==NULL) {printf("\n 无此人信息\n"); return head;} p1=head; while(strcmp(number,p1->number)&&(p1->next!=N ULL)) { p2=p1; p1=p1->next;} if(!strcmp(number,p1->number)) { if(head==p1) head=p1->next; else p2->next=p1->next;
分享到:
收藏