❶ c语言实训心得
通过这次C语言实训,提高了我掌握和利用C语言进行程设计的能力, 而且进一步理解和运用结构化程设计的思想和方法。初步掌握了开发一个小型实用系统的基本方法。学会了调试一个较长程序的基本方法。学会了利用流程图或N-S图表示算法。掌握了书写程设计开发文档的能力.为以后的实训打下坚实的基础。
❷ C语言实验报告总结
你只需要按那个模版就行,那些内容就改成你的作业
班级: 学号: 姓名:
实验9 指针
一、实验目的
(1)掌握指针概念,并定义与使用它。
(2)使用数组的指针和指向数组的指针变量。
(3)使用字符串的指针和指向字符串的指针变量。
二、实验内容
1. 将一个3*3的矩阵转置,用函数实现。
2. 有n个人围成一圈,顺序排号。从第一个人开始报数(1~3),凡报到3的人退出,问第几号的人能留下。
三、实验环境
硬件:(1)学生用微机
(2)多媒体实验教室
软件:(1)Windows XP 中文操作系统
(2)VC++ 6.0
四、实验结果
程序1:
#include<stdio.h>
void main()
{
void move(int *pointer);
int a[3][3],*p,i;
printf("input marix:\n");
for(i=0;i<3;i++)
scanf("%d %d %d",&a[i][0],&a[i][1],&a[i][2]);
p=&a[0][0];
move(p);
printf("matrix:\n");
for(i=0;i<3;i++)
printf("%d %d %d\n",a[i][0],a[i][1],a[i][2]);
}
void move(int *pointer)
{
int i,j,t;
for(i=0;i<3;i++)
for(j=i;j<3;j++)
{
t=*(pointer+3*i+j);
*(pointer+3*i+j)=*(pointer+3*j+i);
*(pointer+3*j+i)=t;
}
}
程序2:
#include<stdio.h>
void main()
{
int i,k,m,n,num[50],*p;
printf("input num of person:");
scanf("%d",&n);
p=num;
for(i=0;i<n;i++)
*(p+i)=i+1;
i=0;
k=0;
m=0;
while(m<n-1)
{
if(*(p+i)!=0)k++;
if(k==3)
{
*(p+i)=0;
k=0;
m++;
}
i++;
if(i==n)i=0;
}
while(*p==0)p++;
printf("the last num is %d\n",*p);
}
结果1:(就是程序运行之后出现的框,截图后粘贴这里)
结果2:
五、总结:
通过这个实验的学习, 基本掌握了指针的基本用法。
❸ 学生学籍信息管理系统C语言的报告总结
首先做一下自我介绍,本人呢从事了3年的酒店管理软件开发职业经理人 在08年末自己创业了。就你说道的实训报告书面内容如何书写我有以下几点内容建议供你参考:
从以下几个问题出发:
■第1:如何让你自己的作品在众多同学中脱颖而出?(中心思想-做到同而不同(同样的作品不同的感觉))
■第2:如何开场引出你的作品?(设计一些问题或者经常出现的烦恼来与台下的评委做个简单的互动,把大家的注意力吸引到你的身边,同时不乏趣味面的单调,起到抛砖引玉的作用)
■第3:如何介绍自己的作品?(3.1因为针对实训课题是早已经拟定的,并给出了核心技术支持(可以是代码或者是技术理论步骤)所以此部分内容介绍应该干练些。3.2着重点在于基于题目作品之上的创意部分的思路的由来、核心技术的实现办法做重点的阐述(创意可以是功能优化方面的,复合型的多功能实现、核心技术指的是你所用到的新的知识点以及程序的算法部分))3.3对比同类作品(指你同学或者老师的提供的DEMO代码(在业内通常把演示程序叫做DEMO))的功能、性价比(运行速度、文件大小、程序稳定性、安全性等方面)做论证。让听众觉得你自己的作品更有说服力。
■第4:如何让自己的作品报告更加的吸引人呢?(1.要有完整的产品介绍(对于你来说就是一个报告书,你需要分为一下几个部分:创意方案、实体产品(把你的软件要打包刻录成光盘并包装或者在网络上发布)、PPT演示文稿、产品使用示范(在业内行话叫做DEMO演示系统))做到以上4点是产品的发布流程较完整,给人该绝更正规既可)
■■:如果你要是有其它问题或者想知道关于更多今后工作中的产品发布案例可以练习我的QQ313185141 或者登陆我工作室网络官方博客http://hi..com/firesoft 或者E-MAIL:[email protected]
❹ C语言课程设计----学生学籍管理系统
<p><a href="https://wenwen.sogou.com/login/redirect?url=http%3a%2f%2fwww.docin.com%2fp-110271548.html" target="_blank">http://www.docin.com/p-110271548.html</a></p> <p>c语言编写的学生信息管理系统的设计与实现,不知道是不是你要的。</p>
❺ c语言程序设计之图书管理系统实训小结
自己修改 只有模式
关于04级软件技术与ATA公司合作进行课程置换的总结报告
自04级软件技术与ATA公司合作,开展6门课程置换的工作以来,我们已经完成了2门课程的教学与考证,正在进行1门课程的教学,下学期将有2门课程的合作,再下一学期完成最后1门课程的教学与考证。现将有关工作情况作一个小结。
一、 不断提供师资的教学水平
通过与ATA合作之后,讲授合作课程的教师需要通过高职类微软课程全国性的师资培训。我们共派出4位教师,参加了6门课程的微软师资培训,并全部获得合格的培训证书。
通过师资培训,更新了教师的知识结构,强化了对高职类微软课程的理解,掌握了一定的教学方法和教学技巧,同时也扩大了对同行的交往和互相学习。
目前,ATA公司已经组建网络教学平台供全国的相关教师共享资源,并在全国范围内,通过评选微软的银牌讲师、金牌讲师来不断提高师资的教学水平。
二、 实施认证考试
合作的每门课程均提供相应的技能型考证,包括微软以及Borland大公司的厂商认证,含金量较高。如果单独交费参加这些认证考试,考试费用大大超过我们之间的合作费用。
以下是已经结束的2门课程的认证考试(微软的全球认证考试)情况。
课程名称
程序设计导论
关系数据库基础
学生数
53
53
第一次通过人数
28
42
第一次通过率
53%
79%
第二次通过人数
40
48
第二次通过率
75%
91%
以上2门课为基础课,对于核心课程要达到上述的通过率,我们要正视困难,努力提高师资的教学水平。
三、 对核心课程实施案例教学
对于3门核心课程,ATA公司均提供难得的较为全面的实际开发项目,作为案例供我们的教学使用,这将是我们最为受用的宝贵教学资源,但是,目前我们还没有实施这三门课程,有待下一步的教学检验其效果。
四、 不足之处
师资培训的力度不够,有些讲授合作课程的教师没有经过微软的系统培训。
合作课程的讲授教师一般只有1名,数量不够,不能组成团队,形成我们的教学特色
❻ c语言课程设计学籍管理系统
这个是我曾经做的,上面功课和你的不一样,把汉字改下就行了,还有那个人数,人数和排名最后一名数字一样,你运行一下就清楚了
#include<stdio.h>
#include<malloc.h>
#define M "%-6s%-6d%-6d%-6d%-6d%-6d%-7d%-6d\n"
#define H p->name,p->num,p->grade.Escore,p->grade.Mscore,p->grade.Cscore,p->grade.Pscore,p->grade.Allscore,p->grade.Allrank
typedef struct score{
int Escore;
int Mscore;
int Cscore;
int Pscore;
int Allscore;
int Allrank;
}Sco;
typedef struct student{
char name [20];
int num;
struct score grade;
struct student *next;
}*stu;
struct student *Create(struct student *head)
{
int i,n;
printf("请输入学生个数;");
scanf("%d",&n);
printf("请输入信息和成绩\n");
printf("姓名,学号,英语,高数,C语言,体育:");
printf("\n");
stu p,q;
p=q=(stu)malloc(sizeof(student));
head=p;
for(i=0;i<n;i++)
{
p->next=q;
p=q;
scanf("%s%d%d%d%d%d",q->name,&q->num,&q->grade.Escore,&q->grade.Mscore,&q->grade.Cscore,&q->grade.Pscore);
q->grade.Allscore=q->grade.Escore+q->grade.Mscore+q->grade.Cscore+q->grade.Pscore;
q=(stu)malloc(sizeof(student));
}
p->next=NULL;
return head;
}
struct student *Change(struct student *head)
{
int n,i,k;
stu p;
p=head;
printf("请输入要修改的学号:");
scanf("%d",&i);
printf("1.英语 2.高数 3.C语言 4.体育\n");
printf("请输入要修改的成绩:");
scanf("%d",&n);
while(p)
{
if(i==p->num)
switch(n)
{
case 1:
printf("请输入英语分数:");
scanf("%d",&k);
p->grade.Escore=k;
break;
case 2:
printf("请输入高数分数:");
scanf("%d",&k);
p->grade.Mscore=k;
break;
case 3:
printf("请输入C语言分数:");
scanf("%d",&k);
p->grade.Cscore=k;
break;
case 4:
printf("请输入体育分数:");
scanf("%d",&k);
p->grade.Pscore=k;
break;
}
if(i==p->num) break;
if(p->next)
p=p->next;
}
p->grade.Allscore=p->grade.Escore+p->grade.Mscore+p->grade.Cscore+p->grade.Pscore;
return head;
}
struct student *Insert(struct student *head)
{
stu p,q;
p=q=(stu)malloc(sizeof(student));
p=head;
printf("请输入姓名和学号:\n");
scanf("%s%d",q->name,&q->num);
printf("请输入英语,高数,C语言,体育成绩:\n");
scanf("%d%d%d%d",&q->grade.Escore,&q->grade.Mscore,&q->grade.Cscore,&q->grade.Pscore);
q->grade.Allscore=q->grade.Escore+q->grade.Mscore+q->grade.Cscore+q->grade.Pscore;
while(p->next)
{
p=p->next;
}
p->next=q;
p=p->next;
p->next=NULL;
return head;
}
struct student *Delet(struct student *head)
{
stu p,q,m;
int n;
printf("请输入要删除的学号:");
scanf("%d",&n);
p=head;
if(n==p->num)
{
q=p;
head=p->next;
free(p);
}
else
{
q=p->next;
while(q)
if(q->next==NULL&&n==q->num)
{
m=q;
free(q);
p->next=NULL;
q=NULL;
}
else if(q->next!=NULL&&n==q->num)
{
p->next=q->next;
free(q);
q=NULL;
}
else
{
if(q->next!=NULL)
{
p=q;
q=q->next;
}
}
}
return head;
}
void Look(struct student *head)
{
stu p;
int n,i,k;
p=head;
printf("1.按学号查找 2.按分数查找\n");
printf("请输入查找的类别:");
scanf("%d",&n);
if(n==1)
{
printf("请输入要查找的学号:");
scanf("%d",&i);
while(p)
{
if(i==p->num)
{
printf("姓名 学号 英语 高数 C语言 体育 总成绩 排名\n");
printf(M,H);
}
if(i==p->num) break;
if(p->next)
p=p->next;
}
}
if(n==2)
{
printf("1.英语 2.高数 3.C语言 4.体育 5.总分\n");
printf("请输入要查找的课程:");
scanf("%d",&i);
switch(i)
{
case 1:
printf("请输入要查找的英语最低分数:");
scanf("%d",&k);
printf("姓名 学号 英语 高数 C语言 体育 总成绩 排名\n");
while(p)
{
if(k<=p->grade.Escore)
printf(M,H);
p=p->next;
}
break;
case 2:
printf("请输入要查找的高数最低分数:");
scanf("%d",&k);
printf("姓名 学号 英语 高数 C语言 体育 总成绩 排名\n");
while(p)
{
if(k<=p->grade.Mscore)
printf(M,H);
p=p->next;
}
break;
case 3:
printf("请输入要查找C语言语最低分数:");
scanf("%d",&k);
printf("姓名 学号 英语 高数 C语言 体育 总成绩 排名\n");
while(p)
{
if(k<=p->grade.Cscore)
printf(M,H);
p=p->next;
}
break;
case 4:
printf("请输入要查找的体育最低分数:");
scanf("%d",&k);
printf("姓名 学号 英语 高数 C语言 体育 总成绩 排名\n");
while(p)
{
if(k<=p->grade.Pscore)
printf(M,H);
p=p->next;
}
break;
case 5:
printf("请输入要查找的总分最低分数:");
scanf("%d",&k);
printf("姓名 学号 英语 高数 C语言 体育 总成绩 排名\n");
while(p)
{
if(k<=p->grade.Allscore)
printf(M,H);
p=p->next;
}
break;
}
}
}
struct student *Rank(struct student *head,struct student *p,int j)
{
int i;
stu q;
i=p->grade.Allscore;
q=head;
while(q)
{
if(q->grade.Allscore>i)
j++;
if(!q->next)break;
q=q->next;
}
p->grade.Allrank=j;
while(p)
{
if(!p->next)break;
{
p=p->next;
Rank(head,p,1);
}
}
return head;
}
void Rankshow(struct student *head,int j)
{
int i;
stu p,q;
q=head;
p=head;
i=j;
printf("姓名 学号 英语 高数 C语言 体育 总成绩 排名\n");
while(q)
{
while(p)
if(i==p->grade.Allrank)
{
printf(M,H);
p=p->next;
}
else
p=p->next;
p=head;
i++;
if(!q->next)break;
q=q->next;
}
}
void show(struct student *head)
{
stu p;
printf("姓名 学号 英语 高数 C语言 体育 总成绩 排名");
printf("\n");
p=head;
while(p)
{
printf(M,H);
p=p->next;
}
}
void main()
{
int n;
struct student *head,*p;
stu L;
printf("综合素质测评系统\n");
printf("1.数据录入\n");
printf("2.数据修改\n");
printf("3.插入操作\n");
printf("4.删除操作\n");
printf("5.查找操作\n");
printf("6.排序操作\n");
printf("7.数据显示\n");
printf("0.退出系统\n");
printf("请输入操作:");
scanf("%d",&n);
while(n!=0)
{
switch(n)
{
case 0:
break;
case 1:
L=Create(head);
Rank(L,L,1);
printf("请输入操作:");
break;
case 2:
Change(L);
Rank(L,L,1);
printf("请输入操作:");
break;
case 3:
L=Insert(L);
Rank(L,L,1);
printf("请输入操作:");
break;
case 4:
L=Delet(L);
Rank(L,L,1);
printf("请输入操作:");
break;
case 5:
Look(L);
printf("请输入操作:");
break;
case 6:
Rank(L,L,1);
Rankshow(L,1);
printf("请输入操作:");
break;
case 7:
show(L);
printf("请输入操作:");
break;
}
scanf("%d",&n);
}
}
❼ 用C语言设计一个学生的学籍管理系统
#include "stdio.h"
#include "stdlib.h"
#include "string.h"
int shoudsave=0; /* */
struct student
{
char num[10];/* 学号 */
char name[20];
char sex[4];
char yuan;
int ban;
char neartime[10];/* 最近更新时间 */
};
typedef struct node
{
struct student data;
struct node *next;
}Node,*Link;
void menu()
{
printf("********************************************************************************");
printf("\t1登记学生资料\t\t\t\t\t2删除学生资料\n");
printf("\t3查询学生资料\t\t\t\t\t4修改学生资料\n");
printf("\t5保存学生资料\t\t\t\t\t0退出系统\n");
printf("********************************************************************************\n");
}
void printstart()
{
printf("-----------------------------------------------------------------------\n");
}
void Wrong()
{
printf("\n=====>提示:输入错误!\n");
}
void Nofind()
{
printf("\n=====>提示:没有找到该学生!\n");
}
void printc() /* 本函数用于输出中文 */
{
printf("学号\t 姓名 性别 学院 班级\n");
}
void printe(Node *p)/* 本函数用于输出英文 */
{
printf("%-12s%s\t%s\t%c\t%d\n",p->data.num,p->data.name,p->data.sex,p->data.yuan,p->data.ban);
}
Node* Locate(Link l,char findmess[],char nameornum[]) /* 该函数用于定位连表中符合要求的接点,并返回该指针 */
{
Node *r;
if(strcmp(nameornum,"num")==0) /* 按学号查询 */
{
r=l->next;
while(r!=NULL)
{
if(strcmp(r->data.num,findmess)==0)
return r;
r=r->next;
}
}
else if(strcmp(nameornum,"name")==0) /* 按姓名查询 */
{
r=l->next;
while(r!=NULL)
{
if(strcmp(r->data.name,findmess)==0)
return r;
r=r->next;
}
}
return 0;
}
void Add(Link l) /* 增加学生 */
{
Node *p,*r,*s;
char num[10];
r=l;
s=l->next;
while(r->next!=NULL)
r=r->next; /* 将指针置于最末尾 */
while(1)
{
printf("请你输入学号(以'0'返回上一级菜单:)");
scanf("%s",num);
if(strcmp(num,"0")==0)
break;
while(s)
{
if(strcmp(s->data.num,num)==0)
{
printf("=====>提示:学号为'%s'的学生已经存在,若要修改请你选择'4 修改'!\n",num);
printstart();
printc();
printe(s);
printstart();
printf("\n");
return;
}
s=s->next;
}
p=(Node *)malloc(sizeof(Node));
strcpy(p->data.num,num);
printf("请你输入姓名:");
scanf("%s",p->data.name);
getchar();
printf("请你输入性别:");
scanf("%s",p->data.sex);
getchar();
printf("请你输入学院:");
scanf("%c",&p->data.yuan);
getchar();
printf("请你输入班级:");
scanf("%d",&p->data.ban);
getchar();
/* 信息输入已经完成 */
p->next=NULL;
r->next=p;
r=p;
shoudsave=1; }
}
void Qur(Link l) /* 查询学生 */
{
int sel;
char findmess[20];
Node *p;
if(!l->next)
{
printf("\n=====>提示:没有资料可以查询!\n");
return;
}
printf("\n=====>1按学号查找\n=====>2按姓名查找\n");
scanf("%d",&sel);
if(sel==1)/* 学号 */
{
printf("请你输入要查找的学号:");
scanf("%s",findmess);
p=Locate(l,findmess,"num");
if(p)
{
printf("\t\t\t\t查找结果\n");
printstart();
printc();
printe(p);
printstart();
}
else
Nofind();
}
else if(sel==2) /* 姓名 */
{
printf("请你输入要查找的姓名:");
scanf("%s",findmess);
p=Locate(l,findmess,"name");
if(p)
{
printf("\t\t\t\t查找结果\n");
printstart();
printc();
printe(p);
printstart();
}
else
Nofind();
}
else
Wrong();
}
void Del(Link l) /* 删除 */
{
int sel;
Node *p,*r;
char findmess[20];
if(!l->next)
{
printf("\n=====>提示:没有资料可以删除!\n");
return;
}
printf("\n=====>1按学号删除\n=====>2按姓名删除\n");
scanf("%d",&sel);
if(sel==1)
{
printf("请你输入要删除的学号:");
scanf("%s",findmess);
p=Locate(l,findmess,"num");
if(p)
{
r=l;
while(r->next!=p)
r=r->next;
r->next=p->next;
free(p);
printf("\n=====>提示:该学生已经成功删除!\n");
shoudsave=1;
}
else
Nofind();
}
else if(sel==2)
{
printf("请你输入要删除的姓名:");
scanf("%s",findmess);
p=Locate(l,findmess,"name");
if(p)
{
r=l;
while(r->next!=p)
r=r->next;
r->next=p->next;
free(p);
printf("\n=====>提示:该学生已经成功删除!\n");
shoudsave=1;
}
else
Nofind();
}
else
Wrong();
}
void Modify(Link l)
{
Node *p;
char findmess[20];
if(!l->next)
{
printf("\n=====>提示:没有资料可以修改!\n");
return;
}
printf("请你输入要修改的学生学号:");
scanf("%s",findmess);
p=Locate(l,findmess,"num");
if(p)
{
printf("请你输入新学号(原来是%s):",p->data.num);
scanf("%s",p->data.num);
printf("请你输入新姓名(原来是%s):",p->data.name);
scanf("%s",p->data.name);
getchar();
printf("请你输入新性别(原来是%s):",p->data.sex);
scanf("%s",p->data.sex);
printf("请你输入新的学院:",p->data.yuan);
scanf("%c",&p->data.yuan);
getchar();
printf("请你输入新的班级(原来是%d):",p->data.ban);
scanf("%d",&p->data.ban);
getchar();
printf("\n=====>提示:资料修改成功!\n");
shoudsave=1;
}
else
Nofind();
}
void Save(Link l)
{
FILE* fp;
Node *p;
int flag=1,count=0;
fp=fopen("c:\\student","wb");
if(fp==NULL)
{
printf("\n=====>提示:重新打开文件时发生错误!\n");
exit(1);
}
p=l->next;
while(p)
{
if(fwrite(p,sizeof(Node),1,fp)==1)
{
p=p->next;
count++;
}
else
{
flag=0;
break;
}
}
if(flag)
{
printf("\n=====>提示:文件保存成功.(有%d条记录已经保存.)\n",count);
shoudsave=0;
}
fclose(fp);
}
void main()
{
Link l;/* 连表 */
FILE *fp; /* 文件指针 */
int sel;
char ch;
char jian;
int count=0;
Node *p,*r;
printf("\t\t\t\t学生成绩管理系统\n\t\t\t\t-------建筑电气及智能化0801\n");
l=(Node*)malloc(sizeof(Node));
l->next=NULL;
r=l;
fp=fopen("C:\\student","rb");
if(fp==NULL)
{
printf("\n=====>提示:文件还不存在,是否创建?(y/n)\n");
scanf("%c",&jian);
if(jian=='y'||jian=='Y')
fp=fopen("C:\\student","wb");
else
exit(0);
}
printf("\n=====>提示:文件已经打开,正在导入记录......\n");
while(!feof(fp))
{
p=(Node*)malloc(sizeof(Node));
if(fread(p,sizeof(Node),1,fp)) /* 将文件的内容放入接点中 */
{
p->next=NULL;
r->next=p;
r=p; /* 将该接点挂入连中 */
count++;
}
}
fclose(fp); /* 关闭文件 */
printf("\n=====>提示:记录导入完毕,共导入%d条记录.\n",count);
while(1)
{
menu();
printf("请你选择操作:");
scanf("%d",&sel);
if(sel==0)
{
if(shoudsave==1)
{ getchar();
printf("\n=====>提示:资料已经改动,是否将改动保存到文件中(y/n)?\n");
scanf("%c",&ch);
if(ch=='y'||ch=='Y')
Save(l);
}
printf("\n=====>提示:你已经退出系统,再见!\n");
break;
}
switch(sel)
{
case 1:Add(l);break; /* 增加学生 */
case 2:Del(l);break;/* 删除学生 */
case 3:Qur(l);break;/* 查询学生 */
case 4:Modify(l);break;/* 修改学生 */
case 5:Save(l);break;/* 保存学生 */
case 9:printf("\t\t\t==========帮助信息==========\n");break;
default: Wrong();getchar();break;
}
}
}
❽ C语言实训心得
在初学C语言的一个学期后,我们进行了C语言实训阶段,尝试自己编写一个比较复杂的程序系统。在为期两周的时间中,我们同组的同学共同的感受是:C语言实训和平时上课所接触的程序是有很大不同的,所经受的考验和克服的困难是平时所无法比拟的。好在同组的搭档们精诚合作,分工明确,有问题共同解决,攻克了C语言实训的复杂程序。在这里,我作为其中的参与者,自然感触良多。
刚开始接触到C的时候,我已经学过一些有关VB的内容,这个在算法和思维上稍微有点帮助。回想本学期的学习,首先,最基本的,是C的数据格式,让我们知道整数,浮点数以及字符常量在C中的运用。然后,在学会了数据转化,以及熟练的可以对各种数据处理之后,我开始进行有关数据结构,像数组,结构体等的学习,因为有的东西从现有的知识来看都是非常简单的,还没有联系到指针等等一些复杂的概念。可是,仅仅学会这些是远远不够的,C语言中,还有很多更加经典、重要、实用的知识。
说说函数。虽说很多程序语言都有函数这一内容,但我觉得C语言的函数是最有魅力的了。学习函数的方法是比较简单的,只有两个字“牢记”,即:牢记函数的功能,牢记函数的用途以及如何输入输出。函数从本质上讲是一段通用程序,用它可以帮助我们节约很多编程的时间,学习C语言的“高人”都说,一个聪明的编程者在编写程序前往往总是先找自己所编写的程序中有多少是可以用函数来代替的。比如,大家可以作一个比较字符串的实验,用C语言中的strcmp()函数只要一句话,而自己编写的话,30句都很难实现,可想而知函数的实用和快捷。在我们C语言实训的代码中,函数更是得到了充分的应用,可以说,实训题目的复杂代码,就是用无数个函数的调用和嵌套积累出来的。
要注意的是,有的同学刚刚开始的时候,都是被一些大的程序激励的,所以当开始的时候看到繁琐的数据转化和简单的算法,都觉得很无聊,都想自己做几个自己满意的程序来看看,虽然这种想法很好,但是,我们说,没有基础,纯粹是搬照一些现成设计方法,是不足取的。要知道,程序设计讲究的是个人的思维的,假如刚开始就被一些现成的思想束缚住,以后就会觉得很无趣。
我们知道,指针其实是C语言的灵魂,许多的数据结构在我们学到这里之前都可以说是精通了。所以我们的任务就是,让数据结构在指针中运行。当然,刚刚开始接触到这些新的东西,是一件非常痛苦的事情,所以我们一定要用非常形象的思维去看待指针,不能太固化。所以,新的东西,比如结构体在指针中的表现方法,数组及多维数组在结构体中的运用,都一点一点的加了进来,同时丰满了我们对原来C的数据机构,数据表示的理解。当我们完成了这三步的学习,我们已经可以自豪的说,我们的基础都扎实了,可以进一步的学习有关算法,设计概念等等深层次的东西了。
但是,指针,结构体,这些太抽象的东西,在学习C语言的时候我们就有点“似懂非懂”,可是在眼下的C语言实训中,像这么重要的C语言知识,一定要达到能熟练掌握,实际运用的程度。在实训的大程序中,结构体在指针中的表现方法,数组及在结构体中的运用等具体的技术环节,都得到了体现,不会指针,我们的工作是没法展开的。所以,在实训期间,大家在巩固基本知识的基础上,逐块攻克实训课题,克服了困难,自信心得到了提高。
最后,谈谈我们组的程序软件。商店商品管理系统,是一个比较利于应用,解决实际问题,方便实际管理的程序。设计代码比较复杂,结构比较严谨。在程序编写的1周左右的时间里,组员们遇到了上述的困难,包括程序设计构思,甚至是指针等某些知识点的欠缺,导致的工作中出现的困难。但是,当大家一起团结协作,解决了这些困难之后,发现自己也可以编写复杂的、应用性的程序了,更发现自己对C语言这门学科的兴趣也提高了。
当然,我们编写的商店商品管理系统,还存在很多疏漏和不合理之处。比如,程序复杂冗长,如果时间充裕,我们将在不改变程序运行结果的基础上,简化程序,使每一句更加精辟,总体上更加简化。另外,在程序的外观上,我们由于时间问题,没有做更多的修饰,运行起来显得比较死板、枯燥乏味。如果增添一些色彩和其他效果,我们的程序也许会更加完美。
以上就是我的C语言实训个人总结
❾ 跪求c语言程序设计报告,学生学籍管理系统
试试看
#include<iostream>
#include<string>
#include<iomanip>
#include<fstream>
using namespace std;
#define NULL 0
class student
{
public:
long num;
string name;
string di,dihua,banji;
student *next;
};
int n; //链结点的个数
student *head,*stu;
/////////////////////////////////////////////////////////////////////
student *creat(void) //创建动态链表 返回以各指向链表头的指针
{ student *head;
student *p1,*p2;
n=0;
p1=p2=new student; //开辟新单元,用P1 P2指向
cout<<"按顺序输入学生的学号,姓名,地址,电话,班级,输入0 * * * *就停止录入(*为任意字符)" <<endl;
cin>>p1->num>>p1->name>>p1->di>>p1->dihua>>p1->banji;
head=NULL;
while(p1->num!=0) //循环输入的作用
{n=n+1;
if(n==1)head=p1;
else p2->next=p1;
p2=p1;
p1=new student; //开辟新单元,
cin>>p1->num>>p1->name>>p1->di>>p1->dihua>>p1->banji; //输入数据
}
p2->next=NULL; //p2指向最后
return(head);
}
///////////////////////////////////////////作为二进制储存和读出二进制文件
void write_read()
{student *p;
student stud[100];
n=0;
for(p=head;p!=NULL;p=p->next)
{ stud[n].di=p->di;
stud[n].dihua=p->dihua;
stud[n].banji=p->banji;
stud[n].name=p->name;
stud[n].num=p->num;
n++;
}
ofstream outfile("student.dat",ios::binary);
if(!outfile)
{ cerr<<"open error...."<<endl;
abort();
}
for(int i=0;i<n;i++)
outfile.write((char*)&stud[i],sizeof(stud[i]));
outfile.close();
ifstream infile("student.dat",ios::binary);
if(!infile)
{ cerr<<"open error...."<<endl;
abort();
}
for(int j=0;j<n;j++)
infile.read((char*)&stud[i],sizeof(stud[i]));
infile.close();
for(int k=0;k<n;k++)
{ cout<<"姓名: "<<stud[k].name<<endl;
cout<<"学号: "<<stud[k].num<<endl;
cout<<"地址 : "<<stud[k].di<<endl;
cout<<"电话: "<<stud[k].dihua<<endl;
cout<<"班级: "<<stud[k].banji<<endl<<endl<<endl;
}
}
///////////////////////////////////////////////////////////////图形的输出
void exit()
{
cout<<" ┃ \n"
" ┃ \n"
" ┏━━━━┻━━━━┓ \n"
" ┃ ┃ \n"
" ┏━━━━┻━━━━━━━━━┻━━━━┓\n"
" ┃ ^^^^^谢谢使用^^^^^^^ ┃\n"
" ┃ ┃\n"
" ┃ 偷得浮生半日闲 ┃\n"
" ┃ ┃\n"
" ┃ ┃\n"
" ┗━━━━━━━━━━━━━━━━━━━┛\n";
}
/////////////////////////////////////////////////////////////////////////////////////////////////////
void print(student *head) //输出链表
{student *p;
cout<<" 学生信息表 "<<endl;
p=head;
if(head!=NULL)
cout<<" "<<endl;
cout<<" 学号 姓名 地址 电话 班级 "<<endl;
cout<<" "<<endl;
if(head!=NULL)
do
{ cout<<setw(12)<<p->num
<<setw(14)<<p->name
<<setw(10)<<p->di
<<setw(10)<<p->dihua
<<setw(10)<<p->banji
<<endl;
cout<<" "<<endl;
p=p->next;
}while(p!=NULL);
}
////////////////////////////////////////////////////////////////////////删除链表
student *del(student *head,long num)
{student *p1,*p2;
if(head==NULL)
{cout<<"此为空表"<<endl;return(head);}
p1=head;
while(num!=p1->num && p1->next!=NULL)
{p2=p1;p1=p1->next;}
if(num==p1->num)
{if(p1==head)head=p1->next;
else p2->next=p1->next;
cout<<"删除"<<num<<endl;
n=n-1;}
else
cout<<"没有该同学数据!"<<num<<endl;
return(head);
cout<<endl<<endl;
}
///////////////////////////////////////////////////////////////////////////// 链表的舔加
student *insert(student *head,student *stud)
{student *p0,*p1,*p2;
p1=head; //P1指向第一个节点
p0=stud; //要插入的节点
if(head==NULL)
{head=p0;p0->next=NULL;} //是P0指向节点作为头
else
{while((p0->num>p1->num)&&(p1->next!=NULL))
{p2=p1; p1=p1->next;}
if(p0->num<=p1->num)
{if(head==p1)head=p0;
else
p2->next=p0;
p0->next=p1;
}
else
{p1->next=p0;p0->next=NULL;} //差 如节点之后
}
n=n+1; //节点+1
return(head);
cout<<endl<<endl;
}
///////////////////////////////////////////////////////////////////////查找学生
void find()
{student *p;
int a;
cout<<"请输入想要找的学生的学号"<<endl;
cin>>a;
for(p=head;p!=NULL;p=p->next)
{ if(a==p->num)
{ cout<<" "<<endl;
cout<<" 学号 姓名 地址 地话 班级 "<<endl;
cout<<" "<<endl;
cout<<setw(12)<<p->num
<<setw(14)<<p->name
<<setw(10)<<p->di
<<setw(10)<<p->dihua
<<setw(10)<<p->banji
<<endl;
cout<<" "<<endl;
break;
}
else
continue;
}
}
///////////////////////////////////////////////////////////////////////////////删除和添加的链表的多次执行的实现
void list()
{ int a;
long del_num;
student *creat(void);//输入学生数据
student *cunt_put(student *);
student *del(student *,long);
student *insert(student *,student *);
void print(student *);
cout<<" "<<endl<<endl<<endl;
head=creat();
print(head); //输出全部结点
cout<<"如果要删除学生资料请输入1,如果需要添加请输入2"<<endl;
cin>>a;
if(a==1)
{ cout<<"输入要删除学号"<<endl;
cin>>del_num;
while(del_num!=0 )
{ head=del(head,del_num);
print(head); //调用输出函数
cout<<"是否继续删除:是(输入学号),不是(输入0)"<<endl;
cin>>del_num;
}
}
cout<<",往下执行就按任意数字"<<endl;
cin>>a;
if (a==2) //操作选择
{ cout<<"输入要添加的就输入学号"<<endl;
stu=new student; //开创新的空间
cin>>stu->num>>stu->name>>stu->di>>stu->dihua>>stu->banji; //输入数据
while(stu->num!=0) //可以循环删除,删除多个
{ head=insert(head,stu); //调用添加函数
print(head); //调用输出函数
cout<<"如果需要添加请输入学号,无需添加输入0 * * * *就停止录入(*为任意字符)"<<endl;
stu=new student;
cin>>stu->num>>stu->name>>stu->di>>stu->dihua>>stu->banji;
}
}
cout<<endl<<endl;
}
/////////////////////////////////////////////////////////////////////////调用各个函数
void swich()
{ int a;
list();//删除和添加调用
cout<<"退出软件输入9 直接查看学生资料输入10"<<endl;
cin>>a;
if(a==9)
exit();
if(a=10)
{ for(int u=0;;u++)
{
cout<<" 0按学号查某个学生的数据 1查看成绩表 3退出系统且读取二进制文件 "<<endl;
int t;
cin>>t;
if(t==1)
{ print(head);continue;
}
if(t==3)
{ exit();
break;
}
if(t==0)
{ find();continue;
}
}
}
cout<<"读取二进制文件如下"<<endl<<endl<<endl;
write_read();
}
////////////////////////////////////////////////////////密码实现
void mima()
{ int n,m=1988825;
for(int j=0;;j++)
{
cout<<"这是我的地盘,请输入密码:"<<endl;
cin>>n;
if(m==n)
{ cout<<"恭喜你猜对了!!!"<<endl;
swich();
break;
}
else
{
cout<<"内有怪物,生人勿进!"<<endl;
continue;
}
}
}
//////////////////////////////////////////////////主函数
int main()
{ mima();
return 0;
}
❿ c语言:学生学籍管理系统
楼主,这基本相当于一个相当专业的软件设计,其中可能花费的时间不少于1周,请问谁会花这么多的时间就为了20,这是不可取的,另外你的程序你应该说,存储方式使用数据库。