西安邮电大学软件课程设计报告
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
i++;
printf("\n按任意键继续下一个!");
fflush(stdin);
getchar();
system("cls");
}while(1);
sum=i;
printf("\n --%d学生信息输入完毕!--\n",sum);
printf("\n按任意键返回主菜单!");
fflush(stdin);
五、详细设计及运行结果
输出模块
查询模块
修改模块
六、调试情况,设计技巧及体会
1、本次设计选取内容比较简单;结构比较明晰,涉及内容比较全面,程序采用比较基础的C语言,整个程序中午够多复杂函数。
2、本次设计让我体会到:牢固的程序设计基础知识是设计成功的前提,正确的学习态度是设计成功的基础,知识与实践的有效结合是设计成功的保障;认真学,认真练是程序课程的核心。
getchar(); system("cls");
return;
}
read_message() /*读取信息*/
{
FILE *fp;
int i=0;
system("cls");
if((fp=fopen("1.txt","rb"))==NULL)
{
printf("\n\n*****暂时还没有任何信息*****\n");
getchar();
system("cls");
}
}
sum=i;
printf("\n按任意键返回主菜单!");
fflush(stdin);
getchar();
system("cls");
return;
}
void del_message()/*删除信息*/
{int i,x,m,n,del_me[MAX];
fflush(stdin);
scanf("%s",stdi[i].zhuanye);
else i++;
} sum=i;
fclose(fp);
return sum;
}
/*输出模块*/
void output_message()
{
int i;
system("cls");
for(i=0; i<sum;i++)
{printf("第%d学生信息\n",i+1);
PRI;
}
printf("\n --%d学生读取信息完毕!--\n",i);
二、实验内容
1通过键盘输入某位学生的学生证信息。学生证包含的信息请参看自己的学生证;
2给定学号,显示某位学生的学生证信息;
3学生信息的添加
4显示全部的学生证信息;
5给定某位学生的学号,修改该学生的学生证信息;
6给定某位学生的学号,删除该学生的学生证信息;
7提供一些统计各类信息的功能。统计学生数,学生男女人数;
{
PRI;
printf("你确定要修改第%d个学生信息吗:修改1,不修改2\n",m+1);
fflush(stdin);
scanf("%d",&n);
fflush(stdin);
if(n==1)
{
do
{ printf("请输入修改信息");
printf("按要求选择您所要的操作\n");
printf("1----修改学生姓名\n");
fflush(stdin);
getchar();
system("cls");
return;
}
for(m=0;m<x;m++)
{printf("请输入要修改的第%d个学生学号\n",m+1);
fflush(stdin);
scanf("%d",del_me+m);
}
for(m=0;m<x;m++)
{for(i=0;i<sum;i++)
break;
if(i==sum)
{printf("删除的第%d个学生不存在\n",m+1);
if(m+1<x)
{printf("\n按任意键继续!");
fflush(stdin);
getchar();
system("cls");
}
}
if(i!=sum)
{
PRI;
printf("你确定要删除第%d个学生信息吗:删除1,不删除2\n",m+1);
printf("\n按任意键返回主菜单!");
fflush(stdin);
getchar();
system("cls");
return;
}
void insert_message() /*添加信息*/
{ int i,x;
system("cls");
printf("请输入要添加的学生人数\n");
fflush(stdin);
七、源程序清单(略,详见电子版实验报告)
格式:内容部分用宋体、小四号字,代码用Courier New字体、五号。A4打印纸。
#include <stdio.h>
#include <string.h>
#include<stdlib.h>
#define MAX 20
#define PRI printf("学号%d\n姓名%s\n院系%s\n专业%s\n性别%s\n年龄%d\n",stdi[i].num,stdi[i].name,stdi[i].yuanxi,stdi[i].zhuanye,stdi[i].xingbie,stdi[i].nianling)
{int y,i,x,m,n,del_me[MAX];
system("cls");
printf("请输入要修改的学生人数\n");fflush(stdin);
scanf("%d",&x);
if(x>sum)
{printf("要修改人数超出已存人数范围");
printf("\n按任意键返回主菜单!");
8能够对年龄进行升序和降序排序;
9用文件的形式将录入的数据进行存储,并从其中读取数据。
三、需求分析
根据题目要求,学生信息要从文本文件中存取,所以本程序要提供读写文件,显示,统计,查寻,修改记录,保存文件等操作,此外,还要提供键盘式选择菜单实现功能。
四、概要设计
分析整个系统,根据上面的需求分析,可以将这个系统的设计分为如下几大模块:读取数据,输出数据,添加数据,输入数据、修改数据、查询数据、删除数据、统计数据,排序数据,保存数据。
软件课程设计
报 告 书
院系名称
:
电子工程学院
学生姓名
:
李群
专业名称
:
光信息
班级
:
1103
学号
:
05113096
时间
:
2012年4月11日至2012年4月20日
实验题目
一、实验目的
让学生综合应用所学的计算机基础知识和所掌握的程序设计语言(C语言),自行设计并实现一个较为完整的小型管理信息系统或小型应用系统的设计与开发。其主要目的是使学生通过系统分析、系统设计、编程调试,写实验报告等环节,初步掌握软件系统设计的方法和步骤,灵活运用程序设计语言进行软件开发的能力,提高分析问题和解决问题的能力,提高程序设计水平。要求编程时采用结构体、指针、文件等复杂数据结构存储组织数据。
scanf("%d",&x);
i=sum;
while(i<sum+x)
{
printf("\n第%d个学生信息\n",i-sum+1);
printf("\n学号");
fflush(stdin);
scanf("%d",&stdi[i].num);
printf("\n姓名");
fflush(stdin);
{
FILE *fp;
int i;
if((fp=fopen("1.txt","wb"))==NULL)
{
printf("读文件错误!\n");
return;
}
for(i=0;i<sum;i++)
if(fwrite(&stdi[i],sizeof(struct stude_nt),1,fp)!=1)
printf("写文件错误!\n");
scanf("%s",stdi[i].name);
printf("\n院系");
fflush(stdin);
scanf("%s",stdi[i].yuanxi);
printf("\n专业");
fflush(stdin);
scanf("%s",stdi[i].zhuanye);
printf("\n性别");
scanf("%d",&n);
if(n==1)
{while(i<sum)
{stdi[i]=stdi[i+1];
i++;
}
sum--;
}
}
}
printf("\n按任意键返回主菜单!");
fflush(stdin);
getchar();
system("cls");
return;
}
void revise_message()
fflush(stdin);
scanf("%d",&stdi[i].num);
if(stdi[i].num==0) break;
printf("\n姓名");
fflush(stdin);
scanf("%s",stdi[i].name);
printf("\n院系");
fflush(stdin);
scanf("%s",stdi[i].yuanxi);
printf("\n按任意键返回主菜单!");
fflush(stdin);
getchar(); system("cls");
return 0;
}
while(feof(fp)!=1)
{
fread(&stdi[i],sizeof(struct stude_nt),1,fp);
if(stdi[i].num==0) break;
if(del_me[m]==stdi[i].num)
break;
if(i==sum)
{printf("修改的第%d个学生不存在\n",m+1);
if(m+1<x)
{printf("\n按任意键继续!");
fflush(stdin);
getchar();
fflush(stdin);
}
}
if(i!=sum)
switch(y)
{
case 1:printf("\n姓名");
fflush(stdin);
scanf("%s",stdi[i].name);
break;
case 2:printf("\n院系");
fflush(stdin);
scanf("%s",stdi[i].yuanxi);
break;
case 3:printf("\n专业");
fflush(stdin);
scanf("%s",stdi[i].xingbie);
printf("\n年龄");
fflush(stdin);
scanf("%d",&stdi[i].nianling);
i++;
if(i<sum+x)
{
printf("\n按任意键继续下一个!");
fflush(stdin);
system("cls");
printf("请输入要删除的学生人数\n");fflush(stdin);
scanf("%d",&x);
if(x>sum)
{printf("删除人数超出已存人数范围");
printf("\n按任意键返回主菜单!");
fflush(stdin);
getchar();
system("cls");
printf("\n专业");
fflush(stdin);
scanf("%s",stdi[i].zhuanye);
printf("\n性别");
fflush(stdin);
scanf("%s",stdi[i].xingbie);
printf("\n年龄");
fflush(stdin);
scanf("%d",&stdi[i].nianling);
printf("2----修改学生院系\n");
printf("3----修改学生专业\n");
printf("4----修改学生性别\n");
printf("5----修改学生年龄\n");
printf("0----结束此次修改\n");
fflush(stdin);
scanf("%d",&y);
system("cls");
return;
}
for(m=0;m<x;m++)
{printf("请输入要删除的第%d个学生学号\n",m+1);
fflush(stdin);
scanf("%d",del_me+m);
}
for(m=0;m<x;m++)
{for(i=0;i<sum;i++)
if(del_me[m]==stdi[i].num)
fclose(fp);
}
/*输入模块*/
void input_message()
{ห้องสมุดไป่ตู้
int i=0,s=MAX;
system("cls");
printf("\n\n录入学生信息\n");
printf("当输入0结束输入");
do
{
printf("\n第%d个学生信息",i+1);
printf("\n学号");
struct stude_nt
{int num;
char name[10];
char yuanxi[15];
char zhuanye[15];
char xingbie[10];
int nianling;
} stdi[MAX],t;
int sum;
/*保存测试*/
void save_message(int sum)
printf("\n按任意键继续下一个!");
fflush(stdin);
getchar();
system("cls");
}while(1);
sum=i;
printf("\n --%d学生信息输入完毕!--\n",sum);
printf("\n按任意键返回主菜单!");
fflush(stdin);
五、详细设计及运行结果
输出模块
查询模块
修改模块
六、调试情况,设计技巧及体会
1、本次设计选取内容比较简单;结构比较明晰,涉及内容比较全面,程序采用比较基础的C语言,整个程序中午够多复杂函数。
2、本次设计让我体会到:牢固的程序设计基础知识是设计成功的前提,正确的学习态度是设计成功的基础,知识与实践的有效结合是设计成功的保障;认真学,认真练是程序课程的核心。
getchar(); system("cls");
return;
}
read_message() /*读取信息*/
{
FILE *fp;
int i=0;
system("cls");
if((fp=fopen("1.txt","rb"))==NULL)
{
printf("\n\n*****暂时还没有任何信息*****\n");
getchar();
system("cls");
}
}
sum=i;
printf("\n按任意键返回主菜单!");
fflush(stdin);
getchar();
system("cls");
return;
}
void del_message()/*删除信息*/
{int i,x,m,n,del_me[MAX];
fflush(stdin);
scanf("%s",stdi[i].zhuanye);
else i++;
} sum=i;
fclose(fp);
return sum;
}
/*输出模块*/
void output_message()
{
int i;
system("cls");
for(i=0; i<sum;i++)
{printf("第%d学生信息\n",i+1);
PRI;
}
printf("\n --%d学生读取信息完毕!--\n",i);
二、实验内容
1通过键盘输入某位学生的学生证信息。学生证包含的信息请参看自己的学生证;
2给定学号,显示某位学生的学生证信息;
3学生信息的添加
4显示全部的学生证信息;
5给定某位学生的学号,修改该学生的学生证信息;
6给定某位学生的学号,删除该学生的学生证信息;
7提供一些统计各类信息的功能。统计学生数,学生男女人数;
{
PRI;
printf("你确定要修改第%d个学生信息吗:修改1,不修改2\n",m+1);
fflush(stdin);
scanf("%d",&n);
fflush(stdin);
if(n==1)
{
do
{ printf("请输入修改信息");
printf("按要求选择您所要的操作\n");
printf("1----修改学生姓名\n");
fflush(stdin);
getchar();
system("cls");
return;
}
for(m=0;m<x;m++)
{printf("请输入要修改的第%d个学生学号\n",m+1);
fflush(stdin);
scanf("%d",del_me+m);
}
for(m=0;m<x;m++)
{for(i=0;i<sum;i++)
break;
if(i==sum)
{printf("删除的第%d个学生不存在\n",m+1);
if(m+1<x)
{printf("\n按任意键继续!");
fflush(stdin);
getchar();
system("cls");
}
}
if(i!=sum)
{
PRI;
printf("你确定要删除第%d个学生信息吗:删除1,不删除2\n",m+1);
printf("\n按任意键返回主菜单!");
fflush(stdin);
getchar();
system("cls");
return;
}
void insert_message() /*添加信息*/
{ int i,x;
system("cls");
printf("请输入要添加的学生人数\n");
fflush(stdin);
七、源程序清单(略,详见电子版实验报告)
格式:内容部分用宋体、小四号字,代码用Courier New字体、五号。A4打印纸。
#include <stdio.h>
#include <string.h>
#include<stdlib.h>
#define MAX 20
#define PRI printf("学号%d\n姓名%s\n院系%s\n专业%s\n性别%s\n年龄%d\n",stdi[i].num,stdi[i].name,stdi[i].yuanxi,stdi[i].zhuanye,stdi[i].xingbie,stdi[i].nianling)
{int y,i,x,m,n,del_me[MAX];
system("cls");
printf("请输入要修改的学生人数\n");fflush(stdin);
scanf("%d",&x);
if(x>sum)
{printf("要修改人数超出已存人数范围");
printf("\n按任意键返回主菜单!");
8能够对年龄进行升序和降序排序;
9用文件的形式将录入的数据进行存储,并从其中读取数据。
三、需求分析
根据题目要求,学生信息要从文本文件中存取,所以本程序要提供读写文件,显示,统计,查寻,修改记录,保存文件等操作,此外,还要提供键盘式选择菜单实现功能。
四、概要设计
分析整个系统,根据上面的需求分析,可以将这个系统的设计分为如下几大模块:读取数据,输出数据,添加数据,输入数据、修改数据、查询数据、删除数据、统计数据,排序数据,保存数据。
软件课程设计
报 告 书
院系名称
:
电子工程学院
学生姓名
:
李群
专业名称
:
光信息
班级
:
1103
学号
:
05113096
时间
:
2012年4月11日至2012年4月20日
实验题目
一、实验目的
让学生综合应用所学的计算机基础知识和所掌握的程序设计语言(C语言),自行设计并实现一个较为完整的小型管理信息系统或小型应用系统的设计与开发。其主要目的是使学生通过系统分析、系统设计、编程调试,写实验报告等环节,初步掌握软件系统设计的方法和步骤,灵活运用程序设计语言进行软件开发的能力,提高分析问题和解决问题的能力,提高程序设计水平。要求编程时采用结构体、指针、文件等复杂数据结构存储组织数据。
scanf("%d",&x);
i=sum;
while(i<sum+x)
{
printf("\n第%d个学生信息\n",i-sum+1);
printf("\n学号");
fflush(stdin);
scanf("%d",&stdi[i].num);
printf("\n姓名");
fflush(stdin);
{
FILE *fp;
int i;
if((fp=fopen("1.txt","wb"))==NULL)
{
printf("读文件错误!\n");
return;
}
for(i=0;i<sum;i++)
if(fwrite(&stdi[i],sizeof(struct stude_nt),1,fp)!=1)
printf("写文件错误!\n");
scanf("%s",stdi[i].name);
printf("\n院系");
fflush(stdin);
scanf("%s",stdi[i].yuanxi);
printf("\n专业");
fflush(stdin);
scanf("%s",stdi[i].zhuanye);
printf("\n性别");
scanf("%d",&n);
if(n==1)
{while(i<sum)
{stdi[i]=stdi[i+1];
i++;
}
sum--;
}
}
}
printf("\n按任意键返回主菜单!");
fflush(stdin);
getchar();
system("cls");
return;
}
void revise_message()
fflush(stdin);
scanf("%d",&stdi[i].num);
if(stdi[i].num==0) break;
printf("\n姓名");
fflush(stdin);
scanf("%s",stdi[i].name);
printf("\n院系");
fflush(stdin);
scanf("%s",stdi[i].yuanxi);
printf("\n按任意键返回主菜单!");
fflush(stdin);
getchar(); system("cls");
return 0;
}
while(feof(fp)!=1)
{
fread(&stdi[i],sizeof(struct stude_nt),1,fp);
if(stdi[i].num==0) break;
if(del_me[m]==stdi[i].num)
break;
if(i==sum)
{printf("修改的第%d个学生不存在\n",m+1);
if(m+1<x)
{printf("\n按任意键继续!");
fflush(stdin);
getchar();
fflush(stdin);
}
}
if(i!=sum)
switch(y)
{
case 1:printf("\n姓名");
fflush(stdin);
scanf("%s",stdi[i].name);
break;
case 2:printf("\n院系");
fflush(stdin);
scanf("%s",stdi[i].yuanxi);
break;
case 3:printf("\n专业");
fflush(stdin);
scanf("%s",stdi[i].xingbie);
printf("\n年龄");
fflush(stdin);
scanf("%d",&stdi[i].nianling);
i++;
if(i<sum+x)
{
printf("\n按任意键继续下一个!");
fflush(stdin);
system("cls");
printf("请输入要删除的学生人数\n");fflush(stdin);
scanf("%d",&x);
if(x>sum)
{printf("删除人数超出已存人数范围");
printf("\n按任意键返回主菜单!");
fflush(stdin);
getchar();
system("cls");
printf("\n专业");
fflush(stdin);
scanf("%s",stdi[i].zhuanye);
printf("\n性别");
fflush(stdin);
scanf("%s",stdi[i].xingbie);
printf("\n年龄");
fflush(stdin);
scanf("%d",&stdi[i].nianling);
printf("2----修改学生院系\n");
printf("3----修改学生专业\n");
printf("4----修改学生性别\n");
printf("5----修改学生年龄\n");
printf("0----结束此次修改\n");
fflush(stdin);
scanf("%d",&y);
system("cls");
return;
}
for(m=0;m<x;m++)
{printf("请输入要删除的第%d个学生学号\n",m+1);
fflush(stdin);
scanf("%d",del_me+m);
}
for(m=0;m<x;m++)
{for(i=0;i<sum;i++)
if(del_me[m]==stdi[i].num)
fclose(fp);
}
/*输入模块*/
void input_message()
{ห้องสมุดไป่ตู้
int i=0,s=MAX;
system("cls");
printf("\n\n录入学生信息\n");
printf("当输入0结束输入");
do
{
printf("\n第%d个学生信息",i+1);
printf("\n学号");
struct stude_nt
{int num;
char name[10];
char yuanxi[15];
char zhuanye[15];
char xingbie[10];
int nianling;
} stdi[MAX],t;
int sum;
/*保存测试*/
void save_message(int sum)