❶ 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,這是不可取的,另外你的程序你應該說,存儲方式使用資料庫。