2
输出一些文字
for(i=0;i<=100;i++)
Y
输出stu[i]的信息
0
N
输出全部信息函数
3
修改信息函数
提示输入,输入学号
Y
Y
修改信息
Y
Y
N
0
N
N
判断num是否存在
输出修改信息,提问是否修改
提示num不存在,并提问是否继续修改
提问是否
继续修改
删除信息函数
4
Y
Y
stu[num-1].num=0
N
N
N
0
Y
提示输入,输入删除学号
判断是否存在num
输出删除的信息
并提问是否删除
提问是否继续删除
输出删除成功
说明不存在此信息
调试过程
设计一个程序,错误是难免不了的。
但我们可以根据编辑系统给出的一些提示去查看程序错误。
对不敢肯定正确的,翻翻书,看一下这一知识。
对难度大的就和同学们一起讨论,问一问老师。
开发一个系统,耐心是必要的,认真也很重要,构思要明确。
认为是哪里错误的,有时用“/**/”注释起来进行,看看是否还有错误。
常错有以下几种情况:
1.使用变量,但未有定义,则先定义。
2.不该用分号的,用到了,把它去掉。
3.行最后若有分号则删除,中间若有分号则改成逗号
4.若错误行中有if、while、for则要特别注意条件表达式的错误。
5.若条件表达式中只有一个等于号,则改成两个等于号。
6.for中要用分号分隔表达式,而不是用逗号
7.缺少分号,若错误行中有语句没有用分号结束,则加上分号。
8.大小写不对,若错误行中有大写字母则一般都改成小写字母。
9.若有return语句则函数的类型必须与return后变量的类型一致。
设计总结
通过本次C程序课程设计,我觉得对自己提高很大:
克服了的偷懒的毛病,这在我以后的学习和工作中的心理定位与调节有很大的帮助。
我感受到了编程是一项非常烦琐周密的活动,他不但需要一个人周密的思考问题的能力,处理问题的能力,还需要有足够的耐心和严谨治学的作风,来不得半点马虎。
通过本次程序设计,我初步学会了程序设计的基本方法,学会了怎样去借鉴别人的方法和经验,知道如何去查找资料和整合处理这些资料的能力,我上网和上图书馆查找资料,编写C语言原程序,然后是进行编译,这个环节是一个非常痛苦和艰难的,常常会因为一小点的错误而在编译失败与再次修改的漫漫循环之路中,但失败的越多,对人的考验就越多,在编译运行成功之后的享受成功的喜悦也就越多,另外在调试程序的过程中不断的思考和运用已经学到的知识,这对于自己是有很大的提高的。
参考文献
[1]谭浩强著.C语言程序设计(第三版).清华大学出版社,2005
[2]谭浩强编著.C程序设计题解与上机指导(第二版)清华大学出版社,1999
[3]C编写组编.常用C语言用法速查手册.北京:
龙门书局,1995
源程序清单
#include
structstudent/*结构体*/
{intnum;
charname[20];//学号
charsex[5];//姓名
intage;//性别
charbro[15];//年龄
charadd[30];//住址
charphone[13];//手机号
charem[20];//E-mail
}stu[100];//结构体名
intlooknum(intnum)/*查看是否有这个学号的函数*/
{inti;
for(i=0;i<=100;i++)
if(stu[i].num==num)return(num);
}
tiaojia()/*添加信息函数*/
{intnum,num2,i,x;
G:
printf("\t请输入学号:
");
H:
scanf("%d",&num);
V:
if(num>100)
{printf("\n这个学号太大了!
\n请输入1--100的学号:
");
scanf("%d",&num);
if(num>100)gotoV;
printf("\n");
}
num2=looknum(num);
if(num==num2)/*判断这个学号是否存在*/
{printf("\n这个学号已经存在,请重新输入另一个学号。
");
gotoH;
}
i=num-1;
stu[i].num=num;
printf("\t请输入姓名:
");
scanf("%s",stu[i].name);
printf("\t请输入性别:
");
scanf("%s",stu[i].sex);
printf("\t请输入年龄:
");
scanf("%d",&stu[i].age);
printf("\t请输入出生日期:
");
scanf("%s",stu[i].bro);
printf("\t请输入住址:
");
scanf("%s",stu[i].add);
printf("\t请输入手机号:
");
scanf("%s",stu[i].phone);
printf("\t请输入E-maill:
");
scanf("%s",stu[i].em);
printf("\n\t<*添加信息成功*>\n\n");
printf("\t1.继续添加\n");
printf("\t2.退出添加\n");
scanf("%d",&x);
switch(x)
{case1:
gotoG;
default:
break;}
}
quanbu()/*输出全部信息函数*/
{inti;
printf("\t\t全部学生信息如下\n\n");
printf("学号\t姓名\t性别\t年龄\t出生日期\t住址\t手机号\t\tE-mail\n");
for(i=0;i<=100;i++)if(stu[i].num!
=0)printf("%d\t%s\t%s\t%d\t%s\t%s\t%s\t%s\n",stu[i].num,stu[i].name,stu[i].sex,stu[i].age,stu[i].bro,stu[i].add,stu[i].phone,stu[i].em);
}
xiugai()/*修改信息函数*/
{intx,y,num,num2;
K:
printf("\t请输入要修改的学号:
");
scanf("%d",&num);
num2=looknum(num);
if(num==num2)/*判断这个学号是否存在*/
{printf("\n\t这个学号信息如下\n\n");
printf("学号\t姓名\t性别\t年龄\t出生日期\t住址\t手机号\t\tE-mail\n");
printf("%d\t%s\t%s\t%d\t%s\t%s\t%s\t%s\n",stu[num-1].num,stu[num-1].name,stu[num-1].sex,stu[num-1].age,stu[num-1].bro,stu[num-1].add,stu[num-1].phone,stu[num-1].em);
printf("\n\t1.确认修改");
printf("\n\t2.取消修改\n");
scanf("%d",&x);
if(x==1)
{stu[num-1].num=num;
printf("\t请输入姓名:
");
scanf("%s",stu[num-1].name);
printf("\t请输入性别:
");
scanf("%s",stu[num-1].sex);
printf("\t请输入年龄:
");
scanf("%d",&stu[num-1].age);
printf("\t请输入出生日期:
");
scanf("%s",stu[num-1].bro);
printf("\t请输入住址:
");
scanf("%s",stu[num-1].add);
printf("\t请输入手机号:
");
scanf("%s",stu[num-1].phone);
printf("\t请输入E-maill:
");
scanf("%s",stu[num-1].em);
printf("\n\t<*修改信息成功*>\n");
gotoP;
}
elsegotoP;
}
else
{printf("\n\t没有这个学号,你可能记错了!
\n");
P:
printf("\n\t1.继续修改\n");
printf("\t2.退出修改\n");
scanf("%d",&y);
switch(y)
{case1:
gotoK;
default:
break;
}
}
}
voidshanchu()/*删除信息函数*/
{intx=2,y=2,num,num2;
L:
printf("\t请输入要删除的学号:
");
scanf("%d",&num);
num2=looknum(num);
if(num==num2)/*判断这个学号是否存在*/
{printf("\n\t这个学号信息如下\n\n");
printf("学号\t姓名\t性别\t年龄\t出生日期\t住址\t手机号\t\tE-mail\n");
printf("%d\t%s\t%s\t%d\t%s\t%s\t%s\t%s\n",stu[num-1].num,stu[num-1].name,stu[num-1].sex,stu[num-1].age,stu[num-1].bro,stu[num-1].add,stu[num-1].phone,stu[num-1].em);
printf("\n\t1.确认删除");
printf("\n\t2.取消删除\n");
scanf("%d",&x);
switch(x)
{case1:
{stu[num-1].num=0;
printf("\t<*删除信息成功*>\n");}
default:
break;
}
gotoD;
}
else
{printf("\n\t没有这个学号,你可能记错了!
\n");
D:
printf("\n\t1.继续删除\n");
printf("\t2.退出删除\n");
scanf("%d",&y);
switch(y)
{case1:
gotoL;
default:
break;}
}
}
voidchakan()/*查看信息函数*/
{
intx=1,y=2,z=2,i,num,num2;
charname,name2;
printf("\t1.按学号查询\n\t2.按姓名查询\n");
scanf("%d",&x);/*输入查看方式*/
if(x==1)/*学号查询*/
{
M:
printf("\t请输入查看的学号:
");
scanf("%d",&num);
num2=looknum(num);
if(num==num2)/*判断这个学号是否存在*/
{printf("\t这个学号信息如下\n\n");
printf("学号\t姓名\t性别\t年龄\t出生日期\t住址\t手机号\t\tE-mail\n");
printf("%d\t%s\t%s\t%d\t%s\t%s\t%s\t%s\n",stu[num-1].num,stu[num-1].name,stu[num-1].sex,stu[num-1].age,stu[num-1].bro,stu[num-1].add,stu[num-1].phone,stu[num-1].em);
gotoJ;
}
else
{printf("\n\t没有这个学号,你可能记错了!
\n");
J:
printf("\n\t1.继续查看\n");
printf("\t2.退出查看\n");
scanf("%d",&y);
switch(y)
{case1:
gotoM;
default:
break;
}
}
}
if(x==2)/*姓名查询*/
{
U:
printf("\t请输入查看的姓名:
");
scanf("%s",&name);
for(i=0;i<=100;i++)
{if(strcmp(&stu[i].name,&name)==0)/*字符串比较*/
if(stu[i].num!
=0)/*判断这个学号是否存在*/
{printf("\t这个姓名信息如下\n\n");
printf("学号\t姓名\t性别\t年龄\t出生日期\t住址\t手机号\t\tE-mail\n");
printf("%d\t%s\t%s\t%d\t%s\t%s\t%s\t%s\n",stu[i].num,stu[i].name,stu[i].sex,stu[i].age,stu[i].bro,stu[i].add,stu[i].phone,stu[i].em);
gotoQ;
}
}
if(i==101)
{printf("\n\t没有这个姓名,你可能记错了!
\n");
Q:
printf("\n\t1.继续查看\n");
printf("\t2.退出查看\n");
scanf("%d",&z);
switch(z)
{case1:
gotoU;
default:
break;}
}
}
}
main()/*主函数*/
{inta;
printf("\n\t*编辑系统--XXXX*\n\n");
printf("\t未经允许,不得使用\n");
printf("\t\n");
T:
printf("\n\n\t1.添加学生信息\n\t2.全部学生信息\n\t3.修改学生信息\n\t4.删除学生信息\n\t5.查看学生信息\n\t6.退出系统\n");
scanf("%d",&a);
switch(a)
{case1:
tiaojia();gotoT;
case2:
quanbu();gotoT;
case3:
xiugai();gotoT;
case4:
shanchu();gotoT;
case5:
chakan();gotoT;
case6:
break;
default:
printf("\t你的输入不正确,请再次输入:
\n");gotoT;
}
printf("\t谢谢您对本系统的支持和使用\n\n");
printf("\t2012年4月29日\n\n\n\n\n\n\n\n\n\n\n\n\n");
}