C语言程序设计报告 (2)

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

C语言课程设计报告《计算机程序设计基础》课程设计题目学生信息管理系统

学生姓名胡乔楠

学号

指导教师汤哲

学院信息科学与工程学院

专业班级电气0821班

完成时间七月四号

目录

第一章项目概述

1.1 问题的要求分析与描述

1.2 问题的要求和限制

第二章项目设计

2.1系统程序的组成框图

2.2 :程序的流程图

2.3 详细设计

第三章调试与结果

3.1调试方法

3.2 测试结果(见附录A、B)

第四章工作总结

附录A、B;

源代码;

参考文献;

第一章项目概述

1.1 问题的要求分析与描述

我设计一个学生信息管理系统。首先学生的信息包括:学号、姓名、年龄、性别、出生年月、家庭地址、电话号码、电子邮件、毕业学校等等。

这个管理系统需要实现以下功能:

1.系统以菜单的方式工作;

2.实现学生信息的录入功能,学生的信息保存在文件中;

3.实现学生信息的输出功能,输出功能应包括如下算法:

3_1:单个学生按学号查询功能;

3_2:单个学生按姓名查询功能;

3_2:全部学生的浏览功能;

3_3:全部学生按学号排序浏览功能;

4.实现学生信息的删除和修改;

1.2 问题的要求和限制

1:系统要美观,有欢迎界面;

2:在输入信息时要有一定的容错能力,比如年龄输入为负数或者大于150就提示有错,要求重新输入;

第二章项目设计

2.1系统程序的组成框图如下:

此变量来记录学生的个数。

2.3.2 main函数

所有的函数都写在main函数中并给他调用。Main函数中首先定义了一些整型数据,ch1、ch2、j、长整型数据“number”,字符数组“name”,文件指针。接着“printf”函数打印出一个欢迎界面。用死循环进入一个选择菜单,用户输入选项来运行系统。用“scanf”函数来给ch1赋值。接着程序就进入一个多分支if语句中。通过判断,程序运行进入相应的功能区。Ch1=0就会跳出此模块,返回上一模块。Ch1=1时,函数进入学生信息录入功能,用户输入学生的信息。在输入信息时会有容错能力。比如输入性别不是男或女,就会提示输入错误,要求用户重新输入;使用“fwrite”函数,使学生的信息保存在C盘中名为“INFORMATION.txt”的文档中。ch1=2时,函数进入学生信息查询功能。用户根据菜单输入信息进入相应的子功能。用户可以更具菜单选择相应的功能。Ch3=0,系统就会返回上一个功能。Ch3=1,系统就会按学生学号来查询学生信息,用户输入学号。若学号正确,则系统输出相应的学生信息。若错误,系统就提示用户学号错误,请重新输入。Ch3=2,系统就会按学生姓名来查询学生信息,用户输入姓名。若姓名正确,则系统输出相应的学生信息。若错误,系统就提示用户姓名错误,请重新输入。Ch3=3,系统进入学生信息浏览功能,同样有一个菜单供用户选择,1为浏览所有学生的信息。用“for”循环把所有学生的信息从文本中用“fread”函数读出来,在把所有结构体成员一一打

印出来。这时调用了一个“print(int l)”函数。在主函数中,把“i”传给“n”。2为按学号的顺序来浏览所有学生的信息,调用“paixu(int n)”函数。主函数把“i”的值传给“n”,实现学生的信息排序,并打印出来。同样,选择为0时就返回上一级菜单。若ch1=3,系统进入删除功能模块。此时调用了“deletes(int n)”,主函数把“i”的值传给“n”,实现学生信息的删除功能。若ch1=4,系统进入修改功能模块,此时调用了“changes()”,主函数实现学生信息的修改功能。(欢迎界面、开始菜单、容错能力、单个查询功能见附录A)

2.3.3print函数

“print(int l)”函数中,从主函数接收变量“i”,并把其值赋给“l”。“print(int l)”函数用“struct students *p1”,定义了一个结构体指针。接着用“printf”函数打印各个结构体的成员,“p1->num”等来表示成员。

2.3.4paixu函数

“paixu(int n)”从主函数接收变量“i”,并把其值赋给“n”。“paixu(int n)”中定义了两个整型数据,用来作为循环时的变量。以及两个结构体数组u[100]和v[100],一个文件指针。函数先用for循环和“fread”函数把文件中的数据读出来并赋值给u[100]。接着对u[100]来进行冒泡排序,v[100]作为中间变量来实现排序。排完后,把u[100]中的数据用“printf”函数打印出来。

2.3.5deletes 函数

“deletes(int n)”从主函数接收变量“i”,并把其值赋给“n”。“deletes(int n)”中定义了三个整型变量“j”、“k”和“chioce”,一个长整型变量“number”,一个结构体数组“struct students u[100]”,一个文件指针。函数先判断有没有学生信息被录入,如果没有,系统则自动返回。如果有,则要求用户输入要删除学生的学号。用“scanf”函数给“number”赋值,并判断文本中是否有此学生的信息,如果此学生的信息不存在,则系统会提示用户学生不存在,并自动返回。如果学生信息存在,则系统将打印学生的全部信息,并再一次提示用户是否要删除此学生。当用户选择1时,系统删除此学生信息,选择否时,系统将自动返回,学生信息改变。

2.3.6changes函数

“changes()”函数没有形参,直接对文件中的结构体进行修改。“changes()”函数中定义了两个文件指针“fp1”和“fp2”,一个长整型数据“number”,三个整形数据“j”“flag”“choice”。函数先判断有没有学生信息被录入,如果没有,系统则自动返回。如果有,则要求用户输入要修改学生的学号。“fp1”指向文本“INFORMATION.txt”,“fp2”在c盘中重新建立一个文本“change.txt”。用“fread”读出文本中的学生信息。用“scanf”函数给“number”赋值,并用“for”循环来判断文本中是否有此学生的信息,如果此学生的信息

相关文档
最新文档