C语言实验指导手册(小系统开发)
更新时间:2024-01-03 01:39:01 阅读量: 教育文库 文档下载
- c语言程序设计实验指导推荐度:
- 相关推荐
一、实验名称:
实验B:小系统开发 二、实验目的:
1、掌握一个完整系统开发的基本过程 2、掌握完整系统开发过程中应注意的问题 三、实验器材:
1、计算机 四、实验内容:
我们这儿设计系统的主要目的是为了了解一个完整系统开发的一般过程及各类资源的组织方式,所以我们选择以一个“班级基本信息管理系统”为例,班级内部基本信息情况大家比较熟悉。
按照软件工程原理,将软件的生命周期大体划分为8个阶段,如下: 1、问题的定义:
须确定“要解决的问题是什么?”
通过对客户的访问调查,系统分析员扼要写出关于问题性质、工程目标和工程规模的书面报告,经过讨论和必要的修改之后这份报告应该得到客户的确认。
开发一个针对本班的“班级基本信息管理系统”以实现对本班成员基本信息的自动化管理。 2、可行性研究:
用来确定上一阶段中的问题是否有行得通的解决办法。
班级基本信息大家比较熟悉,又有一定的C语言基础,有充足的上机实践时间,完全有能力开发这样的一个小系统。
另外,在性能、功能要求不高的情况下,此系统的开发也不需要太大的成本。 3、需求分析:
主要需要确定目标系统必须具备哪些功能。
系统分析员在此阶段须和用户密切配合,充分交流信息,以得出用户确认的系统逻辑模型。通常用数据流图、数据字典和简要的算法表示系统的逻辑模型。
这个阶段需要准确完整地体现用户要求,用正式文档准确记录对目标系统的需求,这份文档通常叫做规格说明书(Specification)。
大体如下:
基本信息包括如下内容:学号(14位)、姓名(最多三个汉字)、性别(一个汉字)、年龄(3位),其它信息可根据情况自定 班级总人数
功能要求:录入功能、按学号查找(速度不能太慢)、按学号修改人员信息、按学号删除人员、将全部人员信息按学号顺序列表输出、启动时的用户合法性检测功能、永久性存盘功能等。 性能要求:查找速度不能太慢(5秒以内) 4、系统设计(概要设计):
设计出实现目标系统的几种可能的方案,从中选择一种最佳的。设计系统的总体结构,也即确定程序由哪些模块组成及模快间的关系。
首先,每个人员的基本信息可以用结构体来表示,而所有成员的信息在内存中可以用一个一维数组来存放,用一个变量CurrentCount来表示目前数组中具有有效信息的人员数,初值为0,如下:
#include
#define N 100 //最大人数
struct stu_info {
char xh[14]; //学号 char xm[7]; //姓名 char xb[3]; //性别 int nl; //年龄 };
struct stu_info stu[N+1];//用于存放所有人相关信息,0号元素备用 int CurrentCount=0; //当前实际人数
按系统的逻辑功能,可以将系统大体划分为如右图所示几大模块: 5、详细设计:
主要指对各个模块具体算法及数据结构的设计。 针对本系统的各个模块的算法描述见后面各图: 2
6、编码:
指选择具体的计算机语言去书写程序。 #include
#define N 100 //最大人数
struct stu_info {
char xh[14]; //学号 char xm[7]; //姓名 char xb[3]; //性别 int nl; //年龄 };
struct stu_info stu[N+1];//用于存放所有人相关信息,0号元素备用 int CurrentCount=0; //当前实际人数
void input() //录入模块 {
char sfjx=1;
3
while(sfjx!=0) {
if(CurrentCount==N) {
printf(\人数已达上限,不能添加!!!\\n\ sfjx=0; } else {
CurrentCount++;
printf(\请输入一个人员的相关信息(学号 姓名 性别 年龄):\
scanf(\rrentCount].nl);
printf(\是否继续(0--结束,其它--继续):\ scanf(\ } }
system(\}
void save() //保存模块 {
FILE *fp;
fp=fopen(\ if(fp==NULL)
printf(\文件打开不成功,信息无法保存!!!\\n\ else {
fprintf(fp,\ for(int i=1;i<=CurrentCount;i++)
fprintf(fp,\ fclose(fp);
printf(\信息已成功保存!!!\\n\ }
system(\}
void read() //读盘模块 {
FILE *fp;
fp=fopen(\ if(fp==NULL)
printf(\文件打开不成功,信息无法读取!!!\\n\ else {
fscanf(fp,\ for(int i=1;i<=CurrentCount;i++)
4
{
fscanf(fp,\ printf(\学号:%s 姓名:%s 性别:%s 年
龄:%d\\n\ }
fclose(fp);
printf(\信息已成功读取!!!\\n\ }
system(\}
void search() //查询模块 {
char dcxh[14]; int sfjx=1,i; while(sfjx!=0) {
printf(\请输入一个待查学员的学号:\ scanf(\
strcpy(stu[0].xh,dcxh); i=CurrentCount;
while(strcmp(stu[i].xh,dcxh)!=0) i--; if(i==0)
printf(\查无此人!!!\\n\ else {
printf(\此人详细信息如下:\\n\ printf(\学号:%s 姓名龄:%d\\n\ }
printf(\是否继续(0--结束,其它--继续):\ scanf(\ }
system(\}
void del() //删除模块 {
char dcxh[14]; int sfjx=1,i,j; while(sfjx!=0) {
printf(\请输入一个待删学员的学号:\ scanf(\
strcpy(stu[0].xh,dcxh); i=CurrentCount;
while(strcmp(stu[i].xh,dcxh)!=0)
5
%s 性别:%s 年
:
i--; if(i==0)
printf(\查无此人!!!\\n\ else {
printf(\此人详细信息如下:\\n\ printf(\学号:%s 姓名:%s 性别龄:%d\\n\ printf(\按任意键开始删除......\\n\ system(\
for(j=i+1;j<=CurrentCount;j++) stu[j-1]=stu[j]; CurrentCount--;
printf(\已成功删除......\\n\ system(\ }
printf(\是否继续(0--结束,其它--继续):\ scanf(\ }
system(\}
void modify() //修改模块 {
char dcxh[14]; int sfjx=1,i; while(sfjx!=0) {
printf(\请输入一个待修改学员的学号:\ scanf(\
strcpy(stu[0].xh,dcxh); i=CurrentCount;
while(strcmp(stu[i].xh,dcxh)!=0) i--; if(i==0)
printf(\查无此人!!!\\n\ else {
printf(\此人详细信息如下:\\n\ printf(\学号:%s 姓名:%s 性别龄:%d\\n\ printf(\请输入新内容......\\n\
printf(\请输入一个人员的相关信息(学号 姓名 性别 年龄):\ scanf(\ printf(\已成功修改......\\n\ system(\ }
6
:%s 年
:%s 年
printf(\是否继续(0--结束,其它--继续):\ scanf(\ }
system(\}
void list() //删除模块 {
int i,j;
for(i=1;i
if(strcmp(stu[j].xh,stu[j-1].xh)<0) {
stu[0]=stu[j]; stu[j]=stu[j-1]; stu[j-1]=stu[0]; }
printf(\班级基本信息表\\n\
printf(\序号 学号 姓名 性别 年龄\\n\ for(i=1;i<=CurrentCount;i++)
printf(\ system(\}
int check() {
int count=0,name,pass; while(count<=2) {
printf(\请输入用户名及密码:\ scanf(\ count++;
if((name==1)&&(pass==1)) count=10; else
if(count>2) count=5; }
if(count==10) return 0; else
return 1; }
void main() {
int xz=1;
printf(\欢迎使用班级基本信息管理系统\\n\\n\\n\ if(check()!=0)
7
{
printf(\你无权使用本系统......\\n\\n\ system(\ } else {
while(xz!=0) {
printf(\请选择相应功能:\\n\
printf(\录入\\n2-查询\\n3-修改\\n4-删除\\n5-保存\\n6-读取\\n7-按学号列表\\n0-结束\\n请输入选择:\
scanf(\ switch(xz) {
case 1:
input();break; case 2:
search();break; case 3:
modify();break; case 4:
del();break; case 5:
save();break; case 6:
read();break; case 7:
list();break; case 0:
printf(\谢谢使用本系统!\\n\\n\ default:
printf(\无此功能,请重新选择......\\n\ system(\ } } } }
7、测试:
测试是系统交付用户前所需要进行的最后一次全面检查,测试的目的是尽可能多地找出错误及缺点,但通过测试无法保证系统没有错误(因为现实中的测试不可能把所有可能性都一一列举检测)。
主要是集成测试及验收测试。 8、运行及维护:
系统交付用户后,在使用过程中还要进行维护,主要有以下几种情况 (1)纠错性维护: (2)适应性维护: (3)完善性维护:
8
(4)预防性维护: 五、实验要求:
1、总结系统开发的一般过程及各阶段主要需要完成的任务。 2、对上述系统结合实际情况适当进行完善。
9
实验时间: 姓名 实验评阅 教师签名 时间 评 价 成绩 说明:
1、实验评阅部分由教师完成
2、成绩按如下方式计算:5-优秀,4-良好,3-合格,2-不合格,0-未做
10
正在阅读:
C语言实验指导手册(小系统开发)01-03
第三次联合国住房和城市可持续发展大会(“人居三”)中国国家报告04-09
小学生登高的优秀作文06-15
九年级上世界近代史知识图示思维导图10-27
4花卉树木试题答案11-15
乡村旅游发展思考12-13
会议策划方案范本A03-26
期权汇率数据怎么分析05-09
旭阳二期焦油项目焦油蒸馏装置操作规程05-28
- exercise2
- 铅锌矿详查地质设计 - 图文
- 厨余垃圾、餐厨垃圾堆肥系统设计方案
- 陈明珠开题报告
- 化工原理精选例题
- 政府形象宣传册营销案例
- 小学一至三年级语文阅读专项练习题
- 2014.民诉 期末考试 复习题
- 巅峰智业 - 做好顶层设计对建设城市的重要意义
- (三起)冀教版三年级英语上册Unit4 Lesson24练习题及答案
- 2017年实心轮胎现状及发展趋势分析(目录)
- 基于GIS的农用地定级技术研究定稿
- 2017-2022年中国医疗保健市场调查与市场前景预测报告(目录) - 图文
- 作业
- OFDM技术仿真(MATLAB代码) - 图文
- Android工程师笔试题及答案
- 生命密码联合密码
- 空间地上权若干法律问题探究
- 江苏学业水平测试《机械基础》模拟试题
- 选课走班实施方案
- 语言
- 指导
- 实验
- 手册
- 开发
- 系统
- 第五课 中华文化与民族精神复习导学案
- 数据结构课程设计报告--图遍历的演示
- 最新人教版小学一年级数学下册第四单元测试题
- 空调用电制冷机组与溴化锂机组比较
- 计量经济学习题与解答4
- 课外阅读考级题目-我们的土壤妈妈
- 大学计算机C语言期末考试(C语言考试系统)
- 普通高等学校本科专业目录中英文对照(2012版)
- 2012 V1 版NCCN结肠癌指南更新解读
- 自动控制原理设计 - 图文
- 《机电传动控制》实验指导书 - 图文
- 2019年整理公安局批评与自我批评领导班子个人思想汇报
- 可爱的小蒜球 - 300字-精品作文
- 浅论我国通货膨胀和失业率相关性分析
- 2013年度台州市统计从业人员继续教育测试题及答案一套
- 《机械设计》实验指导书
- 甘肃省张掖市2015年中考语文试题及答案
- 山东省潍坊市2010年高考模拟训练A(理科)
- 人教版 高中数学 选修2-2同步练习1.3.1函数的单调性与导数含答案
- 西南大学2017年12月网络教育大作业答案-0498学前教育科研方法 - 图文