欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

基于C語言實(shí)現(xiàn)學(xué)生管理系統(tǒng)

 更新時間:2022年03月31日 17:02:30   作者:summery456  
這篇文章主要為大家詳細(xì)介紹了基于C語言實(shí)現(xiàn)學(xué)生管理系統(tǒng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下

本文實(shí)例為大家分享了C語言實(shí)現(xiàn)學(xué)生管理系統(tǒng)的具體代碼,供大家參考,具體內(nèi)容如下

1.目標(biāo)要求:

1.學(xué)生成績管理系統(tǒng)
2.可增、刪、改、查、瀏覽
3.數(shù)據(jù)保存在文件中

2.C語言代碼:

文件1:源文件

#include"mylist.h"


//菜單設(shè)計(jì)?
void menu(){
?? ?//所有文件都同步到文件?
?? ?printf("-------------【學(xué)生管理信息】-------------------\n");
?? ?printf("\t\t0.退出系統(tǒng)\n");
?? ?printf("\t\t1.錄入信息\n");
?? ?printf("\t\t2.瀏覽信息\n");
?? ?printf("\t\t3.修改信息\n");
?? ?printf("\t\t4.刪除信息\n");
?? ?printf("\t\t5.查找信息\n");
?? ?printf("------------------------------------------------\n");
?? ?
}
struct Node* list;
//用戶的交互
//根據(jù)所選的菜單項(xiàng),作相應(yīng)的事情?
void keyDown(){
?? ?
?? ?int choice = 0;
?? ?struct student data;
?? ?struct Node* pMove = NULL;
?? ?scanf("%d",&choice);
?? ?switch(choice){
?? ??? ?case 0:
?? ??? ??? ?printf("正常退出!\n");
?? ??? ??? ?system("pause");
?? ??? ??? ?exit(0);
?? ??? ??? ?break;
?? ??? ?case 1:
?? ??? ??? ?printf("-------------錄入信息-------------------\n");
?? ??? ??? ?//插入鏈表?
?? ??? ??? ?fflush(stdin);?? ?//清空緩沖區(qū)!?。。。。。。。?
?? ??? ??? ?printf("請輸入學(xué)生的\n姓名、年齡、性別、電話:\n");
?? ??? ??? ?scanf("%s%d%s%s",data.name,&data.age,data.sex,data.tel);
?? ??? ??? ?insertNodeByHead(list,data);?
?? ??? ??? ?break;
?? ??? ?case 2:
?? ??? ??? ?printf("-------------瀏覽信息-------------------\n");
?? ??? ??? ?printList(list);?? ?//打印鏈表
?? ??? ??? ?break;
?? ??? ?case 3:
?? ??? ??? ?printf("-------------修改信息-------------------\n");
?? ??? ??? ?printf("請輸入要修改信息的學(xué)生姓名:");
?? ??? ??? ?scanf("%s",data.name);
?? ??? ??? ?reviseInfoByData(list,data.name);?
?? ??? ??? ?break;
?? ??? ?case 4:
?? ??? ??? ?printf("-------------刪除信息-------------------\n");
?? ??? ??? ?printf("請輸入刪除學(xué)生的姓名:");
?? ??? ??? ?scanf("%s",data.name);
?? ??? ??? ?deleteNode(list,data.name);
?? ??? ??? ?break;
?? ??? ?case 5:
?? ??? ??? ?printf("-------------查找信息-------------------\n");
?? ??? ??? ?printf("請輸入要查找學(xué)生的姓名:");
?? ??? ??? ?scanf("%s",data.name);
?? ??? ??? ?if( pMove = searchInfoByData(list,data.name)){
?? ??? ??? ??? ?printf("姓名\t年齡\t性別\t電話\n");?
?? ??? ??? ??? ?printf("%s\t%d\t%s\t%s\n",pMove->data.name,pMove->data.age,pMove->data.sex,pMove->data.tel);
?? ??? ??? ?}
?? ??? ??? ?break;
?? ??? ?default:
?? ??? ??? ?printf("選擇錯誤,重新輸入\n");
?? ??? ??? ?system("pause");
?? ??? ??? ?break;?
?? ?}
?? ?writeInfoToFile(list,"1.txt");
}?
int main(){
?? ?list = createList();
?? ?readInfoFromFile(list,"1.txt");
?? ?while(1){
?? ??? ?
?? ??? ?menu();
?? ??? ?keyDown();
?? ??? ?system("pause");
?? ??? ?system("cls");
?? ?}?
?? ?system("pause");
?? ?return 0;
}

文件2:mylist.h

#include<stdio.h>
#include<stdlib.h>?
#include<string.h>?

//數(shù)據(jù)的設(shè)計(jì)-----》學(xué)生信息抽象出
struct student{
?? ?char name[20];
?? ?int age;
?? ?char sex[5];
?? ?char tel[20];
?? ?
//?? ?int math;
//?? ?int english;
};//結(jié)構(gòu)
//測試的結(jié)構(gòu)?
struct Node{
?? ?struct student data;
?? ?struct Node* next;
};?
//創(chuàng)建表頭?
struct Node* createList(){
?? ?struct Node* headNode = (struct Node*)malloc(sizeof(struct Node));
?? ?headNode->next = NULL;
?? ?return headNode;
}
//創(chuàng)建節(jié)點(diǎn)?
struct Node* createNode(struct student data){
?? ?struct Node* newNode = (struct Node*)malloc(sizeof(struct Node));
?? ?newNode->data = data;
?? ?newNode->next = NULL;
?? ?return newNode;
}?
//插入結(jié)點(diǎn)(表頭法)
void insertNodeByHead(struct Node* headNode, struct student data){
?? ?struct Node* newNode = createNode(data);
?? ?newNode->next = headNode->next;?
?? ?headNode->next = newNode;
}
//指定位置刪除
void deleteNode(struct Node* headNode,char* name){
?? ?struct Node* posFrontNode;
?? ?struct Node* posNode;
?? ?if(headNode->next == NULL){
?? ??? ?printf("鏈表為空!\n");
?? ??? ?return;?
?? ?}
?? ?posFrontNode = headNode;
?? ?posNode = headNode->next;
?? ?while(posNode && strcmp(posNode->data.name,name)){
?? ??? ?posFrontNode = posNode;
?? ??? ?posNode = posFrontNode->next;
?? ?}
?? ?if(!posNode){
?? ??? ?printf("您要刪除的數(shù)據(jù)不存在!\n");?
?? ??? ?return;
?? ?}
?? ?if(!strcmp(posNode->data.name,name)){
?? ??? ?posFrontNode->next = posNode->next;
?? ??? ?free(posNode);
?? ?}
}?
//查找功能
struct Node* searchInfoByData(struct Node* headNode,char* name) {
?? ?struct Node* posNode;
?? ?if(headNode->next == NULL){
?? ??? ?printf("鏈表為空!\n");
?? ??? ?return NULL;?
?? ?}
?? ?posNode = headNode->next;
?? ?while(posNode && strcmp(posNode->data.name,name)){;
?? ??? ?posNode = posNode->next;
?? ?}
?? ?if(!posNode){
?? ??? ?printf("您要查找的數(shù)據(jù)不存在!\n");?
?? ??? ?return NULL;
?? ?}
?? ?return posNode;?
}
//修改功能
void reviseInfoByData(struct Node* headNode,char* name) {
?? ?struct Node* posNode;
?? ?if(headNode->next == NULL){
?? ??? ?printf("鏈表為空!\n");
?? ??? ?return;?
?? ?}
?? ?posNode = headNode->next;
?? ?while(posNode && strcmp(posNode->data.name,name)){;
?? ??? ?posNode = posNode->next;
?? ?}
?? ?if(!posNode){
?? ??? ?printf("您要修改的數(shù)據(jù)不存在!\n");?
?? ??? ?return;
?? ?}
?? ?printf("請輸入學(xué)生[%s]的年齡、性別、電話:\n",posNode->data.name);
?? ?scanf("%d%s%s",&posNode->data.age,posNode->data.sex,posNode->data.tel);
}
//文件讀操作
void readInfoFromFile(struct Node* headNode,char* fileName){
?? ?//1.打開文件
?? ?FILE *fp;
?? ?struct student data;
?? ?fp = fopen(fileName,"r");
?? ?if(fp == NULL){
?? ??? ?fopen(fileName,"w+");//打開文件具有創(chuàng)建功能?
?? ?}
?? ?//2.讀文件?
?? ?while(fscanf(fp,"%s\t%d\t%s\t%s\n",data.name,&data.age,data.sex,data.tel)!=EOF){
?? ??? ?insertNodeByHead(headNode,data);?
?? ?}
?? ?//3.關(guān)閉文件
?? ?fclose(fp);
}
//文件寫操作
void writeInfoToFile(struct Node* headNode,char* fileName){
?? ?//1.打開文件
?? ?FILE *fp;
?? ?fp = fopen(fileName,"w");
?? ?struct Node* pMove = headNode->next;
?? ?
?? ?//2.寫文件?
?? ?while(pMove){
?? ??? ?fprintf(fp,"%s\t%d\t%s\t%s\n",pMove->data.name,pMove->data.age,pMove->data.sex,pMove->data.tel);
?? ??? ?pMove = pMove->next;
?? ?}
?? ?//3.關(guān)閉文件
?? ?fclose(fp);
}

//打印鏈表
void printList(struct Node* headNode){
?? ?struct Node* pMove = headNode->next;
?? ?//設(shè)計(jì)列數(shù)據(jù)的處理
?? ?printf("姓名\t年齡\t性別\t電話\n");?
?? ?while(pMove){
?? ??? ?printf("%s\t%d\t%s\t%s\n",pMove->data.name,pMove->data.age,pMove->data.sex,pMove->data.tel);
?? ??? ?pMove = pMove->next;
?? ?}
?? ?printf("\n");
}

3.運(yùn)行結(jié)果:

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • C/C++中的sizeof運(yùn)算符和size_t類型的詳解

    C/C++中的sizeof運(yùn)算符和size_t類型的詳解

    今天小編就為大家分享一篇關(guān)于C/C++中的sizeof運(yùn)算符和size_t類型的詳解,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧
    2018-10-10
  • Qt+QListWidget實(shí)現(xiàn)氣泡聊天界面(附源碼)

    Qt+QListWidget實(shí)現(xiàn)氣泡聊天界面(附源碼)

    由于最近的項(xiàng)目需要,做了些相關(guān)IM的工作。所以聊天框也是必不可少的一部分。本文以QListWidget+QPainter繪制的Item做了一個Demo。該Demo只是做一個示例,感興趣的可以了解一下
    2022-12-12
  • C語言獲取文件長度的方法

    C語言獲取文件長度的方法

    這篇文章主要介紹了C語言獲取文件長度的相關(guān)知識,包括使用標(biāo)準(zhǔn)庫方法和使用Linux系統(tǒng)調(diào)用,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),需要的朋友可以參考下
    2023-10-10
  • C語言實(shí)現(xiàn)順序表的基本操作指南(注釋很詳細(xì))

    C語言實(shí)現(xiàn)順序表的基本操作指南(注釋很詳細(xì))

    線性表是最簡單的數(shù)據(jù)結(jié)構(gòu),而順序表又是最簡單的線性表,其基本思想是用一段地址連續(xù)的儲存單元依次存儲線性表的數(shù)據(jù)元素,下面這篇文章主要給大家介紹了關(guān)于C語言實(shí)現(xiàn)順序表的基本操作,需要的朋友可以參考下
    2021-10-10
  • 詳解c++中的 static 關(guān)鍵字及作用

    詳解c++中的 static 關(guān)鍵字及作用

    這篇文章主要介紹了c++中的 static 關(guān)鍵字,在我們?nèi)粘J褂眠^程中,static通常有兩個作用,具體內(nèi)容在文中給大家詳細(xì)介紹,需要的朋友可以參考下
    2020-02-02
  • C++中hashmap的一些使用建議

    C++中hashmap的一些使用建議

    由于hashmap不是c++ stl中標(biāo)準(zhǔn)實(shí)現(xiàn),這樣在跨平臺使用時就可能會出現(xiàn)問題,下面這篇文章主要給大家介紹了關(guān)于C++中hashmap的一些使用建議,需要的朋友可以參考下
    2023-03-03
  • C語言輸出唯一的子串

    C語言輸出唯一的子串

    這篇文章主要介紹了C語言輸出唯一的子串,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2021-12-12
  • c++實(shí)現(xiàn)二叉查找樹示例

    c++實(shí)現(xiàn)二叉查找樹示例

    這篇文章主要介紹了c++實(shí)現(xiàn)二叉查找樹示例,實(shí)現(xiàn)二叉查找樹的基本功能,需要的朋友可以參考下
    2014-02-02
  • C語言實(shí)現(xiàn)小型電子詞典

    C語言實(shí)現(xiàn)小型電子詞典

    這篇文章主要為大家詳細(xì)介紹了C語言實(shí)現(xiàn)小型電子詞典,用戶可以進(jìn)行英譯漢、漢譯英等功能,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-03-03
  • C語言中聯(lián)合體與共用體和枚舉使用語法示例

    C語言中聯(lián)合體與共用體和枚舉使用語法示例

    這篇文章主要介紹了C語言中聯(lián)合體與共用體和枚舉使用語法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)吧
    2022-12-12

最新評論