C语言.docx
《C语言.docx》由会员分享,可在线阅读,更多相关《C语言.docx(10页珍藏版)》请在冰豆网上搜索。
C语言
摘要
该管理软件为用户提供一般学生信息的管理功能,用户可以通过对学生的信息录入后,进行快捷、有效的管理。
本程序的设计完全可以满足用户的基本需求,本程序可以很直观的观察出学生的个人信息和用户所指定观看的简明信息,用户还可以通过本程序进行无用信息选择性的删除管理,此外使用者还可以通过使用本程序求得一些数据的总和和平均值。
本软件设计系统、合理,通过五个主菜单:
1.输入信息2.删除全部信息3.显示全部信息4.显示简明信息5.选择删除信息6.平均成绩7.退出系统。
用户可以根据自己的意愿进行信息的录入,在删除不需要的成员信息,显示全部的成员信息,还有用户可以根据自己的工作需要惊醒观看自己想要的信息.
本系统的特色在于它的操作简单,程序方便实用,设计顺序直观,人性化,明了易懂,很是实用.
关键字:
结构体数组嵌套调用循环
第1章学生信息管理系统设计
1.1需求分析
学生信息管理系统是最基本且是最实用的管理系统之一,它作为一个操作系统是学校管理学生不可缺少的一个应用软件,它可以有效快速的对学生的信息进行查看管理,它一简单的操作,易懂的设计过程很受用户的欢迎!
此程序可进行的使用项目有:
1.输入信息
2.删除全部信息
3.显示全部信息
4.显示简明信息
5.选择删除信息
6.平均成绩
7.退出系统。
1.2总体设计
依照设计需求的需要,学生信息管理信息的使用范围应该是面向广大在校的管理人员。
方便学校管理人员对学生进行系统的管理。
下面从软件的整体结构设计角度,模块设计等方面来系统的阐述一下的总体设计。
1.2.1研发和设计的目标
学生信息管理系统作为学校管理人员最基本的应用软件,应具有较高的稳定性和实用价值,所以此软件的衔接严密性事研发和设计的重点。
该应用软件可以为用户提供基本的信息管理功能。
用户可以通过此程序对学生信息进行输入后,然后对人员信息管理和操作,比如进行删除成员或全部成员信息和求平均等具体的有效的提高管理人员的工作效率。
设计此程序可以有效地对学生的基本信息进行管理查看,方便管理员的操作。
1.2.2系统总体模块
本系统共分成七大模块,这七大模块采用非常人性化的设置,首先经过输入信息后可完成以下六项的任何一项操作的运行。
其中删除全部信息是为出现特殊情况,比如操作员对全部的成员输入了错误的信息就可执行此程序,无须退出再次进入。
此系统还有一个优点就是在删除成员信息时可以通过学号和姓名两种方式进行,在输入错误后还可以通过本程序的菜单直接回到重新选择删除的菜单。
相见图1-2-2。
图1-2-2
第2章学生信息管理系统的实现
2.1概要设计
此程序是基本的信息管理系统,在设计的过程中首先引用了两个“宏”,之后引入一个“结构体数组”,在结构体数组里面定义了学号、名、年龄、生日、性别、班级、年级、分数一些变量。
紧接结构体数组后面的是一个“主函数”,它可以选择性的输入学生的人数。
下面的程序设计分别是各主菜单的运行流程设计。
2.2详细设计
设计此程序前首先写入了两个头文件#include#include。
然后程序设计开始时定义了两个“宏”:
#definePRINT1printf("******************************\n欢迎使用学生信息管理系统\n******************************\n");
#definePRINT2printf("学号姓名年龄性别出生日期班级年级总成绩\n");这两个“宏”的定义减小了下面程序的空间占用。
时下面的程序看起来简明、美观。
接着在定义宏之后引用了一个结构体数组:
structstudent
{
intnum;charname[9];intage;charbirthday[14];charsex[4];charcla[9];chargrade[9];inscore;
};
这个结构体数组涵盖了num、name、age、birthday、sex、cla、grade、score八个数组变量,这八个变量分别以int型和char型进行定义的,Char型的定义时为以后的数据输入提供了足够的字符空间。
然后通过调用函数:
structstudentstu[20];
floatave(inta)
{
inti;floatsh=0;structstudent*q;
for(i=0;i<=a;i++){q=stu+i;sh=sh+(*q).score;}
sh=sh/(a+1);
return(sh);
}来求取学生成绩的平均值,这样不仅时函数趋于完美,更加合理运用了C语言里的函数的调用。
在继续的设计中写入一个主函数的输入学生个数部分:
voidmain()
{
floatave(inta);intf,number;PRINT1;
printf("请输入学生数(最大20):
");
loop:
scanf("%d",&number);
if(number>=21)
{
printf("输入学生数过大,请重新输入!
");gotoloop;
}
number--;
if(number==1000){loop1:
PRINT1}
这个主函数的一部分写入目的是验证操作者所要输入学生的个数,在此程序设计中是要求输入小于二十名学生的信息,如果操作者输入超过二十系统就会提示"输入学生数过大,请重新输入!
"此程序的一个优点就是可以修改输入学生人数,所以说没有人数的限制。
以下在运行时出现系统的主菜单:
1.输入信息2.删除全部信息3.显示全部信息4.显示简明信息5.选择删除信息6.平均成绩7.退出系统。
从而使操作者可以自主选择自己所要的信息和操作。
然后进入输入信息的编辑过程:
程序设计中设计了if(f==1)就选择了信息的输入过程,在继续的操作中if(f==2)进入了删除全部信息if(f==3)进入了显示全部信息if(f==4)进入显示简明信息if(f==5)进入了删除成员信息if(f==6)进入了成员成绩平均值的计算if(f==7)选择了退出程序。
在进行操作f==1)就选择了信息的输入过程,在编写此程序时运用了一个FOR循环,然后运用结构体数组的地址变量进行有关变量的输出,之后又运用了一个FOR循环输出系统的主菜单。
在操作f==2进入了删除全部信息界面,在编写此程序段是首先运用了一个嵌套if(strcmp(k,"yes")==0)
{
for(i=0;i<=19;i++){}
}在进行循环语句中使用了strcpy的覆盖方式,这样就让所要删除的信息显示不出来,这样就完成了删除的任务。
在操作f=3进入了显示全部信息界面,此程序段的设计只运用了一个for循环语句,然后通过结构体数组对应的地址变量进行输出全部的信息。
在进行操作f=4进入了显示简明信息操作界面,此程序设计只用了一个for循环进行输出“学号姓名总成绩”三项简明信息。
在显示简明信息后在程序后又加入了返回到主菜单的程序,从而进行一下的操作。
输入f=5进入了通过搜索学号和姓名两种方式进行选择性的删除,无论是通过学号搜索还是通过姓名搜索设计时都是用了if和for的嵌套语句,在for循环中检测原始数据里面的前部信息与欲删除的信息进行比较,从中挑选吃所要删除的信息,然后确认后输入yes进行删除的进行,在进行确认的判断是设计运用了一个if判断和一个Ffor循环完成了此次的执行任务。
在设计f=6时进入的是求平均的程序设计段,此程序段在设计时运用了一个调用函数,此调用函数在前面,位于主函数前面。
之后设计了一个空语句来执行整个系统的运行结束。
第3章调试问题分析及解决办法
1.在此程序的调试时出现了一些不理想的结果,比如在输出"******************************\n
欢迎使用学生信息管理系统\n
******************************\n
时上下两行的输出显得很吧协调,于是在编写时有加入了一些空格和“*”,这样才解决了输出不协调的问题。
2.在编写输出主菜单时出现了在输入的值为菜单的选项是系统能正常输出,但如果要输入一个其他的字符或者大于菜单的字符时就会出现系统无休止的运行并且都是乱码,检查后将原来的switch语句改为现在的if语句。
3.程序的调试运行过程中,在输出"学号姓名年龄性别出生日期班级年级总成绩”时它们所对应的数据不能完全一一对称,这是因为汉字和英语单词在程序中所占据的字符个数不同,但又由于一个汉字占据两个字符单词占据一个字符,这样一一对照解决了此输出问题。
4.在运行求取成员的成绩平均值时,没有输出求取后的小数部分,然后通过改变输出数据的字符变量为浮点型这样得到了六位有效数字,从而解决这样的输出问题。
5.程序在运行调试的过程中,首先设计的是选择通过选择搜索成员姓名的方式进行删除,但由于成员的姓名有可能有重复所以有可能删除不是遵循用户意愿的信息,所以又设定了通过搜索成员的号码和搜索成员的姓名两种方式来完成删除的任务。
同样用户有可能输入错误的删除项目,导致用户不得不终止程序从新输入,于是又加入了printf("确认删除此项?
(yes确认,no回到删除选择)");若用户发现选择错误可以回到删除选择,这样可以更加方便用户的使用。
6.在运行的过程中发现没有在运行一个菜单后,用户想再次查看全部的成员信息,于是在每一个菜单运行后加入了回到主菜单的loop语句,这样时问题得到解决。
7.在运行删除成员信息时,运行结果也出现了问题,在正确输入要选择的成员后出现"确认删除此项?
(yes确认,no回到删除选择)"但在输入回车键后发现程序没有运行,通过多次检查发现回到主菜单正常运行,从而得到执行删除的循环出现了问题,经过检查设计中
for(d=number;d<=19;d++)的d=number出现问题,经过查看予以改正问题解决。
8.在程序调用求取成员的成绩平均值时,发现系统提示0error(s),3warning(s),在经过多次检查时发现在前面的调用时定义的变量和后面使用的变量分别为INT型和FLOAT型,因此出现了系统所提示的警告信息,发现后予以解决,程序正常运行。
9.在执行选择性删除信息的程序段时出现了删除后的成员部分全用零代替,于是增加一位结构体数组元素的数量,并使学生的个数减少一位,学生个数的最大值减少一位,这样问题解决。
第4章调试运行结果
4.1主菜单及输入信息界面
这部分时程序开始时对成员信息的录入部分,用户可以通过此程序输入成员的编号、姓名、性别、出生日期、班级年级和成绩。
如图4-1
图4-1
4.2删除成员界面
这部分程序是进入删除信息界面后通过搜索学号进行成员的删除,并回到主菜单界面,另外进入主菜单后选择删除全部信息的Dos界面,此外该程序还可以通过主菜单退出此运行系统。
如图4-2
图4-2
结束语:
经过这次的实训,在我们四人组成的一个小团队的刻苦钻研和努力下,一步一步摸索课题,最终终于完成了任务。
这个程序虽然运行的结果简单,但是我们在编写的过程中碰到了不小的困难,我们通过查阅书籍和综合自己在课堂上所学习到的理论知识,最后战胜了种种困难。
通过这次的实训让我们每个人明白程序的设计不是一朝一夕就能完成的事情,明白了要真正学好这门课程不仅完成课堂上的任务,还要多做编程,更多的阅读有关编程的书籍。
这次我们学到了很多有关编程的知识,在看到我们的程序成功的运行时,我们收获的不仅仅是喜悦。
参考文献:
【1】《C程序设计》(第三版)谭浩强著北京:
清华大学出版社2005年
【2】《C语言》李智渊著电子科技大学出版社1995年
【3】《实用C语言及其程序设计》鲁岩著大连理工大学出版社2003年
【4】《C语言程序教程》薛万鹏著机械工业出版社1998年
【5】《程序设计语言:
设计与实现》(第四版)傅育熙著电子工业出版社1995年
【6】《C语言程序技巧程序集》袁征著电子工业出版社2003年
安徽师范大学皖江学院
课程设计成绩评定单
题目:
学生信息管理系统设计与实现
学生姓名
余健飞吴友杰杨峻余明焕
指导教师
费晶晶
指导教师评语:
指导教师评定
设计成绩等级
指导教师(签章):
200年月日