學(xué)生信息管理系統(tǒng)的建立
目的
- 熟悉C語言程序的編輯、編譯鏈接和運(yùn)行的過程,至少能夠用一種編譯器較熟練地編輯、編譯及調(diào)試程序。
- 掌握結(jié)構(gòu)體類型變量、數(shù)組的定義和使用
- 掌握文件和文件指針的概念以及文件的定義方法,認(rèn)識(shí)文件打開、關(guān)閉、讀、寫等文件基本操作函數(shù)
- 能用c語言中靈活運(yùn)用鏈表
技術(shù)
要懂得如何用c語言創(chuàng)建一個(gè)文件,代碼引用
FILE *fp=fopen("C:/Users/lenovo/Desktop/hml.txt","w");
fputs("abc",fp);
//struct student{
//char name[10];
//int age;
// };
//struct student xw1={"xiaowang",20};
//fwrite(&xw1,sizeof(struct student),1,fp);
類似于這種,首先要在電腦中輸入cmd打開命令提升符,然后復(fù)制粘貼一個(gè)文件路徑放到c語言中就可以了,類似上面那樣的,要知道‘w“”r““a”等是什么意思,w就是只能寫,r是只讀,a是從末尾開始寫
鏈表的建立,特別是在結(jié)構(gòu)體當(dāng)中的使用
具體的實(shí)現(xiàn)
首先要建立一個(gè)結(jié)構(gòu)體,
typedef struct Node{
char name[10];
int _id;
float score;
struct Node *next;
} Student;
然后初始化一個(gè)頭結(jié)點(diǎn),并且要進(jìn)行動(dòng)態(tài)分配內(nèi)存。
void inttHeader(student **pHeader){
student *pTemp=malloc(1*sizeof(student));
pTemp->next=NUll;
*pHeader=pTemp;
}
要有一個(gè)進(jìn)入選擇的界面,并進(jìn)行選擇,而且要有一個(gè)退出的界面。
void showMenu(void){
printf("************\n");
printf("1.查詢\n");
printf("2.刪除\n");
printf("3.更改\n");
printf("4.插入\n");
printf("5.退出\n");
printf("************\n");
}
int getChoice(void){
int c;
printf("請(qǐng)選擇操作:");
scanf("%d", &c);
return c;
}
oid MyExit(int status){
printf("**************\n");
printf("感謝你的使用再見\n");
printf("**************\n");
要準(zhǔn)備一個(gè)結(jié)構(gòu)體保存數(shù)據(jù),首先我們要插入學(xué)生的各種信息
void save(student *pTemp){
}
void insert(student *pTemp){
student *pstu=malloc(1*sizeof(student));
pstu->next=Null;
printf("請(qǐng)輸入姓名:");
scanf("%s",pstu->name);
printf("請(qǐng)輸入成績(jī):");
scanf("%f",&(pstu->next));
int count=0;
while(pTemp->next!=Null){
pTemp=pTemp->next;
count++;
}
pstu->_id=count+1;
pTemp->next=pstu;
}
然后我們就是要查詢了
void querry(student *pTemp){
pTemp=ptemp->next;
while(pTemp!=Null){
printf("id:%id\n",pTemp->_id);
printf("name:%s\n",pTemp->name);
printf("score:%.1f\n",pTemp->score);
printf("\n");
pTemp=pTemp->next;
}
}
刪除和更改也類似,創(chuàng)立兩個(gè)函數(shù),然后在main函數(shù)當(dāng)中使用就行了
Student *pHeader = NULL;
initHeader(&pHeader);
int choice = 0;
while(1){
showMenu();
choice = getChoice();
switch (choice) {
case 1:
querry(pHeader);
break;
case 2:
delete(pHeader)
break;
case 3:
change(pHeader)
break;
case 4:
insert(pHeader);
printf("插入成功!!!\n");
break;
default:
MyExit(EXIT_SUCCESS);
break;
}
}
return 0;