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

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

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

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

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

      貪吃蛇課程設(shè)計(jì)總結(jié)報(bào)告書

      時(shí)間:2019-05-13 18:06:33下載本文作者:會(huì)員上傳
      簡(jiǎn)介:寫寫幫文庫(kù)小編為你整理了多篇相關(guān)的《貪吃蛇課程設(shè)計(jì)總結(jié)報(bào)告書》,但愿對(duì)你工作學(xué)習(xí)有幫助,當(dāng)然你在寫寫幫文庫(kù)還可以找到更多《貪吃蛇課程設(shè)計(jì)總結(jié)報(bào)告書》。

      第一篇:貪吃蛇課程設(shè)計(jì)總結(jié)報(bào)告書

      貪吃蛇課程設(shè)計(jì)總結(jié)報(bào)告書

      110200第7組

      組員:李軼萌 劉浩 趙鵬

      一.需求分析

      (1)功能與數(shù)據(jù)需求:題目要求的功能(基本功能)與 擴(kuò)展功能 基本功能:貪吃蛇的蛇的移動(dòng)(上下左右)

      隨機(jī)出現(xiàn)食物

      蛇吃過(guò)后變長(zhǎng) 記分功能

      撞到自己或邊界就失敗等基礎(chǔ)的功能

      擴(kuò)展功能:難易度的選擇 背景音樂(lè) 空格暫停功能

      容錯(cuò)功能(是否重新開(kāi)始/結(jié)束游戲)

      (2)開(kāi)發(fā)環(huán)境

      Vc6.0

      二.概要設(shè)計(jì)(1)主要數(shù)據(jù)結(jié)構(gòu)(2)程序總體結(jié)構(gòu)(3)各模塊函數(shù)說(shuō)明 三 詳細(xì)設(shè)計(jì)(1)主函數(shù)部分(2)游戲部分

      (3)判斷分?jǐn)?shù),是否繼續(xù)部分 四.測(cè)試

      五.應(yīng)用程序功能的詳細(xì)說(shuō)明 規(guī)則:貪吃蛇在不首尾相碰且不碰邊界的情況下,盡可能多的吃掉隨機(jī)出現(xiàn)的食物,多吃多得分而益智的小游戲。

      操作:上w下s左a右d 暫停 空格 退出或重新游戲肯定y 否定 n 六.總結(jié)提高(1)課程設(shè)計(jì)總結(jié)

      (2)開(kāi)發(fā)中遇到的問(wèn)題和解決方法

      開(kāi)發(fā)之初,大家對(duì)這個(gè)程序都不是很了解,所以剛開(kāi)始只追求把文件做出來(lái),可以運(yùn)行就可以了。但是后來(lái)發(fā)現(xiàn)自己做出來(lái)的東西連自己都提不起興趣,單純只有基本功能功能,沒(méi)有記分功能,也沒(méi)有暫停等等,畫片也很糟糕,大小比例也有些失調(diào),被老師戲稱為“貪吃螞蟻”。后來(lái)經(jīng)過(guò)調(diào)試和自主創(chuàng)新,我們發(fā)現(xiàn)我們其實(shí)還是可以加入一些人性化的東西的。

      (3)對(duì)自己完成課設(shè)完成情況的評(píng)價(jià) 附錄:程序源代碼

      第二篇:貪吃蛇java課程設(shè)計(jì)

      import java.awt.*;import java.awt.event.*;import javax.swing.*;public class Snake extends JFrame {

      private JPanel contentPane;//窗體內(nèi)容網(wǎng)格

      private JButton btnStart = new JButton(“開(kāi)始”);//游戲開(kāi)始按鈕

      private JButton btnPause = new JButton(“暫?!?;//游戲暫停按鈕

      private JButton btnExit = new JButton(“退出”);//游戲退出按

      private JPanel pnlTop = new JPanel();//頂部按鈕和分?jǐn)?shù)面板

      private JPanel pnlLeft = new JPanel();//左側(cè)面板

      private JPanel playPanel = new JPanel();//游戲區(qū)面板

      private BorderLayout borderLayout1 = new BorderLayout();//容器布局管理器

      private BorderLayout borderLayout2 = new BorderLayout();

      private GridLayout rbtnLayout = new GridLayout(10, 1, 1, 1);

      private static final int UP = 1,LEFT = 2,DOWN = 3,RIGHT = 4;//蛇運(yùn)動(dòng)方向

      private static final int ROWS = 30;//游戲區(qū)行數(shù)

      private static final int COLS = 50;//游戲區(qū)列數(shù)

      private boolean isPause = false;//游戲暫停標(biāo)志

      private boolean isEnd;//游戲結(jié)束標(biāo)志

      private SnakeBody snake;//貪食蛇

      private int score = 0;//當(dāng)前得分

      SnakeThread thread = new SnakeThread();//游戲主線程

      private GridLayout grid1 = new GridLayout(ROWS,COLS,0,0);//游戲區(qū)布局

      private JButton[][] blocks;//游戲區(qū)的所有方塊

      JPanel jPanel2 = new JPanel();

      JLabel jLabel1 = new JLabel(“得分:”);

      JLabel lblScroe = new JLabel(“0”);

      ButtonGroup buttonGroup1 = new ButtonGroup();

      JRadioButton rbtnLow = new JRadioButton(“初級(jí)”, true);

      JRadioButton rbtnMid = new JRadioButton(“中級(jí)”);

      JRadioButton rbtnHigh = new JRadioButton(“高級(jí)”);

      public Snake(){

      super(“貪食蛇游戲”);

      setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

      contentPane =(JPanel)this.getContentPane();

      contentPane.setLayout(borderLayout2);

      this.setResizable(false);

      this.setSize(new Dimension(512, 414));

      keyAction keyAct = new keyAction();

      this.addKeyListener(keyAct);

      btnStart.addKeyListener(keyAct);

      btnPause.addKeyListener(keyAct);

      btnExit.addKeyListener(keyAct);

      rbtnLow.addKeyListener(keyAct);

      rbtnMid.addKeyListener(keyAct);

      rbtnHigh.addKeyListener(keyAct);

      btnAction btnAct = new btnAction();

      btnStart.addActionListener(btnAct);

      btnPause.addActionListener(btnAct);

      btnExit.addActionListener(btnAct);

      rbtnLow.addActionListener(btnAct);

      rbtnMid.addActionListener(btnAct);

      rbtnHigh.addActionListener(btnAct);

      pnlLeft.setLayout(borderLayout1);

      playPanel.setLayout(grid1);

      playPanel.setBackground(Color.white);

      playPanel.setBorder(BorderFactory.createEtchedBorder());

      jPanel2.setLayout(rbtnLayout);

      buttonGroup1.add(rbtnLow);

      buttonGroup1.add(rbtnMid);

      buttonGroup1.add(rbtnHigh);

      rbtnLow.setSelected(true);

      pnlLeft.add(playPanel);

      pnlLeft.add(jPanel2, BorderLayout.WEST);

      jPanel2.add(“f1”, rbtnLow);

      jPanel2.add(“f2”, rbtnMid);

      jPanel2.add(“f3”, rbtnHigh);

      pnlTop.add(btnStart);

      pnlTop.add(btnPause);

      pnlTop.add(btnExit);

      pnlTop.add(jLabel1);

      pnlTop.add(lblScroe);

      contentPane.add(pnlTop, BorderLayout.NORTH);

      contentPane.add(pnlLeft, BorderLayout.CENTER);

      //創(chuàng)建并初始化游戲區(qū)方塊

      blocks = new JButton[ROWS][COLS];

      for(int i = 0;i < ROWS;i++){

      for(int j = 0;j < COLS;j++){

      blocks[i][j] = new JButton();

      blocks[i][j].setBackground(Color.lightGray);

      blocks[i][j].setVisible(false);

      playPanel.add(blocks[i][j]);

      }

      }

      }

      public static void main(String[] args){

      Snake app = new Snake();

      app.validate();

      app.setVisible(true);

      }

      public void start(){

      snake = new SnakeBody();//創(chuàng)建蛇身

      if(rbtnLow.isSelected())

      snake.setSpeed(300);

      if(rbtnMid.isSelected())

      snake.setSpeed(200);

      if(rbtnHigh.isSelected())

      snake.setSpeed(100);

      score = 0;

      isPause = false;

      isEnd = false;//

      btnPause.setText(“暫停”);

      //初始化游戲區(qū)

      for(int i = 0;i < ROWS;i++){

      for(int j = 0;j < COLS;j++){

      blocks[i][j].setBackground(Color.lightGray);

      blocks[i][j].setVisible(false);

      }

      }

      //在游戲區(qū)內(nèi)隨機(jī)放置豆

      int x =(int)(Math.random()* ROWS);

      int y =(int)(Math.random()* COLS);

      while(blocks[x][y].isVisible()){

      x =(int)(Math.random()* ROWS);

      y =(int)(Math.random()* COLS);

      }

      blocks[x][y].setBackground(Color.yellow);

      blocks[x][y].setVisible(true);

      try {

      thread.start();

      }

      catch(IllegalThreadStateException illegalThreadStateException){}

      }

      class SnakeBody {

      public int row[];

      public int col[];

      public int len = 3, direction = RIGHT, lastdirection = RIGHT;

      public long speed = 300;

      public SnakeBody(){

      len = 3;

      direction = RIGHT;

      lastdirection = RIGHT;

      row = new int[ROWS];

      col = new int[COLS];

      for(int i = 0;i <= len;i++){

      row[i] = 1;

      col[i] = len1];

      col[i] = col[i-1];

      }

      //根據(jù)蛇身運(yùn)動(dòng)方向,決定蛇頭位置

      switch(direction){

      case UP: {

      if(lastdirection == DOWN)

      row[0] += 1;

      else {

      row[0]-= 1;

      lastdirection = UP;

      }

      break;

      }

      case LEFT: {

      if(lastdirection == RIGHT)

      col[0] += 1;

      else {

      col[0]-= 1;

      lastdirection = LEFT;

      }

      break;

      }

      case DOWN: {

      if(lastdirection == UP)

      row[0]-= 1;

      else {

      row[0] += 1;

      lastdirection = DOWN;

      }

      break;

      }

      case RIGHT: {

      if(lastdirection == LEFT)

      col[0]-= 1;

      else {

      col[0] += 1;

      lastdirection = RIGHT;

      }

      break;

      }

      }

      //當(dāng)蛇頭碰到墻時(shí),蛇頭碰到蛇身時(shí),游戲結(jié)束

      if(row[0] >= ROWS || row[0] < 0 || col[0] >= COLS || col[0] < 0 ||

      blocks[row[0]][col[0]].getBackground().equals(Color.green)){

      isEnd = true;

      JOptionPane.showMessageDialog(null, “游戲結(jié)束!”);

      }

      //吃豆

      if(blocks[row[0]][col[0]].getBackground().equals(Color.yellow)){

      score += 100;

      lblScroe.setText(Integer.toString(score));

      if(score % 2000 == 0 && speed > 100){

      JOptionPane.showMessageDialog(null, “恭喜你過(guò)關(guān)了,準(zhǔn)備進(jìn)入下一關(guān)”);

      speed-= 100;

      if(speed == 200)

      rbtnMid.setSelected(true);

      if(speed == 100)

      rbtnHigh.setSelected(true);

      }

      }

      //吃豆后,蛇身加長(zhǎng),并隨機(jī)顯示下一個(gè)豆

      if(blocks[row[0]][col[0]].getBackground().equals(Color.yellow)){

      len++;

      int x, y;

      x =(int)(Math.random()* ROWS);

      y =(int)(Math.random()* COLS);

      while(blocks[x][y].isVisible()){

      x =(int)(Math.random()* ROWS);

      y =(int)(Math.random()* COLS);

      }

      blocks[x][y].setBackground(Color.yellow);

      blocks[x][y].setVisible(true);

      }

      blocks[row[0]][col[0]].setBackground(Color.green);

      blocks[row[0]][col[0]].setVisible(true);//顯示蛇頭

      }

      }

      class SnakeThread extends Thread {

      public void run(){

      while(true){

      try {

      Thread.sleep(snake.speed);//控制移動(dòng)速度

      if(!isEnd &&!isPause){

      snake.move();//移動(dòng)蛇身

      }

      if(isEnd){ //游戲結(jié)束

      btnStart.setEnabled(true);

      }

      }

      catch(Exception ex){}

      }

      }

      }

      class keyAction extends KeyAdapter {

      public void keyPressed(KeyEvent e){

      if(!isEnd &&!isPause){

      //根據(jù)用戶按鍵,設(shè)置蛇運(yùn)動(dòng)方向

      if(e.getKeyCode()== KeyEvent.VK_UP){

      snake.direction = UP;

      }

      if(e.getKeyCode()== KeyEvent.VK_DOWN){

      snake.direction = DOWN;

      }

      if(e.getKeyCode()== KeyEvent.VK_LEFT){

      snake.direction = LEFT;

      }

      if(e.getKeyCode()== KeyEvent.VK_RIGHT){

      snake.direction = RIGHT;

      }

      }

      }

      }

      //按鈕監(jiān)聽(tīng)響應(yīng)處理類

      private class btnAction implements ActionListener {

      public void actionPerformed(ActionEvent ae){

      Object source = ae.getSource();

      if(source.equals(btnStart)){

      btnStart.setEnabled(false);

      start();

      }

      if(source.equals(btnPause)){

      if(isPause == true){

      btnPause.setText(“暫?!?;

      }

      if(isPause == false){

      btnPause.setText(“繼續(xù)”);

      }

      isPause =!isPause;

      }

      if(source.equals(btnExit)){

      System.exit(0);

      }

      if(source.equals(rbtnLow)){

      snake.setSpeed(300);

      }

      if(source.equals(rbtnMid)){

      snake.setSpeed(200);

      }

      if(source.equals(rbtnHigh)){

      snake.setSpeed(100);

      }

      }

      } }

      第三篇:c語(yǔ)言程序貪吃蛇課程設(shè)計(jì)報(bào)告

      高級(jí)語(yǔ)言程序設(shè)計(jì) 課程設(shè)計(jì)報(bào)告

      Experiment Designing reporter 課程名稱:高級(jí)語(yǔ)言程序設(shè)計(jì)

      英文名稱

      : C Program Experiment Designing 專業(yè):自動(dòng)化 111 學(xué)號(hào): XXX 姓名: XXX 指導(dǎo)教師: XXX

      日期:

      2012 年 6月 17日至 2011 年6 月 20 日 山東工商學(xué)院信電學(xué)院 一:課程設(shè)計(jì)內(nèi)容 程序功能介紹

      貪吃蛇游戲是一個(gè)經(jīng)典小游戲,深受眾多玩家喜愛(ài),其規(guī)則是:一條蛇在封閉圍墻里,圍墻里隨機(jī)出現(xiàn)一個(gè)食物,通過(guò)按鍵盤四個(gè)光標(biāo)鍵控制蛇向上下左右四個(gè)方向移動(dòng),蛇頭撞倒食物,則食物被吃掉,蛇身體長(zhǎng)一節(jié),同時(shí)記10分,接著又出現(xiàn)食物,等待蛇來(lái)吃,如果蛇在移動(dòng)中撞到墻或身體交叉蛇頭撞倒自己身體游戲結(jié)束。此游戲不僅能鍛煉人的思維敏捷性,而且還可以提高玩家的邏輯判斷能力。設(shè)計(jì)思路

      我們小組稱設(shè)計(jì)本次課題——貪吃蛇的思路為“貪快速上手貪吃蛇三步曲”: 第一步:

      尋找到一個(gè)真正可以運(yùn)行的已用C編好的貪吃蛇。因?yàn)槲覀儺吘箯奈纯吹竭^(guò)用C編游戲的程序,讓我們兩手一抹黑的開(kāi)始編寫是有一定的困難的,如果我們自己找一個(gè)已經(jīng)設(shè)計(jì)好的程序,以此為跳板實(shí)現(xiàn)我們想要達(dá)到的效果,那么肯定是高效的。所以我們組統(tǒng)一決定,去尋找一個(gè)可以運(yùn)行的C編譯的貪吃蛇。第二步:

      運(yùn)行游戲并了解游戲程序。

      我們認(rèn)為,只有你運(yùn)行并了解一個(gè)游戲,才能知道游戲里需要什么樣的改進(jìn)和創(chuàng)新,如果你自己本身就沒(méi)玩過(guò)這個(gè)游戲,那么你就是再有技術(shù),你也永遠(yuǎn)改進(jìn)和改編不了一個(gè)游戲,因?yàn)槟愀静恢滥阍诟墒裁础?/p>

      同樣重要的是了解游戲程序。因?yàn)橹挥锌炊顺绦颍拍軐?shí)現(xiàn)對(duì)他的改編,才能游刃有余。第三步:

      尋找模塊并分類,而后進(jìn)行改編。

      尋找到你想要改變的游戲內(nèi)容的控制模塊,比如,我想要增加一堵墻,那么就應(yīng)該找到 void DrawK(void){

      setcolor(11);

      setlinestyle(SOLID_LINE,0,THICK_WIDTH);for(i=200;i<=500;i+=10)

      rectangle(i,200,i+10,209);} 然后要找到:改變蛇初始長(zhǎng)度、顏色、初始位置的模塊,改變蘋果出現(xiàn)位置的模塊,讓蛇見(jiàn)墻死的模塊,讓蛇吃蘋果加長(zhǎng)的模塊???.并且進(jìn)行分類,這樣下次再想實(shí)現(xiàn)某個(gè)目標(biāo)時(shí),可以一目了然的進(jìn)行改編。對(duì)于找到的模塊如何進(jìn)行改編呢?怎么才能知道某個(gè)數(shù)值或函數(shù)代表什么呢? 我們有兩個(gè)方法:

      1.)看名字,比如snakecolor(),很明顯他的意思是蛇的顏色。2.)控制變量猜想,比如設(shè)置墻的時(shí)候for(i=200;i<=500;i+=10);

      rectangle(i,300,i+10,309);中的200,500,300,209 代表什么呢?我們可以猜想:它很像是坐標(biāo)上的(x,y)的格式,是不是呢?可可以先讓其他數(shù)值不變,只讓309改變,改變后發(fā)現(xiàn)上面的墻變粗了,由此可見(jiàn)這個(gè)數(shù)字控制的是一堵墻的最下面一行的坐標(biāo)。

      關(guān)于該程序的相關(guān)分析思路答題模板:

      1.貪吃蛇程序流程圖如下:

      二.貪吃蛇程序的改編:

      經(jīng)過(guò)小組成員的認(rèn)真研究我們對(duì)其進(jìn)行了如下改編 第一步加墻 void DrawK(void){ /*setbkcolor(MAGENTA);*/

      setcolor(5);//

      可以改變顏色

      setlinestyle(SOLID_LINE,0,THICK_WIDTH);/*設(shè)置線型*/ 橫向上的墻:

      for(i=100;i<=600;i+=10)// 本行代表行坐標(biāo)上:100代表墻的初始位置,i<=600代表墻的結(jié)尾。

      {

      rectangle(i,60,i+10,69);//本行代表縱坐標(biāo)上:60代表墻的最上面一行的位置,69代表墻最下面一行的位置。69-60=9,9代表墻塊的厚度 } 縱向上的墻:

      for(i=100;i<=400;i+=10)//本行代表縱坐標(biāo)上:100代表墻的初始位置,i<=400代表墻的結(jié)尾

      {

      rectangle(100,i,109,i+10);//本行代表縱坐標(biāo)上:100代表墻的最左邊面一行的位置,69代表墻最右面一行的位置。69-60=9,9代表墻塊的寬度

      } 我們認(rèn)為本模塊最重要的是for語(yǔ)句控制的坐標(biāo)代表的意思。只要明白了坐標(biāo)的意思,就可以實(shí)現(xiàn)對(duì)游戲的改編。

      第二步就是進(jìn)行對(duì)新加入的墻蛇是否撞上死亡

      讓蛇撞墻死

      if(snake.x[0]>190&&snake.x[0]< 510&&snake.y[0]>=200&&

      snake.y[0]<=215)

      /*其中,對(duì)x,y范圍的控制,實(shí)際是對(duì)蛇撞擊的死亡區(qū)域的限制。*/

      {

      GameOver();/*本次游戲結(jié)束*/

      snake.life=1;/*蛇死*/

      } 相應(yīng)的新添加的墻。

      for(i=200;i<=500;i+=10)/*畫圍墻*/

      {

      rectangle(i,200,i+10,209);/*指定位置*/ 第三步食物的定點(diǎn)出現(xiàn)

      if(food.yes==1)/*需要出現(xiàn)新食物*/ 這里說(shuō)明一下:rand()產(chǎn)生0-65535的數(shù),在limits.h里有定義%400后產(chǎn)生一個(gè)0-399的數(shù)+60 則為 60 –459,即:%400+60意思是在60~399之間隨機(jī)產(chǎn)生一個(gè)數(shù)。

      {

      food.x=rand()%400+60;

      food.y=rand()%350+60;

      while(food.x%10!=0)/*食物隨機(jī)出現(xiàn)后必須讓食物能夠在整格內(nèi),這樣才可以讓蛇吃到*/

      food.x++;

      while(food.y%10!=0)

      food.y++;

      food.yes=0;/*畫面上有食物了*/

      } 如果將food.x=(常數(shù)a)那么食物就會(huì)出現(xiàn)在x=a行的隨機(jī)列,對(duì)于food.y=(常數(shù)b)那么食物就出現(xiàn)在y=b列的隨機(jī)行。

      第四步對(duì)食物墻壁的顏色以及對(duì)蛇的運(yùn)動(dòng)速個(gè)性化調(diào)節(jié)

      setcolor(4);// 對(duì)顏色的調(diào)整 int gamespeed=50000;/*游戲速度自己調(diào)整*/

      通過(guò)改變變量的值,就可以個(gè)性化選擇自己喜歡的顏色,這將是一場(chǎng)別開(kāi)生面的游戲界面。* 紅色代表解析淺藍(lán)代表提示 三.課程設(shè)計(jì)總結(jié) 有言曰:“實(shí)踐出真知”,在這幾天的課程設(shè)計(jì)實(shí)踐中,我們組三人真正的體會(huì)到了這句話的真諦。

      在經(jīng)歷了一學(xué)期的C語(yǔ)言學(xué)習(xí)后,我們從以往的“紙上談兵”直接過(guò)渡到“實(shí)際作戰(zhàn)”。我們實(shí)現(xiàn)了讓靜態(tài)的程序變成動(dòng)態(tài)的游戲效果,雖然我們只是改編了一下別人做好的程序,但我們同樣由此獲益匪淺,感觸頗深,當(dāng)然也發(fā)現(xiàn)了許多自己的不足。

      首先,在我們剛剛進(jìn)行第一步“尋找程序”的時(shí)候,就被擱淺了,因?yàn)槲覀儼l(fā)現(xiàn),在網(wǎng)上能找到一個(gè)真正符合我們使用標(biāo)準(zhǔn)的程序很難,就是找到了幾個(gè)也沒(méi)有能運(yùn)行它們的程序。我們花費(fèi)了前兩天的時(shí)間來(lái)尋找能夠使用的程序和軟件,但最后還是一無(wú)所獲,正當(dāng)我們一籌莫展的時(shí)候,我們的導(dǎo)師——楊老師給我們帶來(lái)了曙光,使得我們?cè)诤诎抵姓业搅讼M墓饷?,楊老師給我們傳來(lái)了一個(gè)上屆師哥做好的程序,并且把它的運(yùn)行軟件也給了我們,這對(duì)我們來(lái)說(shuō)無(wú)疑是雪中送炭,得到這個(gè)程序后,我們?nèi)齻€(gè)人看到了C語(yǔ)言運(yùn)行一個(gè)游戲的流程和方法,我們腦中也大概有了一個(gè)思路。我們?nèi)齻€(gè)人以此程序?yàn)樘?,直接開(kāi)始對(duì)程序模塊進(jìn)行挑選,因?yàn)槲覀円呀?jīng)浪費(fèi)了兩天,所以我們決定進(jìn)行分工作業(yè),分別去尋找:筑墻模塊,加蘋果模塊,撞墻死模塊。最后我們用了一下午時(shí)間完成了三大步中的前兩大步和第三步的第一部分,剩下的就是最重要而充滿挑戰(zhàn)的改編了,從以上的操作中,讓我們明白了找對(duì)一個(gè)平臺(tái)的重要性,這個(gè)平臺(tái)就是老師給我們的程序,就是我們的前進(jìn)方向。沒(méi)有了方向了的征程,一開(kāi)始就是個(gè)錯(cuò)誤。在我們尋找程序模塊的時(shí)候,我們對(duì)于程序中的很多東西都是模模糊糊的概念,比如struck是什么,比如for語(yǔ)句的使用,以及for語(yǔ)句的循環(huán)體是什么,當(dāng)然我們也發(fā)現(xiàn)了定義字符在長(zhǎng)的程序中的方便與重要性。還有就是我們發(fā)現(xiàn)程序在編寫時(shí)的規(guī)范性很重要,比如同級(jí)別花括號(hào)的位置的對(duì)應(yīng),對(duì)應(yīng)好了,模塊就好找,對(duì)應(yīng)不好就很亂。還有定義函數(shù)及變量的時(shí)候,函數(shù)名字和變量名最好是見(jiàn)名知意,比如我們所看的程序中,gamespeed,snakecolour,food.....在最后的攻堅(jiān)階段,為了實(shí)現(xiàn)對(duì)程序的改編,我們使用控制變量猜想法是正確的選擇,比如設(shè)置墻的時(shí)候for(i=200;i<=500;i+=10);

      rectangle(i,300,i+10,309);中的200,500,300,209 代表什么呢?我們猜想:它很像是坐標(biāo)上的(x,y)的格式,是不是呢?我們先讓其他數(shù)值不變,只讓309改變,改變后發(fā)現(xiàn)上面的墻變粗了,由此我們知道這個(gè)數(shù)字控制的是一堵墻的最下面一行的坐標(biāo)。我們用這個(gè)方法知道了其他很多數(shù)值的用途。我們用這種方法先是知道了如何設(shè)置一堵墻,在我們欣喜設(shè)置一堵墻以后才發(fā)現(xiàn):蛇撞了墻后不死。在我們進(jìn)行了全局來(lái)看以后才知道,原來(lái)設(shè)計(jì)一堵墻,都要再設(shè)計(jì)一個(gè)if語(yǔ)句來(lái)使得蛇在這個(gè)范圍內(nèi)會(huì)死亡。并且我們發(fā)現(xiàn)在設(shè)計(jì)這個(gè)if語(yǔ)句的時(shí)候,不僅要計(jì)算好墻的坐標(biāo),而且還要用好邏輯語(yǔ)言(&&,||!)同時(shí)語(yǔ)句的運(yùn)算順序也很重要。剛一開(kāi)始我們忽略的&&和關(guān)系運(yùn)算符級(jí)別的高低,使得我們?cè)O(shè)計(jì)的墻,總是撞不死蛇,為此我們很是惱火,著急的組員還在這里發(fā)生了點(diǎn)小摩擦,由此可見(jiàn)C語(yǔ)言的嚴(yán)謹(jǐn)性!

      最后我們又通過(guò)在網(wǎng)上查找信息,知道了隨機(jī)數(shù)發(fā)生器randomize()的用法:rand()=x%+d 意思是說(shuō)在d~(x-1)之間隨機(jī)產(chǎn)生一個(gè)數(shù)字。我們很自然的聯(lián)想到,如果把food.x等于常數(shù)a;把food.y等于一個(gè);x%+d的隨機(jī)數(shù),那不就能固定只在某一行出現(xiàn)蘋果了嗎?所以我們覺(jué)得,充分利用手邊的資源也是很重要的,畢竟C語(yǔ)言很高深,課本上的東西總是有限的,要想知道更多的東西還需多練習(xí),多查閱資料??傊焊锩形闯晒Γㄖ€需努力??!四個(gè)人感受: 湯X:

      就我個(gè)人而言,這次課程設(shè)計(jì),我覺(jué)得我最大的收獲就是:我明白了,我們其實(shí)真的沒(méi)那么厲害,我們真的還有很多東西不會(huì),我們真的連課本上的基本東西都沒(méi)掌握,課本上的東西,真的也只是C語(yǔ)言這個(gè)大海中的一滴水而已。而在我本人還沒(méi)有掌握好課本的知識(shí)點(diǎn)的情況下,做起這個(gè)程序自然很費(fèi)事,一個(gè)簡(jiǎn)單的課本P293講到的struct結(jié)構(gòu)體,我一開(kāi)始竟然忘記它是什么意思,不知道它是什么,就更不用談怎么用它了。還有邏輯語(yǔ)言的使用。我想,現(xiàn)在肯定有很多同學(xué)還不知道邏輯運(yùn)算的優(yōu)先次序吧?這個(gè)問(wèn)題我本人在使用邏輯語(yǔ)言的時(shí)候也不太會(huì),還查看了書。像這些小的知識(shí)點(diǎn),我個(gè)人認(rèn)為如果掌握不好的話,是不可能讓整個(gè)大程序運(yùn)行起來(lái)的。還有比如我在遇到程序顯示“else多余”的警告時(shí)候不不知所措,問(wèn)了老師才知道是if()后面加了“;”而且if沒(méi)有用“{}”來(lái)固定范圍,這個(gè)錯(cuò)誤原因是分號(hào)使得if語(yǔ)句結(jié)束了,孤立的else當(dāng)然是多余的了。一個(gè)小小的分號(hào)使得程序無(wú)法運(yùn)行,由此可見(jiàn)在今后的編程中,一定要注意謹(jǐn)慎,仔細(xì)。同時(shí)要注意記住平時(shí)編程的時(shí)候,出現(xiàn)的錯(cuò)誤指示是什么意思。比如這次的“else多余”就是因?yàn)閕f后多了分號(hào)。還有在編程時(shí)候,書寫一定要規(guī)范,特別是if語(yǔ)句的花括號(hào)的位置要對(duì)應(yīng)起來(lái),因?yàn)槲恢脹Q定范圍。注意定義變量和函數(shù)要使用規(guī)范的英文單詞,這樣才能見(jiàn)名知意,為以后修改找變量節(jié)省時(shí)間。對(duì)于這次課題中,“設(shè)計(jì)一個(gè)墻,就要對(duì)應(yīng)一個(gè)函數(shù)舍得蛇撞墻死”,讓我明白,C語(yǔ)言程序中各部分的聯(lián)系性,牽一發(fā)而動(dòng)全身,所以在編程時(shí)一定要注意全局的把握。我們最后還要說(shuō)說(shuō)在編程中,好好利用網(wǎng)絡(luò)資源,因?yàn)檎n本里的東西總是有限的,而C語(yǔ)言又那么高深,像隨機(jī)數(shù)發(fā)生器,還有顏色的定都是我第一次接觸,這些東西的用處可是頗大,以后一定好好學(xué)習(xí)。多看,多練,多總結(jié)。最后還要感謝指導(dǎo)老師,楊老師對(duì)我學(xué)習(xí)的幫助和指導(dǎo)。徐XXX: 剛開(kāi)始拿到題目時(shí)候什么也不會(huì)一片茫然,從網(wǎng)上找了一個(gè)程序一看,太嚇人了,這么長(zhǎng)怎么看啊,而且還是錯(cuò)誤的。沒(méi)辦法只能硬著頭皮去改了,但是在改的過(guò)程中才發(fā)現(xiàn)其實(shí)c語(yǔ)言沒(méi)有想象的那么難而且還很有意思,只是自己平時(shí)沒(méi)有好好學(xué)所以在改的時(shí)候非常吃力,有很多簡(jiǎn)單的知識(shí)都不知道,沒(méi)有記住。沒(méi)辦法只能借助與課本了。但是幾天下來(lái)發(fā)現(xiàn)自己已經(jīng)不再像以前那樣是個(gè)菜鳥(niǎo)了,雖然很多知識(shí)還沒(méi)掌握。同時(shí)在編改程序的時(shí)候切記不能煩躁要靜心慢慢來(lái),好幾次自己都因心燥出現(xiàn)了很多不該出現(xiàn)的錯(cuò)誤浪費(fèi)了很多時(shí)間。

      對(duì)鍵盤的熟悉在編程時(shí)也是很重要的,自己在寫的時(shí)候往往就是跟一指禪差不多眼睛盯著鍵盤打,打錯(cuò)了也不知道最后導(dǎo)致整個(gè)程序都是錯(cuò)誤的,就因?yàn)橐粋€(gè)打錯(cuò)了一個(gè)字母。

      總的來(lái)說(shuō)這次課程設(shè)計(jì)收獲很多,也知道了自己的不足,在以后的學(xué)習(xí)中要多實(shí)踐,實(shí)踐很能提高自己的能力。劉XX:

      4天的C語(yǔ)言課程設(shè)計(jì)上機(jī)學(xué)習(xí)讓我感受頗多,每天都發(fā)現(xiàn)新的問(wèn)題,又不得不絞盡腦汁解決問(wèn)題,心情就像正弦函數(shù),隨著問(wèn)題的出現(xiàn)和解決一起一伏。剛開(kāi)始接觸貪吃蛇的C語(yǔ)言成尋時(shí),看著C-free上面出現(xiàn)的有十幾個(gè)錯(cuò)誤的程序,一片茫然不知所措。只能繼續(xù)在網(wǎng)上搜索錯(cuò)誤較少的程序,并結(jié)合書上的基礎(chǔ)知識(shí)查看錯(cuò)誤所在,最終發(fā)現(xiàn)是不能在C-free中運(yùn)行,只能在mytc5.6上運(yùn)行。

      作為小組中唯一的女生,明顯感覺(jué)有壓力,打字速度不如另外兩個(gè)男生,對(duì)游戲和程序的敏感也不如他們強(qiáng),有種小小的挫敗感。旁邊小組的同學(xué)也給我很大的壓力。他們自己編寫程序,我很佩服他們,越是這樣想。心里越著急,越不能解決問(wèn)題,每當(dāng)感覺(jué)有壓力的時(shí)候,就提醒自己心靜,認(rèn)真的看程序。在學(xué)習(xí)過(guò)程中,深深的發(fā)現(xiàn)了自己的不足之處,對(duì)于C語(yǔ)言,只學(xué)了一點(diǎn)點(diǎn)皮毛東西,想要學(xué)好C語(yǔ)言,編好程序,還要付出很多的努力,還要用更多的時(shí)間來(lái)學(xué)習(xí)C語(yǔ)言這門深?yuàn)W的學(xué)科?,F(xiàn)在只能借用別人已經(jīng)寫好的程序,在別人的基礎(chǔ)上,一點(diǎn)點(diǎn)進(jìn)步和學(xué)習(xí),比如程序中筑墻,需要仿照已有的程序,結(jié)合邏輯運(yùn)算,關(guān)系運(yùn)算和數(shù)學(xué)知識(shí)才能讓蛇撞墻死。蘋果位置的出現(xiàn)也同樣需要進(jìn)一步的搜索,通過(guò)更改食物的橫縱坐標(biāo)以及出現(xiàn)的概率來(lái)確定食物的位置。編寫程序時(shí),也發(fā)現(xiàn)書上的東西對(duì)于程序的某些部分來(lái)說(shuō),沒(méi)有什么作用,顯得太淺顯,想要實(shí)現(xiàn)老師給出的一些要求,還需要實(shí)踐,通過(guò)上機(jī)學(xué)習(xí),自己摸索才能成功。一次次修改,一次次失敗,就像貪吃蛇想方設(shè)法吃蘋果會(huì)Game over,我們只有認(rèn)真學(xué)好基礎(chǔ)理論,并結(jié)合實(shí)踐經(jīng)驗(yàn)才會(huì)取得進(jìn)步。

      在這次學(xué)習(xí)過(guò)程中,我很感謝我的組員,雖然有時(shí)我們的意見(jiàn)出現(xiàn)分歧,但是通過(guò)大家的共同努力,我們收獲了很多,一起討論,一起研究怎樣解決問(wèn)題,對(duì)老師提出的要求個(gè)個(gè)擊破,我們擰成一股繩共同應(yīng)對(duì)問(wèn)題,讓我感受了團(tuán)隊(duì)的力量希望在以后的學(xué)習(xí)過(guò)程中,我們依然能夠互相幫助,共同進(jìn)步。

      五 課程設(shè)計(jì)修改后的程序.加墻

      for(i=200;i<=500;i+=10)/*畫圍墻*/

      {

      rectangle(i,200,i+10,209);/*指定位置1*/

      } for(i=120;i<=200;i+=10)/*畫圍墻*/

      {

      rectangle(100,i,109,i+10);/*指定位置2*/

      } 2.指定位置加蘋果

      if(food.yes==1)/*需要出現(xiàn)新食物*/

      {

      food.x=rand()60;

      food.y=rand()%200+60;

      while(food.x%10!=0)

      food.x++;

      while(food.y%10!=0)

      food.y++;

      food.yes=0;3.指定地方撞墻死

      if(snake.x[0]>190&&snake.x[0]< 510&&snake.y[0]>=200&&

      snake.y[0]<=215)

      {

      GameOver();/*本次游戲結(jié)束*/

      snake.life=1;/*蛇死*/

      } if(snake.x[0]>90&&snake.x[0]<110&&snake.y[0]>=110&&snake.y[0]<=215)

      {

      GameOver();/*本次游戲結(jié)束*/

      snake.life=1;/*蛇死*/

      }

      }

      第四篇:貪吃蛇C語(yǔ)言課程設(shè)計(jì)報(bào)告

      貪吃蛇游戲程序設(shè)計(jì)報(bào)告

      貪吃蛇游戲設(shè)計(jì)

      姓名: 張力

      學(xué)號(hào): 1002032

      3完成日期: 月 日1

      貪吃蛇游戲程序設(shè)計(jì)報(bào)告

      一、設(shè)計(jì)目的

      貪吃蛇游戲程序功能的實(shí)現(xiàn)主要是建立在二維數(shù)組和圖形界面的應(yīng)用上,通過(guò)編寫游戲程序能夠熟悉掌握相關(guān)數(shù)組和圖形函數(shù)的運(yùn)用,提高編程水平,增加編程的興趣

      二、總體設(shè)計(jì)

      主函數(shù)

      圖形驅(qū)動(dòng)Init 畫界面DrawK 游戲具體過(guò)程GamePlay 圖形結(jié)束Close

      游戲結(jié)束GameOver 輸出成績(jī)PrScore

      三、詳細(xì)設(shè)計(jì)(項(xiàng)目成員及分工、模塊功能說(shuō)明(如函數(shù)功能、入口及出口參數(shù)說(shuō)明,函數(shù)調(diào)用關(guān)系描述等)

      ①主函數(shù)main():

      定義使用的常數(shù),全局變量及函數(shù)原型說(shuō)明,并調(diào)用Init()函數(shù)初始化圖形系統(tǒng);然后調(diào)用DrawK()函數(shù)畫界面,調(diào)用GamePlay()函數(shù)實(shí)現(xiàn)游戲的具體過(guò)程,游戲結(jié)束后調(diào)用Close()函數(shù)關(guān)閉圖形系統(tǒng)結(jié)束程序。

      ②畫界面函數(shù)DrawK():

      主界面是一個(gè)密封的圍墻,用兩個(gè)循環(huán)語(yǔ)句分別在水平方向和垂直方向輸出連續(xù)的寬度和高度均為10個(gè)單位的矩形小方塊,設(shè)置成淡青色,背景顏色為黑色。

      ③游戲具體過(guò)程函數(shù)GamePlay():

      算法過(guò)程:

      a.設(shè)置初始值。為防止食物出現(xiàn)在一個(gè)位置上,要設(shè)置隨機(jī)數(shù)發(fā)生器,真正產(chǎn)生隨機(jī)數(shù)。初始時(shí),蛇只有蛇頭,設(shè)定一個(gè)開(kāi)始方向;

      b.循環(huán)執(zhí)行,直到按Esc鍵退出; c.沒(méi)有按鍵的情況下,循環(huán)執(zhí)行。

      如果沒(méi)有食物,隨機(jī)出現(xiàn)食物;食物的隨機(jī)出現(xiàn)要確保它的位置在10的倍數(shù)位置上,因?yàn)樯叩淖鴺?biāo)都是以10為模的;如果有食物,則顯示食物,蛇

      貪吃蛇游戲程序設(shè)計(jì)報(bào)告

      移動(dòng)身體,根據(jù)蛇的方向改變坐標(biāo)值,并判斷蛇是否撞到了墻或自己吃到了自己,如果出現(xiàn)這兩種情況之一,則蛇死;調(diào)用游戲結(jié)束函數(shù)GamePlay(),結(jié)束本次游戲;

      判斷蛇吃到食物的方法是蛇頭的坐標(biāo)和食物的坐標(biāo)都相等;如果蛇吃到了食物,蛇身體長(zhǎng)一節(jié),數(shù)組元素增加一個(gè),身體節(jié)數(shù)、分?jǐn)?shù)都進(jìn)行相應(yīng)的改變。

      在新位置畫出蛇。采用的方法是每次移動(dòng)的時(shí)候從最后一節(jié)開(kāi)始到倒數(shù)第二節(jié),將前一節(jié)的坐標(biāo)賦值給后一節(jié)的坐標(biāo),移動(dòng)后只要把最后一節(jié)用背景色去除即可。

      D.如果有按鍵,則識(shí)別按鍵值。如果按鍵為Esc鍵則結(jié)束游戲,程序運(yùn)行結(jié)束;如果所按鍵為方向鍵,則根據(jù)該鍵改變蛇方向的變量direction的值,相反方向鍵無(wú)效。

      ④游戲結(jié)束函數(shù)GameOver():

      游戲結(jié)束,清除屏幕,調(diào)用輸出分?jǐn)?shù)函數(shù)PrScore(),并顯示游戲結(jié)束。

      ⑤輸出分?jǐn)?shù)函數(shù)PrScore():

      在指定位置利用sprintf()將整數(shù)轉(zhuǎn)換為字符串,用outtextxy()輸出,、bar()函數(shù)的應(yīng)用是為了覆蓋原來(lái)的值。

      ⑥圖形結(jié)束函數(shù)Close():

      在顯示游戲結(jié)束信息的畫面時(shí),按任意鍵關(guān)閉圖形系統(tǒng),程序結(jié)束。

      四、調(diào)試與測(cè)試:調(diào)試方法,測(cè)試結(jié)果的分析與討論,測(cè)試過(guò)程中遇到的主要問(wèn)題和采取的解決措施等;

      將源文件在TC3.0環(huán)境下調(diào)試運(yùn)行,前期發(fā)現(xiàn)錯(cuò)誤為游戲界面靜止。

      五、源程序清單及執(zhí)行結(jié)果:

      #include #include #include #include #include #include #define LEFT 0x4b00 #define RIGHT 0x4d00 #define DOWN 0x5000

      貪吃蛇游戲程序設(shè)計(jì)報(bào)告

      #define UP 0x4800 #define Esc 0x011b #define N 200 /*定義全局變量*/ int i,key;int score=0;/*得分*/ int gamespeed=50000;/*游戲速度可以自己調(diào)整*/ struct Food { int x;/*定義食物的橫坐標(biāo)*/ int y;/*定義食物的縱坐標(biāo)*/ int yes;/*判斷是否要出現(xiàn)食物的變量*/ }food;/*食物的結(jié)構(gòu)體*/ struct snake { int x[N];int y[N];int node;/*蛇的節(jié)數(shù)*/ int direction;/*蛇的移動(dòng)方向*/ int life;/*蛇的生命,0活著,1死亡*/ }snake;

      void Init(void);/*圖形驅(qū)動(dòng)*/ void Close(void);/*圖形結(jié)束*/ void DrawK(void);/*開(kāi)始畫面*/ void GameOver(void);/*結(jié)束游戲*/ void GamePlay(void);/*玩游戲的具體過(guò)程*/ void PrScore(void);/*輸出成績(jī)*/

      /*圖形驅(qū)動(dòng)*/ void Init(void){ int gdriver=DETECT,gmode;

      initgraph(&gdriver,&gmode,“D:TC30LIB”);}

      /*開(kāi)始畫面,左上角坐標(biāo)為(50,40),右下角坐標(biāo)為(610,460)的圍墻*/ void DrawK(void){ setbkcolor(LIGHTGREEN);setcolor(11);setlinestyle(SOLID_LINE,0,THICK_WIDTH);/*設(shè)置線型*/ for(i=50;i<=600;i+=10)/*畫圍墻*/ {

      貪吃蛇游戲程序設(shè)計(jì)報(bào)告

      rectangle(i,40,i+10,49);/*上邊*/

      rectangle(i,451,i+10,460);/*下邊*/ } for(i=40;i<=450;i+=10){

      rectangle(50,i,59,i+10);/*左邊*/

      rectangle(601,i,610,i+10);/*右邊*/ } }

      /*玩游戲的具體過(guò)程*/ void GamePlay(void){ randomize();/*隨機(jī)數(shù)發(fā)生器*/ food.yes=1;/*1表示需要出現(xiàn)新食物,0表示已經(jīng)存在食物*/ snake.life=0;/*蛇還活著^ ^*/ snake.direction=1;/*方向向右*/ snake.x[0]=100;snake.y[0]=100;/*蛇頭*/ snake.x[1]=110;snake.y[1]=100;snake.node=2;/*蛇的節(jié)數(shù)為2*/ PrScore();/*輸出得分*/ while(1)/*可以重復(fù)玩游戲,按Esc鍵結(jié)束*/ {

      While(!kbhit())/*在沒(méi)有按鍵的情況下,蛇自己移動(dòng)身體*/

      {

      if(food.yes==1)/*需要出現(xiàn)新食物*/

      {

      food.x=rand()%400+60;

      food.y=rand()%350+60;

      while(food.x%10!=0)/*食物隨機(jī)出現(xiàn)后必須讓食物能夠在整格內(nèi),這樣才可以讓蛇吃到*/

      food.x++;

      while(food.y%10!=0)

      food.y++;

      food.yes=0;/*畫面上有食物了*/

      }

      if(food.yes==0)/*畫面上有食物了就要把它顯示出來(lái)*/

      {

      setcolor(GREEN);

      rectangle(food.x,food.y,food.x+10,food.y-10);

      }

      for(i=snake.node-1;i>0;i--)/*蛇一個(gè)節(jié)一個(gè)節(jié)地往前移*/

      {

      snake.x[i]=snake.x[i-1];

      貪吃蛇游戲程序設(shè)計(jì)報(bào)告

      snake.y[i]=snake.y[i-1];

      }

      /*1,2,3,4表示右左上下四個(gè)方向,通過(guò)判斷這個(gè)來(lái)移動(dòng)蛇頭*/

      switch(snake.direction)

      {

      case 1:snake.x[0]+=10;break;

      case 2:snake.x[0]-=10;break;

      case 3:snake.y[0]-=10;break;

      case 4:snake.y[0]+=10;break;

      }

      /*從蛇的第四節(jié)開(kāi)始判斷蛇有沒(méi)有自己把自己吃掉*/

      for(i=3;i

      {

      if(snake.x[i]==snake.x[0]&&snake.y[i]==snake.y[0])

      {

      GameOver();/*顯示游戲結(jié)束*/

      snake.life=1;/*蛇死了T T!*/

      break;

      }

      }

      If(snake.x[0]<55||snake.x[0]>595||snake.y[0]<55||snake.y[0]>455)/*判斷蛇是否撞到墻*/

      {

      GameOver();/*游戲結(jié)束*/

      snake.life=1;/*蛇死了T T!*/

      }

      if(snake.life==1)/*如果蛇死了就跳出內(nèi)循環(huán),重新開(kāi)始*/

      break;

      if(snake.x[0]==food.x&&snake.y[0]==food.y)/*吃掉食物啦!*/

      {

      setcolor(0);/*把畫面上的食物顏色覆蓋掉*/

      rectangle(food.x,food.y,food.x+10,food.y-10);

      snake.x[snake.node]=-20;

      snake.y[snake.node]=-20;

      /*新的一節(jié)先放在看不見(jiàn)的位置,下次循環(huán)就取前一節(jié)的位置*/

      snake.node++;/*蛇的身體長(zhǎng)一節(jié)*/

      food.yes=1;/*畫面上需要出現(xiàn)新的食物*/

      score+=10;/*加十分!*/

      PrScore();/*輸出新得分*/

      }

      setcolor(4);/*畫出蛇*/

      for(i=0;i

      貪吃蛇游戲程序設(shè)計(jì)報(bào)告

      rectangle(snake.x[i],snake.y[i],snake.x[i]+10,snake.y[i]-10);

      delay(gamespeed);

      setcolor(0);/*用黑色去除蛇的最后一節(jié)*/

      rectangle(snake.x[snake.node-1],snake.y[snake.node-1],snake.x[snake.node-1]+10,snake.y[snake.node-1]-10);}/*endwhile(!kbhit)*/ if(snake.life==1)/*如果蛇死了就跳出循環(huán)*/

      break;key=bioskey(0);/*接收按鍵*/ if(key==Esc)/*按Esc鍵退出*/

      break;else if(key==UP&&snake.direction!=4)/*判斷是否往相反方向移動(dòng)*/

      snake.direction=3;else if(key==RIGHT&&snake.direction!=2)

      snake.direction=1;else if(key==LEFT&&snake.direction!=1)

      snake.direction=2;else if(key==DOWN&&snake.direction!=3)

      snake.direction=4;}/*endwhile(1)*/

      /*游戲結(jié)束*/ void GameOver(void){ cleardevice();/*清除屏幕*/ PrScore();/*輸出得分*/ setcolor(RED);settextstyle(0, 0,4);outtextxy(200,200,“GAME OVER”);/*顯示游戲結(jié)束*/ getch();}

      void PrScore(void)/*輸出成績(jī)*/ { char str[10];setfillstyle(SOLID_FILL,YELLOW);bar(50,15,220,35);setcolor(6);settextstyle(0,0,2);sprintf(str,“score:%d”,score);outtextxy(55,20,str);}

      貪吃蛇游戲程序設(shè)計(jì)報(bào)告

      void Close(void)/*圖形結(jié)束*/ { getch();closegraph();}

      void main(void)/*主函數(shù)*/ { Init();DrawK();GamePlay();Close();} 8

      第五篇:C#課程設(shè)計(jì)報(bào)告書

      :課程設(shè)計(jì)報(bào)告書

      面向?qū)ο蠓椒▽W(xué)

      課 程 設(shè) 計(jì) 報(bào) 告

      設(shè)計(jì)題目:學(xué)生信息管理系統(tǒng)課程

      班 級(jí):13軟件工程1班 學(xué) 號(hào):20130*** 姓 名:何** 指導(dǎo)教師:莊**老師 設(shè)計(jì)時(shí)間:2014年12月 附件

      4摘 要

      本文描述的是基于Windows環(huán)境的學(xué)生信息管理系統(tǒng),主要功能模塊包括:學(xué)生信息的增刪改查,學(xué)生課程的增刪改查, 學(xué)生成績(jī)的增刪改查,用戶的增刪改查。所用體系構(gòu)架Client/Server結(jié)構(gòu)。主要工具M(jìn)icrosoft Visual Studio 2010 設(shè)計(jì)窗體, MYSQL建立數(shù)據(jù)庫(kù),實(shí)現(xiàn)學(xué)生信息管理的各個(gè)功能。運(yùn)用語(yǔ)言C#與sql語(yǔ)法編程。

      本篇報(bào)告介紹一個(gè)學(xué)生信息管理系統(tǒng)的從分析到設(shè)計(jì)最后到開(kāi)發(fā)的全過(guò)程為,給出了學(xué)生信息管理系統(tǒng)的設(shè)計(jì)和技術(shù)實(shí)現(xiàn)的過(guò)程,特別在細(xì)節(jié)上分析功能和函數(shù)的實(shí)現(xiàn)思想。

      關(guān)鍵詞:面向?qū)ο?,學(xué)生信息管理系統(tǒng),Win7,MYSQL,VS2012,C/S This article describes the Windows environment based student information management system , the main function modules include: Additions and deletions to change search student information , additions and deletions to change search student curriculum , student achievement CRUD user CRUD.The system architecture Client / Server structure.The main tool for Microsoft Visual Studio 2012 design form , MYSQL database was established to achieve the various functions of the student information management.Sql syntax and use of C # programming language.This report describes a student information management system from analysis to design and finally to the whole process of development , the process gives the student information management system design and technology , in particular, to achieve ideological analysis functions and functions in detail.Keywords: object oriented, student information management system,Win7,MYSQL, VS2012, C/S

      目錄

      摘 要..............................................................................................................................................2 緒 論..............................................................................................................................................4 1.1 設(shè)計(jì)目的...........................................................................................................................4 1.2 開(kāi)發(fā)工具選擇...................................................................................................................4 1.3 開(kāi)發(fā)環(huán)境...........................................................................................................................4 1.4 本報(bào)告的主要內(nèi)容...........................................................................................................4 需求分析...........................................................................................................................................5 2.1系統(tǒng)需求簡(jiǎn)介....................................................................................................................5 2.1.1系統(tǒng)目標(biāo)................................................................................................................5 2.1.2功能需求分析........................................................................................................5 2.1.3性能需求分析........................................................................................................5 總體設(shè)計(jì)...........................................................................................................................................6 3.1設(shè)計(jì)概述............................................................................................................................6 3.2系統(tǒng)總體結(jié)構(gòu)及功能模塊劃分........................................................................................6 3.2.1學(xué)生信息管理模塊................................................................................................6 3.2.2學(xué)生課程管理模塊................................................................................................7 3.2.3學(xué)生成績(jī)管理模塊................................................................................................7 3.2.4系統(tǒng)用戶管理模塊................................................................................................8 3.3系統(tǒng)數(shù)據(jù)庫(kù)概念結(jié)構(gòu)設(shè)計(jì)................................................................................................8 3.3.1系統(tǒng)E-R圖............................................................................................................8 3.3.2系統(tǒng)數(shù)據(jù)庫(kù)的設(shè)計(jì)................................................................................................9 3.4安全保密設(shè)計(jì)..................................................................................................................10 3.4.1用戶登錄安全性..................................................................................................10 詳細(xì)設(shè)計(jì).........................................................................................................................................11 4.1概述..................................................................................................................................11 4.2系統(tǒng)程序流程圖..............................................................................................................11 4.3系統(tǒng)主要功能模塊簡(jiǎn)介..................................................................................................12 4.3.1系統(tǒng)登錄..............................................................................................................12 4.3.2學(xué)生信息管理模塊..............................................................................................12 4.3.3學(xué)生課程管理模塊..............................................................................................14 4.3.4學(xué)生成績(jī)管理模塊..............................................................................................16 4.3.5系統(tǒng)用戶管理模塊..............................................................................................18 4.3.6版權(quán)關(guān)于..............................................................................................................20 主要功能模塊代碼.........................................................................................................................21 5.1 登錄界面代碼設(shè)計(jì)..........................................................................................................21 5.2 主頁(yè)面代碼......................................................................................................................26 5.3 系統(tǒng)用戶管理模塊代碼設(shè)計(jì)..........................................................................................38 5.4 課程信息管理模塊代碼設(shè)計(jì)..........................................................................................45 5.5成績(jī)信息管理模塊代碼設(shè)計(jì)...........................................................................................52 總結(jié)................................................................................................................................................61 參考文獻(xiàn).........................................................................................................................................61 課程設(shè)計(jì)心得.................................................................................................................................62 3

      緒 論

      1.1 設(shè)計(jì)目的

      本課程設(shè)計(jì)的目的是使學(xué)生能熟練掌握簡(jiǎn)單的簡(jiǎn)單Windows窗體應(yīng)用程序的設(shè)計(jì)和ADO.net的應(yīng)用,希望通過(guò)本次課程設(shè)計(jì)鍛煉學(xué)生使用C#語(yǔ)言解決實(shí)際問(wèn)題的能力。

      1.2 開(kāi)發(fā)工具選擇

      本系統(tǒng)后臺(tái)數(shù)據(jù)庫(kù)采用MYSQL 數(shù)據(jù)庫(kù),該數(shù)據(jù)庫(kù)系統(tǒng)在安全性、準(zhǔn)確性和運(yùn)行速度方面有絕對(duì)的優(yōu)勢(shì),并且處理數(shù)據(jù)量大,效率高;前臺(tái)采用Microsoft 公司的Visual Studio 2012作為主要開(kāi)發(fā)工具,可與MYSQL 數(shù)據(jù)庫(kù)無(wú)縫鏈接。

      1.3 開(kāi)發(fā)環(huán)境

      開(kāi)發(fā)系統(tǒng):Win7

      系統(tǒng)開(kāi)發(fā)平臺(tái):Microsoft Visual Studio 2012 系統(tǒng)開(kāi)發(fā)語(yǔ)言:C# 數(shù)據(jù)庫(kù)管理軟件:MYSQL 1.4 本報(bào)告的主要內(nèi)容

      本報(bào)告詳細(xì)的介紹了學(xué)生信息管理系統(tǒng)的開(kāi)發(fā)過(guò)程,主要涉及到的工作如下:系統(tǒng)的需求分析、系統(tǒng)的總體設(shè)計(jì)、系統(tǒng)的概念設(shè)計(jì)、系統(tǒng)各模塊的詳細(xì)設(shè)計(jì)、系統(tǒng)運(yùn)行與測(cè)試。

      需求分析

      2.1系統(tǒng)需求簡(jiǎn)介

      2.1.1系統(tǒng)目標(biāo)

      (1)根據(jù)查詢條件實(shí)現(xiàn)學(xué)生信息的查詢

      (2)學(xué)生選課信息查詢、成績(jī)信息和用戶信息的查詢

      (3)學(xué)生信息、課程信息、成績(jī)信息、用戶信息的增加、刪除、修改(4)對(duì)基本信息完成增加、刪除、修改時(shí),需注意表與表之間的關(guān)聯(lián) 2.1.2功能需求分析

      本系統(tǒng)的功能需求分析如下:

      (1)學(xué)生信息查詢:可以根據(jù)學(xué)號(hào)進(jìn)行查詢.(2)學(xué)生信息管理:主要是用于學(xué)生信息添加、刪除、修改;(3)學(xué)生成績(jī)查詢:可以根據(jù)學(xué)號(hào)進(jìn)行查詢.(4)學(xué)生成績(jī)管理:主要是用于學(xué)生成績(jī)添加、刪除、修改;(5)課程信息查詢:可根據(jù)菜單進(jìn)行查詢.(6)課程信息管理:主要是用于課程信息添加、刪除、修改;(7)用戶信息查詢:可根據(jù)菜單進(jìn)行查詢.(8)用戶信息管理:主要是用于用戶信息添加、刪除、修改; 2.1.3性能需求分析

      (1)登錄、用戶界面需求:簡(jiǎn)潔、易懂、易用、友好的用戶界面。(2)安全保密性需求:只有憑借用戶名和密碼登陸系統(tǒng),只有管理員才能進(jìn)行信息的管理,非管理員只能查看信息。

      總體設(shè)計(jì)

      3.1設(shè)計(jì)概述

      根據(jù)需求把整個(gè)系統(tǒng)分化成不同的模塊,每個(gè)模塊完成一個(gè)特定的子功能。把這些模塊結(jié)合起來(lái)組成一個(gè)整體。逐一實(shí)現(xiàn)各個(gè)功能;

      3.2系統(tǒng)總體結(jié)構(gòu)及功能模塊劃分

      經(jīng)過(guò)對(duì)系統(tǒng)的需求分析,學(xué)生信息管理系統(tǒng)主要?jiǎng)澐譃槿齻€(gè)部分:學(xué)生信息查詢,學(xué)生信息管理,學(xué)生成績(jī)錄入三個(gè)功能模塊。如圖3.2.0 系統(tǒng)的總體結(jié)構(gòu)。

      學(xué)生信息管理系統(tǒng)學(xué)生信息管理

      學(xué)生課程管理學(xué)生成績(jī)管理系統(tǒng)用戶管理 圖3.2.0 系統(tǒng)的總體結(jié)構(gòu)

      3.2.1學(xué)生信息管理模塊

      學(xué)生信息管理:主要是用于學(xué)生信息添加、刪除、修改,如圖3.2.1學(xué)生信息管理模塊結(jié)構(gòu)。

      學(xué)生信息管理模塊添加學(xué)生信息刪除學(xué)生信息修改學(xué)生信息

      圖3.2.1 3.2.2學(xué)生課程管理模塊

      學(xué)生課程管理:主要是用于學(xué)生課程添加、刪除、修改,如圖3.2.2學(xué)生課程管理模塊結(jié)構(gòu)。

      學(xué)生課程管理模塊添加課程信息

      刪除課程信息修改課程信息

      圖3.2.2

      3.2.3學(xué)生成績(jī)管理模塊

      學(xué)生成績(jī)管理:主要是用于學(xué)生成績(jī)添加、刪除、修改,如圖3.2.3學(xué)生成績(jī)管理模塊結(jié)構(gòu)。

      學(xué)生成績(jī)管理模塊添加學(xué)生成績(jī)

      刪除學(xué)生成績(jī)修改學(xué)生成績(jī)

      圖3.2.3 3.2.4系統(tǒng)用戶管理模塊

      系統(tǒng)用戶管理:主要是用于系統(tǒng)用戶添加、刪除、修改,如圖3.2.4系統(tǒng)用戶管理模塊結(jié)構(gòu)。

      系統(tǒng)用戶管理模塊添加用戶 刪除用戶修改用戶 圖3.2.4 3.3系統(tǒng)數(shù)據(jù)庫(kù)概念結(jié)構(gòu)設(shè)計(jì)

      根據(jù)對(duì)數(shù)據(jù)項(xiàng)與數(shù)據(jù)結(jié)構(gòu)的分析,設(shè)計(jì)出能夠滿足系統(tǒng)需求的各種實(shí)體,及它們之間的關(guān)系,為后面的邏輯結(jié)構(gòu)設(shè)計(jì)打下基礎(chǔ)。3.3.1系統(tǒng)E-R圖

      系統(tǒng)E-R圖可以將各個(gè)實(shí)體之間的關(guān)系顯示出來(lái),將各個(gè)實(shí)體間的屬性依賴表示明白。如圖3.3.1系統(tǒng)E-R圖結(jié)構(gòu)。

      姓名性別年齡院系考核籍貫用戶表用戶名成績(jī)表學(xué)號(hào)學(xué)號(hào)課程ID課程名類型學(xué)分學(xué)生表選課課程表理論學(xué)時(shí)實(shí)驗(yàn)學(xué)時(shí)用戶密碼用戶類型成績(jī)課程名稱 圖3.3.1系統(tǒng)E-R圖結(jié)構(gòu) 3.3.2系統(tǒng)數(shù)據(jù)庫(kù)的設(shè)計(jì)

      綜合以上分析,要實(shí)現(xiàn)上面的所有功能模塊,主要設(shè)計(jì)表如下:

      表3.3.2.1 用戶表(user)

      表3.3.2.2成績(jī)表(grade)

      表3.3.2.3課程表(course)

      表3.3.2.4學(xué)生表(stu)

      3.3.3數(shù)據(jù)庫(kù)的連接配置

      ①先在項(xiàng)目中引用MySQLDriverCS.dll ②類添加 using MySQLDriverCS;③MySQLConnection conn = new MySQLConnection(new MySQLConnectionString(“數(shù)據(jù)庫(kù)名”, “Server帳號(hào)”, “密碼”).AsString);3.4安全保密設(shè)計(jì)

      3.4.1用戶登錄安全性

      系統(tǒng)設(shè)計(jì)了登錄界面,每個(gè)合法用戶有用戶名及一個(gè)密碼,只有當(dāng)用戶輸入正確的用戶名及密碼組合后才能夠?qū)W(xué)生信息進(jìn)行操作。

      詳細(xì)設(shè)計(jì)

      4.1概述

      詳細(xì)設(shè)計(jì)階段的根本目標(biāo)是確定應(yīng)該怎樣具體的實(shí)現(xiàn)所要求的系統(tǒng),也就是說(shuō),經(jīng)過(guò)這個(gè)階段的設(shè)計(jì)工作,應(yīng)該得出目標(biāo)系統(tǒng)的精確描述,從而在編碼階段可以把這個(gè)描述直接翻譯成用某種程序設(shè)計(jì)語(yǔ)言書寫的程序。

      4.2系統(tǒng)程序流程圖

      程序流程圖又稱為程序框圖,它是歷史悠久使用最廣泛的描述軟件設(shè)計(jì)的方法。它可將整個(gè)程序的總體流程清楚明白的顯示出來(lái)。如圖4.2.1系統(tǒng)總流程圖結(jié)構(gòu)。

      圖4.2.1系統(tǒng)總體流程圖

      4.3系統(tǒng)主要功能模塊簡(jiǎn)介

      4.3.1系統(tǒng)登錄

      用戶憑借用戶名及密碼登錄,成功登錄后可對(duì)學(xué)生信息進(jìn)行操作。用戶界面如圖4.3.1 用戶登錄界面所示。

      圖4.3.1 用戶登錄界面

      4.3.2學(xué)生信息管理模塊

      學(xué)生信息管理:通過(guò)程序主界面的添加學(xué)生信息按鈕可添加學(xué)生信息(如圖

      4.3.2添加信息窗口)。學(xué)生信息進(jìn)行詳細(xì)信息管理(如圖4.3.3 信息管理)包括刪除信息(如圖 4.3.4刪除信息提示)和修改信息(如圖4.3.5 修改信息窗口)。

      圖4.3.2添加信息窗口

      圖4.3.3 信息管理

      圖4.3.4刪除信息提示

      圖4.3.5 修改信息窗口

      4.3.3學(xué)生課程管理模塊

      學(xué)生課程管理:通過(guò)程序主界面的菜單-->系統(tǒng)-->課程管理 可添加課程信 14

      息(如圖 4.3.5信息管理)和 詳細(xì)的課程管理(如圖4.3.6 添加信息窗口)和(如圖4.3.7 刪除信息提示)和(如圖4.3.8 修改信息窗口)。

      圖 4.3.5信息管理

      4.3.6 添加信息窗口

      圖4.3.7 刪除信息提示

      圖4.3.8 修改信息窗口

      4.3.4學(xué)生成績(jī)管理模塊

      學(xué)生信息管理:選擇一行學(xué)生信息通過(guò)程序主界面的查看-->學(xué)生成績(jī)按鈕,查看該學(xué)生的成績(jī)信息(如圖 4.3.7查看信息窗口)。查看后還可以添加該學(xué)生的成績(jī)(如圖 4.3.8添加信息窗口)、刪除該學(xué)生的成績(jī)(如圖 4.3.9刪除提示窗口)和修改該學(xué)生的成績(jī)(如圖 4.3.10修改信息窗口)

      圖4.3.7成績(jī)管理

      4.3.8添加信息窗口

      圖 4.3.9刪除提示窗口 17

      圖 4.3.10修改信息窗口

      4.3.5系統(tǒng)用戶管理模塊

      系統(tǒng)用戶管理:通過(guò)程序主界面的菜單-->系統(tǒng)-->用戶管理,查看該系統(tǒng)用戶的信息(如圖 4.3.11查看信息窗口)。查看后還可以添加該系統(tǒng)的用戶(如圖 4.3.12添加信息窗口)、刪除該系統(tǒng)的用戶(如圖 4.3.13刪除提示窗口)和修改該系統(tǒng)的用戶(如圖 4.3.14修改信息窗口)

      4.3.11查看信息窗口

      圖 4.3.12添加信息窗口

      圖 4.3.13刪除提示窗口

      圖 4.3.14修改信息窗口

      4.3.6版權(quán)關(guān)于

      版權(quán)關(guān)于:圖4.3.15版權(quán)關(guān)于

      圖4.3.15版權(quán)關(guān)于

      主要功能模塊代碼

      5.1 登錄界面代碼設(shè)計(jì)

      namespace SIMS_1 { public partial class Log : Form { String check = “abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890”;string check_4 = “";

      Random r = new Random();

      public Log(){ InitializeComponent();

      for(int i = 0;i < 4;i++){ int n=r.Next(0,61);check_4 += ”“ + check[n];} l_check.Text = check_4;

      }

      private static String id, password, type;public static int Flag = 1;

      String flag = ”“;

      MySQLConnection con = new MySQLConnection(new MySQLConnectionString(”students“, ”root“, ”123456“).AsString);

      private void bt_log_Click(object sender, EventArgs e){ try { id = txt_id.Text.Trim();password = txt_password.Text.Trim();if(this.rb_log_Manager.Checked){ type = ”管理員“;} if(this.rb_Log_Not_Manager.Checked){ type = ”非管理員“;}

      // 如果輸入的帳號(hào)和密碼與系統(tǒng)的帳號(hào)密碼一致就進(jìn)入本系統(tǒng)

      con.Open();MySQLCommand setformat = new MySQLCommand(”set names gb2312“, con);setformat.ExecuteNonQuery();setformat.Dispose();

      string sql = ”select * from user where 用戶名='“ + id + ”' and 用戶密碼='“ + password + ”'and 用戶類型='“ + type + ”'“;

      MySQLDataAdapter adapter = new MySQLDataAdapter(sql, con);DataSet set = new DataSet();adapter.Fill(set,”user“);

      this.dataView.DataSource = set.Tables[”user“];int rowcount = dataView.RowCount1;if(rowcount == 0){ MessageBox.Show(”您還未添加課程!“);} con.Close();

      }

      public static String name1 = ”“;public static String id1 = ”“;private void bt_grade_Click(object sender, EventArgs e){ try { id1 = dataView.SelectedRows[0].Cells[0].Value.ToString();name1 = dataView.SelectedRows[0].Cells[1].Value.ToString();

      Grade g = new Grade();g.Show();g.Text = name1 + ”:的成績(jī)單“;

      con.Open();

      MySQLCommand setformat = new MySQLCommand(”set names gb2312“, con);setformat.ExecuteNonQuery();setformat.Dispose();string sql1 = ”select * from grade where 學(xué)號(hào)=“+id1;MySQLDataAdapter adapter = new MySQLDataAdapter(sql1, con);DataSet set = new DataSet();adapter.Fill(set, ”grade“);g.dataView1.DataSource = set.Tables[0];int rowcount = g.dataView1.RowCount1;if(rowcount == 1)

      { MessageBox.Show(”該學(xué)號(hào)的學(xué)生已存在!“);} else {

      { } {

      { } { flag_exception = 1;} { } { + sex + ”',“ + if(id.Equals(”“))MessageBox.Show(”請(qǐng)輸入學(xué)號(hào)!“);else try Int64 id1 = Convert.ToInt64(id);catch(FormatException)if(flag_exception == 1)MessageBox.Show(”請(qǐng)輸入正確的學(xué)生學(xué)號(hào)!“);else String sql1 = ”insert into stu values('“ + id + ”','“ + name + ”','“"'” + age + “','” + depart + “','” + nation + “')”;

      MySQLCommand command = new MySQLCommand(sql1, Students.con);command.ExecuteNonQuery();Students.con.Close();

      MessageBox.Show(“操作成功!”);this.Dispose();} } } }

      private void bt_Add_cancel_Click(object sender, EventArgs e){ this.Dispose();} } }

      5.3 系統(tǒng)用戶管理模塊代碼設(shè)計(jì)

      namespace SIMS_1 { public partial class registered : Form { public registered(){ InitializeComponent();if(Log.Flag == 0){ 38

      bt_registered_add.Hide();bt_registered_delete.Hide();bt_registered_change.Hide();} }

      private void bt_registered_refresh_Click(object sender, EventArgs e){ Students.con.Open();MySQLCommand setformat = new MySQLCommand(“set names gb2312”, Students.con);setformat.ExecuteNonQuery();setformat.Dispose();string sql1 = “select * from user”;MySQLDataAdapter adapter = new MySQLDataAdapter(sql1, Students.con);DataSet set = new DataSet();adapter.Fill(set, “user”);this.dataView_user.DataSource = set.Tables[0];}

      private void bt_registered_add_Click(object sender, EventArgs e){ registered_add registered_add = new registered_add();registered_add.Show();}

      private void bt_registered_delete_Click(object sender, EventArgs e){ try { String id =

      this.dataView_user.SelectedRows[0].Cells[0].Value.ToString();

      if(MessageBox.Show(“是否要?jiǎng)h除用戶名為:” + id + “ 的用戶?”, “確認(rèn)”, MessageBoxButtons.YesNo, MessageBoxIcon.Question)== DialogResult.Yes){ Students.con.Open();MySQLCommand setformat = new MySQLCommand(“set names gb2312”, Students.con);setformat.ExecuteNonQuery();setformat.Dispose();String sql = “delete from user where 用戶名='” + id + “'”;MySQLCommand command = new MySQLCommand(sql, Students.con);command.ExecuteNonQuery();Students.con.Close();MessageBox.Show(“刪除成功!”, “提示!”, MessageBoxButtons.OK);} } catch(ArgumentOutOfRangeException){ MessageBox.Show(“您還沒(méi)有選擇一行要?jiǎng)h除的數(shù)據(jù)!”);} catch(NullReferenceException){ MessageBox.Show(“您選擇行的數(shù)據(jù)無(wú)效!”);} }

      private void bt_registered_change_Click(object sender, EventArgs e){

      try { String user_name = this.dataView_user.SelectedRows[0].Cells[0].Value.ToString();String password = this.dataView_user.SelectedRows[0].Cells[1].Value.ToString();String type = this.dataView_user.SelectedRows[0].Cells[2].Value.ToString();

      Students.con.Open();MySQLCommand setformat = new MySQLCommand(“set names gb2312”, Students.con);setformat.ExecuteNonQuery();setformat.Dispose();String sql = “delete from user where 用戶名='” + user_name + “'”;MySQLCommand command = new MySQLCommand(sql, Students.con);command.ExecuteNonQuery();Students.con.Close();

      registered_add r = new registered_add();r.Show();

      r.txt_user_name.Text = user_name;r.txt_user_password.Text = password;if(type.Equals(“管理員”)){ r.rb_guanli.Checked = true;} else {

      r.rb_nomal.Checked = true;}

      r.Text = “修改”;r.bt_registered_add_cancle.Hide();} catch(ArgumentOutOfRangeException){ MessageBox.Show(“您還沒(méi)選擇一行要修改的數(shù)據(jù)!”);} catch(NullReferenceException){ MessageBox.Show(“您選擇行的數(shù)據(jù)無(wú)效!”);}

      } } }

      5.3.1添加系統(tǒng)用戶模塊代碼設(shè)計(jì)

      namespace SIMS_1 { public partial class registered_add : Form { public registered_add(){ InitializeComponent();}

      private void bt_registered_add_Ok_Click(object sender, EventArgs e){ int ExceptionFlag = 0;String user_name = txt_user_name.Text;String password = txt_user_password.Text;String type = rb_guanli.Checked ? “管理員” : “非管理員”;Int64 no=0;

      Students.con.Open();MySQLCommand setformat = new MySQLCommand(“set names gb2312”, Students.con);setformat.ExecuteNonQuery();setformat.Dispose();

      String sql = “select * from user where 用戶名='” + user_name + “'”;MySQLDataAdapter adapter = new MySQLDataAdapter(sql, Students.con);DataSet set = new DataSet();adapter.Fill(set);this.dataGridView1.DataSource = set.Tables[0];

      int rowcount = dataGridView1.RowCount1;MessageBox.Show(“查找到” + rowcount + “個(gè)課程的信息!”);if(rowcount == 0){ MessageBox.Show(“您還未添加課程!”);} Students.con.Close();} } }

      5.4.1添加課程信息模塊代碼設(shè)計(jì)

      namespace SIMS_1 { public partial class Course_Add : Form

      { public Course_Add(){ InitializeComponent();}

      private void bt_course_add_Ok_Click(object sender, EventArgs e){ int flag_exception = 0;String id = this.txt_course_id.Text;String name = this.txt_course_name.Text;String type = this.rbt_Obligatory.Checked ? “必修” : “選修”;decimal credit = this.num_Credit.Value;decimal theory= this.num_Theory.Value;decimal experiment = this.num_Experiment.Value;

      Students.con.Open();MySQLCommand setformat = new MySQLCommand(“set names gb2312”, Students.con);setformat.ExecuteNonQuery();setformat.Dispose();String sql = “select * from course where 課程ID='” + id + “'”;MySQLDataAdapter adapter = new MySQLDataAdapter(sql, Students.con);DataSet set = new DataSet();adapter.Fill(set);this.dataView1.DataSource = set.Tables[0];int rowcount = dataView1.RowCount-1;if(rowcount == 1){ MessageBox.Show(“該課程ID已存在!”);}

      下載貪吃蛇課程設(shè)計(jì)總結(jié)報(bào)告書word格式文檔
      下載貪吃蛇課程設(shè)計(jì)總結(jié)報(bào)告書.doc
      將本文檔下載到自己電腦,方便修改和收藏,請(qǐng)勿使用迅雷等下載。
      點(diǎn)此處下載文檔

      文檔為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)行舉報(bào),并提供相關(guān)證據(jù),工作人員會(huì)在5個(gè)工作日內(nèi)聯(lián)系你,一經(jīng)查實(shí),本站將立刻刪除涉嫌侵權(quán)內(nèi)容。

      相關(guān)范文推薦

        OS課程設(shè)計(jì)報(bào)告書

        南通大學(xué)計(jì)算機(jī)學(xué)院課程設(shè)計(jì) 報(bào)告書設(shè)計(jì)題目專業(yè)班級(jí) 學(xué)生姓名 學(xué)號(hào) 指導(dǎo)教師 日期 目錄一級(jí)目錄1……………………………………………………………頁(yè)碼 一級(jí)目錄2…………......

        linux操作系統(tǒng)課程設(shè)計(jì)報(bào)告書

        題目1 進(jìn)程軟中斷通信 1.1 題目的主要研究?jī)?nèi)容及預(yù)期達(dá)到的目標(biāo) 實(shí)現(xiàn)進(jìn)程的軟中斷通信:父進(jìn)程發(fā)信號(hào)控制子程序的終止。 1.2 題目研究的工作基礎(chǔ)或?qū)嶒?yàn)條件 (1)硬件環(huán)境:Linux平......

        電力電子課程設(shè)計(jì)報(bào)告書

        課程設(shè)計(jì)說(shuō)明書 課程名稱: 電力電子技術(shù)課程設(shè)計(jì) 設(shè)計(jì)題目: 開(kāi)關(guān)恒流電源設(shè)計(jì) 專業(yè): 電氣工程及其自動(dòng)化班級(jí):電自1103班 學(xué)生姓名: 學(xué)生填寫 學(xué)號(hào): (10位數(shù)) 指導(dǎo)教師: 學(xué)生......

        太原理工大學(xué)課程設(shè)計(jì)報(bào)告書

        太原理工大學(xué)課程設(shè)計(jì)報(bào)告書 一、需求分析 (一)建設(shè)工廠物資管理數(shù)據(jù)庫(kù)目的(包括服務(wù)對(duì)象、數(shù)據(jù)庫(kù)的目標(biāo)等) (二)開(kāi)展工廠物資管理數(shù)據(jù)庫(kù)的可行性分析 (三) 數(shù)據(jù)和處理分析(包括數(shù)據(jù)......

        PLC課程設(shè)計(jì)報(bào)告書(小編推薦)

        ※※※※※※※※※ ※2010級(jí)PLC ※ ※※課程設(shè)計(jì) ※ ※ ※※※※※ ※※※※ PLC課程設(shè)計(jì)報(bào)告書 課題名稱工業(yè)機(jī)械手的PLC控制 姓 名 閆文博 學(xué) 號(hào) 20107577 院、系、部......

        《成本會(huì)計(jì)》課程設(shè)計(jì)報(bào)告書撰寫規(guī)范

        武漢理工大學(xué)華夏學(xué)院《成本會(huì)計(jì)》課程設(shè)計(jì)報(bào)告書 《成本會(huì)計(jì)》課程設(shè)計(jì)報(bào)告書撰寫規(guī)范一、主標(biāo)題:自定(五個(gè)班的題目不允許重復(fù),此為學(xué)校規(guī)定) 二、副標(biāo)題: ——《成本會(huì)計(jì)》課......

        課程設(shè)計(jì)報(bào)告書數(shù)控編程技術(shù)(學(xué)生參考).

        課程設(shè)計(jì)報(bào)告書 題目:數(shù)控加工工藝與編程設(shè)計(jì) 系部:機(jī)械學(xué)院 專業(yè):機(jī)械設(shè)計(jì)制造及其自動(dòng)化 班級(jí): 姓名: 學(xué)號(hào): 2015年1月4日 數(shù)控編程課程設(shè)計(jì)任務(wù)書 目錄 1. 緒論 (1 2. 設(shè)......

        ERP課程設(shè)計(jì)報(bào)告書正文標(biāo)準(zhǔn)格式

        課 程 設(shè) 計(jì) 報(bào) 告 書 專 用 紙 1、實(shí)習(xí)目的 通過(guò)本次實(shí)習(xí),使學(xué)生了解企業(yè)管理決策的基本思想及流程,并充分理解管理過(guò)程中團(tuán)隊(duì)精神的體現(xiàn)、哲學(xué)思維的運(yùn)用、個(gè)性能力的滲透、......