欧美色欧美亚洲高清在线观看,国产特黄特色a级在线视频,国产一区视频一区欧美,亚洲成a 人在线观看中文

  1. <ul id="fwlom"></ul>

    <object id="fwlom"></object>

    <span id="fwlom"></span><dfn id="fwlom"></dfn>

      <object id="fwlom"></object>

      C語言課程設(shè)計學(xué)生選課系統(tǒng)

      時間:2019-05-12 08:28:47下載本文作者:會員上傳
      簡介:寫寫幫文庫小編為你整理了多篇相關(guān)的《C語言課程設(shè)計學(xué)生選課系統(tǒng)》,但愿對你工作學(xué)習(xí)有幫助,當(dāng)然你在寫寫幫文庫還可以找到更多《C語言課程設(shè)計學(xué)生選課系統(tǒng)》。

      第一篇:C語言課程設(shè)計學(xué)生選課系統(tǒng)

      題目

      一、學(xué)生選課管理系統(tǒng)

      第一部分:課程設(shè)計名稱、目的、要求

      第二部分:程序總體設(shè)計思路

      第三部分:程序功能劃分、圖示及流程圖

      第四部分:程序設(shè)計數(shù)據(jù)、運行結(jié)果

      第五部分:程序的優(yōu)缺點

      第六部分:心得體會

      第七部分:附錄(源程序)

      第八部分:附錄(參考文獻(xiàn))

      目錄

      ..............................................................................第一部分:課程設(shè)計名稱、目的、要求

      名稱:學(xué)生選修課程系統(tǒng)設(shè)計

      目的:運用C語言提高解決實際問題的能力 實驗環(huán)境:Microsoft Visual C++ 6.0 內(nèi)容:

      假定有n門課程,每門課程有課程編號,課程名稱,課程性質(zhì),總學(xué)時,授課學(xué)時,實驗或上機學(xué)時,學(xué)分,開課學(xué)期等信息,學(xué)生可按要求(如總學(xué)分不得少于60)自由選課?!竟δ堋?/p>

      系統(tǒng)以菜單方式工作?

      課程信息錄入功能(課程信息用文件保存)--輸入? 課程信息瀏覽功能--輸出?

      查詢功能:(至少一種查詢方式)--算法? 按學(xué)分查詢? 按課程性質(zhì)查詢? 學(xué)生選修課程(可選項)?

      第二部分:程序總體設(shè)計思路

      由于C語言是面對過程的語言,故我的設(shè)計思路是根據(jù)目標(biāo)程序運行的過程來編寫的。

      具體的設(shè)計思路如下:

      程序的要求是設(shè)計學(xué)生選修課管理系統(tǒng),對選修課程能夠進(jìn)行錄入和修改操作等,要求有菜單界面和退出功能。首先,考慮到程序的數(shù)據(jù)輸入,可以設(shè)置一個管理員登陸選項,通過該選項進(jìn)入管理員界面,進(jìn)行選修課的錄入和修改操作,最后將錄入的課程保存到相應(yīng)的文件中。然后定義各種函數(shù)的功能包括查看,查詢,刪除等。另一個為學(xué)生登陸界面,該界面學(xué)生可以進(jìn)行課程選擇和瀏覽查詢等操作。在進(jìn)行該操作之前需要對管理員保存的文件進(jìn)行讀取,然后對其中的內(nèi)容進(jìn)行查詢等,在學(xué)生選好課程以后,可以將其選好的課程保存于相應(yīng)的文件中,以便下次進(jìn)行修改。通過函數(shù)的層層調(diào)用來實現(xiàn)程序的邏輯結(jié)構(gòu)。中間通過文件的打開和關(guān)閉實現(xiàn)對文件內(nèi)部所包含的數(shù)據(jù)的操作。

      整個程序的設(shè)計思路到此結(jié)束。

      第三部分:程序功能劃分、圖示及流程圖

      【功能模塊劃分及其流程圖】

      本程序功能模塊根據(jù)程序設(shè)計的需求,綜合程序的實用性、人性化、智能化的考慮,將程序劃分為6個部分分別編寫,程序主體功能將由這9個部分來完成。這9個部分依次是:

      1.登錄界面函數(shù);void login()2.學(xué)生登錄界面據(jù)函數(shù):void stu_login()3.管理員登錄界面函數(shù):void man_login()4.退出界面函數(shù):void bye_sys()

      5.課程選擇函數(shù):void c_select()6.課程瀏覽函數(shù):void c_view()7.課程查詢函數(shù):void c_search()8.課程增加函數(shù):void c_add()9.課程刪除函數(shù):void c_delete()10.菜單函數(shù):void index()11.主函數(shù)部分; main()

      總體設(shè)計:

      學(xué)生選課系統(tǒng)管理員登錄學(xué)生登錄新增課程刪除課程課程瀏覽查詢課程學(xué)生選課課程瀏覽課程查詢c_add函數(shù)c_delete函數(shù)c_view函數(shù)c_search函數(shù)c_select函數(shù)c_view函數(shù)c_search函數(shù)

      系統(tǒng)功能模塊圖

      部分函數(shù)流程圖:

      1、課程選擇函數(shù):

      開始輸入要選擇的課程的編號j=0;j

      2、課程查詢函數(shù)

      開始輸入要查詢的課程的編號j=0;j

      3、課程增加函數(shù)

      開始輸入要增加的課程的編號j=0;j

      4、課程刪除函數(shù)

      開始輸入要刪除的課程的編號nj=0;j

      本程序是一款應(yīng)用軟件,故數(shù)據(jù)設(shè)計、程序運行結(jié)果應(yīng)在程序的

      運用中得以體現(xiàn),現(xiàn)在通過一個程序的運用事例來對程序運行結(jié)果進(jìn)行演示與實現(xiàn)。【軟件運用舉例】

      1、程序開始界面如下:

      選擇某個選項,如進(jìn)行管理員登錄,進(jìn)行課程的增加 進(jìn)入管理員界面:

      2、再選擇所要進(jìn)行的操作,如進(jìn)行課程增加,結(jié)果如下:

      下面可以進(jìn)行繼續(xù)增加課程或者退出:

      3、選擇課程瀏覽,可以分頁查看相應(yīng)的課程信息: 第一頁:

      第二頁:

      4、課程查詢

      查找結(jié)果:

      4、管理員課程刪除操作:

      刪除后可以進(jìn)行瀏覽,觀察刪除后的結(jié)果:

      可見刪除后只有一條記錄。刪除操作完成正確。下面進(jìn)行學(xué)生操作的使用方法:

      1、學(xué)生登陸界面:

      2、選擇學(xué)生選課選項:

      3、學(xué)生登陸也可進(jìn)行課程瀏覽和查詢函數(shù),其結(jié)果與管理員登陸相同,不再演示。

      第五部分:程序的優(yōu)缺點

      【程序的優(yōu)點】

      算法是程序的靈魂,程序的優(yōu)點首先表現(xiàn)在算法上的優(yōu)點,其次才是功能上的。

      [算法上的優(yōu)點]主要體現(xiàn)在以下三點:

      1.程序采用main主函數(shù)方式設(shè)計,程序的主體的功能大都由該功能

      完成。程序如此設(shè)計有利于程序的進(jìn)一步改進(jìn)及有助于程序執(zhí)行效率的提高。

      2.程序?qū)ξ募?shù)據(jù)的讀寫采用了fread和fwrite塊讀寫函數(shù),能夠?qū)⑽募械臄?shù)據(jù)完全讀出,然后賦到定義的數(shù)組中,再在相應(yīng)的數(shù)組中進(jìn)行一系列操作,最終再寫入文件。

      3.插入操作在本程序中將課程信息直接插入數(shù)組最后一個節(jié)點,從而減少了數(shù)據(jù)的相互移動,節(jié)省了時間。

      [功能上的優(yōu)點] 主要體現(xiàn)在以下兩點:

      1. 簡潔明了的程序菜單。程序主要采用了層次不同的菜單,相互獨立又相互聯(lián)系,巧妙相接,符合用戶的使用習(xí)慣與思維。2. 人性化的程序提示語言,程序提示語言較人性化,不僅大多為祈使語句、疑問句,而且提示明確,具有較強的明確的指導(dǎo)作用。程序提示不僅層次分明,提示方式多樣,而且提示信息井然有序,更加有利于用戶順利、準(zhǔn)確地看懂程序并進(jìn)行操作。

      【程序的缺點】 主要表現(xiàn)在以下兩點:

      1、本程序沒有進(jìn)行相應(yīng)的密碼操作,所以對于使用者來說可能存在比較大的不保密性。需要改善。

      2、本程序沒有使用文本讀寫函數(shù)fscanf和fprintf,所以的到的課程文件和選課文件都是二進(jìn)制形式。

      第六部分:心得體會

      選課系統(tǒng)程序比起通訊錄程序來講好寫一些,由于本程序用到了數(shù)組,對于數(shù)組的操作掌握的比較熟練,所以在編寫程序的時候困難沒有那么多。

      本程序在編寫的過程中用到了許多通訊錄中的模塊化設(shè)計和函數(shù)互相調(diào)用的思想,使得編寫比較方便和好用。

      通過該系統(tǒng)的課程設(shè)計分析,我掌握了模塊化設(shè)計的方法,理解和運用了結(jié)構(gòu)化程序設(shè)計的思想和方法,掌握和提高了運用C語言進(jìn)行程序設(shè)計的能力。

      程序設(shè)計的過程,實際上是確定解決問題的詳細(xì)步驟,而這個步驟通常叫做流程,在程序設(shè)計過程中理清楚整個問題的流程很重要,然后采取逐步細(xì)化的方法實現(xiàn)整個程序。

      對于一個較大的應(yīng)用程序,一般不可能一次就設(shè)計出一個很完善的系統(tǒng)。通常要先設(shè)計滿足基本要求的系統(tǒng),然后再測試或者在使用的過程中不斷完善,慢慢地做成一個功能很完善選修課程管理系統(tǒng)。所以在進(jìn)行調(diào)試的時候需要對許多變量理解和掌握其變化規(guī)律等,這對于我更好的掌握visual C中調(diào)試的工具有很大的幫助。

      總之經(jīng)過這次課程設(shè)計,我對c語言的使用和理解都有了很大的加深,對于編程的思想也有了很多新的理解和感受。

      第七部分:附錄

      一、參考文獻(xiàn):

      1、李麗娟主編,C語言程序設(shè)計教程(第二版),人民郵電出版社

      2、嚴(yán)蔚敏主編,數(shù)據(jù)結(jié)構(gòu)(C語言),清華大學(xué)出版社

      3、崔單主編,C語言程序設(shè)計案例精粹,電子工業(yè)出版社

      4、譚浩強主編,程序設(shè)計(第三版),清華大學(xué)出版社

      二、源程序

      #include“stdio.h” #include“stdlib.h” #include“windows.h” #include“string.h”

      void index();//首頁 void login();void bye_sys();//退出界面

      void stu_login();//學(xué)生登錄菜單

      void c_select();void c_view();//課程瀏覽

      void c_add();//增加課程 void c_delete();void c_searchs();//學(xué)生查詢函數(shù) void c_searchm();//管理員查詢函數(shù) void c_viewm();//管理員瀏覽函數(shù) void c_views();//學(xué)生瀏覽函數(shù)

      struct course//定義課程結(jié)構(gòu)體

      {

      int c_num;

      char c_name[20];

      int c_score;

      int c_nelepeo;//課程已選人數(shù)

      int c_melepeo;//課程人數(shù)上限 };struct student { char s_number[10];

      char s_password[10];};struct manager { char m_name[10];char m_password[10];};

      void index()//首頁 {

      char input;

      printf(“nnttt*****************************n”);

      printf(“ttt

      湖南大學(xué)學(xué)生選課系統(tǒng)n”);

      printf(“ttt*****************************nnn”);

      printf(“ttt*****************************nnn”);

      printf(“ttt*****************************nnn”);

      printf(“ttt*****************************nnn”);

      printf(“ttt**********設(shè)計者:劉曉斌******nnn”);

      input=getchar();

      system(“cls”);} void login()//登陸界面

      {

      void stu_login();

      void man_login();

      void bye_sys();

      int input;

      do

      {

      system(“cls”);

      printf(“nnnt1.學(xué)生登錄n”);

      printf(“t2.管理員登陸n”);

      printf(“t3.退出本系統(tǒng)n”);

      printf(“t請選擇服務(wù)類別:”);

      scanf(“%d”,&input);

      if(input!=1&&input!=2&&input!=3)//輸入數(shù)不等于選項的時候打印畫面

      {

      printf(“nt輸入出錯!請重新選擇~n”);

      printf(“nt按任意鍵返回選擇頁面~nt”);

      getchar();getchar();

      system(“cls”);

      }

      if(input==3)//如果輸入3退出系統(tǒng)

      {

      bye_sys();

      }

      }while(input!=1&&input!=2&&input!=3);

      switch(input)

      {

      case 1:stu_login();break;

      case 2:man_login();break;

      } }

      void bye_sys()//退出界面 { exit(0);}

      void man_login(){

      void c_add();

      void c_delete();

      void c_view();

      void c_searchm();

      int in;

      do

      {

      system(“cls”);

      printf(“nnt1.新增課程n”);

      printf(“t2.刪除課程n”);

      printf(“t3.課程瀏覽n”);

      printf(“t4.課程查詢n”);

      printf(“t5.退出n”);

      printf(“nnt請選擇服務(wù)種類:”);

      scanf(“%d”,&in);

      if(in!=1&&in!=2&&in!=3&&in!=4&&in!=5)

      {

      printf(“nt沒有這項服務(wù)t按任意重新選擇”);

      getchar();getchar();

      }

      }while(in!=1&&in!=2&&in!=3&&in!=4&&in!=5);

      switch(in)

      {

      case 1:c_add();break;

      case 2:c_delete();break;

      case 3:c_viewm();break;

      case 4:c_searchm();break;

      case 5:login();break;

      } }

      void stu_login()//學(xué)生登錄菜單

      {

      void c_select();

      void c_view();

      void c_searchs();

      void login();

      int input;

      do

      {

      system(“cls”);

      printf(“nnnt--學(xué)生登陸--”);

      printf(“nnt1.學(xué)生選課n”);

      printf(“t2.課程瀏覽n”);

      printf(“t3.課程查詢n”);

      printf(“t4.退出n”);

      scanf(“%d”,&input);

      if(input!=1&&input!=2&&input!=3&&input!=4)

      {

      printf(“nt沒有這項服務(wù)~n”);

      printf(“t按任意鍵重新選擇”);

      getchar();

      getchar();

      }

      }while(input!=1&&input!=2&&input!=3&&input!=4);

      switch(input)

      {

      case 1:c_select();break;

      case 2:c_views();break;

      case 3:c_searchs();break;

      case 4:login();break;

      } }

      void c_select(){

      int n,in,i=0,j;int flag=0;

      FILE *fp;

      FILE *fp1;

      char input;

      struct course courses[10];

      if((fp=fopen(“course.dat”,“rb”))==NULL)//判斷是否存在課程

      {

      printf(“nnnt課程不存在nn”);

      printf(“t<按任意鍵返回管理菜單>nt”);

      input=getchar();

      input=getchar();

      stu_login();//進(jìn)入學(xué)生登陸菜單

      }

      else//存在的話循環(huán)讀取文件中的信息直到文件指針到文件尾部

      {

      do

      {

      fread(&courses[i],sizeof(struct course),1,fp);

      i=i+1;

      }

      while(!feof(fp));

      fclose(fp);//文件讀完后關(guān)閉

      }

      printf(“nntt請輸入你要選課程的編號:”);

      scanf(“%d”,&n);

      if((fp1=fopen(“courseselect.dat”,“rb”))==NULL)

      {

      fp1=fopen(“courseselect.dat”,“wb”);

      }

      else

      {

      fclose(fp1);

      fp1=fopen(“courseselect.dat”,“ab”);

      }

      for(j=0;j

      if(courses[j].c_num==n)

      flag++;

      if(flag==0)

      {

      printf(“nntt不存在對應(yīng)課程n”);

      printf(“nntt繼續(xù)選課請按1,退出請按2:n”);

      scanf(“%d”,&in);

      switch(in)

      {

      case 1:c_select();break;

      case 2:stu_login();break;

      default:

      printf(“輸入錯誤,將返回登錄界面!n”);

      login();break;

      }

      }

      else

      {

      fwrite(&courses[j],sizeof(struct course),1,fp1);

      fclose(fp1);

      printf(“nntt選課成功t請選擇:”);

      printf(“nntt1.繼續(xù)選課”);

      printf(“nntt2.退出,返回登錄界面!”);

      scanf(“%d”,&in);

      switch(in)

      {

      case 1:c_select();break;

      case 2:stu_login();break;

      default:break;

      }

      } }

      void c_viewm()//課程瀏覽

      {

      void stu_login();

      void c_view();

      int

      inp,i=0,n=0;

      FILE *fp;

      char input;

      struct course courseview[10];

      if((fp=fopen(“course.dat”,“rb”))==NULL)//判斷是否存在課程

      {

      system(“cls”);

      printf(“nnnt課程不存在nn”);

      printf(“t<按任意鍵返回管理菜單>nt”);

      getchar();getchar();

      stu_login();//進(jìn)入學(xué)生登陸菜單

      }

      else//存在的話循環(huán)讀取文件中的信息直到文件指針到文件尾部

      {

      do

      {

      fread(&courseview[i],sizeof(struct course),1,fp);

      i=i+1;

      }

      while(!feof(fp));

      fclose(fp);//文件讀完后關(guān)閉

      do

      {

      system(“cls”);

      if(i==1)

      {

      printf(“nnnttt沒有記錄!n”);

      getchar();getchar();

      man_login();

      }

      else

      {

      printf(“nt------共有%d條記錄-------”,i-1);

      printf(“nnt課程編號: %dn”,courseview[n].c_num);

      printf(“nnt課程名字: %sn”,courseview[n].c_name);

      printf(“nnt課程學(xué)分: %dn”,courseview[n].c_score);

      printf(“nnt課程已選人數(shù): %dn”,courseview[n].c_nelepeo);

      printf(“nnt課程人數(shù)上限: %dn”,courseview[n].c_melepeo);

      printf(“nnt1.上一頁t2.下一頁t3.回目錄”);

      printf(“n請選擇:”);

      scanf(“%d”,&inp);

      switch(inp)

      {

      case 1:

      {

      if(n==0)

      {

      printf(“nt已到達(dá)首頁 t按任意鍵返回”);

      input=getchar();

      input=getchar();

      }

      else

      {

      n=n-1;

      }

      break;

      }

      case 2:

      {

      if(n==i-2)

      {

      printf(“nt已到達(dá)尾頁t按人意見返回”);

      input=getchar();

      input=getchar();

      }

      else

      {

      n=n+1;

      }

      break;

      }

      case 3:{man_login();break;}

      default:

      {

      printf(“nt操作錯誤t按任意鍵返回”);

      getchar();getchar();

      break;

      }

      }

      }

      }while(inp!=3);

      } }

      void c_views()//課程瀏覽

      {

      void stu_login();

      void c_view();

      int

      inp,i=0,n=0;

      FILE *fp;

      char input;

      struct course courseview[10];

      if((fp=fopen(“course.dat”,“rb”))==NULL)//判斷是否存在課程

      {

      system(“cls”);

      printf(“nnnt課程不存在nn”);

      printf(“t<按任意鍵返回管理菜單>nt”);

      getchar();getchar();

      stu_login();//進(jìn)入學(xué)生登陸菜單

      }

      else//存在的話循環(huán)讀取文件中的信息直到文件指針到文件尾部

      {

      do

      {

      fread(&courseview[i],sizeof(struct course),1,fp);

      i=i+1;

      }

      while(!feof(fp));

      fclose(fp);//文件讀完后關(guān)閉

      do

      {

      system(“cls”);

      if(i==1)

      {

      printf(“nnnttt沒有記錄!n”);

      getchar();getchar();

      stu_login();

      }

      else

      {

      printf(“nt------共有%d條記錄-------”,i-1);

      printf(“nnt課程編號: %dn”,courseview[n].c_num);

      printf(“nnt課程名字: %sn”,courseview[n].c_name);

      printf(“nnt課程學(xué)分: %dn”,courseview[n].c_score);

      printf(“nnt課程已選人數(shù): %dn”,courseview[n].c_nelepeo);

      printf(“nnt課程人數(shù)上限: %dn”,courseview[n].c_melepeo);

      printf(“nnt1.上一頁t2.下一頁t3.回目錄”);

      printf(“n請選擇:”);

      scanf(“%d”,&inp);

      switch(inp)

      {

      case 1:

      {

      if(n==0)

      {

      printf(“nt已到達(dá)首頁 t按任意鍵返回”);

      input=getchar();

      input=getchar();

      }

      else

      {

      n=n-1;

      }

      break;

      }

      case 2:

      {

      if(n==i-2)

      {

      printf(“nt已到達(dá)尾頁t按人意見返回”);

      input=getchar();

      input=getchar();

      }

      else

      {

      n=n+1;

      }

      break;

      }

      case 3:{stu_login();break;}

      default:

      {

      printf(“nt操作錯誤t按任意鍵返回”);

      getchar();getchar();

      break;

      }

      }

      }

      }while(inp!=3);

      } }

      void c_searchs(){

      void stu_login();

      void c_searchs();

      int id,i=0,j,inp,k;

      int flag=0;

      FILE *fp;

      struct course coursesear[10];

      if((fp=fopen(“course.dat”,“rb”))==NULL)

      //判斷課程信息是否存在 {

      system(“cls”);

      printf(“nnt課程不存在t按任意鍵返回”);

      getchar();getchar();

      stu_login();

      }

      else//存在的話循環(huán)讀取文件中的信息直到文件指針到文件尾部

      {

      do

      {

      fread(&coursesear[i],sizeof(struct course),1,fp);

      i=i+1;

      }while(!feof(fp));

      fclose(fp);

      }

      system(“cls”);

      printf(“nnttt請輸入你要查詢的課程編號:”);

      scanf(“%d”,&id);

      do//檢查輸入是否符合要求

      {

      for(j=0;j

      {

      if(id==coursesear[j].c_num)

      {

      flag++;

      k=j;

      }

      }

      if(flag==1)

      {

      system(“cls”);

      printf(“nnt課程編號:%dn”,coursesear[k].c_num);

      printf(“nnt課程名字:%sn”,coursesear[k].c_name);

      printf(“nnt課程學(xué)分:%dn”,coursesear[k].c_score);

      printf(“nnt課程已選人數(shù):%dn”,coursesear[k].c_nelepeo);

      printf(“nnt課程人數(shù)上限:%dn”,coursesear[k].c_melepeo);

      getchar();getchar();

      printf(“nnt1.回目錄繼續(xù)查詢t2.退出查詢系統(tǒng)n”);

      printf(“請選擇:”);

      scanf(“%d”,&inp);

      switch(inp)

      {

      case 1:c_searchs();

      case 2:stu_login();

      default:

      {

      printf(“nt沒有這項服務(wù)t請按任意鍵重新輸入”);

      getchar();getchar();

      }

      }

      }

      else

      {

      system(“cls”);

      printf(“nnt不存在對應(yīng)記錄n”);

      printf(“nnt1.回目錄繼續(xù)查詢t2.退出查詢系統(tǒng)n”);

      printf(“請選擇:”);

      scanf(“%d”,&inp);

      switch(inp)

      {

      case 1:c_searchs();

      case 2:stu_login();

      default:

      {

      printf(“nt沒有這項服務(wù)t請按任意鍵重新輸入”);

      getchar();getchar();

      }

      }

      }

      }while(inp!=1);

      }

      void c_searchm(){

      void stu_login();

      void c_searchm();

      int id,i=0,j,inp,k;

      int flag=0;

      FILE *fp;

      struct course coursesear[10];

      if((fp=fopen(“course.dat”,“rb”))==NULL)

      //判斷課程信息是否存在 {

      system(“cls”);

      printf(“nnt課程不存在t按任意鍵返回”);

      getchar();getchar();

      stu_login();

      }

      else//存在的話循環(huán)讀取文件中的信息直到文件指針到文件尾部

      {

      do

      {

      fread(&coursesear[i],sizeof(struct course),1,fp);

      i=i+1;

      }while(!feof(fp));

      fclose(fp);

      }

      system(“cls”);

      printf(“nnttt請輸入你要查詢的課程編號:”);

      scanf(“%d”,&id);

      do//檢查輸入是否符合要求

      {

      for(j=0;j

      {

      if(id==coursesear[j].c_num)

      {

      flag++;

      k=j;

      }

      }

      if(flag==1)

      {

      system(“cls”);

      printf(“nnt課程編號:%dn”,coursesear[k].c_num);

      printf(“nnt課程名字:%sn”,coursesear[k].c_name);

      printf(“nnt課程學(xué)分:%dn”,coursesear[k].c_score);

      printf(“nnt課程已選人數(shù):%dn”,coursesear[k].c_nelepeo);

      printf(“nnt課程人數(shù)上限:%dn”,coursesear[k].c_melepeo);

      getchar();getchar();

      printf(“nnt1.回目錄繼續(xù)查詢t2.退出查詢系統(tǒng)n”);

      printf(“請選擇:”);

      scanf(“%d”,&inp);

      switch(inp)

      {

      case 1:c_searchm();

      case 2:man_login();

      default:

      {

      printf(“nt沒有這項服務(wù)t請按任意鍵重新輸入”);

      getchar();getchar();

      }

      }

      }

      else

      {

      system(“cls”);

      printf(“nnt不存在對應(yīng)記錄n”);

      printf(“nnt1.回目錄繼續(xù)查詢t2.退出查詢系統(tǒng)n”);

      printf(“請選擇:”);

      scanf(“%d”,&inp);

      switch(inp)

      {

      case 1:c_searchm();

      case 2:man_login();

      default:

      {

      printf(“nt沒有這項服務(wù)t請按任意鍵重新輸入”);

      getchar();getchar();

      }

      }

      }

      }while(inp!=1);}

      void c_add()//增加課程 {

      void c_add();

      void man_login();

      int i=0,j,inp;

      FILE *fp;

      struct course course_new;

      struct course courses[10];

      system(“cls”);

      printf(“nntt請輸入課程信息”);

      printf(“nntt1.課程編號:”);

      scanf(“%d”,&course_new.c_num);

      printf(“nntt2.課程名字:”);

      scanf(“%s”,course_new.c_name);

      printf(“nntt3.課程學(xué)分:”);

      scanf(“%d”,&course_new.c_score);

      printf(“nntt4.課程已選人數(shù):”);

      scanf(“%d”,&course_new.c_nelepeo);

      printf(“nntt5.課程人數(shù)上限:”);

      scanf(“%d”,&course_new.c_melepeo);

      if((fp=fopen(“course.dat”,“rb”))!=NULL)

      {

      do

      {

      fread(&courses[i],sizeof(struct course),1,fp);

      i=i+1;

      }while(!feof(fp));

      fclose(fp);

      for(j=0;j<=i-1;j++)

      if(course_new.c_num==courses[j].c_num)

      {

      system(“cls”);

      printf(“nnttt對不起,這個編號已經(jīng)使用過nntt按任意鍵返回管理菜單”);

      getchar();getchar();

      man_login();

      break;

      }

      }

      if((fp=fopen(“course.dat”,“rb”))==NULL)

      {

      fp=fopen(“course.dat”,“wb”);

      }

      else

      {

      fclose(fp);

      fp=fopen(“course.dat”,“ab”);

      }

      fwrite(&course_new,sizeof(struct course),1,fp);

      fclose(fp);

      printf(“nntt信息輸入完畢t按任意鍵繼續(xù)”);

      getchar();getchar();

      do

      {

      system(“cls”);

      printf(“nntt1.繼續(xù)輸入”);

      printf(“nntt2.返回管理菜單”);

      printf(“nntt請選擇”);

      scanf(“%d”,&inp);

      if(inp!=1&&inp!=2)

      {

      printf(“輸入不符合要求t按任意鍵重新選擇”);

      getchar();getchar();

      }

      }while(inp!=1&&inp!=2);

      switch(inp)

      {

      case 1:c_add();break;

      case 2:man_login();break;

      } }

      void c_delete()//查詢后刪除 {

      FILE *fp;

      int i=0,j,n,k,flag=0;

      struct course courses[10];

      void c_delete();

      void man_login();

      printf(“nntt請輸入你要刪除的課程編號:”);

      scanf(“%d”,&n);

      if((fp=fopen(“course.dat”,“rb”))!=NULL)

      {

      do

      {

      fread(&courses[i],sizeof(struct course),1,fp);

      i=i+1;

      }while(!feof(fp));

      fclose(fp);

      }

      else

      {

      printf(“nntt不存在任何課程t按任意鍵返回”);

      getchar();getchar();

      man_login();

      }

      for(j=0;j

      {

      if(courses[j].c_num==n)

      {

      flag=1;

      fp=fopen(“course.dat”,“wb”);

      for(k=0;k

      fwrite(&courses[k],sizeof(struct course),1,fp);

      fclose(fp);

      fp=fopen(“course.dat”,“ab”);

      for(k=j+1;k

      {

      fwrite(&courses[k],sizeof(struct course),1,fp);

      }

      printf(“nntt記錄已刪除!t按任意鍵返回ntt”);

      getchar();getchar();

      man_login();

      fclose(fp);

      }

      }

      if(flag==0)

      {

      printf(“nntt不存在對應(yīng)的課程t按任意鍵返回”);

      getchar();getchar();

      man_login();

      } // printf(“nntt記錄已刪除!t按任意鍵返回ntt”);

      }

      int main(){

      index();login();return 0;}

      第二篇:語言課程設(shè)計-學(xué)生成績管理系統(tǒng)

      1、課程設(shè)計的目的、任務(wù)

      《匯編語言》課程設(shè)計對于鞏固匯編語言理論知識,加強學(xué)生的實際動手能力和提高學(xué)生綜合素質(zhì)十分必要。課程設(shè)計的目的主要是通過程序設(shè)計方法和技能的基本訓(xùn)練,鞏固在課堂上學(xué)到的有關(guān)程序設(shè)計的基本知識和基本方法,通過實際動手能力的培養(yǎng),進(jìn)一步熟悉匯編語言的結(jié)構(gòu)和使用方法,達(dá)到能獨立閱讀、編制和調(diào)試一定規(guī)模的匯編語言程序的水平。

      2、軟件需求分析和設(shè)計

      2.1學(xué)生成績管理系統(tǒng)是對學(xué)生成績的管理,其中包括以下幾個模塊:(1).插入一個數(shù)據(jù)(插入學(xué)生學(xué)號以及語數(shù)外三個成績)。(2)修改一個數(shù)據(jù)。(3)刪除學(xué)生成績數(shù)據(jù)。(4)查找學(xué)生成績。(5)查看學(xué)生成績的排名(6)查看學(xué)生成績分布(7)按esc鍵退出系統(tǒng)

      2.2學(xué)生成績管理系統(tǒng)應(yīng)該包含以下信息:學(xué)號,語文成績,英語成績,數(shù)學(xué)成績。因此,系統(tǒng)應(yīng)該提供以下功能:(1)輸出顯示菜單。(2)輸入學(xué)生的成績(3)修改學(xué)生成績(4)刪除學(xué)生成績(5)查詢學(xué)生成績(6)顯示學(xué)生成績排名(7)顯示成績分布統(tǒng)計(8)按esc鍵退出系統(tǒng)

      2.3依據(jù)程序的功能需求,該系統(tǒng)的功能結(jié)構(gòu)圖如下

      系統(tǒng)功能結(jié)構(gòu)圖

      2.4 程序流程圖:

      主程序流程圖

      查找學(xué)生成績

      插入學(xué)生學(xué)號及成績

      修改學(xué)生的成績

      顯示各個學(xué)科各分?jǐn)?shù)段的人數(shù)

      3、程序?qū)崿F(xiàn)說明

      3.1學(xué)生管理系統(tǒng)中各子程序如下:

      (1).輸入全部學(xué)生學(xué)號以及語文,英語,數(shù)學(xué)三科的成績。子程序名:insert 子程序描述:該子程序為輸入字程序。系統(tǒng)在開始的時候是沒有數(shù)據(jù)的,通過該子程序可以初始化系統(tǒng),將學(xué)生的學(xué)號及成績輸入系統(tǒng)。

      代碼:

      insert proc near;定義進(jìn)程子程序:插入學(xué)生,學(xué)號及 成績 call input;調(diào)用input add n,1 ret insert endp

      (2).修改輸入的成績。子程序名:modify 子程序描述:通過子程序修改學(xué)生的成績 代碼:

      modify proc near;定義進(jìn)程子程序:修改學(xué)生學(xué)號,成績 md1:output mess1;輸出mess1 shuru;調(diào)用宏shuru:二位數(shù)據(jù)輸入 mov bl,n mov bh,0 mov al,dl mov si,0 md: cmp al,xh[si];先查找輸入的學(xué)生是否存在

      je qq1_1;查到的話,就跳轉(zhuǎn)到qq1_1輸入修改的值,也就是重新輸入。;結(jié)果相等則跳轉(zhuǎn)到qq1_1 add si,1

      cmp si,bx jbe md;小于等于則跳轉(zhuǎn)到md output mess;輸出mess jmp md1;不相等繼續(xù)輸入學(xué)號

      qq1_1:;轉(zhuǎn)入修改的值重新輸入。mov di,si output mess2 output mess4 mov si,0 mov cx,3

      qq3_1:shuruu;cmp dx,78h;

      jbe qq2_1;output ts3;jmp qq1_1;qq2_1:mov buf[si],dl output bg;add si,1 loop qq3_1 mov al,buf[0];mov chi[di],al mov al,buf[1]

      分別輸入語文,英語,數(shù)學(xué)成績,并將其放 在緩沖區(qū)buf中 比較輸入的成績是否大于120,如果大于120的 話,那么重 新輸入成績 小于等于則轉(zhuǎn)移到qq2_1 輸出ts3 跳轉(zhuǎn)到qq1_1 輸出空格 將存入buf中的成績,分別賦值給存放對應(yīng)科 目的成績的數(shù)組

      mov eng[di],al mov al,buf[2] mov mat[di],al ret modify endp

      (3).刪除學(xué)生的成績。子程序名:delete 子程序描述:通過子程序刪除學(xué)生的成績 代碼:

      de proc near;刪除某個學(xué)生的記錄 sc1:output mess1 shuru;調(diào)用宏shuru,接受輸入的學(xué)號 mov bl,n mov bh,0 mov al,dl mov si,0 sc: cmp al,xh[si];查詢輸入學(xué)號的學(xué)生信息是否存在,不存在的話,重新輸入學(xué)號 je sc2;相等則轉(zhuǎn)移到sc2 add si,1 cmp si,bx jbe sc;小于等于則轉(zhuǎn)移到sc output mess;輸出mess jmp sc1 sc2: sub bx,si cmp bx,0 je sc3;相等則轉(zhuǎn)移到sc3 mov cx,bx

      sc4:mov dl,chi[si+1] mov chi[si],dl mov dl,eng[si+1] mov eng[si],dl mov dl,mat[si+1] mov mat[si],dl mov dl,xh[si+1] mov xh[si],dl add si,1 loop sc4;loop循環(huán)指令,執(zhí)行操作(cx)<--(cx)-1.若 cx!=0,跳轉(zhuǎn)到標(biāo)號sc處循環(huán)執(zhí)行;cx=0,則推出

      循環(huán),執(zhí)行l(wèi)oop的下一條指令 sub n,1 sc3: ret de endp

      (3).查詢學(xué)生的成績。子程序名:find 子程序描述:通過子程序查詢學(xué)生的成績 代碼:

      find proc near;定義進(jìn)程子程序:查找學(xué)生成績 call sum;求學(xué)生的總成績 call ping;求學(xué)生的平均成績

      bj1:output mess1;輸出mess1 shuru;二位數(shù)數(shù)據(jù)輸入 mov bl,n mov bh,0 mov al,dl

      mov si,0

      bj: cmp al,xh[si];將輸入的學(xué)號與輸入的學(xué)號相比,je i;存在的話,將此學(xué)生的成績輸出。je表示結(jié)果相

      等則轉(zhuǎn)移。add si,1 cmp si,bx jbe bj;output mess jmp bj1 i: output strr2 shuzi xh[si];shuzi output bg;mov al,chi[si] cbw;shuzii ax;shuzii output bg;mov al,eng[si] cbw;shuzii ax;shuzii output bg

      mov al,mat[si] cbw shuzii ax output bg;

      mov al,pj[si] cbw

      小于等于則轉(zhuǎn)移到bj 為二位數(shù)據(jù)輸出 輸出空格 將字節(jié)變?yōu)樽?/p>

      為三位數(shù)據(jù)輸出。輸出空格 將字節(jié)變?yōu)樽?/p>

      為三位數(shù)據(jù)輸出 輸出空格的字符串,用于與標(biāo)題欄對齊

      shuzii ax output bg

      mov ax,si mov bl,2 mul bl mov bx,ax shuzii zc[bx];shuzii為三位數(shù)據(jù)輸出

      output bg;輸出空格的字符串,用于與標(biāo)題欄對齊 shuzi mc[si];shuzi為二位數(shù)據(jù)輸出 ret find endp

      (4).顯示學(xué)生的成績排名。子程序名:show 子程序描述:通過子程序顯示學(xué)生的成績排名 代碼:

      show proc near;定義進(jìn)程子程序:顯示結(jié)果排名 call sum;調(diào)用宏sum call ping;調(diào)用宏ping call rank;調(diào)用宏rank call shuchu;調(diào)用宏shuchu ret show endp

      3.2程序運行抓圖:

      主菜單

      修改學(xué)生成績

      刪除學(xué)生成績

      顯示各個學(xué)科各分?jǐn)?shù)段的人數(shù)

      4、程序總結(jié)

      通過兩個星期的學(xué)習(xí),努力,終于完成了報告。系統(tǒng)可以很好的運行。這兩個多星期的時間,幾乎每天不是在敲代碼,就是在看代碼,查書,上網(wǎng)。系統(tǒng)中用到了很多最近才學(xué)習(xí)的知識,比如宏,子程序。這些都使得代碼的運行效率提高了,代碼行數(shù)減少了。系統(tǒng)還用到了bios的清屏功能。這些功能如果不是做課程設(shè)計,我想我很難會接觸到這些知識。

      由于自己對知識掌握的不是很牢固,其中也會碰到一些困難。每當(dāng)遇到問題的時候,我會先上網(wǎng)去查找,看看有沒有人提過這方面的問題?;ヂ?lián)網(wǎng)是強大的,大部分的問題通過網(wǎng)絡(luò)都可以解決。部分找不到的問題,我就去請教班里學(xué)得好的同學(xué)。他們對知識的掌握遠(yuǎn)超過我。這樣下來,很多問題都迎刃而解了。

      課程設(shè)計是一個很好的掌握書本上知識的過程。平時上課之后,自己都不會想著去敲一些代碼聯(lián)系聯(lián)系。通過做課程設(shè)計,將理論與實踐結(jié)合了起來,對知識的理解更加深入了。

      第三篇:C語言課程設(shè)計任務(wù)書-學(xué)生通訊系統(tǒng)(范文模版)

      2007-2008學(xué)年第二學(xué)期

      《C語言程序設(shè)計》

      課程設(shè)計報告

      部:

      專業(yè)班級: 電子資訊工程(2)班

      學(xué)

      號:

      070306210

      名:

      設(shè)計題目:

      同學(xué)通訊錄設(shè)計

      起訖日期: 2008.6.16 至 2008.6.29 指導(dǎo)老師:

      徐 化 祥

      2008 年 6 月

      宿遷學(xué)院課程設(shè)計報告

      課程設(shè)計(論文)內(nèi)容要求:

      1.本課程設(shè)計的目的

      (1)熟練掌握C語言的基本知識和技能;(2)掌握程序設(shè)計的一些經(jīng)典算法和基本方法;(3)了解數(shù)組、指針和結(jié)構(gòu)體的應(yīng)用;

      (4)利用所學(xué)的基本知識和技能,解決日常生活中經(jīng)常面臨的問題;(5)培養(yǎng)分析、解決問題的能力;提高學(xué)生的科技論文寫作能力。

      2.課程設(shè)計的任務(wù)及要求 1)課程設(shè)計題目:同學(xué)通訊錄設(shè)計

      2)基本要求:

      (1)設(shè)計一個菜單將在實現(xiàn)的功能顯示出來,并有選擇提示;

      (2)通訊簿應(yīng)包含姓名、性別、電話號碼、QQ號碼、Email、班級、宿舍等基本信息;(3)能夠查詢?nèi)砍蓡T清單;

      (4)能夠按號碼或姓名查詢某一個成員的信息;(5)能夠增加、修改某一個成員的信息;

      (6)要求有錯誤提示功能,例如性別只能輸入F,M,輸入錯誤提示重新輸入。

      3)創(chuàng)新要求:

      (1)加入刪除功能,實現(xiàn)對指定成員信息的刪除操作;

      (2)信息的輸入輸出可以用文件的存取和顯示的方式,建立文件,直接存取默認(rèn)檔或指定文件。

      4)課程設(shè)計報告編寫要求

      (1)要按照課程設(shè)計模板的規(guī)格書寫課程設(shè)計報告;(2)報告包括目錄、正文、心得體會、參考文獻(xiàn)等;

      (3)課程設(shè)計論文用A4紙統(tǒng)一打印,裝訂按學(xué)校的統(tǒng)一要求完成。

      5)參考數(shù)據(jù):

      (1)譚浩強.C程序設(shè)計(第三版).北京:清華大學(xué)出版社,2005.7(2)張強華.C語言程序設(shè)計.北京:人民郵電出版社,2001.8(3)http://004km.cn/

      6)提交內(nèi)容:

      6.18

      209實驗室

      編程設(shè)計與調(diào)試

      6.186.28

      209實驗室 提交所有數(shù)據(jù)

      6.282345int i,j;/*下面的循環(huán)是對初始值的處理*/ for(i=0;i

      strcpy(stu[i].sex,”“);stu[i].age=0;strcpy(stu[i].tel,”“);strcpy(stu[i].major,”“);strcpy(stu[i].classes,”“);strcpy(stu[i].room,”“);strcpy(stu[i].qq,”“);strcpy(stu[i].email,”“);strcpy(stu[i].others,”“);}

      宿遷學(xué)院課程設(shè)計報告

      int print1(){ int n;printf(”tttt<<通訊錄>>n“);printf(”**************************************************************n“);printf(”t歡迎使用本通訊錄應(yīng)用程序,愿您從中找到所需要的信息。n“);printf(”制作人:冀鵬超 & 李長明t學(xué)號:070306210 & 070306211t班級:07電子信息(2)班n“);printf(”**************************************************************n“);printf(”n“);printf(”ttt1.瀏覽通訊簿n“);printf(”ttt2.輸入同學(xué)信息n“);printf(”ttt3.查詢同學(xué)信息n“);printf(”ttt4.刪除同學(xué)信息n“);printf(”ttt5.增加同學(xué)信息n“);printf(”ttt6.修改同學(xué)信息n“);printf(”ttt7.退出通訊簿n“);printf(”n請輸入您的選擇(1-7):“);scanf(”%d“,&n);return n;} void menu(struct txl stu[]){ int i,j,flag=1;char str[15];for(;flag==1;){ switch(print1())

      電話{

      :case 1: for(i=0;stu[i].age!=0;i++){ printf(”姓名: %sn性別:%sn年齡:%dn%sn

      %sn

      宿

      %sn

      業(yè)

      %snQQ號:%snEmail: %sn“,stu[i].name,stu[i].sex,stu[i].age,stu[i].tel,stu[i].classes,stu[i].room,stu[i].major,stu[i].qq,stu[i].email);

      } printf(”其它信息:%sn“,stu[i].others);if(i==0)printf(”目前通訊簿為空,請先輸入信息n“);

      宿遷學(xué)院課程設(shè)計報告 ,stu[i].room,stu[i].major,stu[i].qq,stu[i].email);

      }

      if(i==N)printf(”t通訊簿中沒有你要找的同學(xué)!n“);break;

      printf(”其它信息:%sn“,stu[i].others);break;} case 4: printf(”現(xiàn)在你將進(jìn)行刪除操作!請輸入要刪除的同學(xué)的名字,按Enter結(jié)束.n“);

      scanf(”%s“,str);for(i=0;i

      if(strcmp(stu[i].name,str)==0){

      printf(”姓名: %sn性別:%sn年班級:%sn

      宿舍:%sn

      專業(yè):%snQQ齡:%dn電話:%sn號:%snEmail: %sn“,stu[i].name,stu[i].sex,stu[i].age,stu[i].tel,stu[i].classes,stu[i].room,stu[i].major,stu[i].qq,stu[i].email);

      printf(”該同學(xué)將被刪除n“);

      }

      宿遷學(xué)院課程設(shè)計報告

      scanf(”%s“,stu[i].name);printf(”輸入同學(xué)的性別: “);scanf(”%s“,stu[i].sex);printf(”輸入同學(xué)的年齡: “);scanf(”%d“,stu[i].age);printf(”輸入同學(xué)的電話: “);scanf(”%s“,stu[i].tel);printf(”輸入同學(xué)的班級: “);scanf(”%s“,stu[i].classes);printf(”輸入同學(xué)的宿舍: “);scanf(”%s“,stu[i].room);printf(”輸入同學(xué)的專業(yè): “);scanf(”%s“,stu[i].major);printf(”輸入同學(xué)的QQ號: “);scanf(”%s“,stu[i].qq);printf(”輸入同學(xué)的Email: “);scanf(”%s“,stu[i].email);printf(”輸入同學(xué)的其它信息: “);scanf(”%s“,stu[i].others);} } break;case 7: flag=0;break;default: printf(”你的輸入有錯誤,請重新輸入!n");} } } void main(){ struct txl stu[N];

      } init(stu);menu(stu);

      宿遷學(xué)院課程設(shè)計報告

      四、測試結(jié)果

      1.通訊錄菜單如下圖所示:

      2.輸入“1”,進(jìn)行“瀏覽通訊錄操作:

      3.輸入“2”,進(jìn)行“輸入同學(xué)信息”的操作:

      宿遷學(xué)院課程設(shè)計報告

      8.輸入“7”,進(jìn)行“退出通訊簿”操作:

      宿遷學(xué)院課程設(shè)計報告

      五、設(shè)計心得

      自從記事以來就聽過了計算機這個高科技,現(xiàn)在終于實現(xiàn)了自己的一個小小愿望——成為了計算機系的一名學(xué)生,這學(xué)期我們學(xué)的C語言,以前就聽過這個名字,打開書一看簡直一竅不通,學(xué)好這門科簡直就是一個挑戰(zhàn),課前課后都要把書啃一遍,要不然上課就跟不上,終于學(xué)期快結(jié)束了,我們有一個課程設(shè)計,在兩個星期內(nèi),完成一個復(fù)雜的程序,我們的題目是做一個通訊簿。

      通過為期一周的C課程設(shè)計實驗課使我了解到了一個程序開發(fā)的過程,雖然規(guī)模不大,但為我以后的編程學(xué)習(xí)打下了基礎(chǔ)。在編程的過程中,我體會到了學(xué)習(xí)編程的辛苦,為了一個算法的實現(xiàn)而思考,為了一個小小的編譯錯誤而花時間去尋找,這需要很大的毅力和耐心,而且要有良好的思維,這才使得我完成這個任務(wù),也使我感到一分喜悅,畢竟自己完成了一個有模有樣的程序。于此,我也發(fā)現(xiàn)自己的一些不足,良好的編程習(xí)慣的養(yǎng)成,堅定的毅力和耐心仍是我要加強的,同別人的交流也是必須的,這樣才能不斷使我進(jìn)步。在這次設(shè)計中,我遇到了很多困難,但我沒有向困難低頭,通過查詢數(shù)據(jù),虛心向同學(xué)、老師請教,才一一得到了解決。我發(fā)現(xiàn)平時學(xué)的太少了,在今后我首先要把老師在課堂講的弄懂,弄透,在此基礎(chǔ)上利用課余時間多看課外書籍,拓寬知識面。在設(shè)計過程中,合作精神必不可少。單憑一個人的力量是不能完成的,畢竟一個人學(xué)的很有限。每個人掌握的不同。我相信:態(tài)度決定一切,只有努力才有收獲。

      總的來說,這次程序設(shè)計讓我獲益匪淺,對C語言也有了進(jìn)一步的認(rèn)識:C語言功能高、表達(dá)能力強、使用靈活方便、目標(biāo)程序效率高。

      C語言是在國內(nèi)外廣泛使用的一種計算機語言,我相信除了以上優(yōu)點之外還有許多,希望能在以后的學(xué)習(xí)中有更深入的認(rèn)識。

      很感謝這次的課程設(shè)計,它使我更加深刻地體會到多看專業(yè)書的重要性,只有掌握了一定量的專業(yè)知識才能得心應(yīng)手地解決諸多問題;另外,做任何事都要有耐心,不要一遇到困難就退縮;在學(xué)習(xí)和工作中要時刻謹(jǐn)記“團結(jié)”二字,它好比通向成功的鋪路石,不可或缺。

      人生的道路是曲折的,但正是因為曲折人生才光彩奪目,在人生的路上,總遇到重重困難,但正是因為困難我們才變的更堅強。今后的路還很長,面對困難,讓我們用行動去俘虜它吧!

      宿遷學(xué)院課程設(shè)計報告

      六、參考文獻(xiàn)

      [1] 譚浩強.C++程序設(shè)計.北京:清華大學(xué)出版社,2004 [2] http://004km.cn/ [4] http://004km.cn/

      [5] 劉振安.C程序設(shè)計課程設(shè)計.北京:機械工業(yè)出版社,2004 [6] 張強華.C語言程序設(shè)計.北京:人民郵電出版社,2001.8

      617-

      第四篇:課程設(shè)計--選課注冊管理系統(tǒng)(小編推薦)

      “選課注冊管理系統(tǒng)”課程設(shè)計指導(dǎo)書

      課題名稱:選課注冊管理系統(tǒng)

      設(shè)計目標(biāo):按照軟件工程的規(guī)范,以SQL Server或Oracle為后臺數(shù)據(jù)庫,以Visual C++、Delphi等為前端開發(fā)工具,模擬高等學(xué)校的選課情況,設(shè)計并實現(xiàn)一個學(xué)生選課注冊管理系統(tǒng)。

      需求描述:

      1.系統(tǒng)用戶

      本系統(tǒng)的用戶是學(xué)校的學(xué)生、教師和管理員。學(xué)生使用本系統(tǒng)查詢新學(xué)期將開設(shè)的課程和授課教師的情況,選擇自己要學(xué)習(xí)的課程,并進(jìn)行登記注冊。教師使用本系統(tǒng)查詢新學(xué)期將開設(shè)的課程、參加聽課的學(xué)生情況。教學(xué)管理員使用本系統(tǒng)進(jìn)行教學(xué)管理,包括課程管理和新學(xué)期的課程選課注冊管理。

      2.系統(tǒng)功能

      本系統(tǒng)負(fù)責(zé)新學(xué)期的課程選課注冊工作;應(yīng)提供的服務(wù)功能如下:

      (1)錄入與生成新學(xué)期課程表:教學(xué)管理員在新學(xué)期開始前錄入新學(xué)期課程,打印將開設(shè)的課程目錄表,供師生參考選擇。若某課程的實際選課學(xué)生少于10人,則停開該課程,把該課程從課程目錄表中刪除;若某課程的選課學(xué)生多于30人,則停止選課。

      (2)學(xué)生選課注冊:新學(xué)期開始前一周為選課注冊時間,在此期間學(xué)生可以選

      課注冊,并且允許改變或取消注冊申請。

      (3)查詢:可以查詢課程信息、學(xué)生選課信息和學(xué)生、教師信息。

      (4)選課注冊信息的統(tǒng)計與報表生成:教學(xué)管理員對學(xué)生的選課注冊信息進(jìn)行

      統(tǒng)計(按課程、按學(xué)生、按班級)。

      3.系統(tǒng)結(jié)構(gòu)

      假定在學(xué)校的計算中心有功能強大的工作站機器,在各系、各部門、圖書館、學(xué)生宿舍都有臺式PC機,學(xué)校的全部計算機已經(jīng)聯(lián)網(wǎng)。本系統(tǒng)將采用客戶機/服務(wù)器結(jié)構(gòu)建立,應(yīng)用服務(wù)器和數(shù)據(jù)庫服務(wù)器設(shè)置在學(xué)校計算中心的工作站。學(xué)生、教師和教學(xué)管理員可以在各系、各部門、圖書館、學(xué)生宿舍的臺式PC機上使用本系統(tǒng)。結(jié)果形式:

      提交課程設(shè)計報告、源程序和可演示的軟件

      課程設(shè)計報告要求:詳見課程設(shè)計模板

      課程設(shè)計參考思路:

      (1)熟悉數(shù)據(jù)庫和開發(fā)工具,掌握開發(fā)工具與本地數(shù)據(jù)庫的連接方法。

      (2)理解系統(tǒng)的信息需求,進(jìn)行合理的數(shù)據(jù)庫設(shè)計,建立各數(shù)據(jù)庫表。

      (3)理解系統(tǒng)的功能需求,設(shè)計應(yīng)用軟件。結(jié)合Delphi 或VC++進(jìn)行系統(tǒng)界面(窗

      體、菜單以及相應(yīng)控制按鈕)的設(shè)計、連接與操縱數(shù)據(jù)庫方案的設(shè)計,編寫程序。

      (4)系統(tǒng)運行、調(diào)試并完善。

      (5)撰寫設(shè)計報告。

      第五篇:學(xué)生通訊錄管理系統(tǒng)(C語言課程設(shè)計實驗報告)

      C語言課程設(shè)計報告——劉顯安

      C語言課程設(shè)計

      姓名:劉顯安 學(xué)號:09041131 班級:090411 專業(yè):計算機科學(xué)與技術(shù) 學(xué)院:信息工程學(xué)院 設(shè)計題目:學(xué)生通訊錄管理系統(tǒng)

      指導(dǎo)教師:宋文琳 提交時間:2010年9月4日

      第1頁(共25頁)

      C語言課程設(shè)計報告——劉顯安

      課程題目:學(xué)生通訊錄管理系統(tǒng)

      要求:學(xué)生通訊錄信息包括:學(xué)號、姓名、班機、聯(lián)系電話、E-mail、宿舍等 主要功能:1、2、3、4、5、通訊錄信息錄入功能 通訊錄信息刪除功能 通訊錄信息瀏覽功能 通訊錄信息查詢功能 按學(xué)號排序功能

      一、總體設(shè)計

      首先,整個系統(tǒng)必須有一個主函數(shù),為了盡量提高程序的易修改性,且不至于相互干擾,將每一個功能分成不同的模塊,用不同的函數(shù)來實現(xiàn),例如在我寫的這個程序中,一共用了11個函數(shù),分別是:

      主菜單函數(shù)menu()、關(guān)于函數(shù)gaunyu()、幫助函數(shù)help()、輸出單個學(xué)生信息函數(shù)shuchu()、輸入函數(shù)shuru()、輸出所有學(xué)生信息函數(shù)findall()、按姓名查找函數(shù)findname()、按學(xué)號查找函數(shù)findnum()、刪除函數(shù)shanchu()、排序函數(shù)paixu()、主函數(shù)main(),這樣在整個程序的設(shè)計過程中也就一目了然,寫起來也相對輕松了不少。

      這個程序我只是總體上參考了一下網(wǎng)上程序的架構(gòu),具體的各個函數(shù)是參照課本上《鏈表》那一章的內(nèi)容的,比如結(jié)構(gòu)體的建立、查找和排序等功能,這些書上都有類似的,其中排序功能雖沒有原版的,第2頁(共25頁)

      C語言課程設(shè)計報告——劉顯安

      但是在第六章中有一個用冒泡法排序的例題,我就是仿照這個模式來對結(jié)構(gòu)體進(jìn)行排序的,總之整個程序中蘊含了我很多的汗水。

      二、具體設(shè)計

      關(guān)于這個程序的具體設(shè)計,也不是一兩句話就能說完的,所以我也不想再在這里贅述了,因為程序里都可以看的到,幾乎每個函數(shù)都傾注了我的大量汗水,我在這上面花了不少的時間,不過從中也收獲了很多,因為不停地修改不停的調(diào)試,總之還是直接看源程序吧,因為也沒必要在這里重復(fù)地說廢話。

      三、源代碼

      以下是整個程序的源代碼,其中我的主菜單函數(shù)是很美觀的,但由于這里字體和板式的限制,不能很好的顯現(xiàn),可以看我下面程序運行的截圖就知道了?!?#include #include #include #include #include #define NULL 0

      struct student{

      第3頁(共25頁)

      C語言課程設(shè)計報告——劉顯安

      long num;char name[20];int banji;char tel[11];char Email[20];int sushe;struct student *next;};

      struct student *stu;int n;

      void menu(void){ /*主菜單函數(shù)*/ system(“cls”);puts(“****************************************************************************”);puts(“** ^_^學(xué)生通訊錄管理系統(tǒng)^_^ **”);puts(“****************************************************************************”);puts(“******** 計 ********”);

      第4頁(共25頁)

      C語言課程設(shè)計報告——劉顯安

      puts(“******* *******”);puts(“****** 算 ******”);puts(“***** 0 1=錄入學(xué)生通訊錄信息 *****”);puts(“**** 9 機 ****”);puts(“*** ***”);puts(“** 科 **”);puts(“*

      *”);puts(“** 1 學(xué) **”);puts(“*** ***”);puts(“**** 與 ****”);puts(“***** *****”);0 4

      劉 2=

      安 6=

      第5頁(共25頁)

      列出所有學(xué)生通訊錄 3=按姓名查詢信息 4=按學(xué)號查詢信息

      5=刪除學(xué)生信息 按學(xué)號將通訊錄排序

      7=關(guān)于

      8=幫助

      0=退出

      C語言課程設(shè)計報告——劉顯安

      puts(“****** 技 ******”);puts(“******* *******”);puts(“******** 術(shù) ********”);puts(“****************************************************************************”);} void guanyu()/*關(guān)于函數(shù)*/ { system(“cls”);puts(“n ************************** ”);puts(“ *** 版權(quán)所有,翻版必究!***”);puts(“**** copyright◎劉顯安!****”);puts(“ *** 2009~2010 ***”);puts(“ **************************”);puts(“n返回主菜單請按【9】”);if(getche()=='9')menu();}

      struct student *shuru(void)/*輸入函數(shù)*/

      第6頁(共25頁)

      C語言課程設(shè)計報告——劉顯安

      { system(“cls”);struct student *s1,*s2;n=1;int num;puts(“請輸入學(xué)生個數(shù)(提示:個數(shù)不能輸入0!):”);scanf(“%d”,&num);s1=s2=(struct student *)malloc(sizeof(struct student));puts(“*************************************************”);puts(“請輸入學(xué)號:”);scanf(“%ld”,&s1->num);puts(“請輸入學(xué)生姓名:”);scanf(“%s”,s1->name);puts(“請輸入班級:”);scanf(“%d”,&s1->banji);puts(“請輸入電話號碼:”);scanf(“%s”,s1->tel);puts(“請輸入電子郵件:”);scanf(“%s”,s1->Email);puts(“請輸入學(xué)生宿舍號:”);scanf(“%d”,&s1->sushe);stu=s1;

      第7頁(共25頁)

      C語言課程設(shè)計報告——劉顯安

      while(nnext=s1;s2=s1;s1=(struct student *)malloc(sizeof(struct student));puts(“*************************************************”);puts(“請輸入學(xué)號:”);scanf(“%ld”,&s1->num);puts(“請輸入學(xué)生姓名:”);scanf(“%s”,s1->name);puts(“請輸入班級:”);scanf(“%d”,&s1->banji);puts(“請輸入電話號碼:”);scanf(“%s”,s1->tel);puts(“請輸入電子郵件:”);scanf(“%s”,s1->Email);puts(“請輸入學(xué)生宿舍號:”);scanf(“%d”,&s1->sushe);n=n+1;} puts(“*************************************************”);s2->next=s1;

      第8頁(共25頁)

      C語言課程設(shè)計報告——劉顯安

      s2=s1;s2->next=NULL;return(stu);//system(“cls”);}

      void shuchu(struct student *s){ /*輸出單個學(xué)生信息*/ printf(“* %-8ld”,s->num);printf(“%-15s”,s->name);printf(“%-8d”,s->banji);printf(“%-15s”,s->tel);printf(“%-15s”,s->Email);printf(“%-5d *n”,s->sushe);}

      void findall()/*輸出所有學(xué)生信息*/ { system(“cls”);struct student *s;//if(n=2)//printf(“n現(xiàn)在有%d個學(xué)生信息,分別是:n”,n);//else

      第9頁(共25頁)

      C語言課程設(shè)計報告——劉顯安

      printf(“n現(xiàn)在有%d個學(xué)生信息,分別是:n”,n);puts(“________________________________________________________________________”);puts(“* 學(xué)號 姓名 班級 電話 電子郵件 宿舍 *”);s=stu;while(s!=NULL){ shuchu(s);s=s->next;} puts(“________________________________________________________________________”);puts(“返回主菜單請按【9】”);if(getche()=='9')menu();}

      void findname(){ /*按姓名查找函數(shù)*/ system(“cls”);struct student *s;char name[20];printf(“n請輸入你要查詢的學(xué)生姓名:n”);

      第10頁(共25頁)

      C語言課程設(shè)計報告——劉顯安

      scanf(“%s”,name);s=stu;while(strcmp(s->name,name)!=0){ s=s->next;} if(s==NULL){ puts(“查無此學(xué)生姓名!”);goto end;} else { puts(“該學(xué)生的信息為:”);puts(“* 學(xué)號

      姓名

      電子郵件 宿舍 *”);shuchu(s);} end:;puts(“返回主菜單請按【9】”);if(getche()=='9')menu();}

      第11頁(共25頁)

      班級

      電話

      C語言課程設(shè)計報告——劉顯安

      void findnum()/*按學(xué)號查找函數(shù)*/ { system(“cls”);struct student *s;puts(“請輸入你要查詢的學(xué)生學(xué)號:”);long i;scanf(“%ld”,&i);s=stu;

      while(s->num!=i){ s=s->next;} if(s==NULL){puts(“查無此學(xué)生學(xué)號!”);goto end;} else { puts(“該學(xué)生的信息為:”);puts(“* 學(xué)號 姓名 班級 郵件 宿舍 *”);shuchu(s);

      第12頁(共25頁)

      子電話 電C語言課程設(shè)計報告——劉顯安

      } end:;puts(“返回主菜單請按【9】”);if(getche()=='9')menu();}

      struct student *shanchu(struct student*stu)/*刪除函數(shù)*/ { system(“cls”);long num;char s;struct student *s1,*s2;if(stu==NULL){ puts(“傻冒!沒有任何學(xué)生信息,還刪個屁啊,刪刪刪!”);goto end;} puts(“請輸入你要刪除的學(xué)生學(xué)號:”);scanf(“%ld”,&num);s1=stu;puts(“警告:你確定要刪除這個學(xué)生的信息嗎(Y/N)?”);scanf(“%s”,&s);

      第13頁(共25頁)

      C語言課程設(shè)計報告——劉顯安

      if((s=='Y')||(s=='y')){ while((num!=s1->num)&&(s1->next!=NULL)){s2=s1;s1=s1->next;}

      if(num==s1->num){ puts(“該學(xué)生的信息為:”);puts(“* 學(xué)號

      姓名

      班級

      電話 電子郵件 宿舍 *”);shuchu(s1);if(s1==stu)stu=s1->next;else s2->next=s1->next;puts(“注意喲,該學(xué)生的信息已經(jīng)刪除了!剩下的學(xué)生通訊錄信息如下:”);n=n-1;} } findall();return(stu);end:;

      第14頁(共25頁)

      C語言課程設(shè)計報告——劉顯安

      puts(“返回主菜單請按【9】”);if(getche()=='9')menu();}

      void paixu(){ /*排序函數(shù)*/ struct student *p, *p1,*p2;int i,j;int temp;char b[20];if(stu==NULL){printf(“n學(xué)生信息不存在n”);goto end;} for(i=0;inext;if(p1->num>p2->num)

      {temp=p1->num;p1->num=p2->num;p2->num=temp;

      strcpy(b,p1->name);strcpy(p1->name,p2->name);strcpy(p2->nam

      第15頁(共25頁)

      C語言課程設(shè)計報告——劉顯安

      e,b);

      temp=p1->banji;p1->banji=p2->banji;p2->banji=temp;

      strcpy(b,p1->tel);strcpy(p1->tel,p2->tel);strcpy(p2->tel,b);

      strcpy(b,p1->Email);strcpy(p1->Email,p2->Email);strcpy(p2->Email,b);temp=p1->sushe;p1->sushe=p2->sushe;p2->sushe=temp;

      } p1=p1->next;} } p=stu;puts(“已按學(xué)生學(xué)號順序排序完畢!重新排序如下:”);

      puts(“****************************************************************************”);puts(“* 學(xué)號 姓名 班級 電話 電子郵件 宿舍 *”);

      while(p!=NULL)

      第16頁(共25頁)

      C語言課程設(shè)計報告——劉顯安

      { printf(“* %-8ld”,p->num);printf(“%-15s”,p->name);printf(“%-8d”,p->banji);printf(“%-15s”,p->tel);printf(“%-15s”,p->Email);printf(“%-5d *n”,p->sushe);p=p->next;} end:;puts(“返回主菜單請按【9】”);if(getche()=='9')menu();}

      void help()/*幫助函數(shù)*/ { system(“cls”);puts(“n1、請按提示操作,第一次進(jìn)入本系統(tǒng)時請按“1”錄入學(xué)生信息,”);puts(“ 否則有可能造成程序運行錯誤!”);puts(“

      2、添加、修改功能本系統(tǒng)暫不提供,還有待以后完善,謝謝

      第17頁(共25頁)

      C語言課程設(shè)計報告——劉顯安

      合作!”);puts(“

      3、請注意查看“Num Lock”是否打開,如果沒有打開,則按數(shù)字n 鍵可能導(dǎo)致程序錯誤!”);puts(“

      4、版權(quán)所有,翻版必究!請按“7”鍵查看關(guān)于?!?;puts(“n返回主菜單請按【9】”);if(getche()=='9')menu();}

      void main()/*主函數(shù)*/ { char a;menu();puts(“n您為首次使用本系統(tǒng),強烈建議您按1開始錄入學(xué)生信息,”);puts(“否則有可能導(dǎo)致程序運行錯誤!您可以按8查看幫助.”);a=getche();while(a){ puts(“");switch(a){case'0':goto end;break;case '1': puts(”n好了,您可以開始向本系統(tǒng)錄入學(xué)生通訊錄信息了:

      第18頁(共25頁)

      C語言課程設(shè)計報告——劉顯安

      “);stu=shuru();system(”cls“);menu();puts(”n學(xué)生信息錄入完畢,請輸入你的選擇(0~6):n“);

      break;case '2':findall();puts(”n請輸入你的選擇(0~6):“);break;case '3':findname();puts(”n請輸入你的選擇(0~6):“);break;case '4':findnum();puts(”n請輸入你的選擇(0~6):“);break;case '5':stu=shanchu(stu);puts(”n請輸入你的選擇(0~6):“);break;case '6':paixu();puts(”n請輸入你的選擇(0~6):“);break;case '7':guanyu();puts(”n請輸入你的選擇(0~6):“);break;case '8':help();puts(”n請輸入你的選擇(0~6):“);break;default:puts(”輸錯了!笨蛋!快點按數(shù)字1鍵錄入學(xué)生信息吧!“);break;} a=getche();} end:;puts(”謝謝您使用本系統(tǒng),歡迎再次使用!");

      第19頁(共25頁)

      C語言課程設(shè)計報告——劉顯安

      } —————————————————————————

      四、調(diào)試

      主要是通過截圖來顯示運行過程 以下是程序運行的主界面:

      按1后,開始錄入信息,程序會提示你輸入學(xué)生個數(shù)(例如本例中輸入4個),當(dāng)輸完4個學(xué)生的信息時,程序會提示你已輸入完畢:

      第20頁(共25頁)

      C語言課程設(shè)計報告——劉顯安

      學(xué)生信息錄入完畢,提示輸入(0到6)進(jìn)行選擇:

      第21頁(共25頁)

      C語言課程設(shè)計報告——劉顯安

      這時我選擇按2輸出所有學(xué)生信息,按9返回:

      按3按姓名查詢信息:

      按4按學(xué)號查詢信息:

      第22頁(共25頁)

      C語言課程設(shè)計報告——劉顯安

      按5刪除學(xué)生信息,這是按學(xué)號刪除學(xué)生信息,本例中,刪除學(xué)號為41212的學(xué)生信息:

      刪除成功后,系統(tǒng)自動將剩下的學(xué)生信息列出:

      按6按學(xué)號從小到大進(jìn)行排序,可以發(fā)現(xiàn),排序成功:

      第23頁(共25頁)

      C語言課程設(shè)計報告——劉顯安

      按8查看幫助函數(shù):

      呵呵,這是我設(shè)置的關(guān)于函數(shù),滿足一下敝人的虛榮心嘛^_^,版權(quán)所有,翻版必究哦!

      最后按0退出系統(tǒng):

      第24頁(共25頁)

      C語言課程設(shè)計報告——劉顯安

      呵呵,怎么樣?我寫的程序還行吧。嘿嘿……

      三、總結(jié)

      這個程序我只是總體上參考了一下網(wǎng)上程序的架構(gòu),具體的各個函數(shù)是參照課本上《鏈表》那一章的內(nèi)容的,比如結(jié)構(gòu)體的建立、查找和排序等功能,這些書上都有類似的,其中排序功能雖沒有原版的,但是在第六章中有一個用冒泡法排序的例題,我就是仿照這個模式來對結(jié)構(gòu)體進(jìn)行排序的,總之整個程序中蘊含了我很多的汗水。

      第25頁(共25頁)

      下載C語言課程設(shè)計學(xué)生選課系統(tǒng)word格式文檔
      下載C語言課程設(shè)計學(xué)生選課系統(tǒng).doc
      將本文檔下載到自己電腦,方便修改和收藏,請勿使用迅雷等下載。
      點此處下載文檔

      文檔為doc格式


      聲明:本文內(nèi)容由互聯(lián)網(wǎng)用戶自發(fā)貢獻(xiàn)自行上傳,本網(wǎng)站不擁有所有權(quán),未作人工編輯處理,也不承擔(dān)相關(guān)法律責(zé)任。如果您發(fā)現(xiàn)有涉嫌版權(quán)的內(nèi)容,歡迎發(fā)送郵件至:645879355@qq.com 進(jìn)行舉報,并提供相關(guān)證據(jù),工作人員會在5個工作日內(nèi)聯(lián)系你,一經(jīng)查實,本站將立刻刪除涉嫌侵權(quán)內(nèi)容。

      相關(guān)范文推薦

        C語言課程設(shè)計任務(wù)書(學(xué)生成績管理系統(tǒng))

        課程設(shè)計題目:簡單的學(xué)生成績管理的程序要求: 一、由鍵盤輸入原始數(shù)據(jù)。原始數(shù)據(jù)內(nèi)容如下: 學(xué)號姓名C程序設(shè)計高等數(shù)學(xué)英語線性代數(shù) 1王..80808080 2張..90909090 注:要求至少有......

        C語言課程設(shè)計學(xué)生通訊錄管理系統(tǒng)設(shè)計

        C語言課程設(shè)計學(xué)生通訊錄管理系統(tǒng)設(shè)計一、題目內(nèi)容的描述學(xué)生通訊錄管理系統(tǒng)設(shè)計設(shè)計一個學(xué)生通信錄,學(xué)生通迅錄數(shù)據(jù)信息構(gòu)成內(nèi)容可自行設(shè)計(如:姓名、家庭地址、郵政編碼、電......

        學(xué)生選課管理系統(tǒng)規(guī)劃報告

        學(xué)生選課管理系統(tǒng)規(guī)劃報告 1、系統(tǒng)的意義與目標(biāo) 網(wǎng)絡(luò)的飛速發(fā)展深刻地影響了人們的日常生活和商業(yè)運作方式。社會的方方面面滲透著互連網(wǎng)的應(yīng)用,使得一向煩瑣的手工程序變得......

        C語言課程設(shè)計學(xué)生成績管理系統(tǒng)個人總結(jié)

        C語言課程設(shè)計——學(xué)生成績管理系統(tǒng) 個人心得體會 (徐州工程學(xué)院 14計嵌1班 07組 張凱) 這一周以來的課程設(shè)計,不僅讓我明白了C語言的確是一門很有用的,但是又是不容易的一門課......

        C語言課程設(shè)計報告-學(xué)生成績管理系統(tǒng)(vc)

        一、實踐的目的和要求 加深對《C語言》課程所學(xué)知識的理解,進(jìn)一步鞏固C語言語法規(guī)則。學(xué)會編制結(jié)構(gòu)清晰、風(fēng)格良好、數(shù)據(jù)結(jié)構(gòu)適當(dāng)?shù)模谜Z言程序,從而具備解決綜合性實際問題的能......

        c語言課程設(shè)計 學(xué)生選修課程系統(tǒng)設(shè)計[全文5篇]

        題目:學(xué)生選修課程系統(tǒng)設(shè)計功能:假定有n門課程,每門課程有課程編號,課程名稱,課程性質(zhì),總學(xué)時,授課學(xué)時,實驗或上機學(xué)時,學(xué)分,開課學(xué)期等信息。試設(shè)計一選修課程系統(tǒng)。 分步實施: 1、......

        C語言課程設(shè)計火車票系統(tǒng)源代碼

        #include #include #include //火車票結(jié)構(gòu)體類型// typedef struct Node {int num; //編號// char name[20]; //起點和終點// char time[5]; //出發(fā)時間// int price; /......

        C語言課程設(shè)計 倉庫管理系統(tǒng)

        C語言課程設(shè)計 倉庫管理系統(tǒng) #include struct cangku { int num; char name[20]; char introdution[50]; float square; }; typedef struct cangku Cangku; int Input(......