C语言 学生信息管理系统(完整版)
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
电子科技大学成都学院程序综合设计论文
论文题目学生信息管理系统
学生姓名魏国
学号1340840625
专业机械设计制造及其自动化
系(分院)电子工程系
授课教师杜娥
2015年12月制
摘要
随着经济的发展,社会的进步,计算机越来越深入到我们日常的工作学习及生活中,成为我们日常生活不可或缺的辅助工具。随着科学技术的不断提高,计算机科学日渐成熟,其强大的功能已成为人们深刻认识,它已为人们深刻认识,它已进入人类社会的各个领域并发挥着越来越重要的作用。现在由于学校规模进一步扩大,学生人数逐渐上升,在学校的学生信息管理中,虽然已经存在许多学生信息管理系统,但由于学校之间的管理差异很信息的不同,各个学校的学生信息管理的要求不一致,这样我们需要根据具体学习的具体要求来开发学生信息管理系统以方便学生管理。本系统主要对学生各种信息进行处理。
本系统采用C语言编写,设计从实用性出发,设计开发出一个操作简单且符合实际需要的学生信息管理系统。本文设计出一个可以添加、修改、查询、删除、统计的学生信息管理系统;最后,通过测试分析,力求将学到的只是在学生信息管理系统的得到全面运用,并使系统在实际的操作中能按照设计的要求安全有效的正确运行。
学生信息管理系统是为了实现学校对学生信息管理的系统化、规范化和自动化,从而提高学校管理效率而设计的。它完全取代了原来一直用人工管理的工作方式,避免了由于管理人员的工作疏忽以及管理质量问题所造成的各种错误,为及时、准确、高效的完成学生信息管理提供了强有力的工具和管理手段。
学生信息管理系统是一个中小型数据库管理系统,它界面美观、操作简单、安全性高,基本满足了学生信息管理的要求。学生信息管理系统在运行阶段,效果好,数据准确性高,提高了工作效率,同时也实现了学生信息管理计算机化。
关键字:学生信息,管理系统,数据库,C语言编写
第一章系统功能和组成模块
1.1系统功能
学生信息管理系统存放了每个学生的学号,姓名,性别,年龄,出生年月,家庭住址,政治面貌等信息的数据库。每个人的信息定义在一个结构体变量中。其结构如下:
系统通过录入信息程序,浏览信息程序,删除信息程序,修改信息程序,查找信息程序统计信息程序来实现学生信息管理系统的录入功能,浏览功能,删除/修改功能,查找、统计功能。各个功能的调用通过主函数menu中的switch语句来实现。
1.2模块组成
1.2.1输入显示模块
通过设计一个模块,来实现学生信息的输入,同时来实现菜单界面的显示。用以作为系统显示界面。
1.2.2删除模块
通过设计一个模块,来实现删除全部输入的学生信息或者某一个特定的学生信息,用户可以通过选择进行操作。在删除特定人员信息时,只需要输入该学生的学号就可以进行删除。以后该学生的信息将不会再出现在数据库中。
1.2.3修改模块
通过设计一个模块,当某个学生的信息发生变化时,可以通过修改模块来进行修改。
1.2.4浏览模块
通过设计一个模块,可以将已经输入到数据库当中的信息调出显示。以便查看或者进行修改。
通过设计一个模块,这个模块可以按学生的学号、姓名来查询学生所有的信息,并显示学生的所有信息,以便查询者阅读。
1.2.6统计模块
通过设计一个模块,可以将所有输入过得数据库当中的信息以某个特定分类来进行统计,输出该特征的总人数。
图1-1总体模块框图
第二章系统功能的实现
2.1各模块主要功能的实现
2.1.1输入显示模块
程序通过一个printf函数和scanf函数来进行数据库的显示输出,输出的时候,通过定义数字、字符的长度大于本身的长度来实现输出信息的排版和隔开,使输出的信息排版美观。
程序通过定义一个字符整形来判别是全部删除(all)或者是删除某个特定学生(one)的信息,删除特定学生的信息需要先定义一个变量来判别是否有信息需要删除,如果有,则输入需要删除的学生的学号,进而进行删除,成功则显示“删除成功”,如果输入有误,则删除失败,显示“输入数据错误”。
图2-1 删除程序框图
程序实现步骤:
首先,定义全局变量char xinxi[20];int choice;然后,定义一个char Del[10];然后清屏,接着用printf指示是删除(all/one);然后用scanf输入,接着用if函数判别,用strcmp(Del,"all")==0比较,然后输出人数等于0,则删除成功;然后用else if函数判别strcmp(Del,"one")==0,然后定义一个字符型变量char choice[20];定义i,j,k,然后用printf提示输入学号,用
scanf输入,然后定义一个指针变量p并初始化。然后用for语句进行循环,然后用if比较判别输入学号和数据库中所存信息的关系,当含有这个人的信息的时候,把变量k赋值为1,并把此人再内存的顺序号i赋给j,然后则跳出循环。然后判别k,如果数据库中只有一人的信息,则由指针p指向它,然后释放,达到清除效果。如果有多人信息,则用for语句循环,用student[i]=student[i+1];renshu=renshu-1;来替换以达到删除效果。如果是其他形式,则报错。
2.1.3查找模块
程序通过输入字符(1或者2)来实现是按学号还是按姓名来查找。当输入完学号或者姓名的时候,再通过一个for循环来实现此人信息的查找。当含有这个人的信息的时候,把变量k赋值为1,并把此人再内存的顺序号赋给i。如果不含这个人的信息的时候,变量k的值仍为0。再通过一个if 语句,如果k的值为1,则打印第j个人的所有信息,如果k的值为0,则打印“输入信息有误”。
图2-2 查找程序框图
程序实现步骤:
首先,进行清屏,然后用if语句判别renshu==0,则用printf输出“无任何学生信息”,然后返回主界面。接着用printf提示输入查找方式(1.学号,2.姓名),然后用scanf输入数字1,2(此处使用声明过得变量choice),然后用if语句判别输入choice是否等于1 ,然后提示输入学号(出处使用全局声明变量xinxi),然后用if语句判别,用strcmp(xinxi,student[i].id)==0比较,当含数据库中有这个人的信息的时候,把变量k赋值为1,并把此人再内存的顺序号赋给i,然后跳出循环。如果不含这个人的信息的时候,变量k的值仍为0。再通过一个if 语句,如果k的值为0,则用printf输出“输入信息有误”;如果k的值为1,则输出第j个人的所有信息。
第二种查找方式:用if语句判别输入choice是否等于2 ,然后提示输入姓名(出处使用全局声明变量xinxi),然后用if语句判别,用
strcmp(xinxi,student[i].name)==0比较,当含数据库中有这个人的信息的时候,把变量k赋值为1,并把此人再内存的顺序号赋给i,然后跳出循环。如果不含这个人的信息的时候,变量k的值仍为0。再通过一个if 语句,如果k的值为0,则用printf输出“输入信息有误”;如果k的值为1,则输出第j个人的所有信息,其他的输入则报错。
2.1.4浏览模块
程序通过定义两个变量i,j来实现信息的浏览功能,如果数据库内没有输入任何的数据,则显示(“系统里面没有任何学生的信息!”),如果数据库内有学生信息存在,则用printf显示出学生的各项信息。
2.1.5修改模块
程序定义一个变量来确定到底输入的是学号还是姓名。通过一个for循环来确定数据库到底是否含有此人的信息。如果含有此人的信息,则把此人的信息打印再屏幕上。再显示二级菜单,是修改这个人的学号、姓名、性别、年龄、出生年月、家庭地址、政治面貌和各科成绩。通过一个switch语句来实现某个信息地修改。如果不含有此人的信息,则打印“输入信息错误!”。
2.1.6统计模块
程序通过定义一个变量cot来进行人数统计,使用count函数来按性别进行学生人数统计。