********电气与信息工程学院。
实训报告。实训题目: 学生信息管系统理
专业: 软件工程专业
班级: t1123-3
姓名。一、需求分析。
1、问题。根据需求,该系统所包含的信息应该有以下一些:
通讯录的基本信息:
姓名——name班级——classes
性别——sex学号——no
年龄——age出生日期——birthday(year,month,day)
地址——address电子邮件——mail
**——phone
根据需求,该系统应该包含一下一些功能:
从指定的文件读取信息——read()
按学号查找学生信息——nosearch()
按姓名查找学生信息——namesearch()
按班级查找——clasearch()
修改学生信息——update()、update2()
删除学生信息——delete()
将学生信息保存到指定的文件中——s**e()
判断日期输入是否正确——date *judgedate(char date)
主函数——输出菜单、功能选择。
2、系统。采用c语言实现,开发环境vc,可运行在windows98以上的操作系统。
3、运行要求。
能按指定格式读入信息。
操作简单,方便。
界面友好,有一定的容错性。
⑷功能人性化。
二、总体设计。
1、系统流程设计。
根据系统要求,设计如下的系统流程。
图1 系统流程图。
2、系统模块设计。
根据系统的功能设计如下模块。
图2 菜单功能图。
主界面模块:完成系统菜单的显示。
功能选择:根据用户的选择,实现相应的功能。
学生信息的读入:从文件读入学生的信息。
学生信息的修改:修改学生的信息(学号、班级、姓名。。。
学生信息的查询:查询某个学生或者班级的信息。
学生信息的删除:根据用户输入的信息删除相应学生的信息(人性化)
学生信息的保存:将学生信息保存到指定的文件中。
三、详细设计。
1、数据结构设计。
根据系统需要,系统中需要保存的数据有如下一些信息:
使用c语言创建的结构体如下:
typedef struct date
int year;
int month;
int day;
date;struct student
char no[20];
char classes[20];
char name[30];
char sex[20];
char age[20];
char address[30];
char phone[20];
date *birthday;
char mail[20];
stu[num];
2、界面设计。
主界面:根据系统的设定要求,设计一个字符型界面,显示系统的菜单,为了体现友好性,将每个功能的前面加入与之对应的数字选项。
图3 菜单界面图。
用户输入菜单前的数字后,主菜单消失将进入相应功能的界面,进行相应的操作后,再次返回主菜单。
文件导入界面:
输入文件名后,进行导入操作。然后返回主菜单。
图4 信息读入图。
信息查询界面:
用户根据需求,选择查寻方式,界面跳转相应查寻方式界面。操作完成后返回主菜单。⑷按学号查询:
图5 按学号查询图。
按姓名查询:
图6 按姓名查询图。
按班级查询:
图7 按班级查询图。
信息删除界面:
用户根据需要选择删除,界面跳转相应删除界面。操作完成后,返回删除界面,按“0”返回主界面。查找到要删除的信息时,把其信息打印出来,然后提示是否要删除,根据用户选择执行。
图8图9 信息删除界面。
信息修改界面:
用户输入要修改学生的姓名,然后界面跳转修改信息项,键入新的信息,完成操作后返回修改界面,按“0”返回主界面。
图10 信息修改。
图11 信息修改界面。
图12 图13 信息修改完成界面。
信息保存界面:
用户输入保存文件的路径,系统自动创建相应文件,将信息保存。
图14 信息保存界面。
图15 信息保存文件。
四、程序测试。
1、读入信息模块测试:
当输入的文件名不存在时,系统会提示出错并要求用户继续输入,直到打开文件为止。
图16 读入测试图。
2、信息查询模块测试:
在进行信息查询时,系统会先检查是否已读入信息,再进行便利操作。若没有,则不能进行查询操作。
图17 查询测试图。
图18图19
图20图21
3、信息删除模块测试:
同查寻模块一样,该模块也会先检查是否有信息存在于系统中,然后再进行查找,找到需要删除的信息,进行删除操作,否则提示先读入文件。删除后,把剩下的信息输出。
图22图23 删除测试图。
4、信息修改模块测试:
系统先检测是否有信息读入,然后根据用户输入的信息进行检索,找到相应信息则给出修改提示。否则提示信息不存在。修改后提示是否显示修改后的信息。
图24图25
图26图27 修改测试图。
5、信息保存模块测试:
进行信息检测后,最后再进行保存操作。若信息没有读入,则不能保存。
图28图29 保存测试图。
图30 退出界面。
五、实训总结。
由于个人能力问题,本次实训只能用结构体数组来做,因为自己对链表一点都不熟悉,试了一下,根本无法进行下去,总是错误百出,而且自己无法改正。用结构体数组做本次实训,虽然存在很多缺陷,但大多数功能还是可以实现的。
用结构体做本次实训,对菜单输出、文件读入、信息查询(按学号、姓名、班级)还是较容易实现的。但还是遇到了诸多的问题,尤其是再对信息删除和信息修改方面,遇到了较大的困难。在删除信息时,不可能从原文件中实现删除信息,只能在输出时对要删除的信息将其覆盖掉。
在修改信息时,遇到的难度就更大了。在输入修改内容时,要对输入的日期进行各种判断,从日期长度到格式,从年份到月份,从闰年到平年,还有没月的天数,都需要进行仔细的判断。要做到此,就要在修改函数里调用一个判断日期的函数,而要判断日期,也要把日期的年月日放到一个结构体里面。
这次实训,对于信息的保存,还是挺容易做到的,不管保存为何种格式的文件。
通过这次实训,自己的收获还是挺多的,在做的过程中,既巩固了所掌握的知识,又提高了编程能力,也让自己看到了不足(链表、指针等),这就确定了空闲的时候应该要干什么:要用放假时间,把所缺的知识补回来。
六、附录。程序源**:
#include <>
#include <>
#include <>
#define num 10
static int m=0;
typedef struct dates
int year;
int month;
int day;
date;struct student
char no[20];
char classes[20];
char name[30];
char sex[20];
char age[20];
char address[30];
char phone[20];
date *birthday;
char mail[20];
stu[num];
date *judgedate(char date)
int read();
int nosearch();
int clasearch();
int namesearch();
int delete();
int update();
void update2();
int s**e();
int main()
int number,k=0,n=0;
system("color ce");
while(1)
system("cls");
printf("\t\t\t学生信息管理菜单n");
printf1、读入学生信息n");
printf2、按学号查询学生信息n");
printf3、按班级查找学生信息n");
printf4、按名字查找学生信息n");
printf5、删除学生信息n");
printf6、修改学生信息n");
printf7、保存学生信息n");
printf0、退出n");
printf("\t\t\tn");
printf("\t\t\t请输入选项**:\t\t\t");
scanf("%d",&number);
rewind(stdin);
switch(number)
case 1:
if(k==0)
read();
printf("\t\t\t");
system("pause");
k=-1;else
system("cls");
printf("\t\t\t信息读入成功,请再选择项目!")
getchar();
break;
case 2:
if(k==0)
system("cls");
printf("\t\t\t信息没有读入,无法查询!请先选择第 1 项!")
getchar();
else nosearch();
printf("\t\t\t");
system("pause");
number=-1;
break;
case 3:
if(k==0)
system("cls");
printf("\t\t\t信息没有读入,无法查询!请先选择第 1 项!")
getchar();
elseclasearch();
printf("\t\t\t");
system("pause");
number=-1
break;
case 4:
if(k==0)
system("cls");
printf("\t\t\t信息没有读入,无法查询!请先选择第 1 项!")
getchar();
elsenamesearch();
printf("\t\t\t");
C语言课程课程设计
课程设计报告。课程名称 c语言程序设计 系别 xxx 专业班级 xxx班 学号 xxxxxxxxxx 姓名 xxx 课程题目 10或100以内儿童加减乘除算术游戏。完成日期 2013.6.14 19 指导老师 xxx 2013年 6月 21日。附件 一 程序模块图。二 源程序。include inc...
C语言课程设计
目录。1 c语言程序课程设计教学大纲。2 c语言程序课程设计说明书。3 c语言程序课程设计报告 模板 4 c语言程序课程设计成绩评定表。xx xx学院。课程教学大纲。课程名称 c语言程序课程设计。适用专业 课程类别 专业基础课。制订时间 2010年11月 计算机科学与技术系制。c语言程序课程设计教学...
C语言课程设计
目录。1 c语言程序课程设计教学大纲。2 c语言程序课程设计说明书。3 c语言程序课程设计报告 模板 4 c语言程序课程设计成绩评定表。珠海学院。课程教学大纲。课程名称 c语言程序课程设计。适用专业 2010级计算机科学与技术系各专业。课程类别 专业基础课。制订时间 2010年11月 计算机科学与技...