《c语言课程设计成稿.doc》由会员分享,可在线阅读,更多相关《c语言课程设计成稿.doc(28页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、前 言随着科学的发展,教育的重视程度不断提高,学生人数逐年上升,传统的学生信息管理己暴露出很多效率和经济上的弊端。学生信息管理已在学校经济和人力支出中占了很大比例,严重影响了学校教学质量的提高与教学进度的发展,改善学校学生信息管理的方法己成为当务之急。学生信息管理系统和其他信息管理系统一样是当今管理信息不可缺少系统,它对学校的决策者和管理者以及学校的学生来说都有着重要的作用和价值。正因如此学生信息管理系统应该为用户提供充足的信息资源和快捷的查询手段。无论是对学生还是学生管理者来说都是一种体力劳动的减负。为老师和管理者留出更多的时间,让他们把心思都花在怎样教学和自己的学习上。同时也可以为学校节约
2、经费。学生信息管理系统具有手工管理所无法比拟的优点。如:检索迅速、查找方便、可靠性高、存储量大、保密性好、寿命长、成本低等。这些优点能够极大地提高学生信息管理的效率。因此,开发这样一个低成本高效率的管理系统是十分必要的。摘 要学生信息管理系统的主要目的在于便于老师掌握学生信息,对学生的信息进行查询和添加,也有利于学生按各种不同方式查询、修改自己的信息。本系统依据开发要求主要应用于教育系统,完成对日常的教育工作中学生档案的管理。开发本系统可使学院教职员工减轻工作压力,比较系统地对教务、教学上的各项服务和信息进行管理,同时,可以减少劳动力的使用,加快查询速度、加强管理,以及国家各部门关于信息化的步
3、伐,使各项管理更加规范化。该系统由以下几个部分组成:(1) 学生信息的录入,包括学生的基本信息,班级,专业等。(2) 学生信息的修改。(3) 学生信息的查询,包括通过姓名,学号等查询。(4) 学生信息的浏览。(5) 学生信息的删除,包括删除学生的基本信息等。关键词:学生信息 链表 选择结构 循环结构目 录前 言I摘 要II目 录1一、 需求分析2二、 系统分析3三、 系统总体设计6四、 详细设计7五、 系统测试9六、 软件使用说明书13 总 结14参考文献15致 谢16附件 部分原程序代码17一、 需求分析随着学校的规模不断扩大,学生数量急剧增加,有关学生的各种信息也成倍增长。面对庞大的信息量
4、需要有学生信息管理系统来提高学生管理工作的效率。所以学生信息管理的系统化、规范化、自动化已经是必然的要求。经过综合分析,确定该系统包括以下功能:(1)建立学生信息的结构体;(2)学生信息的初始化(可以从文件获取);(3)学生信息的添加、修改、删除、查找;(4)学生信息的浏览;(5)对学生信息按学号、姓名查找;(6)将学生信息保存为文件。二、 系统分析1. 整体结构流程图 如图2-1所示学生信息管理系 统系统 帮助 说 明输 入学 生信 息查 询学 生信 息修 改学 生信 息增 加学 生信 息按学号删除学生信息显 示当 前信 息保 存当 前信 息退 出系 统系 统输入基本 信息按 学号查询按 姓
5、名查询修 改信 息息增 加信 息图2-1 整体结构流程图2. 修改学生信息流程图 如图2-2所示检查学生信息合法性学生信息表修改学生信息修改信息图2-2 修改学生信息流程图3. 删除学生信息流程图 如图2-3所示删除学生信息删除 学生检查学生信息合法性学生信息表图2-3 删除学生信息流程图4. 添加学生信息流程图 如图2-4所示添加学生检查学生信息合法性学生信息表添加学生信息图2-4 添加学生信息流程图 5. 学生信息显示图如图2-5所示学生表学号姓名性别学校班级地址电话图2-5 学生信息显示图三、 系统总体设计 1、系统软件结构图 如图3-1所示Main函数信息浏览信息增加信息录入信息修改信
6、息查询退出系统按学号查询按姓名查询信息保存信息录入信息导出图3-1 系统软件结构图2.系统数据结构表 如表3-1所示表3-1 系统数据结构表学号姓名性别年龄学校地址系别专业班级魏瑞瑞男20兰州理工大学甘肃省数学系信息与计算科学(1)班许亚文女19兰州理工大学河北省数学系信息与计算科学(1)班四、 详细设计对应于总体设计时的系统功能模块图,各个功能模块的处理逻辑如下:信息输入模块:打开图书信息文件;while (继续输入 ) 写入学生信息;将写入的信息添加到学生信息文件中;提示是否继续输入;关闭学生信息文件;信息查询模块:while ( 仍继续查询 ) if( 按姓名查询 ) 读入查询的学生条件
7、; 打开学生信息文件;while( 不到文件结束 ) 顺序读出一个学生的信息;关闭图书信息文件; else if ( 按学号查询 ) 读入学生的条件; 打开学生信息文件;while( 不到文件结束 ) 顺序读出一个学生的信息;关闭图书信息文件; else 提示输入不合适;提示是否继续查询;五、 系统测试1、进入主菜单 如图5-1所示图5-1 进入主菜单图2、选择菜单项(1)-输入信息图 如图5-2所示图5-2 选择菜单项(1)-输入信息图 3、选择菜单项(2)-修改信息图 如图5-3所示图5-3 选择菜单项(2)-修改信息图 4、选择菜单项(3)-查找信息图 如图5-4所示图5-4 选择菜单项
8、(3)-查找信息图 5、选择菜单项(4)-显示信息图 如图5-5所示图5-5 选择菜单项(4)-显示信息图 6、选择菜单项(5)-删除信息图 如图5-6所示图5-6 选择菜单项(5)-删除信息图7、退出系统图 如图5-7所示图5-7 退出系统图六、 软件使用说明书(1)根据正确的提示安装软件。(2)Intel486以上系列、AMD K6 以上系列等PC台式机和便携式电脑都可运行。 (3) 打开该程序系统,浏览菜单,根据需要选择功能,进行各项操作。操作如下:(1)进入系统。(2)选择菜单项1-输入信息:将所需的信息输入。(3)选择菜单项2-修改信息: 对所要修改的信息进行修改.(4)选择菜单项3
9、-查找信息:则屏幕会出现两个对话框按学号和按姓名查找,查出相应的所需信息。当查询不能显示需要时进入修改程序,把所输入的信息进行修改,使之正确能够正常运行或进入删除信息中,重新输入自己所要的信息。(5)选择菜单项4-显示信息:显示学生信息。(6)选择菜单项5-删除信息:根据需要,删除有关的学生信息.(7)选择菜单项0-退出系统.七、 总 结该系统以学生信息管理为背景,涵盖了学校对学生信息管理的多种功能,并且有一定的可行性和安全性,确保了各项指定功能得以运行。本系统以基本函数、结构体、枚举性、文件以及链表等多方位知识贯穿实现。 通过此次程序设计实践,是我对所学知识的综合运用,也是程序设计得以提高的
10、表现。通过此次编程培养了我们结构化程序设计的思想,加深了对高级语言基本语言要素和控制结构的理解,锻炼我们独立思考制作程序的能力,并且掌握了一些课程设计的相关知识与实践操作能力,为以后的学习提供了锻炼的机会。经过设计和开发,学生信息管理系统基本开发完毕以及各类相关报表的打印。并提供部分系统维护功能,使用户方便进行数据备份和恢复、数据删除。对于数据的一致性的问题也通过程序进行了有效的解决。从而是我对c语言这门课程有了更好的了解。但是由于设计时间较短,所以该系统还有许多不尽如人意的地方,比如联机文档比较少,用户界面不够美观,出错处理不够等多方面问题。这些都有待进一步改善。 参考文献1 C/C+程序设
11、计教程(第二版),王连相,中国铁道出版社,20112 C语言程序设计,谭浩强,清华大学出版社,19993 C程序设计题解与上机指导,谭浩强,清华大学出版社,19994 C/C+程序设计上机指导与测试(第二版),王连相,中国铁道出版社,20115 C语言函数手册,机械工业出版社,19996 C语言的实际应用,安徽科学技术出版社,2000致 谢在编写程序的过程中,我们得到了滕永晨老师的精心指导以及孜孜不倦的教诲,在老师的指导下,我们的能力得到了提高,同时养成了科学、严谨的作风和习惯,在此,我们对老师的精心栽培表示衷心的感谢! 附件 部分原程序代码#include#include#include#i
12、ncludestruct Student char num10; char name20; char sex10; char age10; char sch10; char native20; char xibie20; char zhuanye20; char clas10;/*菜单选项*/char menu() char n; puts(ntt 欢迎进入学生信息管理系统tt); puts(tt*菜单*n); puts(tt1.-输入信息-n); puts(tt2.-修改信息-n); puts(tt3.-查找信息-n); puts(tt4.-显示信息-n); puts(tt5.-删除信息-n
13、); puts(tt0.-退出系统-n); puts(tt*n); printf(选择你要的操作(0-5): bb); while(1) n=getchar(); getchar(); if(n5) printf(输入错误,请重新输入(0-5): bb); else break; return n;/*输入信息*/void enter() struct Student student; FILE *fp; char ch; if(fp=fopen(inform.txt,ab) = NULL) printf(tCan not open the inform file!); getch(); ex
14、it(1); do printf(t学号:);gets(student.num); printf(t姓名:);gets(student.name); printf(t性别:);gets(student.sex); printf(t年龄:);gets(student.age); printf(t学校:);gets(student.sch); printf(t地址:);gets(student.native); printf(t系别:);gets(student.xibie); printf(t专业:);gets(student.zhuanye); printf(t班级:);gets(studen
15、t.clas); fwrite(&student,sizeof(student),1,fp); printf(tAny more?(Y/N); bb); ch=getchar();getchar(); while(ch=Y|ch=y); fclose(fp);/*输出函数*/void shuchu1() printf(%-8s%-8s%-5s%-5s%-8s%-10s%-8s%-10s%-8sn,学号,姓名,性别,年龄,学校,地址,系别,专业,班级); void shuchu2(struct Student student) printf(%-8s%-8s%-5s%-5s%-8s%-10s%-
16、8s%-10s%-8sn,student.num,student.name,student.sex, student.age,student.sch,student.native,student.xibie,student.zhuanye,student.clas);/*修改信息*/void modify() struct Student student; FILE *fp1,*fp2; int flag; char ch10; char f; do if(fp1=fopen(inform.txt,rb)=NULL) printf(tCan not open the inform file!)
17、; getch(); exit(1); if(fp2=fopen(temp.txt,wb)=NULL) printf(tCan not open the temp file!); getch(); exit(1); printf(请输入您要修改学生信息的学生姓名:); gets(ch); flag=0; while(fread(&student,sizeof(student),1,fp1)=1) if(strcmp(ch,student.name)=0 ) shuchu1(); shuchu2(student); printf(nn请输入新的学生信息:n); printf(t学号:);gets
18、(student.num); printf(t姓名:);gets(student.name); printf(t性别:);gets(student.sex); printf(t年龄:);gets(student.age); printf(t学校:);gets(student.sch); printf(t地址:);gets(student.native); printf(t系别:);gets(student.xibie); printf(t专业:);gets(student.zhuanye); printf(t班级:);gets(student.clas); flag=1; fwrite(&st
19、udent,sizeof(student),1,fp2); fclose(fp1); fclose(fp2); if(flag=1) printf(修改成功!n); remove(inform.txt); rename(temp.txt,inform.txt); else printf(Can not find this record!n); printf(Modify any more?(Y/N): bb); f=getchar(); getchar(); while(f=Y|f=y); /*查找信息*/ void search() struct Student student; FILE
20、*fp; int flag; int total=0; char ch10; char f; if(fp=fopen(inform.txt,rb)=NULL) printf(tCan not open the inform file!); getch(); exit(1); do rewind(fp); printf(nn依照(1:姓名 2:学号)查询: bb); while(1) scanf(%d,&flag); getchar(); if(flag2) printf(输入错误,请重新输入(1:姓名 2:学号): bb); else break; if(flag=1) printf(请输入您
21、要查询的学生姓名:); gets(ch); total=0; while(fread(&student,sizeof(student),1,fp)=1) if(strcmp(ch,student.name)=0) total+; if(total=1)shuchu1(); shuchu2(student); else printf(请输入您要查找的学生学号:); gets(ch); total=0; while(fread(&student,sizeof(student),1,fp)=1) if(strcmp(ch,student.num)=0) total+; if(total=1)shuc
22、hu1(); shuchu2(student); printf(nnThere are %d record included!n,total); printf(tSearch any more?(Y/N); bb); f=getchar();getchar(); while(f=Y|f=y); fclose(fp); /*浏览所有信息*/ void display() struct Student student; FILE *fp; int total=0; if(fp=fopen(inform.txt,rb) = NULL) printf(tCan not create the infor
23、m file!); getch(); exit(1); while(fread(&student,sizeof(student),1,fp)=1) total+; if(total=1)shuchu1(); shuchu2(student); if(total!=0)&(total%5=0) printf(nntPress any key to continue.); getch(); printf(nn); shuchu1(); fclose(fp); printf(nntThere are %d record in all!,total); getch();/*删除信息*/void del
24、ete() struct Student student; FILE *fp1,*fp2; int flag; char ch10; char f; char temp10; do if(fp1=fopen(inform.txt,rb)=NULL) printf(tCan not open the inform file!); getch(); exit(1); if(fp2=fopen(temp.txt,wb)=NULL) printf(tCan not creat the inform file!); getch(); exit(1); printf(请输入您要删除学生信息的学生姓名:);
25、 gets(ch); flag=0; while(fread(&student,sizeof(student),1,fp1)=1) if(strcmp(ch,student.name)=0) shuchu1(); shuchu2(student); flag=1; else fwrite(&student,sizeof(student),1,fp2); fclose(fp1); fclose(fp2); if(flag=1) printf(删除成功!n); remove(inform.txt); rename(temp.txt,inform.txt); else printf(Can not find this record!n); printf(Delete any more?(Y/N): bb); f=getchar();getchar(); while(f=Y|f=y);/*主函数*/main() while(1) switch(menu() case 1:enter();break; case 2:modify();break; case 3:search();break; case 4:display();break; case 5:delete();break; case 0:exit(0);break;