C语言课程设计报告书—学生信息管理系统.doc
《C语言课程设计报告书—学生信息管理系统.doc》由会员分享,可在线阅读,更多相关《C语言课程设计报告书—学生信息管理系统.doc(22页珍藏版)》请在三一办公上搜索。
1、西安郵電學院C语言课程设计报告书系部名称 电信系学生姓名 专业名称电子信息工程班 级学号指导教师 时间2008年06月09日至 2008年06月20日 西安郵電學院 实验题目 学生信息管理系统一、实验目的:(1)本学期我们学习了C语言,由于初接触,学习有一定困难;于是学校给我们提供一次巩固提高的机会-课程设计。该可程设计要求学生既动手又动脑,自学,查资料,独立实践。将本学期课本上的理论知识和实际有机的结合起来,锻炼学生实际分析问题和解决问题的能力,提高学生适应实际、实践编程的能力,使对C语言系统编程有一个大致的了解。(2)C语言的实践。掌握C语言函数的定义方法,函数的声明及函数的调用过程。掌握
2、结构体类型变量的定义和使用,综合应用C语言的知识,实现一个完整的系统,提高编程能力,体会软件程序的开发过程。二、实验内容:(1)根据所学知识,运用结构体数组编辑一个简单的学生信息管理系统,使之能够完成对学生信息的天价查找,删除,更改,管理等操作,并对文件进行保存和读取。(2)执行编译操作,并根据提示调试此程序,排除所有的错误和警告。直到编译成功为止。(3)执行运行操作,逐一对每个模块进行调试。直到全部程序运行成功为止。(4)请老师检查,向老师演练此程序,并能回答老师提出的相关问题。 三、 需求分析:(1)根据学生信息管理的需要,建立一个“学生信息管理系统”, 系统具有对学生信息的添加,查找,删
3、除,更改的管理操作等基本功能;以方便对学生的各项管理操作。每一条记录包括一个学生的学号,姓名,性别,年龄,住址,成绩.系统的各个功能模块都用函数的形式来实现;可以将学生信息保存在文件中,并从文件中读取出来。本程序是由C语言的基本单位函数来设计实现与其功能的多次使用函数调用以及函数的嵌套调用。本程序分为8个模块,可以处理多个学生信息的输入、添加、删除,修改等问题。本程序的使用特别方便,每做完一个模块,下面都有提示信息。使用环境为Win-Tc。(2)创建该学生信息管理系统目的就是能够对学生基本信息进行创建、追加、查询、修改等功能,这样可以简化许多人工做起来很复杂的问题。(3)该学生基本信息管理系统
4、是在WIN-TC中文简体环境下运行。该系统要测试的数据如下:输入模块:(输入3个学生信息)序号: 001 姓名:张三 性别:男 年龄:20 成绩:90序号: 002 姓名:李斯 性别:男 年龄:19 成绩:87序号: 003 姓名:王美 性别:女 年龄:20 成绩:82添加模块:(再加1个信息)序号: 004 姓名:赵灵 性别:女 年龄:19 成绩:89查询模块:(查询成绩的基本信息) 分:按学号查询和按成绩查询 四、概要设计(1) 主函数主要模块结构图: 主函数输入模块 保存信息 读取信息 输出信息插入删除修改退出程序排序统计信息 更新信息(2)模块功能详细说明:A、创建模块:此模块可以连续
5、输入若干个学生的资料,若学生数少于该数,则可以在输入学号处输入e 便可退出此模块,并把输入的信息保存到c:stud文件中。 B、追加模块:此模块中先打开c:stud统计文件中的学生,后输入要添加的学生的学号,系统确认此学号在c:stud不存在时开始纪录新学生的资料,否则输出“此学号已存在!”,以便清楚使用者。C、查询模块:此模块中使用者可以用3种方式查询学生成绩。分别为(1)按学号查询(2)按姓名查询(3)按成绩查询。在这里以按学号查询为列:先选择按学号查询,输入要查询的学生的学号,系统确认此学号在c:student存在后读取信息并在屏幕上输出学生纪录。D、修改模块:此模块中可以修改一门科的成
6、绩也可以同时修改四门科的成绩。修改完毕后输入1 可以继续修改,输入0 则退出此模块。E、删除模块:此模块中用到的删除原理为覆盖要删除的学生的资料。过程简述,先输入要删除的学生的学号,系统找到此学生的信息后给它复制下一个学生的信息,给下一个学生的纪录复制下下一个学生的信息,一直到最后一个学生的信息复制给倒数第二个学生的信息为止。然后文件中的学生总数减一。F、此模块较简单,先统计文件c:student中的学生个数,后把每个学生的各门科的成绩加起来,然后总成绩除以学生总数,屏幕上输出各科的平均成绩。G、排序模块:在此模块中可以按2种方法进行排序 ,分别为(1)按学号排序(2)按平均成绩成绩排序。输出
7、时以从小到大的循序进行输出。(3)模块功能说明1 输入功能:可以一次完成N条记录的输入。 2保存功能:保存已输入信息。3 读取功能:读取已输入信息。4 打印功能:完成全部学生记录的显示。5 更新功能:更新学生 的信息。 6 查询功能:查询学生信息并显示。7 统计功能:统计学生信息并显示。8 排序功能:根据学号,平均成绩排序。0 退出系统。五、详细设计及运行结果(1)各主要模块的程序流程图添加模块:已有此学号!打开文件c:stud统计学生个数count输入添加的学号ij0Scorei.number=scorej.number?j+jcount?输入各门科的成绩结束 删 除 模 块:打开c:stu
8、d统计文件中学生个数counti0输入要删除的学号sc.number=scorei.number?jiscorejscorej+1j+jcount?已删除此生成绩!结束i+icount ?排序模块:i0ji+1scorei.yuwencount?ii+1in-1?打开c:stud文件,统计文件中学生个数count文件中学生个数Count1输出结果结束达不到排序要求!( 2 ) 函数之间相互调用的图示:主函数调 用 创 建 函 数调 用 修 改 函 数调 用 插 入 函 数调 用 查 询 函 数调 用 删 除 函 数调 用 统 计 函 数 结束结束结束结束结束结束调 用 排 序 函 数结束(3)
9、主要函数之间相互调用如下:主函数main ()的调用switch(choice)case 1: input_message();break; case 2:save_message(sum);break; case 3: read_message();break; case 4: output_message();break; case 5: renew_message();break; case 6: inquire_message();break; case 7: count_message();break; case 8: sort_message();break; case 0: br
10、eak; 删除函数调用int del_by_name() char del_name20,i,f=0; printf( nn please input the student name:); scanf(%s,del_name); for(i=0;isum;i+) if(strcmp(studenti.name,del_name)=0) studenti.num=-1; printf( %s student information have been deleted! ,studenti.name); f=1; break; if(f=0) printf( nn*cannot find the
11、 student!*nn); getchar(); return 0;int del_by_num() int del_num=0,i,f=0; printf(nn please input the student num:); scanf(%d,&del_num); for(i=0;isum;i+) if(studenti.num=del_num) studenti.num=-1; printf(the students information have been deleted!); f=1; break; if(f=0) printf( nn *cannot find the stude
12、nt!*nn); getchar(); return 0; del_message() int choice; do clrscr(); printf( *delete students information*nn); printf( 1.delete by namenn); printf( 2.delete by numnn); printf( 0.retrun menunn); printf( please choose (0-2):); scanf(%d,&choice); switch(choice) case 1: del_by_name();break; case 2: del_
13、by_num();break; case 0: break; while(choice!=0); return 1;追加函数的调用insert_message() /*添加信息*/ int i=sum; int flag=0; char choice; clrscr(); printf(nn insert s students informationn); do studenti.num=+sum; printf(n new studnet num: %d ,studenti.num); printf(n students name: ); scanf (%s,studenti.name);
14、printf(n students sex: ); scanf (%s,studenti.sex); printf(n students age: ); scanf (%d,&studenti.age); printf(n students class: ); scanf (%d,&studenti.class); printf(n students num: ); scanf(%d,&studenti.num); printf(n students plants: ); scanf(%s,studenti.plants); printf(n students score: ); scanf(
15、%d %d %d %d,&studenti.exam.chinese, &studenti.exam.math, &studenti.exam.english, &studenti.exam.aver); printf(n students birthday: ); scanf(%d%d%d,&studenti.birthday.year,&studenti.birthday.month, &studenti.birthday.date); printf(n students telephone: ); scanf(%d, &studenti.telephone); printf(n stud
16、ents add: ); scanf(%s,studenti.add); printf(n do you want to continue?(Y/N); choice=getch(); if(choice=y|choice=Y) printf(n continue!n); i+; flag=1; else flag=0; while(flag=1); printf(n push any button to go away); bioskey(0); 输入指令(1,2,3,4,5,6,7,8,0)输出学生信息更新学生信息查询学生信息退出读文件无任意键回主菜单有录入学生信息写入文件中输入指令(4)
17、1、 4 5 60 0输 出 1 2 3 0添加信息删除信息修改信息返回输入学号删 除存入文件输入学号选择修改项目结 束输入修改后的内容输 出输入指令,选择查寻项目8排 序输入指令,选择排序项目开 始学生信息学号姓名成绩返回学号成绩返回六 调试情况,设计技巧及体会经过两周的实习时间,我用文件建立了一个应用系统程序,形成系统软件。此程序结构简单明了,让人一目了然,便于对程序的阅读和理解。同时操作起来也比较方便简单。又由于增加链表更增强了系统的灵活性。通过对此程序的编写,让我把书本上学到的应用到实际中去,但在编出程序的雏形后,再进行编译时出现了许多错误和警告。这才让我认识到理论和实践是存在一定差别
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 课程设计 报告书 学生 信息管理 系统
![提示](https://www.31ppt.com/images/bang_tan.gif)
链接地址:https://www.31ppt.com/p-2384919.html