软件工程课程设计--学生信息管理系统

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

《软件工程》课程设计
题目学生信息管理系统
班级
学生
学号
设计时间
目录
一. 程序分析与设计 (3)
二.设计流程图 (6)
三. 源程序清单 (9)
四.调试过程 (14)
五.程序有待改进的地方 (18)
六. 本次实习的收获和建议 (18)
参考文献 (19)
学生信息管理系统
一. 程序分析与设计
该系统是帮助管理学生信息的软件,要求用户输入用户名和密码登录进入学生信息管理系统,从而实现对学生个人信息的管理工作,通过对学生基本信息的设置,完成添加、删除、修改、浏览等功能,并可以通过学号对所需要的学生信息进行查询,从而方便学校管理部门对学生信息的基本情况的快速查询和了解。

基本功能:
添加功能:管理员可以添加学生相关信息;
修改功能:管理员可以对数据库中信息进行修改,系统能够通过管理员给粗的条件查找出所要修改的信息,对修改后的信息进行保存;
删除功能:管理员可以对数据进行删除操作。

系统能够通过管理员给出的条件查找出要删除的信息,并把相关信息从数据库中删除掉;
浏览功能:在不知道学生学号的时候可以使用该功能来查阅所有的学生信息;
查询功能:可以对学生信息按条件进行查询。

1:变量和结构体说明
1)学生信息的结构体如下:
struct studentinfo //定义一个学生结构体{
char sno[10]; //学生的学号
char sname[10]; //学生的姓名
char sex[10]; //学生的性别
int age[10]; //学生的年龄
char sminzu[10]; //学生的民族
char add [10]; //学生的家庭住址
};
struct studentinfo students[10]; //定义一个有10个学生的结构体
void login(); //用户登录界面
void addinfo(); //添加函数
void modifyinfo(); //修改函数
void deleteinfo(); //删除函数
int searchinfo(); //查找函数
void showmainmenu(); //主菜单
int liulaninfo() //浏览函数
2)存放学生的信息的变量如下:
struct studentinfo students[10]; //定义10个学生
int lastpos //学生人数
2: 概要设计
1)定义结构体数组用来存放学生的信息
2)学生信息存放在中,文件格式如下:
学生人数—长度为10
第1个学生的信息-----长度为sizeof(student)
第2个学生的信息-----长度为sizeof(student)。

第n个学生的信息-----长度为sizeof(student)
3)添加学生信息的过程如下:
用户进入主界面后,输入要添加学生的学号,姓名,性别,年龄,民族,住址。

采用addinfo函数
4)修改学生信息的过程如下:
先输入要修改信息的学生的学号,然后在根据要修改的内容输入对应的编号,采用modifyinfo函数
5)删除学生信息的过程如下:
先输入要删除信息的学生的学号,然后再删除
6)查找学生信息的过程如下:
先输入要查找信息的学生的学号,然后显示出学生的信息
7)浏览学生信息过程。

8)程序采用菜单的形式显示,用户可以输入选择进行操作
二.设计流程图功能模块图如下:
三.源程序清单
#include<stdio.h>
#include <windows.h>
#include <string.h>
#include <conio.h>
struct studentinfo
{
char sno[10];
char sname[10];
char sex[5];
int age[2];
char sminzu[5];
char add[40];
};
struct studentinfo students[10]; int lastpos;
void login();
void addinfo();
void modifyinfo();
void deleteinfo();
int searchinfo();
int liulaninfo();
void showmainmenu();
void start();
void main()
{
login();
}
void start()
{
int select=0;
showmainmenu();
scanf("%d",&select);
printf("\n");
while(select!=6)
{
system("cls");
switch(select)
{
case 1:
addinfo();break;
case 2:
deleteinfo();break;
case 3:
modifyinfo();break;
case 4:
searchinfo();break;
case 5:
liulaninfo();break;
printf("任意键返回\n");
scanf(" %c",&select);
}
showmainmenu();
scanf("%d",&select);
}
}
void login()
{
int i=0,j=0;
char sname[10],spwd[10],c;
for(i=0;i<3;i++)
{
printf("请输入用户名:");
scanf("%s",sname);
printf("请输入密码:");
while((c=getch())!=13)
{
spwd[j++]=c;
putchar('*');
}
spwd[j]='\0';
if(strcmp(sname,"sa")==0 && strcmp(spwd,"1")==0)
{
system("cls");
start();
}else
{
printf("\n你输入的用户名或密码错误,请重新输入!\n");
}
}
exit(0);
}
void addinfo()
{
int i=lastpos;
printf("请输入学生的学号:");
scanf("%s",students[i].sno);
printf("请输入学生的姓名:");
scanf("%s",students[i].sname);
printf("请输入学生的性别:");
scanf("%s",students[i].sex);
printf("请输入学生的年龄:");
scanf("%s",students[i].age);
printf("请输入学生的民族:");
scanf("%s",students[i].sminzu);
printf("请输入学生的家庭住址:");
scanf("%s",students[i].add);
lastpos++;
printf("您输入的信息为: 学号: %s 姓名: %s 性别: %s 年龄: %s 民族: %s 家庭住址: %s\n ",students[i].sno,students[i].sname,students[i].sex,students[i].age,s tudents[i].sminzu,students[i].add);
}
void modifyinfo()
{
char num[10] = {0};
int i = 0;
printf("请输入要修改的学生学号:\n");
scanf("%s",num);
for(i=0;i<10;i++)
{
if(!strcmp(num,students[i].sno))
break;
}
printf("信息为: 学号: %s 姓名: %s \n ",students[i].sno,students[i].sname);
printf("信息为: 性别: %s 年龄: %s \n ",students[i].sex,students[i].age);
printf("信息为: 民族: %s 家庭住址: %s \n ",students[i].sminzu,students[i].add);
printf("请输入新的学生学号:");
scanf("%s",students[i].sno);
printf("请输入新的学生姓名:");
scanf("%s",students[i].sname);
printf("请输入新的学生年龄:");
scanf("%s",students[i].age);
printf("请输入新的学生民族:");
scanf("%s",students[i].sminzu);
printf("请输入新的学生家庭住址:");
scanf("%s",students[i].add);
printf("信息为: 学号: %s 姓名: %s \n ",students[i].sno,students[i].sname);
printf("信息为: 性别: %s 年龄: %s \n ",students[i].sex,students[i].age);
printf("信息为: 民族: %s 家庭住址: %s \n ",students[i].sminzu,students[i].add);
}
void deleteinfo()
{
char num[10] = {0};
int i = 0;
printf("请输入要删除的学生学号:\n");
scanf("%s",num);
for(i=0;i<10;i++)
{
if(!strcmp(num,students[i].sno))
break;
}
for(;i<9;i++)
{
students[i] = students[i+1];
}
}
int searchinfo()
{
char num[10] = {0};
int i = 0;
system ("cls");
printf("请输入要查询的学生学号:\n");
scanf("%s",num);
for(i=0;i<10;i++)
{
if(!strcmp(num,students[i].sno))
break;
}
printf("您查找的学生信息为: 学号: %s 姓名: %s 性别: %s 年龄:%s 民族:%s 家庭地址:%s\n ",students[i].sno,students[i].sname,students[i].sex,students[i].age,s tudents[i].sminzu,students[i].add);
return 0;
}
int liulaninfo()
{
int i = 0;
printf("学号姓名性别年龄民族地
址\n");
for(i=0;i<lastpos;i++)
{
printf("%s %s %s %s %s %s \n",students[i].sno,students[i].sname,students[i].sex,students[i].age
,students[i].sminzu,students[i].add);
}
return 0;
}
void showmainmenu()
{
printf("\n");
printf(" ★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★
☆★☆★★☆★☆★\n");
printf(" * *\n");
printf(" * 学生信息管理系统
*\n");
printf(" * *\n");
printf(" * 作者:单美丽
*\n");
printf(" * *\n");
printf(" ☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆
☆★☆★☆★☆★☆\n");
printf(" * *\n");
printf(" * 1、添加学生信息 2、删除学生信息
*\n");
printf(" * *\n");
printf(" * 3、修改学生信息 4、查询学生信息
*\n");
printf(" * *\n");
printf(" * 5、浏览学生信息 6、退出
*\n");
printf(" * *\n");
printf(" * *\n");
printf(" * *\n");
printf(" ☆★☆★☆★☆★☆★☆★☆★☆☆★☆★☆★
☆★☆★☆★☆★☆\n"); //用户界面
printf("\n");
printf(" 请选择您需要的操作序号(1-6)按回车确
认:\n");
}
四.调试过程
1、用户登录如下:
输入用户或密码错误:错误不可超过3次
2、系统菜单如下:有添加学生信息,修改学生信息,删除学生
信息,查找学生信息、浏览学生信息功能。

用户根据自己要进行的项目,输入1-5编号,
3、添加学生信息的功能操作方法如下:
输入的学生信息:
4、浏览学生信息的功能操作方法如下:
浏览的所有信息如下:
5、删除学生信息的功能操作方法如下:
删除后的学生信息:
6、修改学生信息的功能操作方法如下:
7、查找学生信息功能操作方法如下:
五.程序有待改进的地方
页面显示出来的效果不是太好,总是不能对齐;登录功能也有欠缺的地方;查询功能只可以按学号查,不太全面。

六. 本次实习的收获和建议
课程设计是培养学生综合应用所学知识,发现,提出,分析和解决实际问题,锻炼实践能力的重要环节,是对学生实际工作能力的具体训练和考察过程。

回顾这次课程设计,至今我仍感慨很多,从拿
到题目到完成编程整整一个星期,在这一个星期的日子里,可以学到很多东西,不仅可以巩固以前学过的知识,也可以学到很多书本上没有的东西。

通过这次课程设计使我懂得了理论知识与实践结合的重要性,只是理论和知识远远不够,只有把所学的理论知识与实践结合起来,才能实现。

从而提高自己的动手能力。

在设计的过程中遇到很多的问题,但只要静下心都可以解决。

这次的课程设计,使我更加的体会到很多看很多专业书是很重要的,只有掌握了一定得专业知识才能得心应手的解决很多问题,另外,在做任何事都要有耐心,不要一遇到困难就退缩。

参考文献
[1]贾宗璞、许合利. C程序设计教程.人民邮电出版社,2011.
[2]百度文库
资料仅供参考!!!。

相关文档
最新文档